public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Takao Fujiwara <tfujiwar@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/ibus] autotool: - Fixed Bug 1380675 - Emoji leaves the candidates of @laugh when @laughing
Date: Sun, 31 May 2026 02:06:27 GMT [thread overview]
Message-ID: <178019318735.1.4497617594871274177.rpms-ibus-bea250b789d0@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/ibus
Branch : autotool
Commit : bea250b789d0bcde0a710d3cf355365201010910
Author : Takao Fujiwara <tfujiwar@redhat.com>
Date : 2016-10-06T16:26:26+09:00
Stats : +287/-1 in 2 file(s)
URL : https://src.fedoraproject.org/rpms/ibus/c/bea250b789d0bcde0a710d3cf355365201010910?branch=autotool
Log:
- Fixed Bug 1380675 - Emoji leaves the candidates of @laugh when @laughing
- Fixed Bug 1380690 - User is not able to select emojis from digit keys
- Fixed Bug 1380691 - PageUp PageDown buttons on emoji lookup not working
---
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
index ed0dafa..d08b218 100644
--- a/ibus-HEAD.patch
+++ b/ibus-HEAD.patch
@@ -111,3 +111,284 @@ index 6d5fd81..ea960b8 100644
--
2.7.4
+From e795eda1a3b054e6fdc921bfe04c83733761905f Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Thu, 6 Oct 2016 15:28:24 +0900
+Subject: [PATCH 1/3] src: Hide lookup table if emoji annotation does not hit
+
+If emoji annotation hits "aaa" but not "aaab", hide the lookup
+window with "aaab".
+Also hide the lookup window with Escape key.
+
+BUG=rhbz#1380675
+
+Review URL: https://codereview.appspot.com/307400043
+---
+ src/ibusenginesimple.c | 14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
+index 8efe5a9..b22b06f 100644
+--- a/src/ibusenginesimple.c
++++ b/src/ibusenginesimple.c
+@@ -1018,6 +1018,10 @@ ibus_engine_simple_process_key_event (IBusEngine *engine,
+ }
+ else if (is_escape) {
+ ibus_engine_simple_reset (engine);
++ if (priv->lookup_table != NULL && priv->lookup_table_visible) {
++ priv->lookup_table_visible = FALSE;
++ ibus_engine_simple_update_lookup_and_aux_table (simple);
++ }
+ return TRUE;
+ }
+
+@@ -1165,6 +1169,10 @@ ibus_engine_simple_process_key_event (IBusEngine *engine,
+ }
+ else if (is_escape) {
+ ibus_engine_simple_reset (engine);
++ if (priv->lookup_table != NULL && priv->lookup_table_visible) {
++ priv->lookup_table_visible = FALSE;
++ ibus_engine_simple_update_lookup_and_aux_table (simple);
++ }
+ return TRUE;
+ }
+ } else {
+@@ -1243,8 +1251,10 @@ ibus_engine_simple_process_key_event (IBusEngine *engine,
+ priv->lookup_table_visible = FALSE;
+ update_lookup_table = TRUE;
+ }
+- }
+- else if (check_emoji_table (simple, n_compose, -1)) {
++ } else if (check_emoji_table (simple, n_compose, -1)) {
++ update_lookup_table = TRUE;
++ } else {
++ priv->lookup_table_visible = FALSE;
+ update_lookup_table = TRUE;
+ }
+ }
+--
+2.7.4
+
+From 4d86e59d0245df6d3a6aa1a32cdf7702b6dc7f0d Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Thu, 6 Oct 2016 15:35:03 +0900
+Subject: [PATCH 2/3] src: Enable to type digit to commit emoji on lookup
+ window
+
+Enables to commit an emoji on the lookup window by a digit key.
+Before this patch, Ctrl-Shift-U, "11" shows emojis of 11 clock.
+After this patch, Ctrl-Shift-U, "11" commits an emoji of 1 clock.
+Probably Ctrl-Shift-U, "clock" can be a workaround.
+
+BUG=rhbz#1380690
+R=Shawn.P.Huang@gmail.com
+
+Review URL: https://codereview.appspot.com/309640043
+---
+ src/ibusenginesimple.c | 80 ++++++++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 78 insertions(+), 2 deletions(-)
+
+diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
+index b22b06f..23e1c9d 100644
+--- a/src/ibusenginesimple.c
++++ b/src/ibusenginesimple.c
+@@ -901,6 +901,66 @@ ibus_engine_simple_update_lookup_and_aux_table (IBusEngineSimple *simple)
+ }
+
+ static gboolean
++ibus_engine_simple_if_in_range_of_lookup_table (IBusEngineSimple *simple,
++ guint keyval)
++{
++ IBusEngineSimplePrivate *priv;
++ int index, candidates, cursor_pos, cursor_in_page, page_size;
++
++ priv = simple->priv;
++
++ if (priv->lookup_table == NULL || !priv->lookup_table_visible)
++ return FALSE;
++ if (keyval < IBUS_KEY_0 || keyval > IBUS_KEY_9)
++ return FALSE;
++ if (keyval == IBUS_KEY_0)
++ keyval = IBUS_KEY_9 + 1;
++ index = keyval - IBUS_KEY_1;
++ candidates =
++ ibus_lookup_table_get_number_of_candidates (priv->lookup_table);
++ cursor_pos = ibus_lookup_table_get_cursor_pos (priv->lookup_table);
++ cursor_in_page = ibus_lookup_table_get_cursor_in_page (priv->lookup_table);
++ page_size = ibus_lookup_table_get_page_size (priv->lookup_table);
++ if (index > ((candidates - (cursor_pos - cursor_in_page)) % page_size))
++ return FALSE;
++ return TRUE;
++}
++
++static void
++ibus_engine_simple_set_number_on_lookup_table (IBusEngineSimple *simple,
++ guint keyval,
++ int n_compose)
++{
++ IBusEngineSimplePrivate *priv;
++ int index, cursor_pos, cursor_in_page, real_index;
++
++ priv = simple->priv;
++
++ if (keyval == IBUS_KEY_0)
++ keyval = IBUS_KEY_9 + 1;
++ index = keyval - IBUS_KEY_1;
++ cursor_pos = ibus_lookup_table_get_cursor_pos (priv->lookup_table);
++ cursor_in_page = ibus_lookup_table_get_cursor_in_page (priv->lookup_table);
++ real_index = cursor_pos - cursor_in_page + index;
++
++ ibus_lookup_table_set_cursor_pos (priv->lookup_table, real_index);
++ check_emoji_table (simple, n_compose, real_index);
++ priv->lookup_table_visible = FALSE;
++ ibus_engine_simple_update_lookup_and_aux_table (simple);
++
++ if (priv->tentative_emoji && *priv->tentative_emoji) {
++ ibus_engine_simple_commit_str (simple, priv->tentative_emoji);
++ priv->compose_buffer[0] = 0;
++ } else {
++ g_clear_pointer (&priv->tentative_emoji, g_free);
++ priv->in_emoji_sequence = FALSE;
++ priv->compose_buffer[0] = 0;
++ }
++
++ ibus_engine_simple_update_preedit_text (simple);
++}
++
++static gboolean
+ ibus_engine_simple_process_key_event (IBusEngine *engine,
+ guint keyval,
+ guint keycode,
+@@ -1162,7 +1222,15 @@ ibus_engine_simple_process_key_event (IBusEngine *engine,
+ }
+ } else if (priv->in_emoji_sequence) {
+ if (printable_keyval) {
+- priv->compose_buffer[n_compose++] = printable_keyval;
++ if (!ibus_engine_simple_if_in_range_of_lookup_table (simple,
++ printable_keyval)) {
++ /* digit keyval can be an index on the current lookup table
++ * but it also can be a part of an emoji annotation.
++ * E.g. "1" and "2" are indexes of emoji "1".
++ * "100" is an annotation of the emoji "100".
++ */
++ priv->compose_buffer[n_compose++] = printable_keyval;
++ }
+ }
+ else if (is_space && (modifiers & IBUS_SHIFT_MASK)) {
+ priv->compose_buffer[n_compose++] = IBUS_KEY_space;
+@@ -1243,7 +1311,15 @@ ibus_engine_simple_process_key_event (IBusEngine *engine,
+ }
+
+ if (!update_lookup_table) {
+- if (is_hex_end && !is_space) {
++ if (ibus_engine_simple_if_in_range_of_lookup_table (simple,
++ keyval)) {
++ ibus_engine_simple_set_number_on_lookup_table (
++ simple,
++ keyval,
++ n_compose);
++ return TRUE;
++ }
++ else if (is_hex_end && !is_space) {
+ if (priv->lookup_table) {
+ int index = (int) ibus_lookup_table_get_cursor_pos (
+ priv->lookup_table);
+--
+2.7.4
+
+From faf5e3c56d746d2f171618d552cff9149bb1d952 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Thu, 6 Oct 2016 15:37:25 +0900
+Subject: [PATCH 3/3] src: Enable PageUp, PageDown, CandidateClick buttons with
+ emoji lookup
+
+BUG=rhbz#1380691
+
+Review URL: https://codereview.appspot.com/312760043
+---
+ src/ibusenginesimple.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 55 insertions(+)
+
+diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
+index 23e1c9d..65c33a0 100644
+--- a/src/ibusenginesimple.c
++++ b/src/ibusenginesimple.c
+@@ -107,6 +107,13 @@ static gboolean ibus_engine_simple_process_key_event
+ guint keyval,
+ guint keycode,
+ guint modifiers);
++static void ibus_engine_simple_page_down (IBusEngine *engine);
++static void ibus_engine_simple_page_up (IBusEngine *engine);
++static void ibus_engine_simple_candidate_clicked
++ (IBusEngine *engine,
++ guint index,
++ guint button,
++ guint state);
+ static void ibus_engine_simple_commit_char (IBusEngineSimple *simple,
+ gunichar ch);
+ static void ibus_engine_simple_commit_str (IBusEngineSimple *simple,
+@@ -128,6 +135,10 @@ ibus_engine_simple_class_init (IBusEngineSimpleClass *class)
+ engine_class->reset = ibus_engine_simple_reset;
+ engine_class->process_key_event
+ = ibus_engine_simple_process_key_event;
++ engine_class->page_down = ibus_engine_simple_page_down;
++ engine_class->page_up = ibus_engine_simple_page_up;
++ engine_class->candidate_clicked
++ = ibus_engine_simple_candidate_clicked;
+
+ g_type_class_add_private (class, sizeof (IBusEngineSimplePrivate));
+ }
+@@ -1395,6 +1406,50 @@ ibus_engine_simple_process_key_event (IBusEngine *engine,
+ return no_sequence_matches (simple, n_compose, keyval, keycode, modifiers);
+ }
+
++static void
++ibus_engine_simple_page_down (IBusEngine *engine)
++{
++ IBusEngineSimple *simple = (IBusEngineSimple *)engine;
++ IBusEngineSimplePrivate *priv = simple->priv;
++ if (priv->lookup_table == NULL)
++ return;
++ ibus_lookup_table_page_down (priv->lookup_table);
++ ibus_engine_simple_update_lookup_and_aux_table (simple);
++}
++
++static void
++ibus_engine_simple_page_up (IBusEngine *engine)
++{
++ IBusEngineSimple *simple = (IBusEngineSimple *)engine;
++ IBusEngineSimplePrivate *priv = simple->priv;
++ if (priv->lookup_table == NULL)
++ return;
++ ibus_lookup_table_page_up (priv->lookup_table);
++ ibus_engine_simple_update_lookup_and_aux_table (simple);
++}
++
++static void
++ibus_engine_simple_candidate_clicked (IBusEngine *engine,
++ guint index,
++ guint button,
++ guint state)
++{
++ IBusEngineSimple *simple = (IBusEngineSimple *)engine;
++ IBusEngineSimplePrivate *priv = simple->priv;
++ guint keyval;
++ gint n_compose = 0;
++
++ if (priv->lookup_table == NULL || !priv->lookup_table_visible)
++ return;
++ if (index == 9)
++ keyval = IBUS_KEY_0;
++ else
++ keyval = IBUS_KEY_1 + index;
++ while (priv->compose_buffer[n_compose] != 0)
++ n_compose++;
++ ibus_engine_simple_set_number_on_lookup_table (simple, keyval, n_compose);
++}
++
+ void
+ ibus_engine_simple_add_table (IBusEngineSimple *simple,
+ const guint16 *data,
+--
+2.7.4
+
diff --git a/ibus.spec b/ibus.spec
index cf85fd4..d3bd19b 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -28,7 +28,7 @@
Name: ibus
Version: 1.5.14
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Intelligent Input Bus for Linux OS
License: LGPLv2+
Group: System Environment/Libraries
@@ -424,6 +424,11 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &> /dev/null || :
%{_datadir}/gtk-doc/html/*
%changelog
+* Thu Oct 06 2016 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.14-3
+- Fixed Bug 1380675 - Emoji leaves the candidates of @laugh when @laughing
+- Fixed Bug 1380690 - User is not able to select emojis from digit keys
+- Fixed Bug 1380691 - PageUp PageDown buttons on emoji lookup not working
+
* Fri Sep 09 2016 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.14-2
- Fixed radio button on PropertyPanel.
- Updated translations.
reply other threads:[~2026-05-31 2:06 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178019318735.1.4497617594871274177.rpms-ibus-bea250b789d0@fedoraproject.org \
--to=tfujiwar@redhat.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox