[gnome-panel] menu: remove menu_panel data



commit ccb0f38686f9f00428c256fa9a2e4529a6be57ad
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Mon Dec 19 01:25:36 2016 +0200

    menu: remove menu_panel data

 gnome-panel/applet.c             |   28 ----------------
 gnome-panel/applet.h             |    4 --
 gnome-panel/menu.c               |   67 --------------------------------------
 gnome-panel/menu.h               |    2 -
 gnome-panel/panel-context-menu.c |   19 +++-------
 gnome-panel/panel-menu-bar.c     |    4 --
 gnome-panel/panel-menu-button.c  |   17 ---------
 gnome-panel/panel-menu-items.c   |   17 +++-------
 gnome-panel/panel.c              |    2 -
 9 files changed, 11 insertions(+), 149 deletions(-)
---
diff --git a/gnome-panel/applet.c b/gnome-panel/applet.c
index 8bbbf66..06c02d9 100644
--- a/gnome-panel/applet.c
+++ b/gnome-panel/applet.c
@@ -502,30 +502,6 @@ panel_applet_get_edit_menu (AppletInfo *info)
        return info->edit_menu;
 }
 
-
-void
-panel_applet_menu_set_recurse (GtkMenu     *menu,
-                              const gchar *key,
-                              gpointer     data)
-{
-       GList *children;
-       GList *l;
-
-       g_object_set_data (G_OBJECT (menu), key, data);
-
-       children = gtk_container_get_children (GTK_CONTAINER (menu));
-
-       for (l = children; l; l = l->next) {
-               GtkWidget *submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (l->data));
-
-               if (submenu)
-                       panel_applet_menu_set_recurse (
-                               GTK_MENU (submenu), key, data);
-       }
-
-       g_list_free (children);
-}
-
 void
 panel_applet_position_menu (GtkMenu   *menu,
                            int       *x,
@@ -622,10 +598,6 @@ applet_show_menu (AppletInfo     *info,
 
        panel_widget = panel_applet_get_panel_widget (info);
 
-       panel_applet_menu_set_recurse (GTK_MENU (menu),
-                                      "menu_panel",
-                                      panel_widget);
-
        gtk_menu_set_screen (GTK_MENU (menu),
                             gtk_window_get_screen (GTK_WINDOW (panel_widget->toplevel)));
 
diff --git a/gnome-panel/applet.h b/gnome-panel/applet.h
index d9ccbe6..beab5c7 100644
--- a/gnome-panel/applet.h
+++ b/gnome-panel/applet.h
@@ -80,10 +80,6 @@ GSettings  *panel_applet_get_settings    (AppletInfo *applet);
    (position, toplevel_id, panel_right_stick) */
 gboolean    panel_applet_can_freely_move (AppletInfo *applet);
 
-void        panel_applet_menu_set_recurse (GtkMenu     *menu,
-                                          const gchar *key,
-                                          gpointer     data);
-
 void panel_applet_position_menu (GtkMenu   *menu,
                                 int       *x,
                                 int       *y,
diff --git a/gnome-panel/menu.c b/gnome-panel/menu.c
index db7a68d..e3a6194 100644
--- a/gnome-panel/menu.c
+++ b/gnome-panel/menu.c
@@ -99,68 +99,6 @@ activate_app_def (GtkWidget      *menuitem,
        panel_menu_item_activate_desktop_file (menuitem, path);
 }
 
-PanelWidget *
-menu_get_panel (GtkWidget *menu)
-{
-       PanelWidget *retval = NULL;
-
-       g_return_val_if_fail (menu != NULL, NULL);
-
-       if (GTK_IS_MENU_ITEM (menu))
-               menu = gtk_widget_get_parent (menu);
-
-       g_return_val_if_fail (GTK_IS_MENU (menu), NULL);
-
-       while (menu) {
-               retval = g_object_get_data (G_OBJECT (menu), "menu_panel");
-               if (retval)
-                       break;
-
-               menu = gtk_widget_get_parent (gtk_menu_get_attach_widget (GTK_MENU (menu)));
-               if (!GTK_IS_MENU (menu))
-                       break;
-       }
-
-       if (retval && !PANEL_IS_WIDGET (retval)) {
-               g_warning ("Invalid PanelWidget associated with menu");
-               retval = NULL;
-       }
-
-       if (!retval) {
-               g_warning ("Cannot find the PanelWidget associated with menu");
-               retval = panels->data;
-       }
-
-       return retval;
-}
-
-static void
-setup_menu_panel (GtkWidget *menu)
-{
-       PanelWidget *panel;
-
-       panel = g_object_get_data (G_OBJECT (menu), "menu_panel");
-       if (panel)
-               return;
-
-       panel = menu_get_panel (menu);
-       g_object_set_data (G_OBJECT (menu), "menu_panel", panel);
-
-       if (panel)
-               gtk_menu_set_screen (GTK_MENU (menu),
-                                    gtk_widget_get_screen (GTK_WIDGET (panel)));
-}
-
-GdkScreen *
-menuitem_to_screen (GtkWidget *menuitem)
-{
-       PanelWidget *panel_widget;
-
-       panel_widget = menu_get_panel (menuitem);
-
-       return gtk_window_get_screen (GTK_WINDOW (panel_widget->toplevel));
-}
-
 static void
 reload_image_menu_items (void)
 {
@@ -220,8 +158,6 @@ create_empty_menu (void)
 
        retval = panel_create_menu ();
 
-       g_signal_connect (retval, "show", G_CALLBACK (setup_menu_panel), NULL);
-
        /* intercept all right button clicks makes sure they don't
           go to the object itself */
        g_signal_connect (retval, "button_press_event",
@@ -1273,9 +1209,6 @@ create_main_menu (PanelWidget *panel)
        main_menu = create_applications_menu (applications_menu, NULL, TRUE);
        g_free (applications_menu);
 
-       g_object_set_data (G_OBJECT (main_menu), "menu_panel", panel);
-       /* FIXME need to update the panel on parent_set */
-
        g_object_set_data (G_OBJECT (main_menu),
                           "panel-menu-append-callback",
                           main_menu_append);
diff --git a/gnome-panel/menu.h b/gnome-panel/menu.h
index aaf22c6..7cfe275 100644
--- a/gnome-panel/menu.h
+++ b/gnome-panel/menu.h
@@ -60,8 +60,6 @@ GdkPixbuf *   panel_make_menu_icon (GtkIconTheme *icon_theme,
                                      int           size,
                                      gboolean     *long_operation);
 
-GdkScreen      *menuitem_to_screen   (GtkWidget *menuitem);
-PanelWidget    *menu_get_panel       (GtkWidget *menu);
 GtkWidget      *add_menu_separator   (GtkWidget *menu);
 
 gboolean menu_dummy_button_press_event (GtkWidget      *menuitem,
diff --git a/gnome-panel/panel-context-menu.c b/gnome-panel/panel-context-menu.c
index da01d8b..da7102f 100644
--- a/gnome-panel/panel-context-menu.c
+++ b/gnome-panel/panel-context-menu.c
@@ -90,20 +90,16 @@ panel_context_menu_check_for_screen (GtkWidget *w,
 }
 
 static void
-panel_context_menu_setup_delete_panel_item (GtkWidget *menu,
-                                           GtkWidget *menuitem)
+panel_context_menu_setup_delete_panel_item (GtkWidget     *menuitem,
+                                            PanelToplevel *toplevel)
 {
-       PanelWidget *panel_widget;
        gboolean     sensitive;
 
        panel_context_menu_check_for_screen (NULL, NULL, NULL);
-
-       panel_widget = menu_get_panel (menu);
-
-       g_assert (PANEL_IS_TOPLEVEL (panel_widget->toplevel));
+       g_assert (PANEL_IS_TOPLEVEL (toplevel));
 
        sensitive =
-               !panel_toplevel_is_last (panel_widget->toplevel) &&
+               !panel_toplevel_is_last (toplevel) &&
                !panel_lockdown_get_panels_locked_down_s () &&
                panel_layout_is_writable ();
 
@@ -174,9 +170,9 @@ panel_context_menu_build_edition (PanelWidget *panel_widget,
        g_signal_connect_swapped (G_OBJECT (menuitem), "activate",
                                  G_CALLBACK (panel_context_menu_delete_panel),
                                  panel_widget->toplevel);
-       g_signal_connect (G_OBJECT (menu), "show",
+       g_signal_connect (G_OBJECT (menuitem), "show",
                          G_CALLBACK (panel_context_menu_setup_delete_panel_item),
-                         menuitem);
+                         panel_widget->toplevel);
 
        add_menu_separator (menu);
 
@@ -204,9 +200,6 @@ panel_context_menu_create (PanelWidget *panel)
 
        panel_context_menu_build_edition (panel, retval);
 
-       //FIXME: can we get rid of this? (needed by menu_get_panel())
-       g_object_set_data (G_OBJECT (retval), "menu_panel", panel);
-
        g_signal_connect (retval, "event",
                          G_CALLBACK (panel_context_menu_check_for_screen),
                          NULL);
diff --git a/gnome-panel/panel-menu-bar.c b/gnome-panel/panel-menu-bar.c
index 9f59040..eb8652e 100644
--- a/gnome-panel/panel-menu-bar.c
+++ b/gnome-panel/panel-menu-bar.c
@@ -162,10 +162,6 @@ panel_menu_bar_parent_set (GtkWidget *widget,
 
        menubar->priv->panel = (PanelWidget *) parent;
 
-       if (menubar->priv->applications_menu)
-               panel_applet_menu_set_recurse (GTK_MENU (menubar->priv->applications_menu),
-                                              "menu_panel",
-                                              menubar->priv->panel);
        if (menubar->priv->places_item)
                panel_place_menu_item_set_panel (menubar->priv->places_item,
                                                 menubar->priv->panel);
diff --git a/gnome-panel/panel-menu-button.c b/gnome-panel/panel-menu-button.c
index 7ee072d..0874efb 100644
--- a/gnome-panel/panel-menu-button.c
+++ b/gnome-panel/panel-menu-button.c
@@ -277,20 +277,6 @@ panel_menu_button_set_property (GObject      *object,
 }
 
 static void
-panel_menu_button_associate_panel (PanelMenuButton *button)
-{
-       PanelWidget *panel_widget = NULL;
-
-       if (!button->priv->menu)
-               return;
-
-       if (button->priv->toplevel)
-               panel_widget = panel_toplevel_get_panel_widget (button->priv->toplevel);
-
-       panel_applet_menu_set_recurse (GTK_MENU (button->priv->menu), "menu_panel", panel_widget);
-}
-
-static void
 panel_menu_button_parent_set (GtkWidget *widget,
                              GtkWidget *previous_parent)
 {
@@ -305,7 +291,6 @@ panel_menu_button_parent_set (GtkWidget *widget,
        else
                button->priv->toplevel = NULL;
 
-       panel_menu_button_associate_panel (button);
        panel_menu_button_set_icon (button);
 
        if (GTK_WIDGET_CLASS (panel_menu_button_parent_class)->parent_set)
@@ -386,8 +371,6 @@ panel_menu_button_create_menu (PanelMenuButton *button)
                                   GTK_WIDGET (button),
                                   (GtkMenuDetachFunc) panel_menu_button_menu_detacher);
 
-       panel_menu_button_associate_panel (button);
-
        g_signal_connect_swapped (button->priv->menu, "deactivate",
                                  G_CALLBACK (panel_menu_button_menu_deactivated),
                                  button);
diff --git a/gnome-panel/panel-menu-items.c b/gnome-panel/panel-menu-items.c
index 7d7e789..815e61f 100644
--- a/gnome-panel/panel-menu-items.c
+++ b/gnome-panel/panel-menu-items.c
@@ -105,7 +105,7 @@ static void
 activate_uri (GtkWidget  *menuitem,
              const char *uri)
 {
-       activate_uri_on_screen (uri, menuitem_to_screen (menuitem));
+       activate_uri_on_screen (uri, gtk_widget_get_screen (menuitem));
 }
 
 static void
@@ -115,7 +115,7 @@ activate_path (GtkWidget  *menuitem,
        char *uri;
 
        uri = g_filename_to_uri (path, NULL, NULL);
-       activate_uri_on_screen (uri, menuitem_to_screen (menuitem));
+       activate_uri_on_screen (uri, gtk_widget_get_screen (menuitem));
        g_free (uri);
 }
 
@@ -652,7 +652,7 @@ panel_menu_item_rescan_drive (GtkWidget *menuitem,
 {
        g_drive_poll_for_media (drive, NULL,
                                drive_poll_for_media_cb,
-                               menuitem_to_screen (menuitem));
+                               gtk_widget_get_screen (menuitem));
 }
 
 static GtkWidget *
@@ -745,7 +745,7 @@ panel_menu_item_mount_volume (GtkWidget *menuitem,
        PanelVolumeMountData *mount_data;
 
        mount_data = g_slice_new (PanelVolumeMountData);
-       mount_data->screen = menuitem_to_screen (menuitem);
+       mount_data->screen = gtk_widget_get_screen (menuitem);
        mount_data->mount_op = gtk_mount_operation_new (NULL);
        gtk_mount_operation_set_screen (GTK_MOUNT_OPERATION (mount_data->mount_op),
                                        mount_data->screen);
@@ -1193,9 +1193,6 @@ panel_place_menu_item_recreate_menu (GtkWidget *widget)
                place_item->priv->menu = panel_place_menu_item_create_menu (place_item);
                gtk_menu_item_set_submenu (GTK_MENU_ITEM (place_item),
                                           place_item->priv->menu);
-               panel_applet_menu_set_recurse (GTK_MENU (place_item->priv->menu),
-                                              "menu_panel",
-                                              place_item->priv->panel);
        }
 }
 
@@ -1551,8 +1548,6 @@ panel_place_menu_item_set_panel (GtkWidget   *item,
        place_item = PANEL_PLACE_MENU_ITEM (item);
 
        place_item->priv->panel = panel;
-       panel_applet_menu_set_recurse (GTK_MENU (place_item->priv->menu),
-                                      "menu_panel", panel);
 }
 
 void
@@ -1564,8 +1559,6 @@ panel_desktop_menu_item_set_panel (GtkWidget   *item,
        desktop_item = PANEL_DESKTOP_MENU_ITEM (item);
 
        desktop_item->priv->panel = panel;
-       panel_applet_menu_set_recurse (GTK_MENU (desktop_item->priv->menu),
-                                      "menu_panel", panel);
 }
 
 static void
@@ -1730,5 +1723,5 @@ void
 panel_menu_item_activate_desktop_file (GtkWidget  *menuitem,
                                       const char *path)
 {
-       panel_launch_desktop_file (path, menuitem_to_screen (menuitem), NULL);
+       panel_launch_desktop_file (path, gtk_widget_get_screen (menuitem), NULL);
 }
diff --git a/gnome-panel/panel.c b/gnome-panel/panel.c
index e263fb9..342f11b 100644
--- a/gnome-panel/panel.c
+++ b/gnome-panel/panel.c
@@ -233,8 +233,6 @@ make_popup_panel_menu (PanelWidget *panel_widget)
 
        pd = g_object_get_data (G_OBJECT (panel_widget->toplevel), "PanelData");
        menu = panel_menu_get (panel_widget, pd);
-       if (menu)
-               g_object_set_data (G_OBJECT (menu), "menu_panel", panel_widget);
 
        return menu;
 }


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