summaryrefslogtreecommitdiff
path: root/community/cinnamon-screensaver/away-message-fixes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/cinnamon-screensaver/away-message-fixes.patch')
-rw-r--r--community/cinnamon-screensaver/away-message-fixes.patch226
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);
+