[epiphany] notebook: Do not use a popover for the tab selection menu



commit a7d56ee8ac72e42624b8b4ca3c8f51726e81875a
Author: Michael Catanzaro <mcatanzaro igalia com>
Date:   Sun Apr 30 13:28:38 2017 -0500

    notebook: Do not use a popover for the tab selection menu
    
    GTK+ popover menus are not scrollable, so they are not suitable for a
    menu that needs to accomodate huge numbers of items. Currently it is
    quite easy to wind up with the menu flowing off the bottom of the
    screen, with the menu items becoming inaccessible.

 src/ephy-notebook.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)
---
diff --git a/src/ephy-notebook.c b/src/ephy-notebook.c
index 7f514f0..0e6eb85 100644
--- a/src/ephy-notebook.c
+++ b/src/ephy-notebook.c
@@ -465,7 +465,6 @@ ephy_notebook_constructed (GObject *object)
   EphyNotebook *notebook = EPHY_NOTEBOOK (object);
   GtkWidget *hbox;
   GtkWidget *button;
-  GtkWidget *popover;
 
   G_OBJECT_CLASS (ephy_notebook_parent_class)->constructed (object);
 
@@ -489,9 +488,9 @@ ephy_notebook_constructed (GObject *object)
   gtk_widget_show (button);
 
   notebook->tab_menu = g_menu_new ();
-  popover = gtk_popover_new (button);
-  gtk_popover_bind_model (GTK_POPOVER (popover), G_MENU_MODEL (notebook->tab_menu), "win");
-  gtk_menu_button_set_popover (GTK_MENU_BUTTON (button), popover);
+  /* Remove this when popover menus become scrollable. */
+  gtk_menu_button_set_use_popover (GTK_MENU_BUTTON (button), FALSE);
+  gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), G_MENU_MODEL (notebook->tab_menu));
 }
 
 static void
@@ -574,7 +573,7 @@ ephy_notebook_rebuild_tab_menu (EphyNotebook *notebook)
     text = get_nth_tab_label_text (GTK_NOTEBOOK (notebook), i);
     ellipsized_text = ellipsize_tab_label (text);
     item = g_menu_item_new (ellipsized_text, NULL);
-    g_menu_item_set_action_and_target (item, "show-tab", "u", (guint)i, NULL);
+    g_menu_item_set_action_and_target (item, "win.show-tab", "u", (guint)i, NULL);
     g_menu_append_item (notebook->tab_menu, item);
     g_free (ellipsized_text);
     g_object_unref (item);


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