]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
matchbox-panel-2: backport patch to set a constant size for the clock
authorRoss Burton <ross.burton@arm.com>
Thu, 21 May 2026 15:58:11 +0000 (16:58 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 28 May 2026 10:21:53 +0000 (11:21 +0100)
Measure the size of "88:88" and set an explicit size of the clock label
so that it doesn't slightly move over time as the digits change.

Also update the status of a patch that is upstreamed.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-sato/matchbox-panel-2/files/0001-applets-clock-fix-clock-widget-width-resize.patch [new file with mode: 0644]
meta/recipes-sato/matchbox-panel-2/files/0001-applets-systray-Allow-icons-to-be-smaller.patch
meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.12.bb

diff --git a/meta/recipes-sato/matchbox-panel-2/files/0001-applets-clock-fix-clock-widget-width-resize.patch b/meta/recipes-sato/matchbox-panel-2/files/0001-applets-clock-fix-clock-widget-width-resize.patch
new file mode 100644 (file)
index 0000000..b87213a
--- /dev/null
@@ -0,0 +1,51 @@
+From 5244e02f14b3b99f60b4d9f90f504f6a7d6f2205 Mon Sep 17 00:00:00 2001
+From: Dmitry Sakhonchik <frezidok1@gmail.com>
+Date: Mon, 18 May 2026 16:21:06 +0300
+Subject: [PATCH] applets/clock: fix clock widget width resize
+
+Previously clock widget used to change its size depending on digits'
+width inside it, which caused other icons in the panel to move.
+
+Fixes [YOCTO #15435]
+
+Signed-off-by: Dmitry Sakhonchik <frezidok1@gmail.com>
+
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ applets/clock/clock.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/applets/clock/clock.c b/applets/clock/clock.c
+index b8057a4..3065cfc 100644
+--- a/applets/clock/clock.c
++++ b/applets/clock/clock.c
+@@ -73,6 +73,7 @@ mb_panel_applet_create (const char    *id,
+         GtkWidget *label;
+         time_t t;
+         struct tm *local_time;
++        int ref_string_width;
+         applet = g_slice_new0 (ClockApplet);
+@@ -81,6 +82,17 @@ mb_panel_applet_create (const char    *id,
+         gtk_widget_set_name (label, "MatchboxPanelClock");
++        /* Size the widget using the widest possible time string ("88:88") */
++        PangoContext *context = gtk_widget_get_pango_context(label);
++        PangoLayout *reference_string = pango_layout_new(context);
++
++        pango_layout_set_text(reference_string, "88:88", 5);
++        pango_layout_get_pixel_size(reference_string, &ref_string_width, NULL);
++
++        g_object_unref(reference_string);
++
++        gtk_widget_set_size_request(label, ref_string_width, -1);
++
+         g_object_weak_ref (G_OBJECT (label),
+                            (GWeakNotify) clock_applet_free,
+                            applet);
+-- 
+2.43.0
+
index d13dd3d5a0b78569f33c8f5effa4c2c213fa69e6..870ef8800e00196d2f99f6b856f75f94fec7e2ea 100644 (file)
@@ -8,7 +8,7 @@ systray panel. This makes sure the icons are drawn at the size they
 expect.
 
 Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Upstream-Status: Submitted
+Upstream-Status: Backport [c5f3e42a29a36a12d11007b21904d343dfbd6ad3]
 ---
  applets/systray/systray.c | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)
index a126571adedbf9caabe848541ad99d861f86cd41..f4e0000ee0edcb9a2946b2c4870d374d4e84c4b6 100644 (file)
@@ -23,6 +23,7 @@ RCONFLICTS:${PN} = "matchbox-panel"
 
 SRC_URI = "git://git.yoctoproject.org/${BPN};protocol=https;branch=master \
            file://0001-applets-systray-Allow-icons-to-be-smaller.patch \
+           file://0001-applets-clock-fix-clock-widget-width-resize.patch \
            "
 
 EXTRA_OECONF = "--enable-startup-notification --enable-dbus"