[geany/geany-osx] af48b3: Use 'quartz' as the default IM module
Jiří Techet
git-noreply at xxxxx
Tue Mar 24 19:34:44 UTC 2020
Branch: refs/heads/master
Author: Jiří Techet <techet at gmail.com>
Committer: Jiří Techet <techet at gmail.com>
Date: Tue, 24 Mar 2020 19:34:44 UTC
Commit: af48b3160668e7f183d358364fe6b396f5df4b9c
https://github.com/geany/geany-osx/commit/af48b3160668e7f183d358364fe6b396f5df4b9c
Log Message:
-----------
Use 'quartz' as the default IM module
Since we are using the latest GTK release which fixes page up/down
when IM is enabled and since the latest patches to Scintilla fixes most
of the problems with IM, it should be safe to use quartz by default.
Modified Paths:
--------------
Launcher/geany/geany/main.m
geany.modules
patches/02-geany_scintilla_im_fix.patch
Modified: Launcher/geany/geany/main.m
2 lines changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -186,7 +186,7 @@ static int run_geany() {
config = @{
THEME_KEY: [ConfigValue valueWithDefault:@"0" comment:@"0: automatic selection based on system settings (requires Geany restart when changed, macOS 10.14+); 1: light; 2: dark; make sure there's no ~/.config/gtk-3.0/settings.ini file, otherwise it overrides the settings made here"],
LOCALE_KEY: [ConfigValue valueWithDefault:@"" comment:@"no value: autodetect; locale string: locale to be used (e.g. en_US.UTF-8)"],
- IM_MODULE_KEY: [ConfigValue valueWithDefault:@"" comment:@"no value: don't use any IM module; module name: use the specified module, e.g. 'quartz' for native macOS behavior (slightly buggy so not enabled by default), for complete list of modules see Geany.app/Contents/Resources/lib/gtk-3.0/3.0.0/immodules, use without the 'im-' prefix"],
+ IM_MODULE_KEY: [ConfigValue valueWithDefault:@"quartz" comment:@"no value: don't use any IM module; module name: use the specified module, e.g. 'quartz' for native macOS behavior, for complete list of modules, see Geany.app/Contents/Resources/lib/gtk-3.0/3.0.0/immodules, use without the 'im-' prefix"],
};
read_config();
Modified: geany.modules
4 lines changed, 2 insertions(+), 2 deletions(-)
===================================================================
@@ -105,7 +105,7 @@
<!-- This patch corresponds to https://github.com/geany/geany/pull/2363 -->
<patch file="https://github.com/geany/geany-osx/raw/master/patches/01-geany_config_shell.patch" strip="1" />
<patch file="https://github.com/geany/geany-osx/raw/master/patches/03-geany_vte_login_shell.patch" strip="1" />
- <!-- TODO: remove once merged upstream-->
+ <!-- TODO: remove once Geany updates to the latest Scintilla -->
<patch file="https://github.com/geany/geany-osx/raw/master/patches/02-geany_scintilla_im_fix.patch" strip="1" />
</branch>
<dependencies>
@@ -123,7 +123,7 @@
<!-- This patch corresponds to https://github.com/geany/geany/pull/2363 -->
<patch file="https://github.com/geany/geany-osx/raw/master/patches/01-geany_config_shell.patch" strip="1" />
<patch file="https://github.com/geany/geany-osx/raw/master/patches/03-geany_vte_login_shell.patch" strip="1" />
- <!-- TODO: remove once merged upstream-->
+ <!-- TODO: remove once Geany updates to the latest Scintilla -->
<patch file="https://github.com/geany/geany-osx/raw/master/patches/02-geany_scintilla_im_fix.patch" strip="1" />
</branch>
<dependencies>
Modified: patches/02-geany_scintilla_im_fix.patch
92 lines changed, 65 insertions(+), 27 deletions(-)
===================================================================
@@ -1,38 +1,76 @@
# HG changeset patch
-# User Jiří Techet <techet at gmail.com>
-# Date 1571822802 -7200
-# Wed Oct 23 11:26:42 2019 +0200
-# Node ID 46e1cd396ba57332ec81628c7365bfc91ed207e1
-# Parent 4f8c3b19095af4f0d333f1b6aa1ff1e3a69d9f4c
-Call SetCandidateWindowPos() inside PreeditChanged()
+# User Zufu Liu
+# Date 1578312404 -39600
+# Mon Jan 06 23:06:44 2020 +1100
+# Node ID 9d42a88f08cc4d336ecdb0c7f1587efdb00bddbe
+# Parent 4dad3058a47731d1f90d09341e546465170fa40f
+Bug [#2135]. Set candidate window position in windowed IME mode.
-On macOS it is possible to long-press a key to get a popup offering to
-select characters with additional accents. This popup should appear
-at the position of the caret. Scintilla however only sets the
-caret position using gtk_im_context_set_cursor_location() for some
-input methods (which exclude im-quartz) so the caret position isn't
-set correctly and macOS always displays the popup at the very bottom
-of the screen.
+diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx
+--- a/gtk/ScintillaGTK.cxx
++++ b/gtk/ScintillaGTK.cxx
+@@ -2432,6 +2432,8 @@
+ try {
+ PreEditString pes(im_context);
+ if (strlen(pes.str) > 0) {
++ SetCandidateWindowPos();
++
+ PangoLayout *layout = gtk_widget_create_pango_layout(PWidget(wText), pes.str);
+ pango_layout_set_attributes(layout, pes.attrs);
+
+# HG changeset patch
+# User Zufu Liu
+# Date 1578312869 -39600
+# Mon Jan 06 23:14:29 2020 +1100
+# Node ID be67578909888e76e81421d32459ace2a59b9d1d
+# Parent 9d42a88f08cc4d336ecdb0c7f1587efdb00bddbe
+Bug [#2135]. Improve location of candidate window.
-Moving SetCandidateWindowPos() into PreeditChanged() seems to fix
-the problem.
+diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx
+--- a/gtk/ScintillaGTK.cxx
++++ b/gtk/ScintillaGTK.cxx
+@@ -2315,8 +2315,10 @@
+ // Composition box accompanies candidate box.
+ const Point pt = PointMainCaret();
+ GdkRectangle imeBox = {0}; // No need to set width
+- imeBox.x = static_cast<gint>(pt.x); // Only need positiion
+- imeBox.y = static_cast<gint>(pt.y) + vs.lineHeight; // underneath the first charater
++ imeBox.x = static_cast<gint>(pt.x);
++ imeBox.y = static_cast<gint>(pt.y + std::max(4, vs.lineHeight/4));
++ // prevent overlapping with current line
++ imeBox.height = vs.lineHeight;
+ gtk_im_context_set_cursor_location(im_context, &imeBox);
+ }
+
+# HG changeset patch
+# User Zufu Liu
+# Date 1578313229 -39600
+# Mon Jan 06 23:20:29 2020 +1100
+# Node ID 59f3c5ced2e22c4ab05082ada5cd356e13c16633
+# Parent be67578909888e76e81421d32459ace2a59b9d1d
+Bug [#2135]. Prevent movement of candidate window while typing.
-diff --git a/scintilla/gtk/ScintillaGTK.cxx b/scintilla/gtk/ScintillaGTK.cxx
---- a/scintilla/gtk/ScintillaGTK.cxx
-+++ b/scintilla/gtk/ScintillaGTK.cxx
-@@ -2442,7 +2442,6 @@
+diff --git a/gtk/ScintillaGTK.cxx b/gtk/ScintillaGTK.cxx
+--- a/gtk/ScintillaGTK.cxx
++++ b/gtk/ScintillaGTK.cxx
+@@ -2388,8 +2388,11 @@
+ return;
+ }
+
+- if (initialCompose)
++ if (initialCompose) {
+ ClearBeforeTentativeStart();
++ }
++
++ SetCandidateWindowPos();
+ pdoc->TentativeStart(); // TentativeActive() from now on
+
+ std::vector<int> indicator = MapImeIndicators(preeditStr.attrs, preeditStr.str);
+@@ -2423,7 +2426,6 @@
}
EnsureCaretVisible();
- SetCandidateWindowPos();
ShowCaretAtCurrentPosition();
} catch (...) {
errorStatus = SC_STATUS_FAILURE;
-@@ -2487,6 +2486,7 @@
- } else {
- sciThis->PreeditChangedWindowedThis();
- }
-+ sciThis->SetCandidateWindowPos();
- }
-
- void ScintillaGTK::StyleSetText(GtkWidget *widget, GtkStyle *, void *) {
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Commits
mailing list