diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/device.c | 2 | ||||
-rw-r--r-- | src/service.c | 24 |
2 files changed, 24 insertions, 2 deletions
diff --git a/src/device.c b/src/device.c index 508a734..7f1b14f 100644 --- a/src/device.c +++ b/src/device.c @@ -385,7 +385,6 @@ indicator_power_device_get_icon_names (const IndicatorPowerDevice * device) break; case UP_DEVICE_STATE_CHARGING: - case UP_DEVICE_STATE_PENDING_CHARGE: suffix_str = get_device_icon_suffix (percentage); index_str = get_device_icon_index (percentage); g_ptr_array_add (names, g_strdup_printf ("%s-%s-charging-symbolic", kind_str, suffix_str)); @@ -393,6 +392,7 @@ indicator_power_device_get_icon_names (const IndicatorPowerDevice * device) g_ptr_array_add (names, g_strdup_printf ("%s-%s-charging", kind_str, suffix_str)); break; + case UP_DEVICE_STATE_PENDING_CHARGE: case UP_DEVICE_STATE_DISCHARGING: case UP_DEVICE_STATE_PENDING_DISCHARGE: /* Don't show the caution/red icons unless we have <=30 min left. diff --git a/src/service.c b/src/service.c index 2670a67..982a24e 100644 --- a/src/service.c +++ b/src/service.c @@ -692,7 +692,29 @@ on_settings_activated (GSimpleAction * a G_GNUC_UNUSED, GVariant * param G_GNUC_UNUSED, gpointer gself G_GNUC_UNUSED) { - execute_command ("gnome-control-center power"); + static const gchar *control_center_cmd = NULL; + + if (control_center_cmd == NULL) + { + if (!g_strcmp0 (g_getenv ("DESKTOP_SESSION"), "xubuntu")) + { + control_center_cmd = "xfce4-power-manager-settings"; + } + else + { + gchar *path; + + path = g_find_program_in_path ("unity-control-center"); + if (path != NULL) + control_center_cmd = "unity-control-center power"; + else + control_center_cmd = "gnome-control-center power"; + + g_free (path); + } + } + + execute_command (control_center_cmd); } static void |