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 - bjorn.lie@gmail.com + +- 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
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
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
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