• Suyuan Chang's avatar
    macOS: Fix bug that entry cannot press and hold a key to input accented character. · cfad43b8
    Suyuan Chang authored
    There're two issues in GdkQuartzView's NSTextInputClient implementation
    causes this bug.
    
    1. The -(NSRange)selectedRange should not return [NSNotFound, 0] if
       there's no selection. The accented character window will not show
       if returned NSRange's location is NSNotFound. Instead of that, the
       NSRange's location should be the caret position in the text input
       buffer.
    
    2. The accented character window will invoke
       -(void)insertText:replacementRange: with non-empty replacement
       range, to replace non-accented character with accented character
       after user select it from accented character window. This case is
       not implemented in original code. Here I use another gobject data
       to pass the information to input module and convert it into
       'delete-surrounding' event.
    
    Besides these, there's another bug cause gtk_im_context_filter_keypress()
    return wrong value while user press and hold a key. When user press
    and hold a key, the accented character window will consume the
    repeating key down event. Is this case, gtk_im_context_filter_keypress()
    should return TRUE, indicate the key press is filtered by input
    method module. But it will return FALSE because
    gtk_im_context_filter_keypress() assume that every key press event
    will generate some text from input method module.
    
    Fixes #1618
    cfad43b8
Name
Last commit
Last update
.gitlab-ci Loading commit data...
build Loading commit data...
build-aux/flatpak Loading commit data...
demos Loading commit data...
docs Loading commit data...
examples Loading commit data...
gdk Loading commit data...
gtk Loading commit data...
libgail-util Loading commit data...
m4 Loading commit data...
m4macros Loading commit data...
modules Loading commit data...
po Loading commit data...
po-properties Loading commit data...
tests Loading commit data...
testsuite Loading commit data...
.gitlab-ci.yml Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
HACKING Loading commit data...
INSTALL.in Loading commit data...
MAINTAINERS Loading commit data...
Makefile.am Loading commit data...
Makefile.decl Loading commit data...
NEWS Loading commit data...
NEWS.pre-1-0 Loading commit data...
README.commits Loading commit data...
README.in Loading commit data...
README.win32 Loading commit data...
acinclude.m4 Loading commit data...
autogen.sh Loading commit data...
config.h.win32.in Loading commit data...
configure.ac Loading commit data...
gail-3.0.pc.in Loading commit data...
gdk-3.0.pc.in Loading commit data...
git.mk Loading commit data...
gtk+-3.0.pc.in Loading commit data...
gtk+-unix-print-3.0.pc.in Loading commit data...
gtk+.doap Loading commit data...
gtk-zip.sh.in Loading commit data...
make-pot Loading commit data...
makefile.msc Loading commit data...
sanitize-la.sh Loading commit data...