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: Connect to button-press-event only with IBUS_ENGINE_PREEDIT_COMMIT
Date: Sun, 31 May 2026 02:07:04 GMT [thread overview]
Message-ID: <178019322492.1.10556351075250216481.rpms-ibus-6de984296be6@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/ibus
Branch : autotool
Commit : 6de984296be6c02d7476b388557d58c9ad9dea5e
Author : Takao Fujiwara <tfujiwar@redhat.com>
Date : 2018-12-20T17:24:16+09:00
Stats : +241/-1 in 2 file(s)
URL : https://src.fedoraproject.org/rpms/ibus/c/6de984296be6c02d7476b388557d58c9ad9dea5e?branch=autotool
Log:
Connect to button-press-event only with IBUS_ENGINE_PREEDIT_COMMIT
Use ISO 639-3 names instead of 639
---
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
index 893438b..7125c44 100644
--- a/ibus-HEAD.patch
+++ b/ibus-HEAD.patch
@@ -2050,3 +2050,239 @@ index ed7fea6e..ab7ff88a 100644
--
2.19.1
+From 1cd5254811259befe50c8bd81584d1bfe2c63ed0 Mon Sep 17 00:00:00 2001
+From: glasseyes <dglassey@gmail.com>
+Date: Mon, 17 Dec 2018 20:20:11 +0900
+Subject: [PATCH] src: use iso 639-3 to have names for more languages
+
+Keyman and others support them so they shouldn't be in "Other"
+
+BUG=https://github.com/ibus/ibus/issues/2064
+---
+ ibus/lang.py | 8 ++++----
+ src/ibusutil.c | 16 ++++++++--------
+ 2 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/ibus/lang.py b/ibus/lang.py
+index 3b3f552f..64324bd8 100644
+--- a/ibus/lang.py
++++ b/ibus/lang.py
+@@ -36,7 +36,7 @@ def get_language_name(_locale):
+ lang = lang.lower()
+ if lang in __languages_dict:
+ lang = __languages_dict[lang]
+- lang = gettext.dgettext("iso_639", lang)
++ lang = gettext.dgettext("iso_639-3", lang)
+ else:
+ lang = _(u"Other")
+ lang = gettext.dgettext("ibus", lang)
+@@ -46,7 +46,7 @@ def __start_element(name, attrs):
+ global __languages_dict
+ try:
+ name = attrs[u"name"]
+- for attr_name in (u"iso_639_2B_code", u"iso_639_2T_code", u"iso_639_1_code"):
++ for attr_name in (u"id", u"part1_code", u"part2_code"):
+ if attr_name in attrs:
+ attr_value = attrs[attr_name]
+ __languages_dict[attr_value] = name
+@@ -62,12 +62,12 @@ def __char_data(data):
+ def __load_lang():
+ import os
+ import _config
+- iso_639_xml = os.path.join(_config.ISOCODES_PREFIX, "share/xml/iso-codes/iso_639.xml")
++ iso_639_3_xml = os.path.join(_config.ISOCODES_PREFIX, "share/xml/iso-codes/iso_639-3.xml")
+ p = xml.parsers.expat.ParserCreate()
+ p.StartElementHandler = __start_element
+ p.EndElementHandler = __end_element
+ p.CharacterDataHandler = __char_data
+- p.ParseFile(file(iso_639_xml))
++ p.ParseFile(file(iso_639_3_xml))
+
+ __load_lang()
+
+diff --git a/src/ibusutil.c b/src/ibusutil.c
+index 15e36f80..fd1da006 100644
+--- a/src/ibusutil.c
++++ b/src/ibusutil.c
+@@ -45,7 +45,7 @@ _iso_codes_parse_xml_node (XMLNode *node)
+ GList *p;
+ g_assert (node);
+
+- if (G_UNLIKELY (g_strcmp0 (node->name, "iso_639_entries") != 0)) {
++ if (G_UNLIKELY (g_strcmp0 (node->name, "iso_639_3_entries") != 0)) {
+ return FALSE;
+ }
+
+@@ -57,9 +57,9 @@ _iso_codes_parse_xml_node (XMLNode
+ const gchar *key;
+ gchar *value;
+ } entries[] = {
+- { "iso_639_2B_code", NULL },
+- { "iso_639_2T_code", NULL },
+- { "iso_639_1_code", NULL },
++ { "id", NULL },
++ { "part1_code", NULL },
++ { "part2_code", NULL },
+ };
+
+ if (sub_node->attributes == NULL) {
+@@ -99,14 +99,14 @@ _load_lang()
+ struct stat buf;
+
+ #ifdef ENABLE_NLS
+- bindtextdomain ("iso_639", GLIB_LOCALE_DIR);
+- bind_textdomain_codeset ("iso_639", "UTF-8");
++ bindtextdomain ("iso_639-3", GLIB_LOCALE_DIR);
++ bind_textdomain_codeset ("iso_639-3", "UTF-8");
+ #endif
+
+ __languages_dict = g_hash_table_new_full (g_str_hash,
+ g_str_equal, g_free, g_free);
+ filename = g_build_filename (ISOCODES_PREFIX,
+- "share/xml/iso-codes/iso_639.xml",
++ "share/xml/iso-codes/iso_639-3.xml",
+ NULL);
+ if (g_stat (filename, &buf) != 0) {
+ g_warning ("Can not get stat of file %s", filename);
+@@ -157,7 +157,7 @@ ibus_get_language_name (const gchar *_lo
+ if (g_strcmp0 (retval, "Other") == 0)
+ return dgettext (GETTEXT_PACKAGE, N_("Other"));
+ else
+- return dgettext ("iso_639", retval);
++ return dgettext ("iso_639-3", retval);
+ #else
+ return retval;
+ #endif
+--
+2.19.1
+
+From 9ae2d4658fff3d1e7262fb4fb7ca9ce1af0a27ec Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Thu, 20 Dec 2018 16:40:31 +0900
+Subject: [PATCH] client/gtk2: Use button-press-event only with
+ IBUS_ENGINE_PREEDIT_COMMIT
+
+BUG=https://github.com/ibus/ibus/issues/1980
+---
+ client/gtk2/ibusimcontext.c | 66 ++++++++++++++++++++++++-------------
+ 1 file changed, 43 insertions(+), 23 deletions(-)
+
+diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
+index ab7ff88a..f9310867 100644
+--- a/client/gtk2/ibusimcontext.c
++++ b/client/gtk2/ibusimcontext.c
+@@ -72,6 +72,8 @@ struct _IBusIMContext {
+ /* cancellable */
+ GCancellable *cancellable;
+ GQueue *events_queue;
++
++ gboolean use_button_press_event;
+ };
+
+ struct _IBusIMContextClass {
+@@ -1109,6 +1111,7 @@ ibus_im_context_get_preedit_string (GtkIMContext *context,
+ }
+
+
++#if !GTK_CHECK_VERSION (3, 93, 0)
+ static gboolean
+ ibus_im_context_button_press_event_cb (GtkWidget *widget,
+ GdkEventButton *event,
+@@ -1124,13 +1127,37 @@ ibus_im_context_button_press_event_cb (GtkWidget *widget,
+ return FALSE;
+ }
+
++static void
++_connect_button_press_event (IBusIMContext *ibusimcontext,
++ gboolean do_connect)
++{
++ GtkWidget *widget = NULL;
++
++ g_assert (ibusimcontext->client_window);
++ gdk_window_get_user_data (ibusimcontext->client_window,
++ (gpointer *)&widget);
++ /* firefox needs GtkWidget instead of GtkWindow */
++ if (GTK_IS_WIDGET (widget)) {
++ if (do_connect) {
++ g_signal_connect (
++ widget,
++ "button-press-event",
++ G_CALLBACK (ibus_im_context_button_press_event_cb),
++ ibusimcontext);
++ } else {
++ g_signal_handlers_disconnect_by_func (
++ widget,
++ G_CALLBACK (ibus_im_context_button_press_event_cb),
++ ibusimcontext);
++ }
++ }
++}
++#endif
++
+ static void
+ ibus_im_context_set_client_window (GtkIMContext *context, GdkWindow *client)
+ {
+ IBusIMContext *ibusimcontext;
+-#if !GTK_CHECK_VERSION (3, 93, 0)
+- GtkWidget *widget;
+-#endif
+
+ IDEBUG ("%s", __FUNCTION__);
+
+@@ -1138,15 +1165,8 @@ ibus_im_context_set_client_window (GtkIMContext *context, GdkWindow *client)
+
+ if (ibusimcontext->client_window) {
+ #if !GTK_CHECK_VERSION (3, 93, 0)
+- gdk_window_get_user_data (ibusimcontext->client_window,
+- (gpointer *)&widget);
+- /* firefox needs GtkWidget instead of GtkWindow */
+- if (GTK_IS_WIDGET (widget)) {
+- g_signal_handlers_disconnect_by_func (
+- widget,
+- (GCallback)ibus_im_context_button_press_event_cb,
+- ibusimcontext);
+- }
++ if (ibusimcontext->use_button_press_event)
++ _connect_button_press_event (ibusimcontext, FALSE);
+ #endif
+ g_object_unref (ibusimcontext->client_window);
+ ibusimcontext->client_window = NULL;
+@@ -1155,17 +1175,8 @@ ibus_im_context_set_client_window (GtkIMContext *context, GdkWindow *client)
+ if (client != NULL) {
+ ibusimcontext->client_window = g_object_ref (client);
+ #if !GTK_CHECK_VERSION (3, 93, 0)
+- gdk_window_get_user_data (ibusimcontext->client_window,
+- (gpointer *)&widget);
+-
+- /* firefox needs GtkWidget instead of GtkWindow */
+- if (GTK_IS_WIDGET (widget)) {
+- g_signal_connect (
+- widget,
+- "button-press-event",
+- G_CALLBACK (ibus_im_context_button_press_event_cb),
+- ibusimcontext);
+- }
++ if (ibusimcontext->use_button_press_event)
++ _connect_button_press_event (ibusimcontext, TRUE);
+ #endif
+ }
+ if (ibusimcontext->slave)
+@@ -1631,6 +1642,15 @@ _ibus_context_update_preedit_text_cb (IBusInputContext *ibuscontext,
+ ibusimcontext->preedit_attrs = NULL;
+ }
+
++ if (!ibusimcontext->use_button_press_event &&
++ mode == IBUS_ENGINE_PREEDIT_COMMIT) {
++#if !GTK_CHECK_VERSION (3, 93, 0)
++ if (ibusimcontext->client_window)
++ _connect_button_press_event (ibusimcontext, TRUE);
++#endif
++ ibusimcontext->use_button_press_event = TRUE;
++ }
++
+ str = text->text;
+ ibusimcontext->preedit_string = g_strdup (str);
+ if (text->attrs) {
+--
+2.19.1
+
diff --git a/ibus.spec b/ibus.spec
index 6ca8fc1..5bb5ab2 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -35,7 +35,7 @@
Name: ibus
Version: 1.5.19
-Release: 11%{?dist}
+Release: 12%{?dist}
Summary: Intelligent Input Bus for Linux OS
License: LGPLv2+
Group: System Environment/Libraries
@@ -436,6 +436,10 @@ dconf update || :
%{_datadir}/gtk-doc/html/*
%changelog
+* Thu Dec 20 2018 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.19-12
+- Use ISO 639-3 names instead of 639
+- Connect to button-press-event only with IBUS_ENGINE_PREEDIT_COMMIT
+
* Wed Dec 12 2018 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.19-11
- Fix SEGV on mouse clicks when ibus-daemon not running
reply other threads:[~2026-05-31 2:07 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=178019322492.1.10556351075250216481.rpms-ibus-6de984296be6@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