[gedit/wip/tabs: 8/8] Set menu model when needed.



commit 4c4910383ae00efd33165e4f83c428202e7819da
Author: Ignacio Casal Quinteiro <icq gnome org>
Date:   Wed Jun 26 17:10:23 2013 +0200

    Set menu model when needed.

 gedit/gedit-notebook.c |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)
---
diff --git a/gedit/gedit-notebook.c b/gedit/gedit-notebook.c
index 90fa544..57e5efe 100644
--- a/gedit/gedit-notebook.c
+++ b/gedit/gedit-notebook.c
@@ -431,13 +431,19 @@ gedit_notebook_page_removed (GtkNotebook *notebook,
 
        num_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (nb));
 
-       /* If there is no tabs, calling this is pointless */
+       g_menu_remove (nb->priv->documents_menu, page_num);
+
        if (num_pages > 0)
        {
+               /* If there is no tabs, calling this is pointless */
                update_tabs_visibility (nb, FALSE);
        }
-
-       g_menu_remove (nb->priv->documents_menu, page_num);
+       else
+       {
+               /* Unset the menu model from the button to make it insensitive */
+               gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (nb->priv->documents_button),
+                                               NULL);
+       }
 }
 
 static void
@@ -474,6 +480,12 @@ gedit_notebook_page_added (GtkNotebook *notebook,
        g_free (name);
 
        g_menu_insert_item (nb->priv->documents_menu, page_num, menuitem);
+
+       if (!gtk_menu_button_get_menu_model (GTK_MENU_BUTTON (nb->priv->documents_button)))
+       {
+               gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (nb->priv->documents_button),
+                                               G_MENU_MODEL (nb->priv->documents_menu));
+       }
 }
 
 static void
@@ -584,8 +596,6 @@ gedit_notebook_init (GeditNotebook *notebook)
        priv->ui_settings = g_settings_new ("org.gnome.gedit.preferences.ui");
 
        priv->documents_menu = g_menu_new ();
-       gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (priv->documents_button),
-                                       G_MENU_MODEL (priv->documents_menu));
 
        priv->show_tabs_mode = GEDIT_NOTEBOOK_SHOW_TABS_ALWAYS;
        priv->close_buttons_sensitive = TRUE;


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