diff --git a/mingw-w64-gtk3/0005-gdkkeys-win32.c-fix-initialisation-of-key_state-in-u.patch b/mingw-w64-gtk3/0005-gdkkeys-win32.c-fix-initialisation-of-key_state-in-u.patch new file mode 100644 index 0000000000..12a7e17e5f --- /dev/null +++ b/mingw-w64-gtk3/0005-gdkkeys-win32.c-fix-initialisation-of-key_state-in-u.patch @@ -0,0 +1,28 @@ +From 73038543106f8af8f41132f4a245056a94322c92 Mon Sep 17 00:00:00 2001 +From: Jeremy Tan +Date: Fri, 9 Jul 2021 12:35:44 +0800 +Subject: [PATCH] gdkkeys-win32.c: fix initialisation of key_state in + update_keymap + +It apparently worked by chance in the past, but now causes e.g. +alphanumeric characters to be interpreted as half-width katakana +when using the Japanese IME. +--- + gdk/win32/gdkkeys-win32.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/gdk/win32/gdkkeys-win32.c b/gdk/win32/gdkkeys-win32.c +index b4753e1f79..4ef8c4b102 100644 +--- a/gdk/win32/gdkkeys-win32.c ++++ b/gdk/win32/gdkkeys-win32.c +@@ -692,6 +692,7 @@ update_keymap (GdkKeymap *gdk_keymap) + if (hkls_len != keymap->layout_handles->len) + keymap->keysym_tab = g_renew (guint, keymap->keysym_tab, keysym_tab_size); + ++ memset (key_state, 0, sizeof(key_state)); + memset (keymap->keysym_tab, 0, keysym_tab_size); + g_array_set_size (keymap->layout_handles, hkls_len); + g_array_set_size (keymap->options, hkls_len); +-- +2.32.0 + diff --git a/mingw-w64-gtk3/PKGBUILD b/mingw-w64-gtk3/PKGBUILD index 5fc508d74e..da5688e585 100644 --- a/mingw-w64-gtk3/PKGBUILD +++ b/mingw-w64-gtk3/PKGBUILD @@ -4,7 +4,7 @@ _realname=gtk3 pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-gtk-update-icon-cache") pkgver=3.24.29 -pkgrel=1 +pkgrel=2 pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64') @@ -32,6 +32,7 @@ source=("https://download.gnome.org/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar "0002-Revert-Quartz-Set-the-popup-menu-type-hint-before-re.patch" "0003-gtkwindow-Don-t-force-enable-CSD-under-Windows.patch" "0004-Disable-low-level-keyboard-hook.patch" + "0005-gdkkeys-win32.c-fix-initialisation-of-key_state-in-u.patch" "gtk-query-immodules-3.0.hook.in" "gtk-update-icon-cache.hook.in" "gtk-update-icon-cache.script.in") @@ -39,6 +40,7 @@ sha256sums=('f57ec4ade8f15cab0c23a80dcaee85b876e70a8823d9105f067ce335a8268caa' '5cdebb11098d241da955d4662904215275fa7a54d52877cc38c4ff4a3087fafd' 'b84a7f38f0af80680bee143d431f2a7bae53899efb337de0f67a1b4d9b59fa02' 'e553083298495f9581ae1454b1046a22b83e81862311b30de984057eec859708' + 'a95bc0b5f5ca4fbbe8f74bad633b9cbe9d79c7fd280be82088454ecb2c31b300' 'adbe57eb726d882bba7a031ab8fb1788e7cd03cbf713823fd0f99d3cb380b97c' '56a566739c4f153f3c924b2bfe5ec7aaca469e15c023810cd7c5f57036d1a258' 'b6306c6e117e879a60febc8e398a5a181325255a2e2c785c77222664b683f9dd') @@ -53,6 +55,9 @@ prepare() { patch -p1 -i "${srcdir}"/0003-gtkwindow-Don-t-force-enable-CSD-under-Windows.patch patch -p1 -i "${srcdir}"/0004-Disable-low-level-keyboard-hook.patch + + # https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3741 + patch -p1 -i "${srcdir}"/0005-gdkkeys-win32.c-fix-initialisation-of-key_state-in-u.patch } build() {