From 7198caabc88b0027dcefa4dd3edfabb2fffbfed2 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sun, 4 Oct 2009 16:52:41 -0500 Subject: Switching from positioning items to having a major resort function to reposition everything. This should be a little overkill, but should work nicely with the new async startup. --- src/indicator-session.c | 52 +++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 6 deletions(-) (limited to 'src/indicator-session.c') diff --git a/src/indicator-session.c b/src/indicator-session.c index a4bb5e1..c367e3a 100644 --- a/src/indicator-session.c +++ b/src/indicator-session.c @@ -84,10 +84,52 @@ get_icon (void) typedef struct _realized_data_t realized_data_t; struct _realized_data_t { - guint position; section_t section; }; +static void +resort_menu (void) +{ + guint location = 0; + guint clientnum; + + for (clientnum = 0; clientnum < 3; clientnum++) { + DbusmenuGtkClient * client = NULL; + if (clientnum == 0) client = status_client; + if (clientnum == 1) client = users_client; + if (clientnum == 2) client = session_client; + + if (client == NULL) continue; + + DbusmenuMenuitem * root = dbusmenu_client_get_root(DBUSMENU_CLIENT(client)); + + GList * children = dbusmenu_menuitem_get_children(root); + if (children == NULL) { + continue; + } + + GList * child; + for (child = children; child != NULL; child = g_list_next(child)) { + GtkMenuItem * widget = dbusmenu_gtkclient_menuitem_get(client, DBUSMENU_MENUITEM(child->data)); + if (widget != NULL) { + gtk_menu_reorder_child(main_menu, GTK_WIDGET(widget), location); + location++; + } + } + + if (clientnum == 0) { + gtk_menu_reorder_child(main_menu, status_separator, location); + location++; + } + if (clientnum == 1) { + gtk_menu_reorder_child(main_menu, users_separator, location); + location++; + } + } + + return; +} + static void child_added (DbusmenuMenuitem * parent, DbusmenuMenuitem * child, guint position, gpointer section) { @@ -97,7 +139,6 @@ child_added (DbusmenuMenuitem * parent, DbusmenuMenuitem * child, guint position return; } - data->position = position; data->section = GPOINTER_TO_UINT(section); g_signal_connect(G_OBJECT(child), DBUSMENU_MENUITEM_SIGNAL_REALIZED, G_CALLBACK(child_realized), data); @@ -111,7 +152,6 @@ child_realized (DbusmenuMenuitem * child, gpointer userdata) g_return_if_fail(DBUSMENU_IS_MENUITEM(child)); realized_data_t * data = (realized_data_t *)userdata; - guint position = data->position; section_t section = data->section; g_free(data); @@ -145,8 +185,6 @@ child_realized (DbusmenuMenuitem * child, gpointer userdata) return; } - position += posfunc(); - g_debug("SUS: Adding child: %d", position); GtkMenuItem * widget = dbusmenu_gtkclient_menuitem_get(client, child); if (widget == NULL) { @@ -154,9 +192,11 @@ child_realized (DbusmenuMenuitem * child, gpointer userdata) return; } - gtk_menu_insert(main_menu, GTK_WIDGET(widget), position); + gtk_menu_append(main_menu, GTK_WIDGET(widget)); gtk_widget_show(GTK_WIDGET(widget)); + resort_menu(); + gtk_widget_hide(loading_item); return; -- cgit v1.2.3 From 5763f8c1c49af3c2435ee8b43fc4625eceb8b13f Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 6 Oct 2009 14:38:51 -0400 Subject: Setting the default icon as well. --- src/indicator-session.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/indicator-session.c') diff --git a/src/indicator-session.c b/src/indicator-session.c index a4bb5e1..ef80033 100644 --- a/src/indicator-session.c +++ b/src/indicator-session.c @@ -76,8 +76,8 @@ get_label (void) GtkImage * get_icon (void) { - g_debug("Changing status icon: '%s'", "user-offline"); - status_image = GTK_IMAGE(gtk_image_new_from_icon_name("user-offline", GTK_ICON_SIZE_MENU)); + g_debug("Changing status icon: '%s'", "system-shutdown"); + status_image = GTK_IMAGE(gtk_image_new_from_icon_name("system-shutdown", GTK_ICON_SIZE_MENU)); gtk_widget_show(GTK_WIDGET(status_image)); return status_image; } -- cgit v1.2.3 From 7ffa07052dc783b5c49a006cc1a8d8ef03c08d9d Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 6 Oct 2009 17:34:05 -0400 Subject: Changing the icon name in the code. --- src/indicator-session.c | 4 ++-- src/status-service.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src/indicator-session.c') diff --git a/src/indicator-session.c b/src/indicator-session.c index ef80033..197bd2f 100644 --- a/src/indicator-session.c +++ b/src/indicator-session.c @@ -76,8 +76,8 @@ get_label (void) GtkImage * get_icon (void) { - g_debug("Changing status icon: '%s'", "system-shutdown"); - status_image = GTK_IMAGE(gtk_image_new_from_icon_name("system-shutdown", GTK_ICON_SIZE_MENU)); + g_debug("Changing status icon: '%s'", "indicator-system-shutdown"); + status_image = GTK_IMAGE(gtk_image_new_from_icon_name("indicator-system-shutdown", GTK_ICON_SIZE_MENU)); gtk_widget_show(GTK_WIDGET(status_image)); return status_image; } diff --git a/src/status-service.c b/src/status-service.c index fc4e535..b49913c 100644 --- a/src/status-service.c +++ b/src/status-service.c @@ -68,7 +68,7 @@ static const gchar * status_icons[STATUS_PROVIDER_STATUS_LAST] = { /* STATUS_PROVIDER_STATUS_DND, */ "user-busy", /* STATUS_PROVIDER_STATUS_INVISIBLE, */ "user-invisible", /* STATUS_PROVIDER_STATUS_OFFLINE */ "user-offline", - /* STATUS_PROVIDER_STATUS_DISCONNECTED */"system-shutdown" + /* STATUS_PROVIDER_STATUS_DISCONNECTED */"indicator-system-shutdown" }; -- cgit v1.2.3 From 7bb2c92d05bac11fecb30d744632f4d581903fbb Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 6 Oct 2009 18:51:09 -0400 Subject: Changing icon name again. This is probably better WRT the icon naming spec. --- data/icons/16x16/actions/Makefile.am | 2 +- .../16x16/actions/indicator-system-shutdown.png | Bin 699 -> 0 bytes data/icons/16x16/actions/system-shutdown-panel.png | Bin 0 -> 699 bytes data/icons/22x22/actions/Makefile.am | 2 +- .../22x22/actions/indicator-system-shutdown.png | Bin 1339 -> 0 bytes data/icons/22x22/actions/system-shutdown-panel.png | Bin 0 -> 1339 bytes data/icons/24x24/actions/Makefile.am | 2 +- .../24x24/actions/indicator-system-shutdown.png | Bin 1355 -> 0 bytes data/icons/24x24/actions/system-shutdown-panel.png | Bin 0 -> 1355 bytes data/icons/scalable/actions/Makefile.am | 2 +- .../scalable/actions/indicator-system-shutdown.svg | 247 --------------------- .../scalable/actions/system-shutdown-panel.svg | 247 +++++++++++++++++++++ src/indicator-session.c | 4 +- src/status-service.c | 2 +- 14 files changed, 254 insertions(+), 254 deletions(-) delete mode 100644 data/icons/16x16/actions/indicator-system-shutdown.png create mode 100644 data/icons/16x16/actions/system-shutdown-panel.png delete mode 100644 data/icons/22x22/actions/indicator-system-shutdown.png create mode 100644 data/icons/22x22/actions/system-shutdown-panel.png delete mode 100644 data/icons/24x24/actions/indicator-system-shutdown.png create mode 100644 data/icons/24x24/actions/system-shutdown-panel.png delete mode 100644 data/icons/scalable/actions/indicator-system-shutdown.svg create mode 100644 data/icons/scalable/actions/system-shutdown-panel.svg (limited to 'src/indicator-session.c') diff --git a/data/icons/16x16/actions/Makefile.am b/data/icons/16x16/actions/Makefile.am index da8d5c2..417ab60 100644 --- a/data/icons/16x16/actions/Makefile.am +++ b/data/icons/16x16/actions/Makefile.am @@ -2,7 +2,7 @@ iconsdir = $(INDICATORICONSDIR)/hicolor/16x16/actions icons_DATA = \ - indicator-system-shutdown.png \ + system-shutdown-panel.png \ system-shutdown.png \ system-restart.png \ system-log-out.png diff --git a/data/icons/16x16/actions/indicator-system-shutdown.png b/data/icons/16x16/actions/indicator-system-shutdown.png deleted file mode 100644 index ef69a83..0000000 Binary files a/data/icons/16x16/actions/indicator-system-shutdown.png and /dev/null differ diff --git a/data/icons/16x16/actions/system-shutdown-panel.png b/data/icons/16x16/actions/system-shutdown-panel.png new file mode 100644 index 0000000..ef69a83 Binary files /dev/null and b/data/icons/16x16/actions/system-shutdown-panel.png differ diff --git a/data/icons/22x22/actions/Makefile.am b/data/icons/22x22/actions/Makefile.am index 40e243e..029ad1c 100644 --- a/data/icons/22x22/actions/Makefile.am +++ b/data/icons/22x22/actions/Makefile.am @@ -2,7 +2,7 @@ iconsdir = $(INDICATORICONSDIR)/hicolor/22x22/actions icons_DATA = \ - indicator-system-shutdown.png \ + system-shutdown-panel.png \ system-shutdown.png \ system-restart.png \ system-log-out.png diff --git a/data/icons/22x22/actions/indicator-system-shutdown.png b/data/icons/22x22/actions/indicator-system-shutdown.png deleted file mode 100644 index aef0e91..0000000 Binary files a/data/icons/22x22/actions/indicator-system-shutdown.png and /dev/null differ diff --git a/data/icons/22x22/actions/system-shutdown-panel.png b/data/icons/22x22/actions/system-shutdown-panel.png new file mode 100644 index 0000000..aef0e91 Binary files /dev/null and b/data/icons/22x22/actions/system-shutdown-panel.png differ diff --git a/data/icons/24x24/actions/Makefile.am b/data/icons/24x24/actions/Makefile.am index 8bd940b..aebdf14 100644 --- a/data/icons/24x24/actions/Makefile.am +++ b/data/icons/24x24/actions/Makefile.am @@ -2,7 +2,7 @@ iconsdir = $(INDICATORICONSDIR)/hicolor/24x24/actions icons_DATA = \ - indicator-system-shutdown.png \ + system-shutdown-panel.png \ system-shutdown.png \ system-restart.png \ system-log-out.png diff --git a/data/icons/24x24/actions/indicator-system-shutdown.png b/data/icons/24x24/actions/indicator-system-shutdown.png deleted file mode 100644 index c1cca10..0000000 Binary files a/data/icons/24x24/actions/indicator-system-shutdown.png and /dev/null differ diff --git a/data/icons/24x24/actions/system-shutdown-panel.png b/data/icons/24x24/actions/system-shutdown-panel.png new file mode 100644 index 0000000..c1cca10 Binary files /dev/null and b/data/icons/24x24/actions/system-shutdown-panel.png differ diff --git a/data/icons/scalable/actions/Makefile.am b/data/icons/scalable/actions/Makefile.am index e6dd384..26ee574 100644 --- a/data/icons/scalable/actions/Makefile.am +++ b/data/icons/scalable/actions/Makefile.am @@ -2,7 +2,7 @@ iconsdir = $(INDICATORICONSDIR)/hicolor/scalable/actions icons_DATA = \ - indicator-system-shutdown.svg \ + system-shutdown-panel.svg \ system-restart.svg \ system-log-out.svg \ system-shutdown.svg diff --git a/data/icons/scalable/actions/indicator-system-shutdown.svg b/data/icons/scalable/actions/indicator-system-shutdown.svg deleted file mode 100644 index fc60baf..0000000 --- a/data/icons/scalable/actions/indicator-system-shutdown.svg +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Shutdown - - - Jakub Steiner - - - - http://jimmac.musichall.cz - - - lock - key - secure - - - - - - - - - - - - - - - - - - - - - - diff --git a/data/icons/scalable/actions/system-shutdown-panel.svg b/data/icons/scalable/actions/system-shutdown-panel.svg new file mode 100644 index 0000000..fc60baf --- /dev/null +++ b/data/icons/scalable/actions/system-shutdown-panel.svg @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Shutdown + + + Jakub Steiner + + + + http://jimmac.musichall.cz + + + lock + key + secure + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/indicator-session.c b/src/indicator-session.c index 197bd2f..62f3941 100644 --- a/src/indicator-session.c +++ b/src/indicator-session.c @@ -76,8 +76,8 @@ get_label (void) GtkImage * get_icon (void) { - g_debug("Changing status icon: '%s'", "indicator-system-shutdown"); - status_image = GTK_IMAGE(gtk_image_new_from_icon_name("indicator-system-shutdown", GTK_ICON_SIZE_MENU)); + g_debug("Changing status icon: '%s'", "system-shutdown-panel"); + status_image = GTK_IMAGE(gtk_image_new_from_icon_name("system-shutdown-panel", GTK_ICON_SIZE_MENU)); gtk_widget_show(GTK_WIDGET(status_image)); return status_image; } diff --git a/src/status-service.c b/src/status-service.c index b49913c..e3a9684 100644 --- a/src/status-service.c +++ b/src/status-service.c @@ -68,7 +68,7 @@ static const gchar * status_icons[STATUS_PROVIDER_STATUS_LAST] = { /* STATUS_PROVIDER_STATUS_DND, */ "user-busy", /* STATUS_PROVIDER_STATUS_INVISIBLE, */ "user-invisible", /* STATUS_PROVIDER_STATUS_OFFLINE */ "user-offline", - /* STATUS_PROVIDER_STATUS_DISCONNECTED */"indicator-system-shutdown" + /* STATUS_PROVIDER_STATUS_DISCONNECTED */"system-shutdown-panel" }; -- cgit v1.2.3