diff options
Diffstat (limited to 'lib/egg/eggsmclient.patch')
-rw-r--r-- | lib/egg/eggsmclient.patch | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/lib/egg/eggsmclient.patch b/lib/egg/eggsmclient.patch deleted file mode 100644 index 728902740..000000000 --- a/lib/egg/eggsmclient.patch +++ /dev/null @@ -1,198 +0,0 @@ -diff --git a/libegg/smclient/eggdesktopfile.c b/libegg/smclient/eggdesktopfile.c -index 357e548..c185998 100644 ---- a/libegg/smclient/eggdesktopfile.c -+++ b/libegg/smclient/eggdesktopfile.c -@@ -1440,6 +1440,7 @@ egg_set_desktop_file (const char *desktop_file_path) - g_error_free (error); - } - -+#if 0 - if (egg_desktop_file) { - /* Set localized application name and default window icon */ - if (egg_desktop_file->name) -@@ -1452,6 +1453,7 @@ egg_set_desktop_file (const char *desktop_file_path) - gtk_window_set_default_icon_name (egg_desktop_file->icon); - } - } -+#endif - - G_UNLOCK (egg_desktop_file); - } -diff --git a/libegg/smclient/eggsmclient-xsmp.c b/libegg/smclient/eggsmclient-xsmp.c -index 1a56156..81af7d2 100644 ---- a/libegg/smclient/eggsmclient-xsmp.c -+++ b/libegg/smclient/eggsmclient-xsmp.c -@@ -88,6 +88,8 @@ struct _EggSMClientXSMP - char **restart_command; - gboolean set_restart_command; - int restart_style; -+ char **discard_command; -+ gboolean set_discard_command; - - guint idle; - -@@ -117,6 +119,9 @@ static void sm_client_xsmp_startup (EggSMClient *client, - static void sm_client_xsmp_set_restart_command (EggSMClient *client, - int argc, - const char **argv); -+static void sm_client_xsmp_set_discard_command (EggSMClient *client, -+ int argc, -+ const char **argv); - static void sm_client_xsmp_will_quit (EggSMClient *client, - gboolean will_quit); - static gboolean sm_client_xsmp_end_session (EggSMClient *client, -@@ -150,7 +155,7 @@ static SmProp *card8_prop (const char *name, - static void set_properties (EggSMClientXSMP *xsmp, ...); - static void delete_properties (EggSMClientXSMP *xsmp, ...); - --static GPtrArray *generate_command (char **restart_command, -+static GPtrArray *generate_command (char **argv, - const char *client_id, - const char *state_file); - -@@ -185,6 +190,7 @@ egg_sm_client_xsmp_class_init (EggSMClientXSMPClass *klass) - - sm_client_class->startup = sm_client_xsmp_startup; - sm_client_class->set_restart_command = sm_client_xsmp_set_restart_command; -+ sm_client_class->set_discard_command = sm_client_xsmp_set_discard_command; - sm_client_class->will_quit = sm_client_xsmp_will_quit; - sm_client_class->end_session = sm_client_xsmp_end_session; - } -@@ -404,6 +410,24 @@ sm_client_xsmp_set_restart_command (EggSMClient *client, - } - - static void -+sm_client_xsmp_set_discard_command (EggSMClient *client, -+ int argc, -+ const char **argv) -+{ -+ EggSMClientXSMP *xsmp = (EggSMClientXSMP *)client; -+ int i; -+ -+ g_strfreev (xsmp->discard_command); -+ -+ xsmp->discard_command = g_new (char *, argc + 1); -+ for (i = 0; i < argc; i++) -+ xsmp->discard_command[i] = g_strdup (argv[i]); -+ xsmp->discard_command[i] = NULL; -+ -+ xsmp->set_discard_command = TRUE; -+} -+ -+static void - sm_client_xsmp_will_quit (EggSMClient *client, - gboolean will_quit) - { -@@ -771,7 +795,7 @@ save_state (EggSMClientXSMP *xsmp) - GKeyFile *state_file; - char *state_file_path, *data; - EggDesktopFile *desktop_file; -- GPtrArray *restart; -+ GPtrArray *restart, *discard; - int offset, fd; - - /* We set xsmp->state before emitting save_state, but our caller is -@@ -787,7 +811,18 @@ save_state (EggSMClientXSMP *xsmp) - ptrarray_prop (SmRestartCommand, restart), - NULL); - g_ptr_array_free (restart, TRUE); -- delete_properties (xsmp, SmDiscardCommand, NULL); -+ -+ if (xsmp->set_discard_command) -+ { -+ discard = generate_command (xsmp->discard_command, NULL, NULL); -+ set_properties (xsmp, -+ ptrarray_prop (SmDiscardCommand, discard), -+ NULL); -+ g_ptr_array_free (discard, TRUE); -+ } -+ else -+ delete_properties (xsmp, SmDiscardCommand, NULL); -+ - return; - } - -@@ -1041,14 +1076,14 @@ xsmp_shutdown_cancelled (SmcConn smc_conn, - * then free the array, but not its contents. - */ - static GPtrArray * --generate_command (char **restart_command, const char *client_id, -+generate_command (char **argv, const char *client_id, - const char *state_file) - { - GPtrArray *cmd; - int i; - - cmd = g_ptr_array_new (); -- g_ptr_array_add (cmd, restart_command[0]); -+ g_ptr_array_add (cmd, argv[0]); - - if (client_id) - { -@@ -1062,8 +1097,8 @@ generate_command (char **restart_command, const char *client_id, - g_ptr_array_add (cmd, (char *)state_file); - } - -- for (i = 1; restart_command[i]; i++) -- g_ptr_array_add (cmd, restart_command[i]); -+ for (i = 1; argv[i]; i++) -+ g_ptr_array_add (cmd, argv[i]); - - return cmd; - } -diff --git a/libegg/smclient/eggsmclient.c b/libegg/smclient/eggsmclient.c -index efa901d..85aaee4 100644 ---- a/libegg/smclient/eggsmclient.c -+++ b/libegg/smclient/eggsmclient.c -@@ -445,6 +445,27 @@ egg_sm_client_set_restart_command (EggSMClient *client, - } - - /** -+ * egg_sm_client_set_discard_command: -+ * @client: the client -+ * @argc: the length of @argv -+ * @argv: argument vector -+ * -+ * Sets the command used to discard a custom state file if using -+ * egg_sm_client_set_restart_command(), which must be called before -+ * using this function. -+ **/ -+void -+egg_sm_client_set_discard_command (EggSMClient *client, -+ int argc, -+ const char **argv) -+{ -+ g_return_if_fail (EGG_IS_SM_CLIENT (client)); -+ -+ if (EGG_SM_CLIENT_GET_CLASS (client)->set_discard_command) -+ EGG_SM_CLIENT_GET_CLASS (client)->set_discard_command (client, argc, argv); -+} -+ -+/** - * egg_sm_client_will_quit: - * @client: the client - * @will_quit: whether or not the application is willing to quit -diff --git a/libegg/smclient/eggsmclient.h b/libegg/smclient/eggsmclient.h -index e620b75..f13bcec 100644 ---- a/libegg/smclient/eggsmclient.h -+++ b/libegg/smclient/eggsmclient.h -@@ -72,6 +72,9 @@ struct _EggSMClientClass - void (*set_restart_command) (EggSMClient *client, - int argc, - const char **argv); -+ void (*set_discard_command) (EggSMClient *client, -+ int argc, -+ const char **argv); - void (*will_quit) (EggSMClient *client, - gboolean will_quit); - gboolean (*end_session) (EggSMClient *client, -@@ -102,6 +105,9 @@ GKeyFile *egg_sm_client_get_state_file (EggSMClient *client); - void egg_sm_client_set_restart_command (EggSMClient *client, - int argc, - const char **argv); -+void egg_sm_client_set_discard_command (EggSMClient *client, -+ int argc, -+ const char **argv); - - /* Handling "quit_requested" signal */ - void egg_sm_client_will_quit (EggSMClient *client, |