Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock
Please unblock package cinnamon-screensaver
As with the cinnamon package, Maxy and I went through the upstream
changes done to cinnamon-screensaver and cherry picked those that we
judged to have the most impact and that we would like to see released
with stretch.
The latest upload includes the following fixes that I'd like to see
included in
stretch:
cinnamon-screensaver (3.2.13-4) unstable; urgency=medium
* Cherry pick: "mediaPlayerWatcher.py: catch SyntaxError exception
when
evaluating PlaybackStatus property." (0063d84)
Prevents the screensaver from dying if the media player returns a
status
message with invalid syntax.
* Cherry pick: "framedImage.py: Just silently fail if a downloaded
image fails
to be loaded into a pixbuf." (935cde4)
Prevents the screensaver from dying if it fails to download the
media player
artwork.
* Cherry pick "some theme fixes for gtk 3.20+" (2b96fb3)
Makes the password entry use some new CSS properties in GTK 3.20+
* Cherry pick "xscreensaver plugin: Use GSubprocess instead of
g_spawn_async
for hacks" (cfa1f1a)
Avoids left over screensaver processes when previewing them.
* Cherry pick "stage/fader: Realize the stage offscreen, then
reposition it
before starting our fade in" (2e73a9b) + "stage.py: fix screen
changed
callback" (39da3f0).
Avoids ugly flashes when starting and interrupting the screensaver,
by
precalculating the image off-screen before rendering (+ a fixup due
to a
function name change).
* Cherry pick "service.py: Add the invocation to the queue prior to
calling on
the manager to lock" (5561f3c)
Prevents possible hung commands when locking the screen.
* Cherry pick "passwordEntry.py: Reload the keyboard layout if the xkb
configuration changes." (55a26c2)
Changes the default keyboard layout in the screensaver when the
default is
changed for the session.
-- Margarita Manterola <ma...@debian.org> Sat, 20 May 2017 12:55:14
+0200
I'm attaching the full debdiff, as well as the separate files for the
patches
for easier reviewing.
unblock cinnamon-screensaver/3.2.13-4
--
Thanks,
Marga
diff -Nru cinnamon-screensaver-3.2.13/debian/changelog cinnamon-screensaver-3.2.13/debian/changelog
--- cinnamon-screensaver-3.2.13/debian/changelog 2017-05-20 12:55:14.000000000 +0200
+++ cinnamon-screensaver-3.2.13/debian/changelog 2017-04-02 13:24:49.000000000 +0200
@@ -1,34 +1,3 @@
-cinnamon-screensaver (3.2.13-4) unstable; urgency=medium
-
- * Cherry pick: "mediaPlayerWatcher.py: catch SyntaxError exception when
- evaluating PlaybackStatus property." (0063d84)
- Prevents the screensaver from dying if the media player returns a status
- message with invalid syntax.
- * Cherry pick: "framedImage.py: Just silently fail if a downloaded image fails
- to be loaded into a pixbuf." (935cde4)
- Prevents the screensaver from dying if it fails to download the media player
- artwork.
- * Cherry pick "some theme fixes for gtk 3.20+" (2b96fb3)
- Makes the password entry use some new CSS properties in GTK 3.20+
- * Cherry pick "xscreensaver plugin: Use GSubprocess instead of g_spawn_async
- for hacks" (cfa1f1a)
- Avoids left over screensaver processes when previewing them.
- * Cherry pick "stage/fader: Realize the stage offscreen, then reposition it
- before starting our fade in" (2e73a9b) + "stage.py: fix screen changed
- callback" (39da3f0).
- Avoids ugly flashes when starting and interrupting the screensaver, by
- precalculating the image off-screen before rendering (+ a fixup due to a
- function name change).
- * Cherry pick "service.py: Add the invocation to the queue prior to calling on
- the manager to lock" (5561f3c)
- Prevents possible hung commands when locking the screen.
- * Cherry pick "passwordEntry.py: Reload the keyboard layout if the xkb
- configuration changes." (55a26c2)
- Changes the default keyboard layout in the screensaver when the default is
- changed for the session.
-
- -- Margarita Manterola <ma...@debian.org> Sat, 20 May 2017 12:55:14 +0200
-
cinnamon-screensaver (3.2.13-3) unstable; urgency=medium
* Import upstream's commit f579336 to allow users to select text in the
diff -Nru cinnamon-screensaver-3.2.13/debian/patches/fixup-screen-changed-callaback.patch cinnamon-screensaver-3.2.13/debian/patches/fixup-screen-changed-callaback.patch
--- cinnamon-screensaver-3.2.13/debian/patches/fixup-screen-changed-callaback.patch 2017-05-20 12:55:14.000000000 +0200
+++ cinnamon-screensaver-3.2.13/debian/patches/fixup-screen-changed-callaback.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,22 +0,0 @@
-From 39da3f05ed89358bb6c0a01efc5e1093d87e7776 Mon Sep 17 00:00:00 2001
-From: Michael Webster <miketwebs...@gmail.com>
-Date: Thu, 9 Mar 2017 11:56:55 -0500
-Subject: [PATCH] stage.py: fix screen changed callback
-
----
- src/stage.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: cinnamon-screensaver/src/stage.py
-===================================================================
---- cinnamon-screensaver.orig/src/stage.py 2017-05-20 11:36:01.925262877 +0200
-+++ cinnamon-screensaver/src/stage.py 2017-05-20 11:36:01.921262808 +0200
-@@ -118,7 +118,7 @@
-
- def on_screen_changed(self, screen, data=None):
- self.update_geometry()
-- self.size_to_screen()
-+ self.move_onscreen()
-
- for monitor in self.monitors:
- monitor.update_geometry()
diff -Nru cinnamon-screensaver-3.2.13/debian/patches/handle-lock-order.patch cinnamon-screensaver-3.2.13/debian/patches/handle-lock-order.patch
--- cinnamon-screensaver-3.2.13/debian/patches/handle-lock-order.patch 2017-05-20 12:55:14.000000000 +0200
+++ cinnamon-screensaver-3.2.13/debian/patches/handle-lock-order.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,28 +0,0 @@
-From 5561f3c4c1373a5c1ca55d91c722d19ce8d4abd7 Mon Sep 17 00:00:00 2001
-From: Michael Webster <miketwebs...@gmail.com>
-Date: Mon, 23 Jan 2017 19:36:31 -0500
-Subject: [PATCH] service.py: Add the invocation to the queue prior to calling
- on the manager to lock. The active signal could be sent back before it gets
- added otherwise, causing us to leave the calling command hanging.
-
----
- src/service.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-Index: cinnamon-screensaver/src/service.py
-===================================================================
---- cinnamon-screensaver.orig/src/service.py 2017-05-20 11:49:28.596448273 +0200
-+++ cinnamon-screensaver/src/service.py 2017-05-20 11:49:28.588448126 +0200
-@@ -92,10 +92,10 @@
-
- # Interface handlers
- def handle_lock(self, iface, inv, msg):
-- self.manager.lock(msg)
--
- self.lock_queue.append(inv)
-
-+ self.manager.lock(msg)
-+
- return True
-
- def handle_quit(self, iface, inv):
diff -Nru cinnamon-screensaver-3.2.13/debian/patches/improve-fades.patch cinnamon-screensaver-3.2.13/debian/patches/improve-fades.patch
--- cinnamon-screensaver-3.2.13/debian/patches/improve-fades.patch 2017-05-20 12:55:14.000000000 +0200
+++ cinnamon-screensaver-3.2.13/debian/patches/improve-fades.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,140 +0,0 @@
-From 2e73a9b44eb82b384bd698253a9e930bbb77aa50 Mon Sep 17 00:00:00 2001
-From: Michael Webster <miketwebs...@gmail.com>
-Date: Thu, 26 Jan 2017 23:00:27 -0500
-Subject: [PATCH] stage/fader: Realize the stage offscreen, then reposition it
- before starting our fade in. This prevents the initial flash sometimes seen
- when the idle fade kicks in.
-
-Also, fix the fade-out when interrupting an idle fade. It was starting
-the fade-out at 1.0 opacity, rather than the widgets current opacity, so
-deactivating a partially faded screensaver would briefly show it fully
-visible before fading out again.
----
- src/stage.py | 23 +++++++++++++++--------
- src/util/fader.py | 18 +++++++-----------
- 2 files changed, 22 insertions(+), 19 deletions(-)
-
-Index: cinnamon-screensaver/src/stage.py
-===================================================================
---- cinnamon-screensaver.orig/src/stage.py 2017-05-20 11:24:14.778028730 +0200
-+++ cinnamon-screensaver/src/stage.py 2017-05-20 11:24:14.770028395 +0200
-@@ -79,6 +79,7 @@
- self.override_background_color (Gtk.StateFlags.NORMAL, c);
-
- self.update_geometry()
-+ self.move_offscreen()
-
- self.overlay = Gtk.Overlay()
- self.fader = Fader(self)
-@@ -136,13 +137,15 @@
- """
- if effect_time == 0:
- self.set_opacity(1.0)
--
-+ self.move_onscreen()
- self.show()
-+
- callback()
- else:
-- self.set_opacity(0.0)
-+ self.set_opacity(0.01)
-+ self.show()
-+ self.move_onscreen()
-
-- self.realize()
- self.fader.fade_in(effect_time, callback)
-
- def transition_out(self, effect_time, callback):
-@@ -172,16 +175,20 @@
- From here we also proceed to construct all overlay children and
- activate our window suppressor.
- """
-- self.size_to_screen()
-+ window = self.get_window()
-+ utils.override_user_time(window)
-+
- self.setup_children()
-
- self.gdk_filter.start(self)
-
-- def size_to_screen(self):
-- window = self.get_window()
--
-- utils.override_user_time(window)
-- window.move_resize(self.rect.x, self.rect.y, self.rect.width, self.rect.height)
-+ def move_onscreen(self):
-+ self.move(self.rect.x, self.rect.y)
-+ self.resize(self.rect.width, self.rect.height)
-+
-+ def move_offscreen(self):
-+ self.move(-self.rect.width, -self.rect.height)
-+ self.resize(self.rect.width, self.rect.height)
-
- def setup_children(self):
- """
-Index: cinnamon-screensaver/src/util/fader.py
-===================================================================
---- cinnamon-screensaver.orig/src/util/fader.py 2017-05-20 11:24:14.778028730 +0200
-+++ cinnamon-screensaver/src/util/fader.py 2017-05-20 11:24:14.770028395 +0200
-@@ -12,6 +12,7 @@
- self.widget = widget
- self.finished_cb = None
-
-+ self.starting_opacity = 0.0
- self.current_opacity = 0.0
- self.target_opacity = 0.0
-
-@@ -33,12 +34,9 @@
-
- def _fade_in_idle(self, ms, finished_cb=None):
- self.finished_cb = finished_cb
-- self.current_opacity = self.widget.get_opacity()
-+ self.current_opacity = self.starting_opacity = self.widget.get_opacity()
- self.target_opacity = 1.0
-
-- if not self.widget.get_visible():
-- self.widget.set_visible(True)
--
- if self.widget.get_mapped():
- self.start_time = self.widget.get_frame_clock().get_frame_time()
- self.end_time = self.start_time + (ms * 1000) # ms to microsec
-@@ -52,7 +50,7 @@
-
- def _fade_out_idle(self, ms, finished_cb=None):
- self.finished_cb = finished_cb
-- self.current_opacity = self.widget.get_opacity()
-+ self.current_opacity = self.starting_opacity = self.widget.get_opacity()
- self.target_opacity = 0.0
-
- if self.widget.get_mapped():
-@@ -80,14 +78,13 @@
-
- def _fade_in_step(self, now):
- if now < self.end_time:
-- t = (now - self.start_time) / (self.end_time - self.start_time)
-+ t = ((now - self.start_time) / (self.end_time - self.start_time) * self.target_opacity)
- else:
-- t = 1.0
-+ t = self.target_opacity
-
- self.current_opacity = t
-
- self.widget.set_opacity(self.current_opacity)
-- self.widget.queue_draw()
-
- def _on_frame_tick_fade_out(self, widget, clock, data=None):
- now = clock.get_frame_time()
-@@ -103,11 +100,10 @@
-
- def _fade_out_step(self, now):
- if now < self.end_time:
-- t = 1.0 - ((now - self.start_time) / (self.end_time - self.start_time))
-+ t = self.starting_opacity - (((now - self.start_time) / (self.end_time - self.start_time)) * self.starting_opacity)
- else:
-- t = 0.0
-+ t = self.target_opacity
-
- self.current_opacity = t
-
- self.widget.set_opacity(self.current_opacity)
-- self.widget.queue_draw()
diff -Nru cinnamon-screensaver-3.2.13/debian/patches/improve-gtk3.20+.patch cinnamon-screensaver-3.2.13/debian/patches/improve-gtk3.20+.patch
--- cinnamon-screensaver-3.2.13/debian/patches/improve-gtk3.20+.patch 2017-05-20 12:55:14.000000000 +0200
+++ cinnamon-screensaver-3.2.13/debian/patches/improve-gtk3.20+.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,103 +0,0 @@
-From df610bfb3e0d4df1e2fefe3831af983733ad3e34 Mon Sep 17 00:00:00 2001
-From: Michael Webster <miketwebs...@gmail.com>
-Date: Mon, 9 Jan 2017 22:46:46 -0500
-Subject: [PATCH] some theme fixes for gtk 3.20+
-
----
- src/cinnamon-screensaver-gtk3.20.css | 16 +++++++++++-----
- src/passwordEntry.py | 5 +++++
- 2 files changed, 16 insertions(+), 5 deletions(-)
-
-Index: cinnamon-screensaver/src/cinnamon-screensaver-gtk3.20.css
-===================================================================
---- cinnamon-screensaver.orig/src/cinnamon-screensaver-gtk3.20.css 2017-05-19 18:57:34.482400030 +0200
-+++ cinnamon-screensaver/src/cinnamon-screensaver-gtk3.20.css 2017-05-19 19:00:45.971539105 +0200
-@@ -44,12 +44,12 @@
- }
-
- .csstage .auth-message {
-- font-size: 12px;
-+ font-size: 15px;
- color: red;
- }
-
- .csstage .caps-message {
-- font-size: 12px;
-+ font-size: 15px;
- color: orange;
- }
-
-@@ -64,7 +64,7 @@
- }
-
- .csstage .passwordentry {
-- font-size: 11px;
-+ font-size: 15px;
- box-shadow: none;
- border-color: alpha(white, .2);
- border-style: solid;
-@@ -72,9 +72,10 @@
- background-image: none;
- background-color: transparent;
- border-width: 1px;
-+ box-shadow: none;
- }
-
--.csstage .passwordentry.progressbar {
-+.csstage .passwordentry progress {
- margin: 2px;
- padding: 0;
- border-radius: 0;
-@@ -82,12 +83,19 @@
- border-color: alpha(@theme_selected_bg_color, .7);
- }
-
--.csstage .passwordentry.progressbar:focus {
-+.csstage .passwordentry progress:focus {
- background-color: transparent;
- }
-
--.csstage .passwordentry.image.left {
-- padding: 0 10px 0 0;
-+.csstage .passwordentry image.left {
-+ padding-right: 10px;
-+}
-+
-+/* Use :backdrop for alt-text keyboard layout */
-+.csstage .passwordentry:backdrop {
-+ font-family: monospace;
-+ font-size: 14px;
-+ color: @theme_selected_bg_color;
- }
-
- .csstage .transparentbutton {
-@@ -184,4 +192,4 @@
- .csstage GtkViewport {
- background-color: transparent;
- background-image: none;
--}
-\ No newline at end of file
-+}
-Index: cinnamon-screensaver/src/passwordEntry.py
-===================================================================
---- cinnamon-screensaver.orig/src/passwordEntry.py 2017-05-19 18:57:34.482400030 +0200
-+++ cinnamon-screensaver/src/passwordEntry.py 2017-05-19 18:57:34.478399923 +0200
-@@ -94,6 +94,9 @@
- name = name.upper()
-
- ctx = widget.get_style_context()
-+ ctx.save()
-+
-+ ctx.set_state(Gtk.StateFlags.BACKDROP)
- font_size = ctx.get_property("font-size", Gtk.StateFlags.BACKDROP)
- family = ctx.get_property("font-family", Gtk.StateFlags.BACKDROP)
- cr.select_font_face(family[0], cairo.FONT_WEIGHT_NORMAL, cairo.FONT_SLANT_NORMAL)
-@@ -118,6 +121,8 @@
-
- cr.show_text(name)
-
-+ ctx.restore()
-+
- return False
-
- def start_progress(self):
diff -Nru cinnamon-screensaver-3.2.13/debian/patches/reload-xkb-config.patch cinnamon-screensaver-3.2.13/debian/patches/reload-xkb-config.patch
--- cinnamon-screensaver-3.2.13/debian/patches/reload-xkb-config.patch 2017-05-20 12:55:14.000000000 +0200
+++ cinnamon-screensaver-3.2.13/debian/patches/reload-xkb-config.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,76 +0,0 @@
-From 55a26c219fe2e2dbb925730d7530001e8fa5b186 Mon Sep 17 00:00:00 2001
-From: Michael Webster <miketwebs...@gmail.com>
-Date: Mon, 6 Mar 2017 16:55:01 -0500
-Subject: [PATCH] passwordEntry.py: Reload the keyboard layout if the xkb
- configuration changes.
-
----
- src/passwordEntry.py | 27 +++++++++++++++++++--------
- 1 file changed, 19 insertions(+), 8 deletions(-)
-
-Index: cinnamon-screensaver/src/passwordEntry.py
-===================================================================
---- cinnamon-screensaver.orig/src/passwordEntry.py 2017-05-20 11:50:44.933819061 +0200
-+++ cinnamon-screensaver/src/passwordEntry.py 2017-05-20 11:50:44.929818990 +0200
-@@ -33,6 +33,14 @@
- self.current_flag_id = 0
-
- self.keyboard_controller = singletons.KeyboardLayoutController
-+ trackers.con_tracker_get().connect(self.keyboard_controller,
-+ "config-changed",
-+ self.on_config_changed)
-+
-+ trackers.con_tracker_get().connect(self.keyboard_controller,
-+ "layout-changed",
-+ self.on_layout_changed)
-+
- self.set_lockscreen_keyboard_layout()
-
- trackers.con_tracker_get().connect(self,
-@@ -146,6 +154,9 @@
- self.grab_focus()
- self.update_layout_icon()
-
-+ def on_config_changed(self, controller):
-+ self.set_lockscreen_keyboard_layout()
-+
- def on_icon_pressed(self, entry, icon_pos, event):
- if icon_pos == Gtk.EntryIconPosition.PRIMARY:
- self.keyboard_controller.next_group()
-@@ -162,6 +173,14 @@
- self.update_saved_group(self.keyboard_controller.get_current_group())
-
- def on_destroy(self, widget, data=None):
-+ trackers.con_tracker_get().disconnect(self.keyboard_controller,
-+ "config-changed",
-+ self.on_config_changed)
-+
-+ trackers.con_tracker_get().disconnect(self.keyboard_controller,
-+ "layout-changed",
-+ self.on_layout_changed)
-+
- self.restore_original_layout()
-
- def set_lockscreen_keyboard_layout(self):
-@@ -195,10 +214,6 @@
- "draw",
- self.on_draw)
-
-- trackers.con_tracker_get().connect(self.keyboard_controller,
-- "layout-changed",
-- self.on_layout_changed)
--
- def update_saved_group(self, group):
- settings.set_kb_group(group)
-
-@@ -210,10 +225,6 @@
- if not self.keyboard_controller.get_enabled():
- return
-
-- trackers.con_tracker_get().disconnect(self.keyboard_controller,
-- "layout-changed",
-- self.on_layout_changed)
--
- self.keyboard_controller.set_current_group(self.original_group)
-
- def grab_focus(self):
diff -Nru cinnamon-screensaver-3.2.13/debian/patches/series cinnamon-screensaver-3.2.13/debian/patches/series
--- cinnamon-screensaver-3.2.13/debian/patches/series 2017-05-20 12:55:14.000000000 +0200
+++ cinnamon-screensaver-3.2.13/debian/patches/series 2017-04-02 13:24:49.000000000 +0200
@@ -2,11 +2,3 @@
move_pamhelper_to_libexec.patch
upstream_fix-textselection.patch
upstream_fix-suspend-lock.patch
-survive-syntax-error.patch
-survive-download-error.patch
-improve-gtk3.20+.patch
-xscreensaver-processes.patch
-improve-fades.patch
-fixup-screen-changed-callaback.patch
-handle-lock-order.patch
-reload-xkb-config.patch
diff -Nru cinnamon-screensaver-3.2.13/debian/patches/survive-download-error.patch cinnamon-screensaver-3.2.13/debian/patches/survive-download-error.patch
--- cinnamon-screensaver-3.2.13/debian/patches/survive-download-error.patch 2017-05-20 12:55:14.000000000 +0200
+++ cinnamon-screensaver-3.2.13/debian/patches/survive-download-error.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,44 +0,0 @@
-From 935cde46aeed5b4865a0494017f7415f46da4a09 Mon Sep 17 00:00:00 2001
-From: Michael Webster <miketwebs...@gmail.com>
-Date: Mon, 9 Jan 2017 15:13:41 -0500
-Subject: [PATCH] framedImage.py: Just silently fail if a downloaded image
- fails to be loaded into a pixbuf.
-
-see: https://bugzilla.redhat.com/show_bug.cgi?id=1399731
----
- src/widgets/framedImage.py | 14 ++++++++++----
- 1 file changed, 10 insertions(+), 4 deletions(-)
-
-Index: cinnamon-screensaver/src/widgets/framedImage.py
-===================================================================
---- cinnamon-screensaver.orig/src/widgets/framedImage.py 2017-05-19 18:52:08.461796119 +0200
-+++ cinnamon-screensaver/src/widgets/framedImage.py 2017-05-19 18:52:08.457796015 +0200
-@@ -67,8 +67,11 @@
- self.set_size_request(-1, self.get_theme_height())
-
- if self.path:
-- pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(self.path, -1, self.get_theme_height(), True)
-- self.set_from_pixbuf(pixbuf)
-+ try:
-+ pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(self.path, -1, self.get_theme_height(), True)
-+ self.set_from_pixbuf(pixbuf)
-+ except:
-+ self.clear_image()
- self.emit("pixbuf-changed", pixbuf)
-
- elif self.file:
-@@ -100,8 +103,11 @@
- def on_file_written(self, file, result, data=None):
- try:
- if file.replace_contents_finish(result):
-- pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(file.get_path(), -1, self.get_theme_height(), True)
-- self.set_from_pixbuf(pixbuf)
-+ try:
-+ pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(file.get_path(), -1, self.get_theme_height(), True)
-+ self.set_from_pixbuf(pixbuf)
-+ except:
-+ self.clear_image()
- self.emit("pixbuf-changed", pixbuf)
- except GLib.Error:
- pass
-\ No newline at end of file
diff -Nru cinnamon-screensaver-3.2.13/debian/patches/survive-syntax-error.patch cinnamon-screensaver-3.2.13/debian/patches/survive-syntax-error.patch
--- cinnamon-screensaver-3.2.13/debian/patches/survive-syntax-error.patch 2017-05-20 12:55:14.000000000 +0200
+++ cinnamon-screensaver-3.2.13/debian/patches/survive-syntax-error.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
-From 0063d84028ba393ee2ab0b403047699c50b5b9fa Mon Sep 17 00:00:00 2001
-From: Michael Webster <miketwebs...@gmail.com>
-Date: Mon, 9 Jan 2017 15:06:16 -0500
-Subject: [PATCH] mediaPlayerWatcher.py: catch SyntaxError exception when
- evaluating PlaybackStatus property.
-
-Fixes #196
----
- src/dbusdepot/mediaPlayerWatcher.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: cinnamon-screensaver/src/dbusdepot/mediaPlayerWatcher.py
-===================================================================
---- cinnamon-screensaver.orig/src/dbusdepot/mediaPlayerWatcher.py 2017-05-19 18:49:43.650039979 +0200
-+++ cinnamon-screensaver/src/dbusdepot/mediaPlayerWatcher.py 2017-05-19 18:49:43.646039876 +0200
-@@ -56,7 +56,7 @@
-
- try:
- status = PlaybackStatus(eval("PlaybackStatus." + str_prop))
-- except (ValueError, TypeError):
-+ except (ValueError, TypeError, SyntaxError):
- pass
-
- return status
diff -Nru cinnamon-screensaver-3.2.13/debian/patches/xscreensaver-processes.patch cinnamon-screensaver-3.2.13/debian/patches/xscreensaver-processes.patch
--- cinnamon-screensaver-3.2.13/debian/patches/xscreensaver-processes.patch 2017-05-20 12:55:14.000000000 +0200
+++ cinnamon-screensaver-3.2.13/debian/patches/xscreensaver-processes.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,67 +0,0 @@
-From cfa1f1aa45908f4e92aa2572a0cf6d563a1938ad Mon Sep 17 00:00:00 2001
-From: Michael Webster <miketwebs...@gmail.com>
-Date: Fri, 13 Jan 2017 18:20:19 -0500
-Subject: [PATCH] xscreensaver plugin: Use GSubprocess instead of g_spawn_async
- for hacks.
-
----
- screensavers/xscreensa...@cinnamon.org/main | 24 ++++++++++++++++++------
- 1 file changed, 18 insertions(+), 6 deletions(-)
-
-Index: cinnamon-screensaver/screensavers/xscreensa...@cinnamon.org/main
-===================================================================
---- cinnamon-screensaver.orig/screensavers/xscreensa...@cinnamon.org/main 2017-05-20 11:23:27.035953879 +0200
-+++ cinnamon-screensaver/screensavers/xscreensa...@cinnamon.org/main 2017-05-20 11:23:27.027953518 +0200
-@@ -9,6 +9,7 @@
- import argparse
- import syslog
- import signal
-+import os
-
- signal.signal(signal.SIGINT, signal.SIG_DFL)
-
-@@ -22,6 +23,8 @@
-
- GLib.unix_signal_add(GLib.PRIORITY_HIGH, signal.SIGTERM, self.on_terminate)
-
-+ self.proc = None
-+
- if self.args.standalone:
- self.plug = Gtk.Window()
- else:
-@@ -61,12 +64,15 @@
- for direc in directories:
- try:
- path = shlex.split(direc + hack)
-- path.append("-window-id")
-- path.append(str(self.xid))
-- GLib.spawn_async(path)
-- success = True
-- break;
-- except:
-+ if os.path.exists(path[0]):
-+ path.append("-window-id")
-+ path.append(str(self.xid))
-+ try:
-+ self.proc = Gio.Subprocess.new(path, Gio.SubprocessFlags.NONE)
-+ success = True
-+ except GLib.Error as e:
-+ print("Error spawning screensaver hack: %s" % e.message)
-+ except Exception as e:
- pass
-
- if not success:
-@@ -81,7 +87,13 @@
- label.show()
- self.plug.add(label)
-
-+ def kill_plugin(self):
-+ if self.proc:
-+ self.proc.send_signal(signal.SIGTERM)
-+ self.proc = None
-+
- def on_terminate(self, data=None):
-+ self.kill_plugin()
- self.plug.destroy()
- Gtk.main_quit()
-
From cfa1f1aa45908f4e92aa2572a0cf6d563a1938ad Mon Sep 17 00:00:00 2001
From: Michael Webster <miketwebs...@gmail.com>
Date: Fri, 13 Jan 2017 18:20:19 -0500
Subject: [PATCH] xscreensaver plugin: Use GSubprocess instead of g_spawn_async
for hacks.
---
screensavers/xscreensa...@cinnamon.org/main | 24 ++++++++++++++++++------
1 file changed, 18 insertions(+), 6 deletions(-)
Index: cinnamon-screensaver/screensavers/xscreensa...@cinnamon.org/main
===================================================================
--- cinnamon-screensaver.orig/screensavers/xscreensa...@cinnamon.org/main 2017-05-20 11:23:27.035953879 +0200
+++ cinnamon-screensaver/screensavers/xscreensa...@cinnamon.org/main 2017-05-20 11:23:27.027953518 +0200
@@ -9,6 +9,7 @@
import argparse
import syslog
import signal
+import os
signal.signal(signal.SIGINT, signal.SIG_DFL)
@@ -22,6 +23,8 @@
GLib.unix_signal_add(GLib.PRIORITY_HIGH, signal.SIGTERM, self.on_terminate)
+ self.proc = None
+
if self.args.standalone:
self.plug = Gtk.Window()
else:
@@ -61,12 +64,15 @@
for direc in directories:
try:
path = shlex.split(direc + hack)
- path.append("-window-id")
- path.append(str(self.xid))
- GLib.spawn_async(path)
- success = True
- break;
- except:
+ if os.path.exists(path[0]):
+ path.append("-window-id")
+ path.append(str(self.xid))
+ try:
+ self.proc = Gio.Subprocess.new(path, Gio.SubprocessFlags.NONE)
+ success = True
+ except GLib.Error as e:
+ print("Error spawning screensaver hack: %s" % e.message)
+ except Exception as e:
pass
if not success:
@@ -81,7 +87,13 @@
label.show()
self.plug.add(label)
+ def kill_plugin(self):
+ if self.proc:
+ self.proc.send_signal(signal.SIGTERM)
+ self.proc = None
+
def on_terminate(self, data=None):
+ self.kill_plugin()
self.plug.destroy()
Gtk.main_quit()
From 0063d84028ba393ee2ab0b403047699c50b5b9fa Mon Sep 17 00:00:00 2001
From: Michael Webster <miketwebs...@gmail.com>
Date: Mon, 9 Jan 2017 15:06:16 -0500
Subject: [PATCH] mediaPlayerWatcher.py: catch SyntaxError exception when
evaluating PlaybackStatus property.
Fixes #196
---
src/dbusdepot/mediaPlayerWatcher.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: cinnamon-screensaver/src/dbusdepot/mediaPlayerWatcher.py
===================================================================
--- cinnamon-screensaver.orig/src/dbusdepot/mediaPlayerWatcher.py 2017-05-19 18:49:43.650039979 +0200
+++ cinnamon-screensaver/src/dbusdepot/mediaPlayerWatcher.py 2017-05-19 18:49:43.646039876 +0200
@@ -56,7 +56,7 @@
try:
status = PlaybackStatus(eval("PlaybackStatus." + str_prop))
- except (ValueError, TypeError):
+ except (ValueError, TypeError, SyntaxError):
pass
return status
From 935cde46aeed5b4865a0494017f7415f46da4a09 Mon Sep 17 00:00:00 2001
From: Michael Webster <miketwebs...@gmail.com>
Date: Mon, 9 Jan 2017 15:13:41 -0500
Subject: [PATCH] framedImage.py: Just silently fail if a downloaded image
fails to be loaded into a pixbuf.
see: https://bugzilla.redhat.com/show_bug.cgi?id=1399731
---
src/widgets/framedImage.py | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
Index: cinnamon-screensaver/src/widgets/framedImage.py
===================================================================
--- cinnamon-screensaver.orig/src/widgets/framedImage.py 2017-05-19 18:52:08.461796119 +0200
+++ cinnamon-screensaver/src/widgets/framedImage.py 2017-05-19 18:52:08.457796015 +0200
@@ -67,8 +67,11 @@
self.set_size_request(-1, self.get_theme_height())
if self.path:
- pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(self.path, -1, self.get_theme_height(), True)
- self.set_from_pixbuf(pixbuf)
+ try:
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(self.path, -1, self.get_theme_height(), True)
+ self.set_from_pixbuf(pixbuf)
+ except:
+ self.clear_image()
self.emit("pixbuf-changed", pixbuf)
elif self.file:
@@ -100,8 +103,11 @@
def on_file_written(self, file, result, data=None):
try:
if file.replace_contents_finish(result):
- pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(file.get_path(), -1, self.get_theme_height(), True)
- self.set_from_pixbuf(pixbuf)
+ try:
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(file.get_path(), -1, self.get_theme_height(), True)
+ self.set_from_pixbuf(pixbuf)
+ except:
+ self.clear_image()
self.emit("pixbuf-changed", pixbuf)
except GLib.Error:
pass
\ No newline at end of file
From 55a26c219fe2e2dbb925730d7530001e8fa5b186 Mon Sep 17 00:00:00 2001
From: Michael Webster <miketwebs...@gmail.com>
Date: Mon, 6 Mar 2017 16:55:01 -0500
Subject: [PATCH] passwordEntry.py: Reload the keyboard layout if the xkb
configuration changes.
---
src/passwordEntry.py | 27 +++++++++++++++++++--------
1 file changed, 19 insertions(+), 8 deletions(-)
Index: cinnamon-screensaver/src/passwordEntry.py
===================================================================
--- cinnamon-screensaver.orig/src/passwordEntry.py 2017-05-20 11:50:44.933819061 +0200
+++ cinnamon-screensaver/src/passwordEntry.py 2017-05-20 11:50:44.929818990 +0200
@@ -33,6 +33,14 @@
self.current_flag_id = 0
self.keyboard_controller = singletons.KeyboardLayoutController
+ trackers.con_tracker_get().connect(self.keyboard_controller,
+ "config-changed",
+ self.on_config_changed)
+
+ trackers.con_tracker_get().connect(self.keyboard_controller,
+ "layout-changed",
+ self.on_layout_changed)
+
self.set_lockscreen_keyboard_layout()
trackers.con_tracker_get().connect(self,
@@ -146,6 +154,9 @@
self.grab_focus()
self.update_layout_icon()
+ def on_config_changed(self, controller):
+ self.set_lockscreen_keyboard_layout()
+
def on_icon_pressed(self, entry, icon_pos, event):
if icon_pos == Gtk.EntryIconPosition.PRIMARY:
self.keyboard_controller.next_group()
@@ -162,6 +173,14 @@
self.update_saved_group(self.keyboard_controller.get_current_group())
def on_destroy(self, widget, data=None):
+ trackers.con_tracker_get().disconnect(self.keyboard_controller,
+ "config-changed",
+ self.on_config_changed)
+
+ trackers.con_tracker_get().disconnect(self.keyboard_controller,
+ "layout-changed",
+ self.on_layout_changed)
+
self.restore_original_layout()
def set_lockscreen_keyboard_layout(self):
@@ -195,10 +214,6 @@
"draw",
self.on_draw)
- trackers.con_tracker_get().connect(self.keyboard_controller,
- "layout-changed",
- self.on_layout_changed)
-
def update_saved_group(self, group):
settings.set_kb_group(group)
@@ -210,10 +225,6 @@
if not self.keyboard_controller.get_enabled():
return
- trackers.con_tracker_get().disconnect(self.keyboard_controller,
- "layout-changed",
- self.on_layout_changed)
-
self.keyboard_controller.set_current_group(self.original_group)
def grab_focus(self):
From df610bfb3e0d4df1e2fefe3831af983733ad3e34 Mon Sep 17 00:00:00 2001
From: Michael Webster <miketwebs...@gmail.com>
Date: Mon, 9 Jan 2017 22:46:46 -0500
Subject: [PATCH] some theme fixes for gtk 3.20+
---
src/cinnamon-screensaver-gtk3.20.css | 16 +++++++++++-----
src/passwordEntry.py | 5 +++++
2 files changed, 16 insertions(+), 5 deletions(-)
Index: cinnamon-screensaver/src/cinnamon-screensaver-gtk3.20.css
===================================================================
--- cinnamon-screensaver.orig/src/cinnamon-screensaver-gtk3.20.css 2017-05-19 18:57:34.482400030 +0200
+++ cinnamon-screensaver/src/cinnamon-screensaver-gtk3.20.css 2017-05-19 19:00:45.971539105 +0200
@@ -44,12 +44,12 @@
}
.csstage .auth-message {
- font-size: 12px;
+ font-size: 15px;
color: red;
}
.csstage .caps-message {
- font-size: 12px;
+ font-size: 15px;
color: orange;
}
@@ -64,7 +64,7 @@
}
.csstage .passwordentry {
- font-size: 11px;
+ font-size: 15px;
box-shadow: none;
border-color: alpha(white, .2);
border-style: solid;
@@ -72,9 +72,10 @@
background-image: none;
background-color: transparent;
border-width: 1px;
+ box-shadow: none;
}
-.csstage .passwordentry.progressbar {
+.csstage .passwordentry progress {
margin: 2px;
padding: 0;
border-radius: 0;
@@ -82,12 +83,19 @@
border-color: alpha(@theme_selected_bg_color, .7);
}
-.csstage .passwordentry.progressbar:focus {
+.csstage .passwordentry progress:focus {
background-color: transparent;
}
-.csstage .passwordentry.image.left {
- padding: 0 10px 0 0;
+.csstage .passwordentry image.left {
+ padding-right: 10px;
+}
+
+/* Use :backdrop for alt-text keyboard layout */
+.csstage .passwordentry:backdrop {
+ font-family: monospace;
+ font-size: 14px;
+ color: @theme_selected_bg_color;
}
.csstage .transparentbutton {
@@ -184,4 +192,4 @@
.csstage GtkViewport {
background-color: transparent;
background-image: none;
-}
\ No newline at end of file
+}
Index: cinnamon-screensaver/src/passwordEntry.py
===================================================================
--- cinnamon-screensaver.orig/src/passwordEntry.py 2017-05-19 18:57:34.482400030 +0200
+++ cinnamon-screensaver/src/passwordEntry.py 2017-05-19 18:57:34.478399923 +0200
@@ -94,6 +94,9 @@
name = name.upper()
ctx = widget.get_style_context()
+ ctx.save()
+
+ ctx.set_state(Gtk.StateFlags.BACKDROP)
font_size = ctx.get_property("font-size", Gtk.StateFlags.BACKDROP)
family = ctx.get_property("font-family", Gtk.StateFlags.BACKDROP)
cr.select_font_face(family[0], cairo.FONT_WEIGHT_NORMAL, cairo.FONT_SLANT_NORMAL)
@@ -118,6 +121,8 @@
cr.show_text(name)
+ ctx.restore()
+
return False
def start_progress(self):
From 2e73a9b44eb82b384bd698253a9e930bbb77aa50 Mon Sep 17 00:00:00 2001
From: Michael Webster <miketwebs...@gmail.com>
Date: Thu, 26 Jan 2017 23:00:27 -0500
Subject: [PATCH] stage/fader: Realize the stage offscreen, then reposition it
before starting our fade in. This prevents the initial flash sometimes seen
when the idle fade kicks in.
Also, fix the fade-out when interrupting an idle fade. It was starting
the fade-out at 1.0 opacity, rather than the widgets current opacity, so
deactivating a partially faded screensaver would briefly show it fully
visible before fading out again.
---
src/stage.py | 23 +++++++++++++++--------
src/util/fader.py | 18 +++++++-----------
2 files changed, 22 insertions(+), 19 deletions(-)
Index: cinnamon-screensaver/src/stage.py
===================================================================
--- cinnamon-screensaver.orig/src/stage.py 2017-05-20 11:24:14.778028730 +0200
+++ cinnamon-screensaver/src/stage.py 2017-05-20 11:24:14.770028395 +0200
@@ -79,6 +79,7 @@
self.override_background_color (Gtk.StateFlags.NORMAL, c);
self.update_geometry()
+ self.move_offscreen()
self.overlay = Gtk.Overlay()
self.fader = Fader(self)
@@ -136,13 +137,15 @@
"""
if effect_time == 0:
self.set_opacity(1.0)
-
+ self.move_onscreen()
self.show()
+
callback()
else:
- self.set_opacity(0.0)
+ self.set_opacity(0.01)
+ self.show()
+ self.move_onscreen()
- self.realize()
self.fader.fade_in(effect_time, callback)
def transition_out(self, effect_time, callback):
@@ -172,16 +175,20 @@
From here we also proceed to construct all overlay children and
activate our window suppressor.
"""
- self.size_to_screen()
+ window = self.get_window()
+ utils.override_user_time(window)
+
self.setup_children()
self.gdk_filter.start(self)
- def size_to_screen(self):
- window = self.get_window()
-
- utils.override_user_time(window)
- window.move_resize(self.rect.x, self.rect.y, self.rect.width, self.rect.height)
+ def move_onscreen(self):
+ self.move(self.rect.x, self.rect.y)
+ self.resize(self.rect.width, self.rect.height)
+
+ def move_offscreen(self):
+ self.move(-self.rect.width, -self.rect.height)
+ self.resize(self.rect.width, self.rect.height)
def setup_children(self):
"""
Index: cinnamon-screensaver/src/util/fader.py
===================================================================
--- cinnamon-screensaver.orig/src/util/fader.py 2017-05-20 11:24:14.778028730 +0200
+++ cinnamon-screensaver/src/util/fader.py 2017-05-20 11:24:14.770028395 +0200
@@ -12,6 +12,7 @@
self.widget = widget
self.finished_cb = None
+ self.starting_opacity = 0.0
self.current_opacity = 0.0
self.target_opacity = 0.0
@@ -33,12 +34,9 @@
def _fade_in_idle(self, ms, finished_cb=None):
self.finished_cb = finished_cb
- self.current_opacity = self.widget.get_opacity()
+ self.current_opacity = self.starting_opacity = self.widget.get_opacity()
self.target_opacity = 1.0
- if not self.widget.get_visible():
- self.widget.set_visible(True)
-
if self.widget.get_mapped():
self.start_time = self.widget.get_frame_clock().get_frame_time()
self.end_time = self.start_time + (ms * 1000) # ms to microsec
@@ -52,7 +50,7 @@
def _fade_out_idle(self, ms, finished_cb=None):
self.finished_cb = finished_cb
- self.current_opacity = self.widget.get_opacity()
+ self.current_opacity = self.starting_opacity = self.widget.get_opacity()
self.target_opacity = 0.0
if self.widget.get_mapped():
@@ -80,14 +78,13 @@
def _fade_in_step(self, now):
if now < self.end_time:
- t = (now - self.start_time) / (self.end_time - self.start_time)
+ t = ((now - self.start_time) / (self.end_time - self.start_time) * self.target_opacity)
else:
- t = 1.0
+ t = self.target_opacity
self.current_opacity = t
self.widget.set_opacity(self.current_opacity)
- self.widget.queue_draw()
def _on_frame_tick_fade_out(self, widget, clock, data=None):
now = clock.get_frame_time()
@@ -103,11 +100,10 @@
def _fade_out_step(self, now):
if now < self.end_time:
- t = 1.0 - ((now - self.start_time) / (self.end_time - self.start_time))
+ t = self.starting_opacity - (((now - self.start_time) / (self.end_time - self.start_time)) * self.starting_opacity)
else:
- t = 0.0
+ t = self.target_opacity
self.current_opacity = t
self.widget.set_opacity(self.current_opacity)
- self.widget.queue_draw()
From 5561f3c4c1373a5c1ca55d91c722d19ce8d4abd7 Mon Sep 17 00:00:00 2001
From: Michael Webster <miketwebs...@gmail.com>
Date: Mon, 23 Jan 2017 19:36:31 -0500
Subject: [PATCH] service.py: Add the invocation to the queue prior to calling
on the manager to lock. The active signal could be sent back before it gets
added otherwise, causing us to leave the calling command hanging.
---
src/service.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: cinnamon-screensaver/src/service.py
===================================================================
--- cinnamon-screensaver.orig/src/service.py 2017-05-20 11:49:28.596448273 +0200
+++ cinnamon-screensaver/src/service.py 2017-05-20 11:49:28.588448126 +0200
@@ -92,10 +92,10 @@
# Interface handlers
def handle_lock(self, iface, inv, msg):
- self.manager.lock(msg)
-
self.lock_queue.append(inv)
+ self.manager.lock(msg)
+
return True
def handle_quit(self, iface, inv):
From 39da3f05ed89358bb6c0a01efc5e1093d87e7776 Mon Sep 17 00:00:00 2001
From: Michael Webster <miketwebs...@gmail.com>
Date: Thu, 9 Mar 2017 11:56:55 -0500
Subject: [PATCH] stage.py: fix screen changed callback
---
src/stage.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: cinnamon-screensaver/src/stage.py
===================================================================
--- cinnamon-screensaver.orig/src/stage.py 2017-05-20 11:36:01.925262877 +0200
+++ cinnamon-screensaver/src/stage.py 2017-05-20 11:36:01.921262808 +0200
@@ -118,7 +118,7 @@
def on_screen_changed(self, screen, data=None):
self.update_geometry()
- self.size_to_screen()
+ self.move_onscreen()
for monitor in self.monitors:
monitor.update_geometry()