gnome-terminal r2468 - trunk/src



Author: chpe
Date: Wed Mar 19 18:09:16 2008
New Revision: 2468
URL: http://svn.gnome.org/viewvc/gnome-terminal?rev=2468&view=rev

Log:
Port tabs menu sensitivity update.


Modified:
   trunk/src/terminal-window.c

Modified: trunk/src/terminal-window.c
==============================================================================
--- trunk/src/terminal-window.c	(original)
+++ trunk/src/terminal-window.c	Wed Mar 19 18:09:16 2008
@@ -1426,6 +1426,7 @@
   /* FIXMEchpe is that really true still ?? */
   priv->clipboard = gtk_widget_get_clipboard (GTK_WIDGET (window), GDK_NONE);
 
+  /* FIXMEchpe !!!! */
   accel_group = terminal_accels_get_group_for_widget (GTK_WIDGET (window));
   gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);
   
@@ -1587,11 +1588,11 @@
 terminal_window_show (GtkWidget *widget)
 {
   TerminalWindow *window = TERMINAL_WINDOW (widget);
+  TerminalWindowPrivate *priv = window->priv;
   SnDisplay *sn_display;
   SnLauncheeContext *context;
   GdkScreen *screen;
   GdkDisplay *display;
-  TerminalWindowPrivate *priv = window->priv;
 
   if (!GTK_WIDGET_REALIZED (widget))
     gtk_widget_realize (widget);
@@ -1722,50 +1723,36 @@
 }
 
 static void
-update_tab_sensitivity (TerminalWindow *window)
+update_tabs_menu_sensitivity (TerminalWindow *window)
 {
-#if 0
   TerminalWindowPrivate *priv = window->priv;
-  GtkWidget *notebook;
+  GtkNotebook *notebook = GTK_NOTEBOOK (priv->notebook);
+  GtkActionGroup *action_group = priv->action_group;
+  GtkAction *action;
   int num_pages, page_num;
-  gboolean on_last_page;
-
-  notebook = priv->notebook;
-
-  if (notebook == NULL)
-    {
-      return;
-    }
+  gboolean have_prev_tab, have_next_tab;
 
-  num_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook));
-  page_num = gtk_notebook_get_current_page (GTK_NOTEBOOK (notebook));
-  
-  gtk_widget_set_sensitive (priv->previous_tab_menuitem,
-                            page_num > 0);
-
-  on_last_page = (page_num >= num_pages - 1);
-
-  /* If there's only one tab, Close Tab is insensitive */
-  if (page_num == 0 && on_last_page)
-    {
-      gtk_widget_set_sensitive (priv->close_tab_menuitem, FALSE);
-      gtk_widget_set_sensitive (priv->detach_tab_menuitem, FALSE);
+  g_return_if_fail (!priv->disposed);
 
-      gtk_widget_set_sensitive (priv->move_left_tab_menuitem, FALSE);
-      gtk_widget_set_sensitive (priv->move_right_tab_menuitem, FALSE);
-    }
-  else
-    {
-      gtk_widget_set_sensitive (priv->close_tab_menuitem, TRUE);
-      gtk_widget_set_sensitive (priv->detach_tab_menuitem, TRUE);
-
-      gtk_widget_set_sensitive (priv->move_left_tab_menuitem, TRUE);
-      gtk_widget_set_sensitive (priv->move_right_tab_menuitem, TRUE);
-    }
+  num_pages = gtk_notebook_get_n_pages (notebook);
+  page_num = gtk_notebook_get_current_page (notebook);
+  have_prev_tab = page_num > 0;
+  have_next_tab = page_num < num_pages - 1;
 
-  gtk_widget_set_sensitive (priv->next_tab_menuitem,
-                            !on_last_page);
-#endif
+  action = gtk_action_group_get_action (action_group, "TabsPrevious");
+  gtk_action_set_sensitive (action, have_prev_tab);
+  action = gtk_action_group_get_action (action_group, "TabsNext");
+  gtk_action_set_sensitive (action, have_next_tab);
+  action = gtk_action_group_get_action (action_group, "TabsMoveLeft");
+  gtk_action_set_sensitive (action, have_prev_tab);
+  action = gtk_action_group_get_action (action_group, "TabsMoveRight");
+  gtk_action_set_sensitive (action, have_next_tab);
+  action = gtk_action_group_get_action (action_group, "TabsDetach");
+  gtk_action_set_sensitive (action, num_pages > 0);
+  action = gtk_action_group_get_action (action_group, "FileCloseTab");
+  gtk_action_set_sensitive (action, num_pages > 0);
+//   action = gtk_action_group_get_action (action_group, "PopupCloseTab");
+//   gtk_action_set_sensitive (action, page_num > 0);
 }
 
 static void
@@ -2155,7 +2142,7 @@
 
   terminal_window_set_active (window, screen);
 
-  update_tab_sensitivity (window);
+  update_tabs_menu_sensitivity (window);
 }
 
 static void
@@ -2198,7 +2185,7 @@
 
   update_notebook (window);
 
-  update_tab_sensitivity (window);
+  update_tabs_menu_sensitivity (window);
   update_tab_visibility (window, 0);
 
   term = terminal_screen_get_widget (screen);
@@ -2272,7 +2259,7 @@
 
   update_notebook (window);
 
-  update_tab_sensitivity (window);
+  update_tabs_menu_sensitivity (window);
   update_tab_visibility (window, 0);
 
   pages = priv->terms;
@@ -2845,7 +2832,7 @@
 
   gtk_notebook_reorder_child (notebook, page, page_num == 0 ? last_page : page_num - 1);
 
-  update_tab_sensitivity (window);
+  update_tabs_menu_sensitivity (window);
 }
 
 static void
@@ -2863,7 +2850,7 @@
   
   gtk_notebook_reorder_child (notebook, page, page_num == last_page ? 0 : page_num + 1);
 
-  update_tab_sensitivity (window);
+  update_tabs_menu_sensitivity (window);
 }
 
 static void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]