diff options
Diffstat (limited to 'community/cinnamon-screensaver/away-message-fixes.patch')
-rw-r--r-- | community/cinnamon-screensaver/away-message-fixes.patch | 226 |
1 files changed, 226 insertions, 0 deletions
diff --git a/community/cinnamon-screensaver/away-message-fixes.patch b/community/cinnamon-screensaver/away-message-fixes.patch new file mode 100644 index 000000000..1828c5beb --- /dev/null +++ b/community/cinnamon-screensaver/away-message-fixes.patch @@ -0,0 +1,226 @@ +diff -Naur cinnamon-screensaver-2.0.3.orig/doc/dbus-interface.html cinnamon-screensaver-2.0.3/doc/dbus-interface.html +--- cinnamon-screensaver-2.0.3.orig/doc/dbus-interface.html 2013-10-26 19:34:39.000000000 +0200 ++++ cinnamon-screensaver-2.0.3/doc/dbus-interface.html 2013-10-29 10:08:06.568038245 +0100 +@@ -70,7 +70,7 @@ + <code class="literal">Lock</code> + </h3></div></div></div><p> + Request that the screen be locked. +- </p></div><div class="sect2" title="Cycle"><div class="titlepage"><div><div><h3 class="title"><a name="gs-method-Cycle"></a> ++ </p><div class="informaltable"><table border="1"><colgroup><col><col></colgroup><thead><tr><th>Direction</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>in</td><td>string</td><td>the away message</td></tr></tbody></table></div></div><div class="sect2" title="Cycle"><div class="titlepage"><div><div><h3 class="title"><a name="gs-method-Cycle"></a> + <code class="literal">Cycle</code> + </h3></div></div></div><p> + Request that the screen saver theme be restarted and, if applicable, +diff -Naur cinnamon-screensaver-2.0.3.orig/src/cinnamon-screensaver-command.c cinnamon-screensaver-2.0.3/src/cinnamon-screensaver-command.c +--- cinnamon-screensaver-2.0.3.orig/src/cinnamon-screensaver-command.c 2013-10-26 19:34:39.000000000 +0200 ++++ cinnamon-screensaver-2.0.3/src/cinnamon-screensaver-command.c 2013-10-29 22:32:13.127650887 +0100 +@@ -41,7 +41,7 @@ + static gboolean do_query = FALSE; + static gboolean do_time = FALSE; + +-static gchar *away_message = "DEFAULT"; ++static gchar *away_message = ""; + + static GOptionEntry entries [] = { + { "exit", 0, 0, G_OPTION_ARG_NONE, &do_quit, +@@ -114,7 +114,7 @@ + static GDBusMessage * + screensaver_send_message_string (GDBusConnection *connection, + const char *name, +- gboolean value) ++ gchar *value) + { + GDBusMessage *message, *reply; + GError *error; +@@ -310,14 +310,7 @@ + } + + if (do_lock) { +- if (g_strcmp0 (away_message, "DEFAULT") == 0) { +- reply = screensaver_send_message_string (connection, "Lock", away_message); +- } +- else { +- gchar * custom_message = g_strdup_printf("CUSTOM###%s", away_message); +- reply = screensaver_send_message_string (connection, "Lock", custom_message); +- g_free (custom_message); +- } ++ reply = screensaver_send_message_string (connection, "Lock", away_message); + if (reply == NULL) { + g_message ("Did not receive a reply from the screensaver."); + goto done; +diff -Naur cinnamon-screensaver-2.0.3.orig/src/cinnamon-screensaver-dialog.c cinnamon-screensaver-2.0.3/src/cinnamon-screensaver-dialog.c +--- cinnamon-screensaver-2.0.3.orig/src/cinnamon-screensaver-dialog.c 2013-10-26 19:34:39.000000000 +0200 ++++ cinnamon-screensaver-2.0.3/src/cinnamon-screensaver-dialog.c 2013-10-29 18:34:38.042752214 +0100 +@@ -49,7 +49,6 @@ + static gboolean enable_logout = FALSE; + static gboolean enable_switch = FALSE; + static char *logout_command = NULL; +-static char *away_message = NULL; + + static GOptionEntry entries [] = { + { "verbose", 0, 0, G_OPTION_ARG_NONE, &verbose, +diff -Naur cinnamon-screensaver-2.0.3.orig/src/gs-listener-dbus.c cinnamon-screensaver-2.0.3/src/gs-listener-dbus.c +--- cinnamon-screensaver-2.0.3.orig/src/gs-listener-dbus.c 2013-10-26 19:34:39.000000000 +0200 ++++ cinnamon-screensaver-2.0.3/src/gs-listener-dbus.c 2013-10-30 03:04:42.134732524 +0100 +@@ -570,7 +570,7 @@ + if (! dbus_message_get_args (message, &error, + DBUS_TYPE_STRING, &body, + DBUS_TYPE_INVALID)) { +- raise_syntax (connection, message, "ShowMessage"); ++ raise_syntax (connection, message, "Lock"); + return DBUS_HANDLER_RESULT_HANDLED; + } + +@@ -584,6 +584,7 @@ + + return DBUS_HANDLER_RESULT_HANDLED; + } ++ + static DBusHandlerResult + listener_show_message (GSListener *listener, + DBusConnection *connection, +@@ -906,7 +907,7 @@ + } else if (dbus_message_is_signal (message, SYSTEMD_LOGIND_SESSION_INTERFACE, "Lock")) { + if (_listener_message_path_is_our_session (listener, message)) { + gs_debug ("systemd requested session lock"); +- return listener_lock (listener, connection, message); ++ g_signal_emit (listener, signals [LOCK], 0, ""); + } + + return DBUS_HANDLER_RESULT_HANDLED; +@@ -948,7 +949,7 @@ + } else if (dbus_message_is_signal (message, CK_SESSION_INTERFACE, "Lock")) { + if (_listener_message_path_is_our_session (listener, message)) { + gs_debug ("ConsoleKit requested session lock"); +- return listener_lock (listener, connection, message); ++ g_signal_emit (listener, signals [LOCK], 0, ""); + } + + return DBUS_HANDLER_RESULT_HANDLED; +diff -Naur cinnamon-screensaver-2.0.3.orig/src/gs-manager.c cinnamon-screensaver-2.0.3/src/gs-manager.c +--- cinnamon-screensaver-2.0.3.orig/src/gs-manager.c 2013-10-26 19:34:39.000000000 +0200 ++++ cinnamon-screensaver-2.0.3/src/gs-manager.c 2013-10-29 20:27:40.394604570 +0100 +@@ -1097,6 +1097,7 @@ + g_object_unref (manager->priv->settings); + } + ++ g_free (manager->priv->away_message); + g_free (manager->priv->logout_command); + g_free (manager->priv->keyboard_command); + +@@ -1261,6 +1262,8 @@ + + gs_manager_destroy_windows (manager); + ++ gs_manager_set_away_message (manager, NULL); ++ + /* reset state */ + manager->priv->active = FALSE; + manager->priv->activate_time = 0; +@@ -1275,10 +1278,18 @@ + gs_manager_set_away_message (GSManager *manager, + const char *message) + { +- g_free (manager->priv->logout_command); +- +- manager->priv->away_message = g_strdup(message); + GSList *l; ++ ++ g_return_if_fail (GS_IS_MANAGER (manager)); ++ ++ g_free (manager->priv->away_message); ++ ++ if (message) { ++ manager->priv->away_message = g_strdup (message); ++ } else { ++ manager->priv->away_message = NULL; ++ } ++ + for (l = manager->priv->windows; l; l = l->next) { + gs_window_set_away_message (l->data, manager->priv->away_message); + } +@@ -1293,7 +1304,6 @@ + if (active) { + res = gs_manager_activate (manager); + } else { +- gs_manager_set_away_message(manager, ""); + res = gs_manager_deactivate (manager); + } + +diff -Naur cinnamon-screensaver-2.0.3.orig/src/gs-window-x11.c cinnamon-screensaver-2.0.3/src/gs-window-x11.c +--- cinnamon-screensaver-2.0.3.orig/src/gs-window-x11.c 2013-10-26 19:34:39.000000000 +0200 ++++ cinnamon-screensaver-2.0.3/src/gs-window-x11.c 2013-10-29 23:11:15.240828725 +0100 +@@ -2132,38 +2132,19 @@ + return utf8_name; + } + +-static gchar * +-str_replace(const char *string, const char *delimiter, const char *replacement) +-{ +- gchar **split; +- gchar *ret; +- g_return_val_if_fail(string != NULL, NULL); +- g_return_val_if_fail(delimiter != NULL, NULL); +- g_return_val_if_fail(replacement != NULL, NULL); +- split = g_strsplit(string, delimiter, 0); +- ret = g_strjoinv(replacement, split); +- g_strfreev(split); +- return ret; +-} +- + static void + update_clock (GSWindow *window) + { +- char *markup; +- char *away_message; +- +- if (window->priv->away_message != NULL && g_str_has_prefix (window->priv->away_message, "CUSTOM###") && g_strcmp0(window->priv->away_message, "") != 0) { +- away_message = str_replace(window->priv->away_message, "CUSTOM###", ""); +- markup = g_strdup_printf ("%s\n\n<b><span font_desc=\"Ubuntu 14\" foreground=\"#CCCCCC\"> %s</span></b>\n<b><span font_desc=\"Ubuntu 10\" foreground=\"#ACACAC\"> ~ %s</span></b>", gnome_wall_clock_get_clock (window->priv->clock_tracker), away_message, get_user_display_name()); +- } +- else { +- away_message = g_strdup_printf (_("%s"), window->priv->default_message); +- markup = g_strdup_printf ("%s\n\n<b><span font_desc=\"Ubuntu 14\" foreground=\"#CCCCCC\">%s</span></b>", gnome_wall_clock_get_clock (window->priv->clock_tracker), away_message); +- } +- +- gtk_label_set_markup (GTK_LABEL (window->priv->clock), markup); +- g_free (markup); +- g_free (away_message); ++ char *markup; ++ ++ if (window->priv->away_message != NULL && g_strcmp0(window->priv->away_message, "") != 0) { ++ markup = g_strdup_printf ("%s\n\n<b><span font_desc=\"Ubuntu 14\" foreground=\"#CCCCCC\"> %s</span></b>\n<b><span font_desc=\"Ubuntu 10\" foreground=\"#ACACAC\"> ~ %s</span></b>", gnome_wall_clock_get_clock (window->priv->clock_tracker), g_markup_escape_text(window->priv->away_message, -1), get_user_display_name()); ++ } else { ++ markup = g_strdup_printf ("%s\n\n<b><span font_desc=\"Ubuntu 14\" foreground=\"#CCCCCC\">%s</span></b>", gnome_wall_clock_get_clock (window->priv->clock_tracker), g_markup_escape_text(window->priv->default_message, -1)); ++ } ++ ++ gtk_label_set_markup (GTK_LABEL (window->priv->clock), markup); ++ g_free (markup); + } + + static void +@@ -2197,7 +2178,16 @@ + gs_window_set_away_message (GSWindow *window, + const char *message) + { +- window->priv->away_message = message; ++ g_return_if_fail (GS_IS_WINDOW (window)); ++ ++ g_free (window->priv->away_message); ++ ++ if (message) { ++ window->priv->away_message = g_strdup (message); ++ } else { ++ window->priv->away_message = NULL; ++ } ++ + update_clock (window); + } + +@@ -2320,6 +2310,7 @@ + + g_return_if_fail (window->priv != NULL); + ++ g_free (window->priv->away_message); + g_free (window->priv->logout_command); + g_free (window->priv->keyboard_command); + |