From 26dd17feaa66b942fd2f1f582615041197c5e105 Mon Sep 17 00:00:00 2001 From: Kévin Le Gouguec Date: Sun, 2 Jul 2023 16:40:21 +0200 Subject: Add notes on the PGTK S-SPC vs SPC confusion --- itches/emacs/tracker.org | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'itches/emacs/tracker.org') 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 -- cgit v1.2.3