From 2b7746e2e74ffbafb7f1eb663a6a525dec9d28cb Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 25 Aug 2009 22:23:15 -0500 Subject: Creating a real object and initing it. --- src/messages-service.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/messages-service.c') diff --git a/src/messages-service.c b/src/messages-service.c index e4982a2..d23e9ee 100644 --- a/src/messages-service.c +++ b/src/messages-service.c @@ -33,6 +33,7 @@ with this program. If not, see . #include "launcher-menu-item.h" #include "dbus-data.h" #include "dirs.h" +#include "messages-service-dbus.h" static IndicateListener * listener; static GList * serverList = NULL; @@ -41,6 +42,8 @@ static GList * launcherList = NULL; static DbusmenuMenuitem * root_menuitem = NULL; static GMainLoop * mainloop = NULL; +static MessageServiceDbus * dbus_interface = NULL; + static void server_count_changed (AppMenuItem * appitem, guint count, gpointer data); static void server_name_changed (AppMenuItem * appitem, gchar * name, gpointer data); @@ -986,6 +989,8 @@ main (int argc, char ** argv) return 1; } + dbus_interface = message_service_dbus_new(); + listener = indicate_listener_ref_default(); serverList = NULL; -- cgit v1.2.3 From bd24e02220d5158b1b502771bbba3012848fcef5 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 26 Aug 2009 10:32:07 -0500 Subject: Setting the attention parameter in the dbus interface. --- src/messages-service.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/messages-service.c') diff --git a/src/messages-service.c b/src/messages-service.c index d23e9ee..6b11e8c 100644 --- a/src/messages-service.c +++ b/src/messages-service.c @@ -441,7 +441,7 @@ server_count_changed (AppMenuItem * appitem, guint count, gpointer data) if (count != 0) { g_debug("Setting image to 'new'"); showing_new_icon = TRUE; - /* gtk_image_set_from_icon_name(GTK_IMAGE(main_image), "indicator-messages-new", DESIGN_TEAM_SIZE); */ + message_service_dbus_set_attention(dbus_interface, TRUE); return; } @@ -462,7 +462,7 @@ server_count_changed (AppMenuItem * appitem, guint count, gpointer data) if (!we_have_indicators) { g_debug("Setting image to boring"); showing_new_icon = FALSE; - /* gtk_image_set_from_icon_name(GTK_IMAGE(main_image), "indicator-messages", DESIGN_TEAM_SIZE); */ + message_service_dbus_set_attention(dbus_interface, FALSE); } return; -- cgit v1.2.3 From 81ad298ac031b8a1d3727f00f19b7d82bef981f8 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 26 Aug 2009 11:14:39 -0500 Subject: Adding in teh ability to count the number of launchers that are visable --- src/messages-service.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'src/messages-service.c') diff --git a/src/messages-service.c b/src/messages-service.c index 6b11e8c..5632c22 100644 --- a/src/messages-service.c +++ b/src/messages-service.c @@ -60,6 +60,7 @@ static gboolean blacklist_remove (gpointer data); static void blacklist_dir_changed (GFileMonitor * monitor, GFile * file, GFile * other_file, GFileMonitorEvent event_type, gpointer user_data); static void app_dir_changed (GFileMonitor * monitor, GFile * file, GFile * other_file, GFileMonitorEvent event_type, gpointer user_data); static gboolean destroy_launcher (gpointer data); +static void check_hidden (void); /* @@ -167,6 +168,29 @@ launcherList_sort (gconstpointer a, gconstpointer b) return g_strcmp0(pan, pbn); } +static void +launcherList_count_helper (gpointer data, gpointer user_data) +{ + guint * count = (guint *)user_data; + launcherList_t * li = (launcherList_t *)data; + + if (!launcher_menu_item_get_eclipsed(li->menuitem)) { + *count = *count + 1; + } + + return; +} + +static guint +launcherList_count (void) +{ + guint count = 0; + + g_list_foreach(launcherList, launcherList_count_helper, &count); + + return count; +} + /* * Black List */ @@ -263,6 +287,8 @@ blacklist_add (gpointer udata) } } + check_hidden(); + return FALSE; } @@ -312,6 +338,8 @@ blacklist_remove (gpointer data) g_warning("Unable to remove '%s' with value '%s'", definition_file, (gchar *)key); } + check_hidden(); + return FALSE; } @@ -542,6 +570,13 @@ menushell_foreach_cb (DbusmenuMenuitem * data_mi, gpointer data_ms) { return; } +static void +check_hidden (void) +{ + launcherList_count(); + return; +} + static void resort_menu (DbusmenuMenuitem * menushell) { -- cgit v1.2.3 From d9debb0b236b8e1e3e404224d128443c9fb50819 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 26 Aug 2009 11:18:12 -0500 Subject: Putting in the hiding logic --- src/messages-service.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/messages-service.c') diff --git a/src/messages-service.c b/src/messages-service.c index 5632c22..d2f0785 100644 --- a/src/messages-service.c +++ b/src/messages-service.c @@ -573,7 +573,15 @@ menushell_foreach_cb (DbusmenuMenuitem * data_mi, gpointer data_ms) { static void check_hidden (void) { - launcherList_count(); + gboolean hide = FALSE; + if (launcherList_count() == 0) { + /* If we don't have visible launchers we need to look more */ + if (serverList != NULL) { /* Basically if there are zero entries it'll be NULL */ + hide = TRUE; + } + } + + message_service_dbus_set_icon(dbus_interface, hide); return; } -- cgit v1.2.3 From a13c1cb4fad904f91df3b32bad5d49918cab01da Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 26 Aug 2009 11:19:34 -0500 Subject: Checking hidden when servers are added and removed as well. --- src/messages-service.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/messages-service.c') diff --git a/src/messages-service.c b/src/messages-service.c index d2f0785..23721be 100644 --- a/src/messages-service.c +++ b/src/messages-service.c @@ -437,6 +437,7 @@ server_added (IndicateListener * listener, IndicateListenerServer * server, gcha /* Should be prepend ^ */ resort_menu(menushell); + check_hidden(); return; } @@ -539,6 +540,7 @@ server_removed (IndicateListener * listener, IndicateListenerServer * server, gc /* Simulate a server saying zero to recalculate icon */ server_count_changed(NULL, 0, NULL); + check_hidden(); return; } -- cgit v1.2.3 From 7f0a072a9c1f1efc914c132b1e208b05176f7de9 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 26 Aug 2009 12:44:48 -0500 Subject: Some debug messages and checking the list length, but most importantly, got the show/eclipsed logic backwards. --- src/messages-service.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/messages-service.c') diff --git a/src/messages-service.c b/src/messages-service.c index 23721be..a5af895 100644 --- a/src/messages-service.c +++ b/src/messages-service.c @@ -575,10 +575,13 @@ menushell_foreach_cb (DbusmenuMenuitem * data_mi, gpointer data_ms) { static void check_hidden (void) { + g_debug("Checking Hidden..."); gboolean hide = FALSE; if (launcherList_count() == 0) { + g_debug("\tZero Launchers"); /* If we don't have visible launchers we need to look more */ - if (serverList != NULL) { /* Basically if there are zero entries it'll be NULL */ + if (g_list_length(serverList) == 0) { + g_debug("\tZero Applications"); hide = TRUE; } } -- cgit v1.2.3