From a30857c1ed670ab1e27e6e34abdf0302d2af8704 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 6 Apr 2021 15:11:28 +0200 Subject: [PATCH] Backport upstream fix for typing apostrophes / single quotes https://bugzilla.redhat.com/show_bug.cgi?id=1946133 https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3386 --- 3386.patch | 302 +++++++++++++++++++++++++++++++++++++++++++++++++++++ gtk4.spec | 9 +- 2 files changed, 310 insertions(+), 1 deletion(-) create mode 100644 3386.patch diff --git a/3386.patch b/3386.patch new file mode 100644 index 0000000..7c53de7 --- /dev/null +++ b/3386.patch @@ -0,0 +1,302 @@ +From f98abe4400eccf6478b6569d67564e5b8cfc60b1 Mon Sep 17 00:00:00 2001 +From: Matthias Clasen +Date: Thu, 1 Apr 2021 15:15:47 -0400 +Subject: [PATCH 1/2] Revert Compose sequence changes + +This was breaking muscle memory of people with +the us intl keyboard layout, for important keys +such as '. The unfortunate side-effect is that +our handling of is a bit hampered +by sequences that don't fit the pattern. But +such is life. + +Fixes: #3807 +--- + gtk/compose/gtk-compose-lookaside.txt | 4 -- + gtk/compose/gtk-compose-remove.txt | 14 ----- + gtk/gtkimcontextsimpleseqs.h | 73 ++++++++++++++++----------- + 3 files changed, 43 insertions(+), 48 deletions(-) + delete mode 100644 gtk/compose/gtk-compose-remove.txt + +diff --git a/gtk/compose/gtk-compose-lookaside.txt b/gtk/compose/gtk-compose-lookaside.txt +index c846cc8121..3f3b23c69c 100644 +--- a/gtk/compose/gtk-compose-lookaside.txt ++++ b/gtk/compose/gtk-compose-lookaside.txt +@@ -403,7 +403,3 @@ + : "ό" U03CC + : "ύ" U03CD + : "ώ" U03CE +- +-# This sequence matches our handling of dead keys better. +-# We remove the xorg sequence that maps this to ' +- : "´" acute # ACUTE ACCENT +diff --git a/gtk/compose/gtk-compose-remove.txt b/gtk/compose/gtk-compose-remove.txt +deleted file mode 100644 +index 620df9e9ce..0000000000 +--- a/gtk/compose/gtk-compose-remove.txt ++++ /dev/null +@@ -1,14 +0,0 @@ +- : "~" asciitilde # TILDE +- : "'" apostrophe # APOSTROPHE +- : "´" acute # ACUTE ACCENT +- : "`" grave # GRAVE ACCENT +- : "°" degree # DEGREE SIGN +- : "¯" macron # MACRON +- : "˘" breve # BREVE +- : "˙" abovedot # DOT ABOVE +- : "¨" diaeresis # DIAERESIS +- : "˝" U2dd # DOUBLE ACUTE ACCENT +- : "ˇ" caron # CARON +- : "¸" cedilla # CEDILLA +- : "˛" ogonek # OGONEK +- : "ͺ" U37a # GREEK YPOGEGRAMMENI +diff --git a/gtk/gtkimcontextsimpleseqs.h b/gtk/gtkimcontextsimpleseqs.h +index 901d1c4af6..99a2dd4289 100644 +--- a/gtk/gtkimcontextsimpleseqs.h ++++ b/gtk/gtkimcontextsimpleseqs.h +@@ -66,35 +66,35 @@ + + static const guint16 gtk_compose_seqs_compact[] = { + GDK_KEY_Greek_accentdieresis, 180, 184, 184, 184, 184, +-GDK_KEY_dead_grave, 184, 244, 331, 543, 543, +-GDK_KEY_dead_acute, 543, 605, 701, 977, 977, +-GDK_KEY_dead_circumflex, 977, 1101, 1101, 1301, 1301, +-GDK_KEY_dead_tilde, 1301, 1383, 1446, 1586, 1586, +-GDK_KEY_dead_macron, 1586, 1630, 1648, 1720, 1720, +-GDK_KEY_dead_breve, 1720, 1768, 1768, 1792, 1792, +-GDK_KEY_dead_abovedot, 1792, 1820, 1823, 1859, 1859, +-GDK_KEY_dead_diaeresis, 1859, 1945, 1957, 1981, 1981, +-GDK_KEY_dead_abovering, 1981, 1989, 1989, 1989, 1989, +-GDK_KEY_dead_doubleacute, 1989, 1997, 1997, 1997, 1997, +-GDK_KEY_dead_caron, 1997, 2037, 2037, 2045, 2045, +-GDK_KEY_dead_cedilla, 2045, 2055, 2061, 2061, 2061, +-GDK_KEY_dead_ogonek, 2061, 2069, 2069, 2069, 2069, +-GDK_KEY_dead_iota, 2069, 2089, 2188, 2620, 3280, +-GDK_KEY_dead_voiced_sound, 3280, 3326, 3326, 3326, 3326, +-GDK_KEY_dead_semivoiced_sound, 3326, 3336, 3336, 3336, 3336, +-GDK_KEY_dead_belowdot, 3336, 3352, 3352, 3368, 3368, +-GDK_KEY_dead_hook, 3368, 3446, 3449, 3505, 3505, +-GDK_KEY_dead_horn, 3505, 3515, 3515, 3515, 3515, +-GDK_KEY_dead_stroke, 3515, 3603, 3615, 3615, 3615, +-GDK_KEY_dead_psili, 3615, 3643, 3643, 3643, 3643, +-GDK_KEY_dead_dasia, 3643, 3675, 3675, 3675, 3675, +-GDK_KEY_dead_belowring, 3675, 3677, 3677, 3677, 3677, +-GDK_KEY_dead_belowtilde, 3677, 3679, 3679, 3679, 3679, +-GDK_KEY_dead_belowdiaeresis, 3679, 3679, 3682, 3682, 3682, +-GDK_KEY_dead_belowcomma, 3682, 3696, 3696, 3696, 3696, +-GDK_KEY_dead_currency, 3696, 3794, 3800, 3800, 3800, +-GDK_KEY_dead_greek, 3800, 3902, 3926, 3926, 3926, +-GDK_KEY_Multi_key, 3926, 3926, 10637, 14345, 16220, ++GDK_KEY_dead_grave, 184, 246, 333, 545, 545, ++GDK_KEY_dead_acute, 545, 609, 705, 981, 981, ++GDK_KEY_dead_circumflex, 981, 1105, 1105, 1305, 1305, ++GDK_KEY_dead_tilde, 1305, 1389, 1452, 1592, 1592, ++GDK_KEY_dead_macron, 1592, 1638, 1656, 1728, 1728, ++GDK_KEY_dead_breve, 1728, 1778, 1778, 1802, 1802, ++GDK_KEY_dead_abovedot, 1802, 1832, 1835, 1871, 1871, ++GDK_KEY_dead_diaeresis, 1871, 1959, 1971, 1995, 1995, ++GDK_KEY_dead_abovering, 1995, 2005, 2005, 2005, 2005, ++GDK_KEY_dead_doubleacute, 2005, 2015, 2015, 2015, 2015, ++GDK_KEY_dead_caron, 2015, 2057, 2057, 2065, 2065, ++GDK_KEY_dead_cedilla, 2065, 2077, 2083, 2083, 2083, ++GDK_KEY_dead_ogonek, 2083, 2093, 2093, 2093, 2093, ++GDK_KEY_dead_iota, 2093, 2115, 2214, 2646, 3306, ++GDK_KEY_dead_voiced_sound, 3306, 3352, 3352, 3352, 3352, ++GDK_KEY_dead_semivoiced_sound, 3352, 3362, 3362, 3362, 3362, ++GDK_KEY_dead_belowdot, 3362, 3378, 3378, 3394, 3394, ++GDK_KEY_dead_hook, 3394, 3472, 3475, 3531, 3531, ++GDK_KEY_dead_horn, 3531, 3541, 3541, 3541, 3541, ++GDK_KEY_dead_stroke, 3541, 3629, 3641, 3641, 3641, ++GDK_KEY_dead_psili, 3641, 3669, 3669, 3669, 3669, ++GDK_KEY_dead_dasia, 3669, 3701, 3701, 3701, 3701, ++GDK_KEY_dead_belowring, 3701, 3703, 3703, 3703, 3703, ++GDK_KEY_dead_belowtilde, 3703, 3705, 3705, 3705, 3705, ++GDK_KEY_dead_belowdiaeresis, 3705, 3705, 3708, 3708, 3708, ++GDK_KEY_dead_belowcomma, 3708, 3722, 3722, 3722, 3722, ++GDK_KEY_dead_currency, 3722, 3820, 3826, 3826, 3826, ++GDK_KEY_dead_greek, 3826, 3928, 3952, 3952, 3952, ++GDK_KEY_Multi_key, 3952, 3952, 10663, 14371, 16246, + GDK_KEY_Greek_iota, 0x0390, + GDK_KEY_Greek_upsilon, 0x03B0, + GDK_KEY_space, 0x0060, +@@ -127,6 +127,7 @@ GDK_KEY_Greek_iota, 0x1F76, + GDK_KEY_Greek_omicron, 0x1F78, + GDK_KEY_Greek_upsilon, 0x1F7A, + GDK_KEY_Greek_omega, 0x1F7C, ++GDK_KEY_dead_grave, 0x0060, + GDK_KEY_dead_diaeresis, GDK_KEY_Greek_iota, 0x1FD2, + GDK_KEY_dead_diaeresis, GDK_KEY_Greek_upsilon, 0x1FE2, + GDK_KEY_dead_psili, GDK_KEY_Greek_ALPHA, 0x1F0A, +@@ -209,7 +210,7 @@ GDK_KEY_Multi_key, GDK_KEY_macron, GDK_KEY_E, 0x1E14, + GDK_KEY_Multi_key, GDK_KEY_macron, GDK_KEY_O, 0x1E50, + GDK_KEY_Multi_key, GDK_KEY_macron, GDK_KEY_e, 0x1E15, + GDK_KEY_Multi_key, GDK_KEY_macron, GDK_KEY_o, 0x1E51, +-GDK_KEY_space, 0x00B4, ++GDK_KEY_space, 0x0027, + GDK_KEY_V, 0x01D7, + GDK_KEY_v, 0x01D8, + GDK_KEY_nobreakspace, 0x0301, +@@ -240,6 +241,7 @@ GDK_KEY_Greek_iota, 0x03AF, + GDK_KEY_Greek_omicron, 0x03CC, + GDK_KEY_Greek_upsilon, 0x03CD, + GDK_KEY_Greek_omega, 0x03CE, ++GDK_KEY_dead_acute, 0x00B4, + GDK_KEY_dead_diaeresis, GDK_KEY_space, 0x0385, + GDK_KEY_dead_diaeresis, GDK_KEY_Greek_iota, 0x0390, + GDK_KEY_dead_diaeresis, GDK_KEY_Greek_upsilon, 0x03B0, +@@ -494,6 +496,7 @@ GDK_KEY_Greek_omega, 0x1FF6, + 0x1F61, 0x1F67, + 0x1F68, 0x1F6E, + 0x1F69, 0x1F6F, ++GDK_KEY_dead_tilde, 0x007E, + GDK_KEY_dead_diaeresis, GDK_KEY_Greek_iota, 0x1FD7, + GDK_KEY_dead_diaeresis, GDK_KEY_Greek_upsilon, 0x1FE7, + GDK_KEY_dead_psili, GDK_KEY_Greek_ALPHA, 0x1F0E, +@@ -572,6 +575,7 @@ GDK_KEY_Greek_UPSILON, 0x1FE9, + GDK_KEY_Greek_alpha, 0x1FB1, + GDK_KEY_Greek_iota, 0x1FD1, + GDK_KEY_Greek_upsilon, 0x1FE1, ++GDK_KEY_dead_macron, 0x00AF, + GDK_KEY_dead_greek, GDK_KEY_A, 0x1FB9, + GDK_KEY_dead_greek, GDK_KEY_I, 0x1FD9, + GDK_KEY_dead_greek, GDK_KEY_U, 0x1FE9, +@@ -620,6 +624,7 @@ GDK_KEY_Greek_UPSILON, 0x1FE8, + GDK_KEY_Greek_alpha, 0x1FB0, + GDK_KEY_Greek_iota, 0x1FD0, + GDK_KEY_Greek_upsilon, 0x1FE0, ++GDK_KEY_dead_breve, 0x02D8, + GDK_KEY_Multi_key, GDK_KEY_exclam, GDK_KEY_A, 0x1EB6, + GDK_KEY_Multi_key, GDK_KEY_exclam, GDK_KEY_a, 0x1EB7, + GDK_KEY_Multi_key, GDK_KEY_comma, GDK_KEY_E, 0x1E1C, +@@ -640,6 +645,7 @@ GDK_KEY_Amacron, 0x01E0, + GDK_KEY_Omacron, 0x0230, + GDK_KEY_amacron, 0x01E1, + GDK_KEY_omacron, 0x0231, ++GDK_KEY_dead_abovedot, 0x02D9, + GDK_KEY_dead_stroke, GDK_KEY_j, 0x025F, + GDK_KEY_Multi_key, GDK_KEY_exclam, GDK_KEY_S, 0x1E68, + GDK_KEY_Multi_key, GDK_KEY_exclam, GDK_KEY_s, 0x1E69, +@@ -693,6 +699,7 @@ GDK_KEY_Greek_IOTA, 0x03AA, + GDK_KEY_Greek_UPSILON, 0x03AB, + GDK_KEY_Greek_iota, 0x03CA, + GDK_KEY_Greek_upsilon, 0x03CB, ++GDK_KEY_dead_diaeresis, 0x00A8, + GDK_KEY_dead_acute, GDK_KEY_space, 0x0385, + GDK_KEY_dead_acute, GDK_KEY_Greek_iota, 0x0390, + GDK_KEY_dead_acute, GDK_KEY_Greek_upsilon, 0x03B0, +@@ -707,10 +714,12 @@ GDK_KEY_space, 0x00B0, + GDK_KEY_nobreakspace, 0x030A, + GDK_KEY_Aacute, 0x01FA, + GDK_KEY_aacute, 0x01FB, ++GDK_KEY_dead_abovering, 0x00B0, + GDK_KEY_space, 0x02DD, + GDK_KEY_nobreakspace, 0x030B, + GDK_KEY_Cyrillic_u, 0x04F3, + GDK_KEY_Cyrillic_U, 0x04F2, ++GDK_KEY_dead_doubleacute, 0x02DD, + GDK_KEY_space, 0x02C7, + GDK_KEY_parenleft, 0x208D, + GDK_KEY_parenright, 0x208E, +@@ -731,6 +740,7 @@ GDK_KEY_V, 0x01D9, + GDK_KEY_v, 0x01DA, + GDK_KEY_nobreakspace, 0x030C, + 0x01F2, 0x01C5, ++GDK_KEY_dead_caron, 0x02C7, + GDK_KEY_Multi_key, GDK_KEY_quotedbl, GDK_KEY_U, 0x01D9, + GDK_KEY_Multi_key, GDK_KEY_quotedbl, GDK_KEY_u, 0x01DA, + GDK_KEY_space, 0x00B8, +@@ -738,12 +748,14 @@ GDK_KEY_nobreakspace, 0x0327, + GDK_KEY_cent, 0x20B5, + GDK_KEY_Cacute, 0x1E08, + GDK_KEY_cacute, 0x1E09, ++GDK_KEY_dead_cedilla, 0x00B8, + GDK_KEY_dead_currency, GDK_KEY_C, 0x20B5, + GDK_KEY_dead_currency, GDK_KEY_c, 0x20B5, + GDK_KEY_space, 0x02DB, + GDK_KEY_nobreakspace, 0x0328, + GDK_KEY_Omacron, 0x01EC, + GDK_KEY_omacron, 0x01ED, ++GDK_KEY_dead_ogonek, 0x02DB, + GDK_KEY_space, 0x037A, + GDK_KEY_Greek_alphaaccent, 0x1FB4, + GDK_KEY_Greek_etaaccent, 0x1FC4, +@@ -754,6 +766,7 @@ GDK_KEY_Greek_OMEGA, 0x1FFC, + GDK_KEY_Greek_alpha, 0x1FB3, + GDK_KEY_Greek_eta, 0x1FC3, + GDK_KEY_Greek_omega, 0x1FF3, ++GDK_KEY_dead_iota, 0x037A, + GDK_KEY_dead_grave, GDK_KEY_Greek_alpha, 0x1FB2, + GDK_KEY_dead_grave, GDK_KEY_Greek_eta, 0x1FC2, + GDK_KEY_dead_grave, GDK_KEY_Greek_omega, 0x1FF2, +-- +GitLab + + +From 7f4522a3f1502fe9f439fb6c0b985de38be88145 Mon Sep 17 00:00:00 2001 +From: Matthias Clasen +Date: Thu, 1 Apr 2021 15:18:20 -0400 +Subject: [PATCH 2/2] Add more compose tests + +Test the sequences whose demise made people +unhappy. +--- + testsuite/gtk/composetable.c | 23 +++++++++++++++++++++++ + 1 file changed, 23 insertions(+) + +diff --git a/testsuite/gtk/composetable.c b/testsuite/gtk/composetable.c +index da28cda6d1..6f5f67c5a8 100644 +--- a/testsuite/gtk/composetable.c ++++ b/testsuite/gtk/composetable.c +@@ -212,6 +212,7 @@ compose_table_match_compact (void) + gunichar ch; + + buffer[0] = GDK_KEY_Multi_key; ++ buffer[1] = 0; + + ret = gtk_compose_table_compact_check (&table, buffer, 1, &finish, &match, &ch); + g_assert_true (ret); +@@ -222,6 +223,7 @@ compose_table_match_compact (void) + buffer[0] = GDK_KEY_a; + buffer[1] = GDK_KEY_b; + buffer[2] = GDK_KEY_c; ++ buffer[3] = 0; + + ret = gtk_compose_table_compact_check (&table, buffer, 3, &finish, &match, &ch); + g_assert_false (ret); +@@ -233,12 +235,33 @@ compose_table_match_compact (void) + buffer[1] = GDK_KEY_parenleft; + buffer[2] = GDK_KEY_j; + buffer[3] = GDK_KEY_parenright; ++ buffer[4] = 0; + + ret = gtk_compose_table_compact_check (&table, buffer, 4, &finish, &match, &ch); + g_assert_true (ret); + g_assert_true (finish); + g_assert_true (match); + g_assert_true (ch == 0x24d9); /* CIRCLED LATIN SMALL LETTER J */ ++ ++ buffer[0] = GDK_KEY_dead_acute; ++ buffer[1] = GDK_KEY_space; ++ buffer[2] = 0; ++ ++ ret = gtk_compose_table_compact_check (&table, buffer, 2, &finish, &match, &ch); ++ g_assert_true (ret); ++ g_assert_true (finish); ++ g_assert_true (match); ++ g_assert_true (ch == 0x27); ++ ++ buffer[0] = GDK_KEY_dead_acute; ++ buffer[1] = GDK_KEY_dead_acute; ++ buffer[2] = 0; ++ ++ ret = gtk_compose_table_compact_check (&table, buffer, 2, &finish, &match, &ch); ++ g_assert_true (ret); ++ g_assert_true (finish); ++ g_assert_true (match); ++ g_assert_true (ch == 0xb4); + } + + static void +-- +GitLab + diff --git a/gtk4.spec b/gtk4.spec index d9a24f3..39cd5d6 100644 --- a/gtk4.spec +++ b/gtk4.spec @@ -17,13 +17,17 @@ Name: gtk4 Version: 4.2.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: GTK graphical user interface library License: LGPLv2+ URL: https://www.gtk.org Source0: https://download.gnome.org/sources/gtk/4.2/gtk-%{version}.tar.xz +# https://bugzilla.redhat.com/show_bug.cgi?id=1946133 +# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3386 +Patch0: 3386.patch + BuildRequires: cups-devel BuildRequires: desktop-file-utils BuildRequires: docbook-style-xsl @@ -207,6 +211,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop %{_mandir}/man1/gtk4-widget-factory.1* %changelog +* Tue Apr 06 2021 Kalev Lember - 4.2.0-3 +- Backport upstream fix for typing apostrophes / single quotes (#1946133) + * Thu Apr 01 2021 Kalev Lember - 4.2.0-2 - Disable vulkan renderer