Backport fix for input method preedit issue (MR #1084)
This commit is contained in:
parent
b8a115257d
commit
4ef45d4ea0
60
1084.patch
Normal file
60
1084.patch
Normal file
@ -0,0 +1,60 @@
|
||||
From b18469427e5c19402111de5fe9888bceec0eaacd Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garnacho <carlosg@gnome.org>
|
||||
Date: Wed, 11 Mar 2020 12:32:07 +0100
|
||||
Subject: [PATCH] St: Ensure to update entry hint visibility with IM preedit
|
||||
|
||||
Commit 88ac339774 changed StEntry behavior so the text hint would
|
||||
stay visible while focused, as long as the text buffer is empty.
|
||||
However, IMs that use preedit still should count as "started typing",
|
||||
while the text buffer is still officially empty.
|
||||
|
||||
To fix this, check on st_entry_update_hint_visibility() that there's
|
||||
indeed no preedit buffer before showing the hint. We can't directly
|
||||
listen to internal preedit buffer changes in ClutterText, so handle
|
||||
preedit buffer updates through the ::cursor-changed signal that will
|
||||
be indirectly emitted.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1084
|
||||
---
|
||||
src/st/st-entry.c | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/src/st/st-entry.c b/src/st/st-entry.c
|
||||
index 24fe7434c7..28dddc0537 100644
|
||||
--- a/src/st/st-entry.c
|
||||
+++ b/src/st/st-entry.c
|
||||
@@ -232,6 +232,7 @@ st_entry_update_hint_visibility (StEntry *self)
|
||||
StEntryPrivate *priv = ST_ENTRY_PRIV (self);
|
||||
gboolean hint_visible =
|
||||
priv->hint_actor != NULL &&
|
||||
+ !clutter_text_has_preedit (CLUTTER_TEXT (priv->entry)) &&
|
||||
strcmp (clutter_text_get_text (CLUTTER_TEXT (priv->entry)), "") == 0;
|
||||
|
||||
if (priv->hint_actor)
|
||||
@@ -530,6 +531,13 @@ clutter_text_focus_out_cb (ClutterText *text,
|
||||
clutter_text_set_cursor_visible (text, FALSE);
|
||||
}
|
||||
|
||||
+static void
|
||||
+clutter_text_cursor_changed (ClutterText *text,
|
||||
+ StEntry *entry)
|
||||
+{
|
||||
+ st_entry_update_hint_visibility (entry);
|
||||
+}
|
||||
+
|
||||
static void
|
||||
clutter_text_changed_cb (GObject *object,
|
||||
GParamSpec *pspec,
|
||||
@@ -980,6 +988,9 @@ st_entry_init (StEntry *entry)
|
||||
g_signal_connect (priv->entry, "button-press-event",
|
||||
G_CALLBACK (clutter_text_button_press_event), entry);
|
||||
|
||||
+ g_signal_connect (priv->entry, "cursor-changed",
|
||||
+ G_CALLBACK (clutter_text_cursor_changed), entry);
|
||||
+
|
||||
g_signal_connect (priv->entry, "notify::text",
|
||||
G_CALLBACK (clutter_text_changed_cb), entry);
|
||||
|
||||
--
|
||||
2.24.1
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: gnome-shell
|
||||
Version: 3.36.0
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
Summary: Window management and application launching for GNOME
|
||||
|
||||
License: GPLv2+
|
||||
@ -22,6 +22,10 @@ Patch3: 0002-endSessionDialog-Support-rebooting-into-the-bootload.patch
|
||||
# https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1080
|
||||
Patch4: 1080.patch
|
||||
|
||||
# Fix input method preedit not counting as 'started typing'
|
||||
# https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1084
|
||||
Patch5: 1084.patch
|
||||
|
||||
%define libcroco_version 0.6.8
|
||||
%define eds_version 3.33.1
|
||||
%define gnome_desktop_version 3.35.91
|
||||
@ -232,6 +236,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de
|
||||
%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Extensions-symbolic.svg
|
||||
|
||||
%changelog
|
||||
* Wed Mar 11 2020 Adam Williamson <awilliam@redhat.com> - 3.36.0-3
|
||||
- Backport fix for input method preedit issue (MR #1084)
|
||||
|
||||
* Tue Mar 10 2020 Adam Williamson <awilliam@redhat.com> - 3.36.0-2
|
||||
- Backport fix for ibus failing to start automatically (MR #1080)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user