public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/ibus] autotool: - Fixed Bug 1380675 - Emoji leaves the candidates of @laugh when @laughing
@ 2026-05-31  2:06 Takao Fujiwara
  0 siblings, 0 replies; only message in thread
From: Takao Fujiwara @ 2026-05-31  2:06 UTC (permalink / raw)
  To: git-commits

            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.

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-05-31  2:06 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-31  2:06 [rpms/ibus] autotool: - Fixed Bug 1380675 - Emoji leaves the candidates of @laugh when @laughing Takao Fujiwara

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox