import UBI gtk3-3.24.31-8.el9

This commit is contained in:
eabdullin 2025-11-11 15:38:18 +00:00
parent 0a1cb9b1fe
commit 3f4adb72fa
6 changed files with 214 additions and 1 deletions

View File

@ -0,0 +1,68 @@
From 6cc0552ab8efe0b11f3db21224520dc97db17d9f Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Thu, 27 Oct 2022 11:49:03 -0400
Subject: [PATCH] Differentiate keypad keysyms in accelerators
When displaying accelerators, differentiate keypad
symbols with a 'KP' prefix. Fixing a 17 year old bug.
Backport of c58d9446f40b36136f25baf.
---
gtk/gtkaccellabel.c | 11 +++++++++++
testsuite/gtk/accel.c | 6 ++++--
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/gtk/gtkaccellabel.c b/gtk/gtkaccellabel.c
index 0e2c50bb67..75b27a8726 100644
--- a/gtk/gtkaccellabel.c
+++ b/gtk/gtkaccellabel.c
@@ -883,6 +883,17 @@ _gtk_accel_label_class_get_accelerator_label (GtkAccelLabelClass *klass,
if (seen_mod)
g_string_append (gstring, klass->mod_separator);
+ if (accelerator_key >= GDK_KEY_KP_Space &&
+ accelerator_key <= GDK_KEY_KP_Equal)
+ {
+ /* Translators: "KP" means "numeric key pad". This string will
+ * be used in accelerators such as "Ctrl+Shift+KP 1" in menus,
+ * and therefore the translation needs to be very short.
+ */
+ g_string_append (gstring, C_("keyboard label", "KP"));
+ g_string_append (gstring, " ");
+ }
+
switch (ch)
{
case ' ':
diff --git a/testsuite/gtk/accel.c b/testsuite/gtk/accel.c
index da031da7be..d6ea0bc252 100644
--- a/testsuite/gtk/accel.c
+++ b/testsuite/gtk/accel.c
@@ -55,6 +55,8 @@ test_one_accel (const char *accel,
*keycodes,
mods);
+ g_print ("accel %s, label %s\n", accel, label);
+
g_assert_cmpstr (label, ==, exp_label);
name = gtk_accelerator_name_with_keycode (NULL,
@@ -83,13 +85,13 @@ accel2 (void)
static void
accel3 (void)
{
- test_one_accel ("KP_7", "7", TRUE);
+ test_one_accel ("KP_7", "KP 7", TRUE);
}
static void
accel4 (void)
{
- test_one_accel ("<Primary>KP_7", "Ctrl+7", TRUE);
+ test_one_accel ("<Primary>KP_7", "Ctrl+KP 7", TRUE);
}
static void
--
2.49.0

View File

@ -0,0 +1,37 @@
From 889057a38627acb711ae56852d779925e770d8a0 Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Wed, 28 Feb 2024 13:10:27 -0500
Subject: [PATCH] dnd: Prevent a possible segfault
It is at least theoretically possible that gtk_entry_get_pixel_ranges
will return no ranges, and we should handle that without an
out-of-bounds access or segfault.
---
gtk/gtkentry.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 4078855c93..a71578218c 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -4724,7 +4724,7 @@ gtk_entry_drag_gesture_update (GtkGestureDrag *gesture,
button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture));
gtk_drag_begin_with_coordinates (widget, target_list, actions,
button, (GdkEvent*) event,
- priv->drag_start_x + ranges[0],
+ priv->drag_start_x + (n_ranges > 0 ? ranges[0] : 0),
priv->drag_start_y);
g_free (ranges);
@@ -9931,7 +9931,7 @@ gtk_entry_drag_begin (GtkWidget *widget,
gtk_entry_get_pixel_ranges (entry, &ranges, &n_ranges);
cairo_surface_get_device_scale (surface, &sx, &sy);
cairo_surface_set_device_offset (surface,
- -(priv->drag_start_x - ranges[0]) * sx,
+ -(priv->drag_start_x - (n_ranges > 0 ? ranges[0] : 0)) * sx,
-(priv->drag_start_y) * sy);
g_free (ranges);
--
2.49.0

View File

@ -0,0 +1,28 @@
From bbf893ba560462ec60255badea9098c759598dc7 Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Wed, 2 Jul 2025 10:06:38 -0400
Subject: [PATCH 2/3] accellabel: Differentiate keypad better
Arrange for all keypad keysyms to get a "KP" prefix, including +-*/.
Part-of: <https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/8743>
---
gtk/gtkaccellabel.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gtk/gtkaccellabel.c b/gtk/gtkaccellabel.c
index 75b27a8726..2f6e901392 100644
--- a/gtk/gtkaccellabel.c
+++ b/gtk/gtkaccellabel.c
@@ -884,7 +884,7 @@ _gtk_accel_label_class_get_accelerator_label (GtkAccelLabelClass *klass,
g_string_append (gstring, klass->mod_separator);
if (accelerator_key >= GDK_KEY_KP_Space &&
- accelerator_key <= GDK_KEY_KP_Equal)
+ accelerator_key <= GDK_KEY_KP_9)
{
/* Translators: "KP" means "numeric key pad". This string will
* be used in accelerators such as "Ctrl+Shift+KP 1" in menus,
--
2.50.0

View File

@ -0,0 +1,49 @@
From 246e865d4d36612ee890327b723b224250d4e9fa Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Wed, 2 Jul 2025 10:09:33 -0400
Subject: [PATCH 3/3] shortcutwindow: Differentiate keypad better
Arrange for keypad +-/* to show up as "KP +", and so on.
Part-of: <https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/8743>
---
gtk/gtkshortcutlabel.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/gtk/gtkshortcutlabel.c b/gtk/gtkshortcutlabel.c
index bfacbd391e..e3fb13e877 100644
--- a/gtk/gtkshortcutlabel.c
+++ b/gtk/gtkshortcutlabel.c
@@ -128,7 +128,7 @@ get_labels (guint key, GdkModifierType modifier, guint *n_mods)
{
const gchar *labels[16];
GList *freeme = NULL;
- gchar key_label[6];
+ gchar key_label[16];
gchar *tmp;
gunichar ch;
gint i = 0;
@@ -181,8 +181,18 @@ get_labels (guint key, GdkModifierType modifier, guint *n_mods)
labels[i++] = C_("keyboard label", "Backslash");
break;
default:
- memset (key_label, 0, 6);
- g_unichar_to_utf8 (g_unichar_toupper (ch), key_label);
+ memset (key_label, 0, sizeof (key_label));
+ if (key >= GDK_KEY_KP_Space && key <= GDK_KEY_KP_9)
+ {
+ key_label[0] = 'K';
+ key_label[1] = 'P';
+ key_label[2] = ' ';
+ g_unichar_to_utf8 (g_unichar_toupper (ch), key_label + 3);
+ }
+ else
+ {
+ g_unichar_to_utf8 (g_unichar_toupper (ch), key_label);
+ }
labels[i++] = key_label;
break;
}
--
2.50.0

View File

@ -0,0 +1,11 @@
diff --git a/gtk/gtkboxgadget.c b/gtk/gtkboxgadget.c
index 3cc94da1de..dba84485d8 100644
--- a/gtk/gtkboxgadget.c
+++ b/gtk/gtkboxgadget.c
@@ -170,7 +170,6 @@ gtk_box_gadget_distribute (GtkBoxGadget *gadget,
if G_UNLIKELY (size < 0)
{
- g_critical ("%s: assertion 'size >= 0' failed in %s", G_STRFUNC, G_OBJECT_TYPE_NAME (gtk_css_gadget_get_owner (GTK_CSS_GADGET (gadget))));
return;
}

View File

@ -19,7 +19,7 @@
Name: gtk3
Version: 3.24.31
Release: 5%{?dist}
Release: 8%{?dist}
Summary: GTK+ graphical user interface library
License: LGPLv2+
@ -39,6 +39,14 @@ Patch3: gtk3-3.24.31-treeview-a11y-leak-fix.patch
Patch4: 0001-theme-Reduce-the-height-of-titlebars.patch
# https://issues.redhat.com/browse/RHEL-46993
Patch5: 0001-Stop-looking-for-modules-in-cwd.patch
# https://issues.redhat.com/browse/RHEL-22853
Patch6: 0001-dnd-Prevent-a-possible-segfault.patch
# https://issues.redhat.com/browse/RHEL-4130
Patch7: remove-size-allocation-critical.patch
# https://issues.redhat.com/browse/RHEL-4098
Patch8: 0001-Differentiate-keypad-keysyms-in-accelerators.patch
Patch9: 0002-accellabel-Differentiate-keypad-better.patch
Patch10: 0003-shortcutwindow-Differentiate-keypad-better.patch
BuildRequires: pkgconfig(atk) >= %{atk_version}
BuildRequires: pkgconfig(atk-bridge-2.0)
@ -306,6 +314,18 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &>/dev/null || :
%{_datadir}/installed-tests/
%changelog
* Tue Jul 2 2025 Matthias Clasen <mclasen@redhat.com> - 3.24.31-8
- Resolves: RHEL-4098
* Tue Jun 10 2025 Matthias Clasen <mclasen@redhat.com> - 3.24.31-7
- Dummy commit to get ci to rerun
- Related: RHEL-4098
* Mon May 12 2025 Matthias Clasen <mclasen@redhat.com> - 3.24.31-6
- Resolves: RHEL-4130
- Resolves: RHEL-22853
- Resolves: RHEL-4098
* Wed Jul 10 2024 Matthias Clasen <mclasen@redhat.com> - 3.24.31-5
- Stop looking for modules in cwd (CVE-2024-6655)
- Resolves: RHEL-46993