From e10669ba0b1e976a760cb34342da577e3db6c4f8 Mon Sep 17 00:00:00 2001 From: Lars Uebernickel Date: Wed, 22 Jan 2014 11:54:01 +0100 Subject: service.c: cache the control center command --- src/service.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/service.c b/src/service.c index ab5deb5..982a24e 100644 --- a/src/service.c +++ b/src/service.c @@ -692,22 +692,29 @@ on_settings_activated (GSimpleAction * a G_GNUC_UNUSED, GVariant * param G_GNUC_UNUSED, gpointer gself G_GNUC_UNUSED) { - if (!g_strcmp0 (g_getenv ("DESKTOP_SESSION"), "xubuntu")) + static const gchar *control_center_cmd = NULL; + + if (control_center_cmd == NULL) { - execute_command ("xfce4-power-manager-settings"); - } - else - { - gchar *path; + 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) - execute_command ("unity-control-center power"); - else - execute_command ("gnome-control-center power"); + 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); - } + g_free (path); + } + } + + execute_command (control_center_cmd); } static void -- cgit v1.2.3