summaryrefslogtreecommitdiff
path: root/itches/emacs/tracker.org
diff options
context:
space:
mode:
authorKévin Le Gouguec <kevin.legouguec@gmail.com>2023-07-02 16:40:21 +0200
committerKévin Le Gouguec <kevin.legouguec@gmail.com>2023-07-02 16:40:21 +0200
commit26dd17feaa66b942fd2f1f582615041197c5e105 (patch)
treea66707713215fe66907cf4bb13bf6ddc49f7fa87 /itches/emacs/tracker.org
parent763bcd72998d58e69afaa25e231e807882f356ec (diff)
downloadmemory-leaks-26dd17feaa66b942fd2f1f582615041197c5e105.tar.xz
Add notes on the PGTK S-SPC vs SPC confusion
Diffstat (limited to 'itches/emacs/tracker.org')
-rw-r--r--itches/emacs/tracker.org36
1 files changed, 36 insertions, 0 deletions
diff --git a/itches/emacs/tracker.org b/itches/emacs/tracker.org
index 122c311..96c6bc7 100644
--- a/itches/emacs/tracker.org
+++ b/itches/emacs/tracker.org
@@ -63,6 +63,42 @@ when ranking fonts; it'd be nice if Emacs's ~find-font~ did so too.
:Role: author
:PatchApplied: t
:END:
+***** TODO [[bug:56653]] =S-SPC= recognized as =SPC=
+Reported multiple times; see merged bug reports. Something in the
+bowels of =GtkIMContext=. Emacs's PGTK code does this:
+
+#+begin_src c
+/* pgtkterm.c: key_press_event */
+ if (pgtk_im_filter_keypress (f, &event->key))
+ return TRUE;
+ /* else keep processing */
+#+end_src
+
+Input methods seem to accept =S-SPC= and call
+=pgtkim.c:im_context_commit_cb= with the string =" "=, thereby losing
+the information that we have a shift modifier.
+
+Debugging notes on Debian 11 (GTK 3.24.24) using [[./pgtk-shift-space.c][this small
+reproducer]]:
+
+#+begin_src sh
+gcc -g $(pkg-config --cflags gtk+-3.0) pgtk-shift-space.c $(pkg-config --libs gtk+-3.0)
+export DEBUGINFOD_URLS=https://debuginfod.debian.net
+#+end_src
+
+Then break on =show_commit=, and help GDB find GTK code with
+~directory […gtk-3.24.24 checkout…]/gtk~.
+
+=gtkimcontextsimple.c:no_sequence_matches= is the last frame to know
+about the =GdkEventKey= event that includes the shift modifier; so
+presumably that function should refrain from calling
+=gtkimcontextsimple.c:gtk_im_context_simple_commit_char= if it sees
+modifiers?
+
+Or =pgtkim.c:im_context_commit_cb= should check its context and
+refrain from enqueueing =" "=; there is no straightforward way for
+that function to signal =pgtkterm.c:key_press_event= that the IM
+commit was "aborted" though…
**** DONE [[bug:41584]] org-indent-mode's line-prefix text property flickers near overlays
:PROPERTIES:
:Role: author