[network-manager-applet/dcbw/indicator-cleanups: 5/6] applet: allow indicator and status icon to be built together



commit 89d01068f48a01d1f045d565e1054142bb2d1d99
Author: Dan Williams <dcbw redhat com>
Date:   Tue Mar 15 15:16:19 2016 -0500

    applet: allow indicator and status icon to be built together

 configure.ac |    2 +-
 src/applet.c |  281 ++++++++++++++++++++++++++++------------------------------
 src/applet.h |    8 +-
 3 files changed, 140 insertions(+), 151 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 7e39955..888b4c8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -105,7 +105,7 @@ AC_ARG_WITH([appindicator], AS_HELP_STRING([--with-appindicator|--without-appind
 if test "$with_appindicator" == "yes"; then
        PKG_CHECK_MODULES(APPINDICATOR, appindicator3-0.1)
        PKG_CHECK_MODULES(DBUSMENU, dbusmenu-gtk3-0.4 >= 16.04.0)
-       AC_DEFINE([ENABLE_INDICATOR], 1, [Enable using libappindicator])
+       AC_DEFINE([WITH_INDICATOR], 1, [Enable using libappindicator])
 fi
 
 AM_CONDITIONAL(HAVE_GBT, test x"$have_gbt" = "xyes")
diff --git a/src/applet.c b/src/applet.c
index 22a67c7..4b45e15 100644
--- a/src/applet.c
+++ b/src/applet.c
@@ -55,11 +55,11 @@
 extern gboolean shell_debug;
 extern gboolean with_agent;
 
-#ifdef ENABLE_INDICATOR
-#define INDICATOR_ENABLED(a) (a->app_indicator != NULL)
+#ifdef WITH_INDICATOR
+#define INDICATOR_ENABLED(a) (a->app_indicator)
 #else
 #define INDICATOR_ENABLED(a) (FALSE)
-#endif
+#endif  /* WITH_INDICATOR */
 
 G_DEFINE_TYPE (NMApplet, nma, G_TYPE_APPLICATION)
 
@@ -490,31 +490,36 @@ applet_menu_item_activate_helper (NMDevice *device,
 void
 applet_menu_item_add_complex_separator_helper (GtkWidget *menu,
                                                NMApplet *applet,
-                                               const gchar* label)
+                                               const gchar *label)
 {
-#ifdef ENABLE_INDICATOR
-       gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new ());
-#else
-       GtkWidget *menu_item = gtk_menu_item_new ();
-       GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
-       GtkWidget *xlabel = NULL;
+       GtkWidget *menu_item;
+
+       if (INDICATOR_ENABLED (applet)) {
+               /* Indicator doesn't draw complex separators */
+               menu_item = gtk_separator_menu_item_new ();
+       } else {
+               GtkWidget *box, *xlabel;
+
+               menu_item = gtk_menu_item_new ();
+               box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
 
-       if (label) {
-               xlabel = gtk_label_new (NULL);
-               gtk_label_set_markup (GTK_LABEL (xlabel), label);
+               if (label) {
+                       xlabel = gtk_label_new (NULL);
+                       gtk_label_set_markup (GTK_LABEL (xlabel), label);
+
+                       gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), 
TRUE, TRUE, 0);
+                       gtk_box_pack_start (GTK_BOX (box), xlabel, FALSE, FALSE, 2);
+               }
 
                gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, 
TRUE, 0);
-               gtk_box_pack_start (GTK_BOX (box), xlabel, FALSE, FALSE, 2);
-       }
 
-       gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), TRUE, TRUE, 0);
+               g_object_set (G_OBJECT (menu_item),
+                                 "child", box,
+                                 "sensitive", FALSE,
+                                 NULL);
+       }
 
-       g_object_set (G_OBJECT (menu_item),
-                     "child", box,
-                     "sensitive", FALSE,
-                     NULL);
        gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-#endif
 }
 
 GtkWidget *
@@ -540,7 +545,6 @@ applet_new_menu_item_helper (NMConnection *connection,
        return item;
 }
 
-#ifndef ENABLE_INDICATOR
 #define TITLE_TEXT_R ((double) 0x5e / 255.0 )
 #define TITLE_TEXT_G ((double) 0x5e / 255.0 )
 #define TITLE_TEXT_B ((double) 0x5e / 255.0 )
@@ -604,7 +608,6 @@ menu_title_item_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data)
        menu_item_draw_generic (widget, cr);
        return TRUE;
 }
-#endif /* ENABLE_INDICATOR */
 
 GtkWidget *
 applet_menu_item_create_device_item_helper (NMDevice *device,
@@ -615,9 +618,8 @@ applet_menu_item_create_device_item_helper (NMDevice *device,
 
        item = gtk_menu_item_new_with_label (text);
        gtk_widget_set_sensitive (item, FALSE);
-#ifndef ENABLE_INDICATOR
-       g_signal_connect (item, "draw", G_CALLBACK (menu_title_item_draw), NULL);
-#endif
+       if (!INDICATOR_ENABLED (applet))
+               g_signal_connect (item, "draw", G_CALLBACK (menu_title_item_draw), NULL);
        return item;
 }
 
@@ -675,13 +677,15 @@ applet_do_notify (NMApplet *applet,
        g_return_if_fail (summary != NULL);
        g_return_if_fail (message != NULL);
 
-#ifdef ENABLE_INDICATOR
-       if (app_indicator_get_status (applet->app_indicator) == APP_INDICATOR_STATUS_PASSIVE)
-               return;
-#else
-       if (!gtk_status_icon_is_embedded (applet->status_icon))
-               return;
-#endif
+       if (INDICATOR_ENABLED (applet)) {
+#ifdef WITH_INDICATOR
+               if (app_indicator_get_status (applet->app_indicator) == APP_INDICATOR_STATUS_PASSIVE)
+                       return;
+#endif  /* WITH_INDICATOR */
+       } else {
+               if (!gtk_status_icon_is_embedded (applet->status_icon))
+                       return;
+       }
 
        /* if we're not acting as a secret agent, don't notify either */
        if (!applet->agent)
@@ -1004,9 +1008,7 @@ activate_vpn_cb (GObject *client,
        g_free (info);
 }
 
-#ifdef ENABLE_INDICATOR
 static void nma_menu_disconnect_vpn_item_activate (GtkMenuItem *item, gpointer user_data);
-#endif
 
 static void
 nma_menu_vpn_item_clicked (GtkMenuItem *item, gpointer user_data)
@@ -1030,9 +1032,9 @@ nma_menu_vpn_item_clicked (GtkMenuItem *item, gpointer user_data)
        }
 
        if (applet_get_active_for_connection (applet, connection)) {
-#ifdef ENABLE_INDICATOR
-               nma_menu_disconnect_vpn_item_activate (item, applet);
-#endif
+               if (INDICATOR_ENABLED (applet))
+                       nma_menu_disconnect_vpn_item_activate (item, applet);
+
                /* Connection already active; do nothing */
                return;
        }
@@ -1605,9 +1607,8 @@ static void nma_menu_show_cb (GtkWidget *menu, NMApplet *applet)
        g_return_if_fail (menu != NULL);
        g_return_if_fail (applet != NULL);
 
-#ifndef ENABLE_INDICATOR
-       gtk_status_icon_set_tooltip_text (applet->status_icon, NULL);
-#endif
+       if (applet->status_icon)
+               gtk_status_icon_set_tooltip_text (applet->status_icon, NULL);
 
        if (!nm_client_get_nm_running (applet->nm_client)) {
                nma_menu_add_text_item (menu, _("NetworkManager is not running..."));
@@ -1629,14 +1630,12 @@ static void nma_menu_show_cb (GtkWidget *menu, NMApplet *applet)
                nma_menu_add_create_network_item (menu, applet);
        }
 
-#ifndef ENABLE_INDICATOR
-       gtk_widget_show_all (menu);
-#endif
+       if (!INDICATOR_ENABLED (applet))
+               gtk_widget_show_all (menu);
 
 //     nmi_dbus_signal_user_interface_activated (applet->connection);
 }
 
-#ifndef ENABLE_INDICATOR
 static gboolean
 destroy_old_menu (gpointer user_data)
 {
@@ -1658,7 +1657,6 @@ nma_menu_deactivate_cb (GtkWidget *widget, NMApplet *applet)
        /* Re-set the tooltip */
        gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip);
 }
-#endif
 
 static gboolean
 is_permission_yes (NMApplet *applet, NMClientPermission perm)
@@ -1998,13 +1996,14 @@ applet_add_default_connection_item (NMDevice *device,
        gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
 }
 
-#ifdef ENABLE_INDICATOR
 static gboolean
 applet_update_indicator_menu (gpointer user_data)
 {
+#ifdef WITH_INDICATOR
        NMApplet *applet = NM_APPLET (user_data);
-       GtkWidget *menu = nma_context_menu_create (applet);
+       GtkWidget *menu;
 
+       menu = nma_context_menu_create (applet);
        nma_menu_show_cb (menu, applet);
        nma_menu_add_separator_item (menu);
        nma_context_menu_update (applet);
@@ -2012,17 +2011,18 @@ applet_update_indicator_menu (gpointer user_data)
        app_indicator_set_menu (applet->app_indicator, GTK_MENU (menu));
 
        applet->update_menu_id = 0;
-       return FALSE;
+#endif /* WITH_INDICATOR */
+
+       return G_SOURCE_REMOVE;
 }
-#endif /* ENABLE_INDICATOR */
 
 void
 applet_schedule_update_menu (NMApplet *applet)
 {
-#ifdef ENABLE_INDICATOR
-       if (!applet->update_menu_id)
-               applet->update_menu_id = g_idle_add (applet_update_indicator_menu, applet);
-#endif
+       if (INDICATOR_ENABLED (applet)) {
+               if (!applet->update_menu_id)
+                       applet->update_menu_id = g_idle_add (applet_update_indicator_menu, applet);
+       }
 }
 
 /*****************************************************************************/
@@ -2030,22 +2030,24 @@ applet_schedule_update_menu (NMApplet *applet)
 static void
 foo_set_icon (NMApplet *applet, guint32 layer, GdkPixbuf *pixbuf, const char *icon_name)
 {
-#ifndef ENABLE_INDICATOR
        gs_unref_object GdkPixbuf *pixbuf_free = NULL;
-#endif
 
        g_return_if_fail (layer == ICON_LAYER_LINK || layer == ICON_LAYER_VPN);
 
-#ifdef ENABLE_INDICATOR
-       /* FIXME: We rely on the fact that VPN icon gets drawn later and therefore
-        * wins but we cannot currently set a combined pixmap made of both the link
-        * icon and the VPN icon.
-        */
-       if (icon_name == NULL && layer == ICON_LAYER_LINK)
-               icon_name = "nm-no-connection";
-       if (icon_name != NULL && g_strcmp0 (app_indicator_get_icon (applet->app_indicator), icon_name) != 0)
-               app_indicator_set_icon_full (applet->app_indicator, icon_name, applet->tip);
-#else
+#ifdef WITH_INDICATOR
+       if (INDICATOR_ENABLED (applet)) {
+               /* FIXME: We rely on the fact that VPN icon gets drawn later and therefore
+                * wins but we cannot currently set a combined pixmap made of both the link
+                * icon and the VPN icon.
+                */
+               if (icon_name == NULL && layer == ICON_LAYER_LINK)
+                       icon_name = "nm-no-connection";
+               if (icon_name != NULL && g_strcmp0 (app_indicator_get_icon (applet->app_indicator), 
icon_name) != 0)
+                       app_indicator_set_icon_full (applet->app_indicator, icon_name, applet->tip);
+               return;
+       }
+#endif  /* WITH_INDICATOR */
+
        /* Load the pixbuf by icon name */
        if (icon_name && !pixbuf)
                pixbuf = nma_icon_check_and_load (icon_name, applet);
@@ -2082,7 +2084,6 @@ foo_set_icon (NMApplet *applet, guint32 layer, GdkPixbuf *pixbuf, const char *ic
                pixbuf = nma_icon_check_and_load ("nm-no-connection", applet);
 
        gtk_status_icon_set_from_pixbuf (applet->status_icon, pixbuf);
-#endif
 }
 
 NMRemoteConnection *
@@ -2230,16 +2231,12 @@ foo_client_state_changed_cb (NMClient *client, GParamSpec *pspec, gpointer user_
        applet_schedule_update_menu (applet);
 }
 
-#ifdef ENABLE_INDICATOR
 static void
-foo_device_removed_cb (NMClient *client, NMDevice *device, gpointer user_data)
+foo_device_removed_cb (NMClient *client, NMDevice *device, NMApplet *applet)
 {
-       NMApplet *applet = NM_APPLET (user_data);
-
        applet_schedule_update_icon (applet);
        applet_schedule_update_menu (applet);
 }
-#endif
 
 static void
 foo_manager_running_cb (NMClient *client,
@@ -2337,11 +2334,11 @@ foo_client_setup (NMApplet *applet)
        g_signal_connect (applet->nm_client, "device-added",
                          G_CALLBACK (foo_device_added_cb),
                          applet);
-#ifdef ENABLE_INDICATOR
-       g_signal_connect (applet->nm_client, "device-removed",
-                         G_CALLBACK (foo_device_removed_cb),
-                         applet);
-#endif
+       if (INDICATOR_ENABLED (applet)) {
+               g_signal_connect (applet->nm_client, "device-removed",
+                                 G_CALLBACK (foo_device_removed_cb),
+                                 applet);
+       }
        g_signal_connect (applet->nm_client, "notify::manager-running",
                          G_CALLBACK (foo_manager_running_cb),
                          applet);
@@ -2598,11 +2595,14 @@ applet_update_icon (gpointer user_data)
        if (!nm_running)
                state = NM_STATE_UNKNOWN;
 
-#ifdef ENABLE_INDICATOR
-       app_indicator_set_status (applet->app_indicator, nm_running ? APP_INDICATOR_STATUS_ACTIVE : 
APP_INDICATOR_STATUS_PASSIVE);
-#else
-       gtk_status_icon_set_visible (applet->status_icon, applet->visible);
-#endif
+#ifdef WITH_INDICATOR
+       if (INDICATOR_ENABLED (applet))
+               app_indicator_set_status (applet->app_indicator, nm_running ? APP_INDICATOR_STATUS_ACTIVE : 
APP_INDICATOR_STATUS_PASSIVE);
+       else
+#endif  /* WITH_INDICATOR */
+       {
+               gtk_status_icon_set_visible (applet->status_icon, applet->visible);
+       }
 
        switch (state) {
        case NM_STATE_UNKNOWN:
@@ -2667,13 +2667,8 @@ applet_update_icon (gpointer user_data)
        } else
                applet->tip = g_strdup (dev_tip);
 
-#ifdef ENABLE_INDICATOR
-       /* FIXME: The applet->tip attribute seems to only be picked up by
-        * the next call to foo_set_icon() which is not particularly nice.
-        */
-#else
-       gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip);
-#endif
+       if (applet->status_icon)
+               gtk_status_icon_set_tooltip_text (applet->status_icon, applet->tip);
 
        return FALSE;
 }
@@ -3000,11 +2995,10 @@ static void nma_icons_init (NMApplet *applet)
                g_object_unref (G_OBJECT (applet->icon_theme));
        }
 
-#ifdef ENABLE_INDICATOR
-       applet->icon_theme = gtk_icon_theme_get_default ();
-#else
-       applet->icon_theme = gtk_icon_theme_get_for_screen (gtk_status_icon_get_screen (applet->status_icon));
-#endif
+       if (applet->status_icon)
+               applet->icon_theme = gtk_icon_theme_get_for_screen (gtk_status_icon_get_screen 
(applet->status_icon));
+       else
+               applet->icon_theme = gtk_icon_theme_get_default ();
 
        /* If not done yet, append our search path */
        path_appended = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (applet->icon_theme),
@@ -3021,7 +3015,6 @@ static void nma_icons_init (NMApplet *applet)
        nma_icons_reload (applet, NULL);
 }
 
-#ifndef ENABLE_INDICATOR
 static void
 status_icon_screen_changed_cb (GtkStatusIcon *icon,
                                GParamSpec *pspec,
@@ -3097,49 +3090,44 @@ status_icon_popup_menu_cb (GtkStatusIcon *icon,
                        gtk_status_icon_position_menu, icon,
                        button, activate_time);
 }
-#endif /* ENABLE_INDICATOR */
 
 static gboolean
 setup_widgets (NMApplet *applet)
 {
-#ifdef ENABLE_INDICATOR
+#ifdef WITH_INDICATOR
        applet->app_indicator = app_indicator_new
                                ("nm-applet", "nm-no-connection",
                                 APP_INDICATOR_CATEGORY_SYSTEM_SERVICES);
+       if (!applet->app_indicator)
+               return FALSE;
        app_indicator_set_title(applet->app_indicator, _("Network"));
        applet_schedule_update_menu (applet);
-#else
-       applet->status_icon = gtk_status_icon_new ();
-
-       if (shell_debug)
-               gtk_status_icon_set_name (applet->status_icon, "adsfasdfasdfadfasdf");
-
-       g_signal_connect (applet->status_icon, "notify::screen",
-                         G_CALLBACK (status_icon_screen_changed_cb), applet);
-       g_signal_connect (applet->status_icon, "size-changed",
-                         G_CALLBACK (status_icon_size_changed_cb), applet);
-       g_signal_connect (applet->status_icon, "activate",
-                         G_CALLBACK (status_icon_activate_cb), applet);
-       g_signal_connect (applet->status_icon, "popup-menu",
-                         G_CALLBACK (status_icon_popup_menu_cb), applet);
-
-       applet->context_menu = nma_context_menu_create (applet);
-       if (!applet->context_menu)
-               return FALSE;
-#endif
+#endif  /* WITH_INDICATOR */
 
-       return TRUE;
-}
+       /* Fall back to status icon if indicator isn't enabled or built */
+       if (!INDICATOR_ENABLED (applet)) {
+               applet->status_icon = gtk_status_icon_new ();
 
-#ifdef ENABLE_INDICATOR
-static void
-connection_added_cb (NMClient *client, NMRemoteConnection *connection, gpointer user_data)
-{
-       NMApplet *applet = NM_APPLET (user_data);
+               if (shell_debug)
+                       gtk_status_icon_set_name (applet->status_icon, "adsfasdfasdfadfasdf");
 
-       applet_schedule_update_menu (applet);
+               g_signal_connect (applet->status_icon, "notify::screen",
+                                 G_CALLBACK (status_icon_screen_changed_cb), applet);
+               g_signal_connect (applet->status_icon, "size-changed",
+                                 G_CALLBACK (status_icon_size_changed_cb), applet);
+               g_signal_connect (applet->status_icon, "activate",
+                                 G_CALLBACK (status_icon_activate_cb), applet);
+               g_signal_connect (applet->status_icon, "popup-menu",
+                                 G_CALLBACK (status_icon_popup_menu_cb), applet);
+
+               applet->context_menu = nma_context_menu_create (applet);
+               if (!applet->context_menu)
+                       return FALSE;
+       }
+
+       return TRUE;
 }
-#else
+
 static void
 applet_embedded_cb (GObject *object, GParamSpec *pspec, gpointer user_data)
 {
@@ -3148,7 +3136,6 @@ applet_embedded_cb (GObject *object, GParamSpec *pspec, gpointer user_data)
        g_debug ("applet now %s the notification area",
                 embedded ? "embedded in" : "removed from");
 }
-#endif
 
 static void
 register_agent (NMApplet *applet)
@@ -3172,12 +3159,13 @@ register_agent (NMApplet *applet)
                          G_CALLBACK (applet_agent_get_secrets_cb), applet);
        g_signal_connect (applet->agent, APPLET_AGENT_CANCEL_SECRETS,
                          G_CALLBACK (applet_agent_cancel_secrets_cb), applet);
-#ifdef ENABLE_INDICATOR
-       /* Watch for new connections */
-       g_signal_connect (applet->nm_client, NM_CLIENT_CONNECTION_ADDED,
-                         G_CALLBACK (connection_added_cb),
-                         applet);
-#endif
+
+       if (INDICATOR_ENABLED (applet)) {
+               /* Watch for new connections */
+               g_signal_connect_swapped (applet->nm_client, NM_CLIENT_CONNECTION_ADDED,
+                                         G_CALLBACK (applet_schedule_update_menu),
+                                         applet);
+       }
 }
 
 static void
@@ -3192,9 +3180,8 @@ applet_gsettings_show_changed (GSettings *settings,
 
        applet->visible = g_settings_get_boolean (settings, key);
 
-#ifndef ENABLE_INDICATOR
-       gtk_status_icon_set_visible (applet->status_icon, applet->visible);
-#endif
+       if (applet->status_icon)
+               gtk_status_icon_set_visible (applet->status_icon, applet->visible);
 }
 
 /****************************************************************/
@@ -3235,6 +3222,8 @@ applet_startup (GApplication *app, gpointer user_data)
                g_application_quit (app);
                return;
        }
+       g_assert (INDICATOR_ENABLED (applet) || applet->status_icon);
+
        applet->icon_cache = g_hash_table_new_full (g_str_hash,
                                                    g_str_equal,
                                                    g_free,
@@ -3263,14 +3252,14 @@ applet_startup (GApplication *app, gpointer user_data)
        mm1_client_setup (applet);
 #endif
 
-#ifndef ENABLE_INDICATOR
-       /* Track embedding to help debug issues where user has removed the
-        * notification area applet from the panel, and thus nm-applet too.
-        */
-       g_signal_connect (applet->status_icon, "notify::embedded",
-                         G_CALLBACK (applet_embedded_cb), NULL);
-       applet_embedded_cb (G_OBJECT (applet->status_icon), NULL, NULL);
-#endif
+       if (applet->status_icon) {
+               /* Track embedding to help debug issues where user has removed the
+                * notification area applet from the panel, and thus nm-applet too.
+                */
+               g_signal_connect (applet->status_icon, "notify::embedded",
+                                     G_CALLBACK (applet_embedded_cb), NULL);
+               applet_embedded_cb (G_OBJECT (applet->status_icon), NULL, NULL);
+       }
 
        if (with_agent)
                register_agent (applet);
@@ -3292,18 +3281,18 @@ static void finalize (GObject *object)
        if (applet->update_icon_id)
                g_source_remove (applet->update_icon_id);
 
-#ifdef ENABLE_INDICATOR
+#ifdef WITH_INDICATOR
        g_clear_object (&applet->app_indicator);
        if (applet->update_menu_id)
                g_source_remove (applet->update_menu_id);
-#else
+#endif /* WITH_INDICATOR */
+
        g_clear_object (&applet->status_icon);
        g_clear_object (&applet->menu);
        g_clear_pointer (&applet->icon_cache, g_hash_table_destroy);
        g_clear_object (&applet->fallback_icon);
        g_free (applet->tip);
        nma_icons_free (applet);
-#endif
 
        while (g_slist_length (applet->secrets_reqs))
                applet_secrets_request_free ((SecretsRequest *) applet->secrets_reqs->data);
diff --git a/src/applet.h b/src/applet.h
index e8225fb..5744322 100644
--- a/src/applet.h
+++ b/src/applet.h
@@ -31,7 +31,7 @@
 
 #include <libnotify/notify.h>
 
-#ifdef ENABLE_INDICATOR
+#ifdef WITH_INDICATOR
 #include <libappindicator/app-indicator.h>
 #endif
 
@@ -117,15 +117,15 @@ typedef struct {
        GdkPixbuf *             icon_layers[ICON_LAYER_MAX + 1];
 
        /* Direct UI elements */
-#ifdef ENABLE_INDICATOR
+#ifdef WITH_INDICATOR
        AppIndicator *  app_indicator;
        guint           update_menu_id;
-#else
+#endif
+
        GtkStatusIcon * status_icon;
 
        GtkWidget *             menu;
        GtkWidget *             context_menu;
-#endif
 
        GtkWidget *             notifications_enabled_item;
        guint                   notifications_enabled_toggled_id;


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