[gdm] greeter: hide power menu if icon unavailable
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdm] greeter: hide power menu if icon unavailable
- Date: Wed, 19 Jan 2011 23:19:50 +0000 (UTC)
commit 31c689290ff63fa5b5ab6bbdcc46a02076147f7d
Author: Ray Strode <rstrode redhat com>
Date: Wed Jan 19 13:41:55 2011 -0500
greeter: hide power menu if icon unavailable
We don't want a blank menu for non-laptops.
gui/simple-greeter/gdm-greeter-panel.c | 41 ++++++++++++++++++-------------
1 files changed, 24 insertions(+), 17 deletions(-)
---
diff --git a/gui/simple-greeter/gdm-greeter-panel.c b/gui/simple-greeter/gdm-greeter-panel.c
index ab57b63..a527f09 100644
--- a/gui/simple-greeter/gdm-greeter-panel.c
+++ b/gui/simple-greeter/gdm-greeter-panel.c
@@ -84,6 +84,7 @@ struct GdmGreeterPanelPrivate
GtkWidget *power_image;
GtkWidget *power_menu_item;
+ GtkWidget *power_menubar_item;
GDBusProxy *power_proxy;
gulong power_proxy_signal_handler;
gulong power_proxy_properties_changed_handler;
@@ -248,7 +249,7 @@ update_power_icon (GdmGreeterPanel *panel)
name = g_variant_get_string (variant, NULL);
- if (name != NULL) {
+ if (name != NULL && *name != '\0') {
GError *error;
GIcon *icon;
error = NULL;
@@ -258,7 +259,12 @@ update_power_icon (GdmGreeterPanel *panel)
gtk_image_set_from_gicon (GTK_IMAGE (panel->priv->power_image),
icon,
GTK_ICON_SIZE_MENU);
+ gtk_widget_show_all (panel->priv->power_menubar_item);
+ } else {
+ gtk_widget_hide (panel->priv->power_menubar_item);
}
+ } else {
+ gtk_widget_hide (panel->priv->power_menubar_item);
}
}
@@ -910,7 +916,23 @@ add_battery_menu (GdmGreeterPanel *panel)
GError *error;
GIcon *gicon;
+ error = NULL;
+ panel->priv->power_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
+ G_DBUS_PROXY_FLAGS_NONE,
+ NULL,
+ GPM_DBUS_NAME,
+ GPM_DBUS_PATH,
+ GPM_DBUS_INTERFACE,
+ NULL,
+ &error);
+ if (panel->priv->power_proxy == NULL) {
+ g_warning ("Unable to connect to power manager: %s", error->message);
+ g_error_free (error);
+ return;
+ }
+
item = gtk_menu_item_new ();
+
override_style (item);
box = gtk_hbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (item), box);
@@ -930,22 +952,7 @@ add_battery_menu (GdmGreeterPanel *panel)
panel->priv->power_menu_item = gtk_menu_item_new_with_label (_("Unknown time remaining"));
gtk_widget_set_sensitive (panel->priv->power_menu_item, FALSE);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), panel->priv->power_menu_item);
-
- error = NULL;
- panel->priv->power_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
- G_DBUS_PROXY_FLAGS_NONE,
- NULL,
- GPM_DBUS_NAME,
- GPM_DBUS_PATH,
- GPM_DBUS_INTERFACE,
- NULL,
- &error);
- if (panel->priv->power_proxy == NULL) {
- g_warning ("Unable to connect to power manager: %s", error->message);
- g_error_free (error);
- }
-
- gtk_widget_show_all (item);
+ panel->priv->power_menubar_item = item;
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]