[gnome-panel/wip/muktupavels/remove-panel-applet-private: 2/5] panel-applets-manager: there is only one manager



commit 217fb4d56412d1e74cfae40d4c3058d37f554e12
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Mon Apr 13 22:17:30 2020 +0300

    panel-applets-manager: there is only one manager

 gnome-panel/panel-applets-manager.c | 125 +++++-------------------------------
 1 file changed, 16 insertions(+), 109 deletions(-)
---
diff --git a/gnome-panel/panel-applets-manager.c b/gnome-panel/panel-applets-manager.c
index 12723be10..3d98ed3bb 100644
--- a/gnome-panel/panel-applets-manager.c
+++ b/gnome-panel/panel-applets-manager.c
@@ -41,140 +41,72 @@ panel_applets_manager_class_init (PanelAppletsManagerClass *class)
 
 /* Generic methods */
 
-static GSList *panel_applets_managers = NULL;
+static PanelAppletsManager *manager = NULL;
 
 static void
 _panel_applets_manager_cleanup (gpointer data)
 {
-       g_slist_free_full (panel_applets_managers, g_object_unref);
-       panel_applets_managers = NULL;
+       g_clear_object (&manager);
 }
 
 static void
 _panel_applets_managers_ensure_loaded (void)
 {
-       GObject *manager;
-
-       if (panel_applets_managers != NULL)
+       if (manager != NULL)
                return;
 
        panel_cleanup_register (PANEL_CLEAN_FUNC (_panel_applets_manager_cleanup), NULL);
 
        manager = g_object_new (GP_TYPE_APPLET_MANAGER, NULL);
-       panel_applets_managers = g_slist_append (panel_applets_managers, manager);
 }
 
 GList *
 panel_applets_manager_get_applets (void)
 {
-       GSList *l;
-       GList  *retval = NULL;
-
        _panel_applets_managers_ensure_loaded ();
 
-       for (l = panel_applets_managers; l != NULL; l = l->next) {
-               GList *applets;
-               PanelAppletsManager *manager = PANEL_APPLETS_MANAGER (l->data);
-
-               applets = PANEL_APPLETS_MANAGER_GET_CLASS (manager)->get_applets (manager);
-               if (applets)
-                       retval = g_list_concat (retval, applets);
-       }
-
-       return retval;
+       return PANEL_APPLETS_MANAGER_GET_CLASS (manager)->get_applets (manager);
 }
 
 gboolean
 panel_applets_manager_factory_activate (const gchar *iid)
 {
-       GSList *l;
-
        _panel_applets_managers_ensure_loaded ();
 
-       for (l = panel_applets_managers; l != NULL; l = l->next) {
-               PanelAppletsManager *manager = PANEL_APPLETS_MANAGER (l->data);
-
-               if (PANEL_APPLETS_MANAGER_GET_CLASS (manager)->factory_activate (manager, iid))
-                       return TRUE;
-       }
-
-       return FALSE;
+       return PANEL_APPLETS_MANAGER_GET_CLASS (manager)->factory_activate (manager, iid);
 }
 
 void
 panel_applets_manager_factory_deactivate (const gchar *iid)
 {
-       GSList *l;
-
        _panel_applets_managers_ensure_loaded ();
 
-       for (l = panel_applets_managers; l != NULL; l = l->next) {
-               PanelAppletsManager *manager = PANEL_APPLETS_MANAGER (l->data);
-
-               if (PANEL_APPLETS_MANAGER_GET_CLASS (manager)->factory_deactivate (manager, iid))
-                       return;
-       }
+       PANEL_APPLETS_MANAGER_GET_CLASS (manager)->factory_deactivate (manager, iid);
 }
 
 PanelAppletInfo *
 panel_applets_manager_get_applet_info (const gchar *iid)
 {
-       GSList *l;
-       PanelAppletInfo *retval = NULL;
-
        _panel_applets_managers_ensure_loaded ();
 
-       for (l = panel_applets_managers; l != NULL; l = l->next) {
-               PanelAppletsManager *manager = PANEL_APPLETS_MANAGER (l->data);
-
-               retval = PANEL_APPLETS_MANAGER_GET_CLASS (manager)->get_applet_info (manager, iid);
-
-               if (retval != NULL)
-                       return retval;
-       }
-
-       return NULL;
+       return PANEL_APPLETS_MANAGER_GET_CLASS (manager)->get_applet_info (manager, iid);
 }
 
 gboolean
 panel_applets_manager_load_applet (const gchar                *iid,
                                   PanelAppletFrameActivating *frame_act)
 {
-       GSList *l;
-
        _panel_applets_managers_ensure_loaded ();
 
-       for (l = panel_applets_managers; l != NULL; l = l->next) {
-               PanelAppletsManager *manager = PANEL_APPLETS_MANAGER (l->data);
-
-               if (!PANEL_APPLETS_MANAGER_GET_CLASS (manager)->get_applet_info (manager, iid))
-                       continue;
-
-               return PANEL_APPLETS_MANAGER_GET_CLASS (manager)->load_applet (manager, iid, frame_act);
-       }
-
-       return FALSE;
+       return PANEL_APPLETS_MANAGER_GET_CLASS (manager)->load_applet (manager, iid, frame_act);
 }
 
 gchar *
 panel_applets_manager_get_new_iid (const gchar *old_iid)
 {
-       GSList *l;
-       PanelAppletsManager *manager;
-       gchar *new_iid;
-
        _panel_applets_managers_ensure_loaded ();
 
-       for (l = panel_applets_managers; l != NULL; l = l->next) {
-               manager = PANEL_APPLETS_MANAGER (l->data);
-
-               new_iid = PANEL_APPLETS_MANAGER_GET_CLASS (manager)->get_new_iid (manager, old_iid);
-
-               if (new_iid != NULL)
-                       return new_iid;
-       }
-
-       return NULL;
+       return PANEL_APPLETS_MANAGER_GET_CLASS (manager)->get_new_iid (manager, old_iid);
 }
 
 gboolean
@@ -184,28 +116,16 @@ panel_applets_manager_open_initial_setup_dialog (const gchar            *iid,
                                                  gpointer                user_data,
                                                  GDestroyNotify          free_func)
 {
-       GSList *l;
        gboolean ret;
 
        _panel_applets_managers_ensure_loaded ();
 
-       ret = FALSE;
-       for (l = panel_applets_managers; l != NULL; l = l->next) {
-               PanelAppletsManager *manager = PANEL_APPLETS_MANAGER (l->data);
-
-               if (!PANEL_APPLETS_MANAGER_GET_CLASS (manager)->get_applet_info (manager, iid))
-                       continue;
-
-               ret = PANEL_APPLETS_MANAGER_GET_CLASS (manager)->open_initial_setup_dialog (manager,
-                                                                                           iid,
-                                                                                           parent,
-                                                                                           callback,
-                                                                                           user_data,
-                                                                                           free_func);
-
-               if (ret)
-                       break;
-       }
+       ret = PANEL_APPLETS_MANAGER_GET_CLASS (manager)->open_initial_setup_dialog (manager,
+                                                                                   iid,
+                                                                                   parent,
+                                                                                   callback,
+                                                                                   user_data,
+                                                                                   free_func);
 
        if (!ret && user_data != NULL && free_func != NULL)
                free_func (user_data);
@@ -216,20 +136,7 @@ panel_applets_manager_open_initial_setup_dialog (const gchar            *iid,
 GtkWidget *
 panel_applets_manager_get_standalone_menu (void)
 {
-       GSList *l;
-       PanelAppletsManager *manager;
-       GtkWidget *menu;
-
        _panel_applets_managers_ensure_loaded ();
 
-       for (l = panel_applets_managers; l != NULL; l = l->next) {
-               manager = PANEL_APPLETS_MANAGER (l->data);
-
-               menu = PANEL_APPLETS_MANAGER_GET_CLASS (manager)->get_standalone_menu (manager);
-
-               if (menu != NULL)
-                       return menu;
-       }
-
-       return NULL;
+       return PANEL_APPLETS_MANAGER_GET_CLASS (manager)->get_standalone_menu (manager);
 }


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