From 9094eb1fe7d6358db02f6316b5c3c0b49070bcce Mon Sep 17 00:00:00 2001 From: Alan Fitton Date: Tue, 26 Jun 2012 17:15:04 +0100 Subject: try to only use libappindicator if we're running in unity --- src/trg-main-window.c | 83 ++++++++++++++++++++++++++------------------------- 1 file changed, 42 insertions(+), 41 deletions(-) (limited to 'src/trg-main-window.c') diff --git a/src/trg-main-window.c b/src/trg-main-window.c index 6f97a18..63a6365 100644 --- a/src/trg-main-window.c +++ b/src/trg-main-window.c @@ -218,10 +218,9 @@ struct _TrgMainWindowPrivate { *iconSepItem; #ifdef HAVE_LIBAPPINDICATOR AppIndicator *appIndicator; -#else +#endif GtkMenu *iconMenu; GtkStatusIcon *statusIcon; -#endif TrgStateSelector *stateSelector; GtkWidget *stateSelectorScroller; TrgGeneralPanel *genDetails; @@ -1140,16 +1139,18 @@ connchange_whatever_statusicon(TrgMainWindow * win, gboolean connected) if (priv->appIndicator) { GtkMenu *menu = trg_status_icon_view_menu(win, display); app_indicator_set_menu(priv->appIndicator, menu); - } + } else { #else - if (priv->iconMenu) - gtk_widget_destroy(GTK_WIDGET(priv->iconMenu)); + if (1) { +#endif + if (priv->iconMenu) + gtk_widget_destroy(GTK_WIDGET(priv->iconMenu)); - priv->iconMenu = trg_status_icon_view_menu(win, display); + priv->iconMenu = trg_status_icon_view_menu(win, display); - if (priv->statusIcon) - gtk_status_icon_set_tooltip_text(priv->statusIcon, display); -#endif + if (priv->statusIcon) + gtk_status_icon_set_tooltip_text(priv->statusIcon, display); + } g_free(display); } @@ -1161,7 +1162,7 @@ update_whatever_statusicon(TrgMainWindow * win, TrgMainWindowPrivate *priv = win->priv; #ifdef HAVE_LIBAPPINDICATOR - if (!priv->appIndicator) + if (!priv->appIndicator && !priv->statusIcon) #else if (!priv->statusIcon) #endif @@ -2374,7 +2375,6 @@ static gboolean window_state_event(TrgMainWindow * win, GdkEventWindowState * event, gpointer trayIcon) { -#ifndef HAVE_LIBAPPINDICATOR TrgMainWindowPrivate *priv = win->priv; TrgPrefs *prefs = trg_client_get_prefs(priv->client); @@ -2384,29 +2384,29 @@ window_state_event(TrgMainWindow * win, && trg_prefs_get_bool(prefs, TRG_PREFS_KEY_SYSTEM_TRAY_MINIMISE, TRG_PREFS_GLOBAL)) { gtk_widget_hide(GTK_WIDGET(win)); + return TRUE; } - return TRUE; -#else return FALSE; -#endif } void trg_main_window_remove_status_icon(TrgMainWindow * win) { TrgMainWindowPrivate *priv = win->priv; #ifdef HAVE_LIBAPPINDICATOR - if (priv->appIndicator) + if (priv->appIndicator) { g_object_unref(G_OBJECT(priv->appIndicator)); - priv->appIndicator = NULL; + priv->appIndicator = NULL; + } else { #else - - if (priv->statusIcon) - g_object_unref(G_OBJECT(priv->statusIcon)); - - priv->statusIcon = NULL; + if (1) { #endif + if (priv->statusIcon) + g_object_unref(G_OBJECT(priv->statusIcon)); + + priv->statusIcon = NULL; + } } #if TRG_WITH_GRAPH @@ -2451,28 +2451,29 @@ void trg_main_window_add_status_icon(TrgMainWindow * win) { TrgMainWindowPrivate *priv = win->priv; #ifdef HAVE_LIBAPPINDICATOR - if ((priv->appIndicator = - app_indicator_new(PACKAGE_NAME, PACKAGE_NAME, - APP_INDICATOR_CATEGORY_APPLICATION_STATUS))) { - app_indicator_set_status(priv->appIndicator, - APP_INDICATOR_STATUS_ACTIVE); - app_indicator_set_menu(priv->appIndicator, - trg_status_icon_view_menu(win, NULL)); - } + if (is_unity() && (priv->appIndicator = + app_indicator_new(PACKAGE_NAME, PACKAGE_NAME, + APP_INDICATOR_CATEGORY_APPLICATION_STATUS))) { + app_indicator_set_status(priv->appIndicator, + APP_INDICATOR_STATUS_ACTIVE); + app_indicator_set_menu(priv->appIndicator, + trg_status_icon_view_menu(win, NULL)); + } else { #else - - priv->statusIcon = gtk_status_icon_new_from_icon_name(PACKAGE_NAME); - gtk_status_icon_set_screen(priv->statusIcon, - gtk_window_get_screen(GTK_WINDOW(win))); - g_signal_connect(priv->statusIcon, "activate", - G_CALLBACK(status_icon_activated), win); - g_signal_connect(priv->statusIcon, "button-press-event", - G_CALLBACK(status_icon_button_press_event), win); - g_signal_connect(priv->statusIcon, "popup-menu", - G_CALLBACK(trg_status_icon_popup_menu_cb), win); - - gtk_status_icon_set_visible(priv->statusIcon, TRUE); + if (1) { #endif + priv->statusIcon = gtk_status_icon_new_from_icon_name(PACKAGE_NAME); + gtk_status_icon_set_screen(priv->statusIcon, + gtk_window_get_screen(GTK_WINDOW(win))); + g_signal_connect(priv->statusIcon, "activate", + G_CALLBACK(status_icon_activated), win); + g_signal_connect(priv->statusIcon, "button-press-event", + G_CALLBACK(status_icon_button_press_event), win); + g_signal_connect(priv->statusIcon, "popup-menu", + G_CALLBACK(trg_status_icon_popup_menu_cb), win); + + gtk_status_icon_set_visible(priv->statusIcon, TRUE); + } connchange_whatever_statusicon(win, trg_client_is_connected(priv->client)); -- cgit v1.2.3