Hello community,

here is the log from the commit of package cinnamon-screensaver for 
openSUSE:Factory checked in at 2017-10-24 22:24:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cinnamon-screensaver (Old)
 and      /work/SRC/openSUSE:Factory/.cinnamon-screensaver.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cinnamon-screensaver"

Tue Oct 24 22:24:21 2017 rev:11 rq:536036 version:3.4.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/cinnamon-screensaver/cinnamon-screensaver.changes    
    2017-08-22 11:11:10.287340560 +0200
+++ 
/work/SRC/openSUSE:Factory/.cinnamon-screensaver.new/cinnamon-screensaver.changes
   2017-10-24 22:24:23.721560163 +0200
@@ -1,0 +2,18 @@
+Mon Oct 16 14:44:52 UTC 2017 - sor.ale...@meowr.ru
+
+- Update to version 3.4.3:
+  * cs-notification-watcher.c: Ignore notifications that replace
+    existing ones, by checking if the "replaces_id" field of the
+    notification is non-zero.
+  * cs-screen-x11.c: Use Gdk to get the screen size, the previous
+    method doesn't appear to update in time to have the new size,
+    causing exposure to the desktop in some cases, such as resizing
+    host windows of virtual machines.
+  * cs-screen-x11.c: GdkScreen width and height arrive already
+    scaled for hidpi.
+  * logind/consolekit: Refresh screen and monitor info when coming
+    back from inactive (such as sleep.)
+  * stage.py: Call gdk_flush to allow the server to catch up before
+    getting updated screen/monitor infos.
+
+-------------------------------------------------------------------

Old:
----
  cinnamon-screensaver-3.4.2.tar.gz

New:
----
  cinnamon-screensaver-3.4.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cinnamon-screensaver.spec ++++++
--- /var/tmp/diff_new_pack.c1CrPP/_old  2017-10-24 22:24:24.397528564 +0200
+++ /var/tmp/diff_new_pack.c1CrPP/_new  2017-10-24 22:24:24.401528376 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           cinnamon-screensaver
-Version:        3.4.2
+Version:        3.4.3
 Release:        0
 Summary:        Cinnamon screensaver and locker
 License:        GPL-2.0+

++++++ cinnamon-screensaver-3.4.2.tar.gz -> cinnamon-screensaver-3.4.3.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cinnamon-screensaver-3.4.2/configure.ac 
new/cinnamon-screensaver-3.4.3/configure.ac
--- old/cinnamon-screensaver-3.4.2/configure.ac 2017-08-08 13:14:01.000000000 
+0200
+++ new/cinnamon-screensaver-3.4.3/configure.ac 2017-10-12 13:33:13.000000000 
+0200
@@ -2,7 +2,7 @@
 
 AC_PREREQ(2.60)
 AC_INIT([cinnamon-screensaver],
-        [3.4.2],
+        [3.4.3],
         [https://github.com/linuxmint/cinnamon-screensaver/issues])
 
 PKG_PROG_PKG_CONFIG([0.26])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cinnamon-screensaver-3.4.2/debian/changelog 
new/cinnamon-screensaver-3.4.3/debian/changelog
--- old/cinnamon-screensaver-3.4.2/debian/changelog     2017-08-08 
13:14:01.000000000 +0200
+++ new/cinnamon-screensaver-3.4.3/debian/changelog     2017-10-12 
13:33:13.000000000 +0200
@@ -1,3 +1,14 @@
+cinnamon-screensaver (3.4.3) sonya; urgency=medium
+
+  [ Michael Webster ]
+  * cs-notification-watcher.c: Ignore notifications that replace existing 
ones, by checking if the 'replaces_id' field of the notification is non-zero.
+  * cs-screen-x11.c: Use Gdk to get the screen size, the previous method 
doesn't appear to update in time to have the new size, causing exposure to the 
desktop in some cases, such as resizing host windows of virtual machines.
+  * cs-screen-x11.c: GdkScreen width and height arrive already scaled for 
hidpi.
+  * logind/consolekit: Refresh screen and monitor info when coming back from 
inactive (such as sleep.)
+  * stage.py: Call gdk_flush to allow the server to catch up before getting 
updated screen/monitor infos.
+
+ -- Clement Lefebvre <r...@linuxmint.com>  Thu, 12 Oct 2017 12:32:35 +0100
+
 cinnamon-screensaver (3.4.2) sonya; urgency=medium
 
   [ Michael Webster ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-screensaver-3.4.2/libcscreensaver/cs-notification-watcher.c 
new/cinnamon-screensaver-3.4.3/libcscreensaver/cs-notification-watcher.c
--- old/cinnamon-screensaver-3.4.2/libcscreensaver/cs-notification-watcher.c    
2017-08-08 13:14:01.000000000 +0200
+++ new/cinnamon-screensaver-3.4.3/libcscreensaver/cs-notification-watcher.c    
2017-10-12 13:33:13.000000000 +0200
@@ -59,6 +59,7 @@
 {
     GDBusMessage *ret = NULL;
     gboolean transient = FALSE;
+    gboolean replaces_existing = FALSE;
     gchar *sender_str = NULL;
 
     CsNotificationWatcher *watcher = CS_NOTIFICATION_WATCHER (user_data);
@@ -74,7 +75,7 @@
             g_variant_is_of_type (body, G_VARIANT_TYPE_TUPLE) &&
             g_variant_n_children (body) >= 7)
         {
-            GVariant *hints, *sender;
+            GVariant *hints, *sender, *replaces_id;
 
             if (debug_mode)
             {
@@ -152,6 +153,20 @@
             }
 
             g_clear_pointer (&sender, g_variant_unref);
+
+            replaces_id = g_variant_get_child_value (body, 1);
+
+            if (replaces_id)
+            {
+                /* The replaces_id will be 0 if the notification is not 
replacing
+                 * another - if it's not zero, we can ignore it, so we don't 
accumulate
+                 * notifications from spammy programs (like dropbox can be)
+                 */
+
+                replaces_existing = g_variant_get_uint32 (replaces_id) > 0;
+            }
+
+            g_clear_pointer (&replaces_id, g_variant_unref);
         }
     }
     else
@@ -159,7 +174,7 @@
         ret = message;
     }
 
-    if (ret == NULL && !transient)
+    if (ret == NULL && !transient && !replaces_existing)
     {
         NotificationIdleData *data = g_slice_new0 (NotificationIdleData);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-screensaver-3.4.2/libcscreensaver/cs-screen-x11.c 
new/cinnamon-screensaver-3.4.3/libcscreensaver/cs-screen-x11.c
--- old/cinnamon-screensaver-3.4.2/libcscreensaver/cs-screen-x11.c      
2017-08-08 13:14:01.000000000 +0200
+++ new/cinnamon-screensaver-3.4.3/libcscreensaver/cs-screen-x11.c      
2017-10-12 13:33:13.000000000 +0200
@@ -365,18 +365,9 @@
 static void
 reload_screen_info (CsScreen *screen)
 {
-    Screen *xscreen;
-    gint scale_factor;
-
-    xscreen = gdk_x11_screen_get_xscreen (screen->gdk_screen);
-
     screen->rect.x = screen->rect.y = 0;
-    screen->rect.width = WidthOfScreen (xscreen);
-    screen->rect.height = HeightOfScreen (xscreen);
-
-    scale_factor = gdk_screen_get_monitor_scale_factor (screen->gdk_screen, 
PRIMARY_MONITOR);
-    screen->rect.width /= scale_factor;
-    screen->rect.height /= scale_factor;
+    screen->rect.width = gdk_screen_get_width (screen->gdk_screen);
+    screen->rect.height = gdk_screen_get_height (screen->gdk_screen);
 }
 
 static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cinnamon-screensaver-3.4.2/src/manager.py 
new/cinnamon-screensaver-3.4.3/src/manager.py
--- old/cinnamon-screensaver-3.4.2/src/manager.py       2017-08-08 
13:14:01.000000000 +0200
+++ new/cinnamon-screensaver-3.4.3/src/manager.py       2017-10-12 
13:33:13.000000000 +0200
@@ -230,6 +230,17 @@
         """
         self.grab_helper.move_to_window(self.stage.get_window(), True)
 
+    def update_stage(self):
+        """
+        Tells the stage to check its canvas size and make sure its windows are 
up-to-date.  This is called
+        when our login manager tells us its "Active" property has changed.  We 
are always connected to the
+        login manager, so we first check if we have a stage.
+        """
+        if self.stage == None:
+            return
+
+        self.stage.refresh()
+
     def start_timers(self):
         """
         Stamps our current time starts our lock delay timer (the elapsed time 
to allow after
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cinnamon-screensaver-3.4.2/src/singletons.py 
new/cinnamon-screensaver-3.4.3/src/singletons.py
--- old/cinnamon-screensaver-3.4.2/src/singletons.py    2017-08-08 
13:14:01.000000000 +0200
+++ new/cinnamon-screensaver-3.4.3/src/singletons.py    2017-10-12 
13:33:13.000000000 +0200
@@ -136,4 +136,5 @@
         if status.Debug:
             print("Received Active changed from session manager")
 
+        self.manager.update_stage()
         self.manager.simulate_user_activity()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cinnamon-screensaver-3.4.2/src/stage.py 
new/cinnamon-screensaver-3.4.3/src/stage.py
--- old/cinnamon-screensaver-3.4.2/src/stage.py 2017-08-08 13:14:01.000000000 
+0200
+++ new/cinnamon-screensaver-3.4.3/src/stage.py 2017-10-12 13:33:13.000000000 
+0200
@@ -133,22 +133,34 @@
         if status.InteractiveDebug:
             self.set_interactive_debugging(True)
 
+    def update_monitors(self):
+        self.destroy_monitor_views()
+
+        try:
+            self.setup_monitors()
+            for monitor in self.monitors:
+                self.sink_child_widget(monitor)
+        except Exception as e:
+            print("Problem updating monitor views views: %s" % str(e))
+
     def on_screen_size_changed(self, screen, data=None):
+        if status.Debug:
+            print("Stage: Received screen changed signal, updating backdrop")
+
+        Gdk.flush()
+
         self.update_geometry()
         self.move_onscreen()
 
         self.overlay.queue_resize()
 
     def on_monitors_changed(self, screen, data=None):
-        self.destroy_monitor_views()
+        if status.Debug:
+            print("Stage: Received screen monitors-changed signal, updating 
monitor views")
 
-        try:
-            self.setup_monitors()
-            for monitor in self.monitors:
-                self.sink_child_widget(monitor)
-        except Exception as e:
-            print("Problem setting up monitor views during monitor change 
event: %s" % str(e))
+        Gdk.flush()
 
+        self.update_monitors()
         self.overlay.queue_resize()
 
     def on_grab_broken_event(self, widget, event, data=None):
@@ -156,6 +168,14 @@
 
         return False
 
+    def refresh(self):
+        Gdk.flush()
+
+        self.update_geometry()
+        self.move_onscreen()
+        self.update_monitors()
+        self.overlay.queue_resize()
+
     def transition_in(self, effect_time, callback):
         """
         This is the primary way of making the Stage visible.
@@ -766,6 +786,9 @@
         else:
             self.rect = status.screen.get_screen_geometry()
 
+        if status.Debug:
+            print("Stage.update_geometry - new backdrop position: %d, %d  new 
size: %d x %d" % (self.rect.x, self.rect.y, self.rect.width, self.rect.height))
+
         hints = Gdk.Geometry()
         hints.min_width = self.rect.width
         hints.min_height = self.rect.height


Reply via email to