Hello community,

here is the log from the commit of package gnome-clocks for openSUSE:Factory 
checked in at 2018-12-31 09:39:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-clocks (Old)
 and      /work/SRC/openSUSE:Factory/.gnome-clocks.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gnome-clocks"

Mon Dec 31 09:39:49 2018 rev:37 rq:661755 version:3.30.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-clocks/gnome-clocks.changes        
2018-11-08 09:44:31.897378344 +0100
+++ /work/SRC/openSUSE:Factory/.gnome-clocks.new.28833/gnome-clocks.changes     
2018-12-31 09:39:50.898537814 +0100
@@ -1,0 +2,8 @@
+Fri Dec 28 01:08:34 UTC 2018 - [email protected]
+
+- Add upstream bug fix patches from stable branch:
+  + gnome-clocks-timer-Set-width-chars2.patch: timer: Set
+    width-chars=2 property on the spinbuttons.
+  + gnome-clocks-timer-fixes.patch: Various backported timer fixes.
+
+-------------------------------------------------------------------

New:
----
  gnome-clocks-timer-Set-width-chars2.patch
  gnome-clocks-timer-fixes.patch

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

Other differences:
------------------
++++++ gnome-clocks.spec ++++++
--- /var/tmp/diff_new_pack.ThYGpl/_old  2018-12-31 09:39:51.378537422 +0100
+++ /var/tmp/diff_new_pack.ThYGpl/_new  2018-12-31 09:39:51.378537422 +0100
@@ -25,6 +25,10 @@
 Group:          Productivity/Office/Other
 URL:            https://live.gnome.org/Design/Apps/Clock
 Source0:        
https://download.gnome.org/sources/gnome-clocks/3.30/%{name}-%{version}.tar.xz
+# PATCH-FIX-UPSTREAM gnome-clocks-timer-Set-width-chars2.patch -- timer: Set 
width-chars=2 property on the spinbuttons
+Patch0:         gnome-clocks-timer-Set-width-chars2.patch
+# PATCH-FIX-UPSTREAM gnome-clocks-timer-fixes.patch -- Various backported 
timer fixes
+Patch1:         gnome-clocks-timer-fixes.patch
 
 BuildRequires:  fdupes
 BuildRequires:  meson >= 0.41.0
@@ -60,7 +64,7 @@
 %lang_package
 
 %prep
-%setup -q
+%autosetup -p1
 translation-update-upstream
 
 %build

++++++ gnome-clocks-timer-Set-width-chars2.patch ++++++
>From 89bf3cfe16ac343dc61718fdf1abe0468cb25032 Mon Sep 17 00:00:00 2001
From: Yanko Kaneti <[email protected]>
Date: Tue, 18 Sep 2018 16:26:52 +0300
Subject: [PATCH] timer: Set width-chars=2 property on the spinbuttons

Set width-chars to help gtk pre-allocate the spin buttons
drawing area regardless of font

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1630248
---
 data/ui/timer.ui | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/data/ui/timer.ui b/data/ui/timer.ui
index 40ff931..7c37afe 100644
--- a/data/ui/timer.ui
+++ b/data/ui/timer.ui
@@ -67,6 +67,7 @@
                     <property name="orientation">vertical</property>
                     <property name="adjustment">adjustment_hours</property>
                     <property name="numeric">True</property>
+                    <property name="width_chars">2</property>
                     <property name="wrap">True</property>
                     <signal name="output" handler="show_leading_zeros" 
swapped="no"/>
                     <signal name="changed" handler="update_start_button" 
swapped="no"/>
@@ -109,6 +110,7 @@
                     <property name="orientation">vertical</property>
                     <property name="adjustment">adjustment_minutes</property>
                     <property name="numeric">True</property>
+                    <property name="width_chars">2</property>
                     <property name="wrap">True</property>
                     <signal name="output" handler="show_leading_zeros" 
swapped="no"/>
                     <signal name="changed" handler="update_start_button" 
swapped="no"/>
@@ -152,6 +154,7 @@
                     <property name="orientation">vertical</property>
                     <property name="adjustment">adjustment_seconds</property>
                     <property name="numeric">True</property>
+                    <property name="width_chars">2</property>
                     <property name="wrap">True</property>
                     <signal name="output" handler="show_leading_zeros" 
swapped="no"/>
                     <signal name="changed" handler="update_start_button" 
swapped="no"/>
@@ -263,6 +266,7 @@
                     <property name="orientation">vertical</property>
                     <property name="adjustment">adjustment_hours</property>
                     <property name="numeric">True</property>
+                    <property name="width_chars">2</property>
                     <property name="wrap">True</property>
                     <signal name="output" handler="show_leading_zeros" 
swapped="no"/>
                     <signal name="changed" handler="update_start_button" 
swapped="no"/>
@@ -306,6 +310,7 @@
                     <property name="orientation">vertical</property>
                     <property name="adjustment">adjustment_minutes</property>
                     <property name="numeric">True</property>
+                    <property name="width_chars">2</property>
                     <property name="wrap">True</property>
                     <signal name="output" handler="show_leading_zeros" 
swapped="no"/>
                     <signal name="changed" handler="update_start_button" 
swapped="no"/>
@@ -349,6 +354,7 @@
                     <property name="orientation">vertical</property>
                     <property name="adjustment">adjustment_seconds</property>
                     <property name="numeric">True</property>
+                    <property name="width_chars">2</property>
                     <property name="wrap">True</property>
                     <signal name="output" handler="show_leading_zeros" 
swapped="no"/>
                     <signal name="changed" handler="update_start_button" 
swapped="no"/>
-- 
2.18.1

++++++ gnome-clocks-timer-fixes.patch ++++++
>From 14005c78289239b7fd78ce8c9694ccd92a15f0cd Mon Sep 17 00:00:00 2001
From: Yanko Kaneti <[email protected]>
Date: Sat, 27 Oct 2018 02:03:50 +0300
Subject: [PATCH 1/2] timer: Decouple timer logic from the widget tick

Moving the timer logic in a separate processing timeout
outside the widget frame update tick.

 - fixes timer firing when the window is not being repainted
   https://bugzilla.redhat.com/show_bug.cgi?id=1525025

 - the countdown frame is updated at most 25 times a second
   which should slightly reduce CPU usage
---
 src/timer.vala | 48 ++++++++++++++----------------------------------
 1 file changed, 14 insertions(+), 34 deletions(-)

diff --git a/src/timer.vala b/src/timer.vala
index 7121b54..73ea374 100644
--- a/src/timer.vala
+++ b/src/timer.vala
@@ -78,7 +78,6 @@ public class Face : Gtk.Stack, Clocks.Clock {
     public State state { get; private set; default = State.STOPPED; }
 
     private GLib.Settings settings;
-    private uint tick_id;
     private double span;
     private GLib.Timer timer;
     private Utils.Bell bell;
@@ -119,7 +118,6 @@ public class Face : Gtk.Stack, Clocks.Clock {
 
         settings = new GLib.Settings ("org.gnome.clocks");
 
-        tick_id = 0;
         span = 0;
         timer = new GLib.Timer ();
 
@@ -227,7 +225,6 @@ public class Face : Gtk.Stack, Clocks.Clock {
     private void reset () {
         state = State.STOPPED;
         timer.reset ();
-        stop_ticking ();
         span = settings.get_uint ("timer");
         h_spinbutton.value = (int) span / 3600;
         m_spinbutton.value = (int) span % 3600 / 60;
@@ -242,7 +239,7 @@ public class Face : Gtk.Stack, Clocks.Clock {
     private void start () {
         countdown_frame.get_style_context ().remove_class ("clocks-paused");
 
-        if (state == State.STOPPED && tick_id == 0) {
+        if (state == State.STOPPED) {
             var h = h_spinbutton.get_value_as_int ();
             var m = m_spinbutton.get_value_as_int ();
             var s = s_spinbutton.get_value_as_int ();
@@ -257,46 +254,29 @@ public class Face : Gtk.Stack, Clocks.Clock {
 
         state = State.RUNNING;
         timer.start ();
-        start_ticking ();
+        GLib.Timeout.add(40, () => {
+           if (state != State.RUNNING) {
+                return false;
+            }
+            var e = timer.elapsed ();
+            if (e >= span) {
+                reset ();
+                ring ();
+                return false;
+            }
+            update_countdown (e);
+            return true;
+        });
     }
 
     private void pause () {
         state = State.PAUSED;
         timer.stop ();
-        stop_ticking ();
         span -= timer.elapsed ();
         countdown_frame.get_style_context ().add_class ("clocks-paused");
         countdown_frame.pause ();
     }
 
-    private void start_ticking () {
-        if (tick_id == 0) {
-            tick_id = add_tick_callback ((c) => {
-                return count ();
-            });
-        }
-    }
-
-    private void stop_ticking () {
-        if (tick_id != 0) {
-            remove_tick_callback (tick_id);
-            tick_id = 0;
-        }
-    }
-
-    private bool count () {
-        var e = timer.elapsed ();
-        if (e >= span) {
-            update_countdown_label (0, 0, 0);
-            ring ();
-            reset ();
-            return false;
-        }
-
-        update_countdown (e);
-        return true;
-    }
-
     private void update_countdown (double elapsed) {
         if (h_label.get_mapped ()) {
             // Math.ceil() because we count backwards:
-- 
2.18.1


>From 00ea80dcf5ec0bf34a2bafde850bea3955a1d059 Mon Sep 17 00:00:00 2001
From: Yanko Kaneti <[email protected]>
Date: Sun, 28 Oct 2018 15:17:56 +0200
Subject: [PATCH 2/2] timer: remove timeout on widget disposal

---
 src/timer.vala | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/timer.vala b/src/timer.vala
index 73ea374..5846479 100644
--- a/src/timer.vala
+++ b/src/timer.vala
@@ -80,6 +80,7 @@ public class Face : Gtk.Stack, Clocks.Clock {
     private GLib.Settings settings;
     private double span;
     private GLib.Timer timer;
+    private uint timeout_id;
     private Utils.Bell bell;
     private GLib.Notification notification;
     [GtkChild]
@@ -121,6 +122,14 @@ public class Face : Gtk.Stack, Clocks.Clock {
         span = 0;
         timer = new GLib.Timer ();
 
+        timeout_id = 0;
+        destroy.connect(() => {
+            if (timeout_id != 0) {
+                GLib.Source.remove(timeout_id);
+                timeout_id = 0;
+            }
+        });
+
         bell = new Utils.Bell ("complete");
         notification = new GLib.Notification (_("Time is up!"));
         notification.set_body (_("Timer countdown finished"));
@@ -254,14 +263,16 @@ public class Face : Gtk.Stack, Clocks.Clock {
 
         state = State.RUNNING;
         timer.start ();
-        GLib.Timeout.add(40, () => {
+        timeout_id = GLib.Timeout.add(40, () => {
            if (state != State.RUNNING) {
+                timeout_id = 0;
                 return false;
             }
             var e = timer.elapsed ();
             if (e >= span) {
                 reset ();
                 ring ();
+                timeout_id = 0;
                 return false;
             }
             update_countdown (e);
-- 
2.18.1


Reply via email to