#30 test1
Closed 2 days ago by fujiwara. Opened 2 years ago by fujiwara.
rpms/ fujiwara/ibus test4  into  f35

file modified
+1
@@ -60,3 +60,4 @@ 

  /ibus-1.5.23.tar.gz

  /ibus-1.5.24.tar.gz

  /ibus-1.5.25.tar.gz

+ /ibus-1.5.26.tar.gz

file modified
+189 -1087
@@ -1,1141 +1,243 @@ 

- From 571e3b6e4f386abf12d3db70b9468e092c8d72bd Mon Sep 17 00:00:00 2001

- From: Alynx Zhou <alynx.zhou@gmail.com>

- Date: Tue, 24 Aug 2021 10:12:52 +0800

- Subject: [PATCH] client/gtk2/ibusimcontext: Fix wrong cursor location in gtk3

-  apps

- 

- If you apply this patch in your tarball, please also apply this to

- client/gtk3/ibusimcontext.c besides client/gtk2/ibusimcontext.c .

- 

- BUG=https://github.com/ibus/ibus/issues/2337

- ---

-  client/gtk2/ibusimcontext.c | 5 ++++-

-  1 file changed, 4 insertions(+), 1 deletion(-)

- 

- diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c

- index da9a402f..b1ccede9 100644

- --- a/client/gtk2/ibusimcontext.c

- +++ b/client/gtk2/ibusimcontext.c

- @@ -1497,7 +1497,10 @@ _set_cursor_location_internal (IBusIMContext *ibusimcontext)

-  

-  #if GTK_CHECK_VERSION (3, 98, 4)

-  #elif GTK_CHECK_VERSION (2, 91, 0)

- -    area.y += gdk_window_get_height (ibusimcontext->client_window);

- +    if (area.x == -1 && area.y == -1 && area.width == 0 && area.height == 0) {

- +        area.x = 0;

- +        area.y += gdk_window_get_height (ibusimcontext->client_window);

- +    }

-  #else

-      if (area.x == -1 && area.y == -1 && area.width == 0 && area.height == 0) {

-          gint w, h;

- -- 

- 2.31.1

- 

- From 5487a6baa4b22605ba8197ca1a0fa43c91d57786 Mon Sep 17 00:00:00 2001

+ From 1b5b9548ad418765717ce1fbdc70b3f3eaae67fc Mon Sep 17 00:00:00 2001

  From: fujiwarat <takao.fujiwara1@gmail.com>

- Date: Mon, 6 Sep 2021 20:23:59 +0900

- Subject: [PATCH] client/gtk2/ibusimcontext: Implement clear preedit for GTK4

- 

- IBus IM module uses synchornized key processes for GTK4 and the timing

- of the GTK reset siginal may work with focus-in/out between windows.

- (I don't test GTK4 firefox and terminal yet and the verification is not

- completed.)

- So ibus_im_context_clear_preedit_text() is now called with the GTK4 reset

- siginal.

- ibus_im_context_clear_preedit_text() works with ibus-setup-anthy ->

- "Conversion" tab -> "Behavior on Focus Out" pull down menu.

- 

- BUG=https://github.com/ibus/ibus/issues/2334

- ---

-  client/gtk2/ibusimcontext.c | 9 ++++++---

-  1 file changed, 6 insertions(+), 3 deletions(-)

- 

- diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c

- index b1ccede9..e12be45d 100644

- --- a/client/gtk2/ibusimcontext.c

- +++ b/client/gtk2/ibusimcontext.c

- @@ -1270,6 +1270,8 @@ ibus_im_context_reset (GtkIMContext *context)

-           * IBus uses button-press-event instead until GTK is fixed.

-           * https://gitlab.gnome.org/GNOME/gtk/issues/1534

-           */

- +        if (_use_sync_mode)

- +            ibus_im_context_clear_preedit_text (ibusimcontext);

-          ibus_input_context_reset (ibusimcontext->ibuscontext);

-      }

-      gtk_im_context_reset (ibusimcontext->slave);

- @@ -1383,7 +1385,7 @@ ibus_im_context_set_client_window (GtkIMContext *context,

-  

-      if (ibusimcontext->client_window) {

-  #if !GTK_CHECK_VERSION (3, 98, 4)

- -        if (ibusimcontext->use_button_press_event)

- +        if (ibusimcontext->use_button_press_event && !_use_sync_mode)

-              _connect_button_press_event (ibusimcontext, FALSE);

-  #endif

-          g_object_unref (ibusimcontext->client_window);

- @@ -1393,7 +1395,7 @@ ibus_im_context_set_client_window (GtkIMContext *context,

-      if (client != NULL) {

-          ibusimcontext->client_window = g_object_ref (client);

-  #if !GTK_CHECK_VERSION (3, 98, 4)

- -        if (!ibusimcontext->use_button_press_event)

- +        if (!ibusimcontext->use_button_press_event && !_use_sync_mode)

-              _connect_button_press_event (ibusimcontext, TRUE);

-  #endif

-      }

- @@ -1994,7 +1996,8 @@ _ibus_context_update_preedit_text_cb (IBusInputContext  *ibuscontext,

-  

-  #if !GTK_CHECK_VERSION (3, 98, 4)

-      if (!ibusimcontext->use_button_press_event &&

- -        mode == IBUS_ENGINE_PREEDIT_COMMIT) {

- +        mode == IBUS_ENGINE_PREEDIT_COMMIT &&

- +        !_use_sync_mode) {

-          if (ibusimcontext->client_window) {

-              _connect_button_press_event (ibusimcontext, TRUE);

-          }

- -- 

- 2.28.0

+ Date: Mon, 14 Mar 2022 14:25:10 +0900

+ Subject: [PATCH] client/gtk2: Revert CCedilla change for pt-BR

  

- From 4957d1468db4fc5ed30c3ae1f2afac9e51b329d6 Mon Sep 17 00:00:00 2001

- From: fujiwarat <takao.fujiwara1@gmail.com>

- Date: Mon, 6 Sep 2021 20:25:52 +0900

- Subject: [PATCH] client/gtk2/ibusimcontext: Calculate keycode from keysym in

-  GTK3 forward-key-event

+ gtk_im_context_simple_add_table() is deprecated in GTK4.

+ I decide to delete gtk_im_context_simple_add_table() here because

+ the change 03c9e591430c62354bbf26ef7bd4a2e6acfb7c8f is no longer needed

+ because IBusEngineSimple has implemented to load pt_br compose key

+ by locale

  

- IBus GTK3 mode also calculates keycode from keysym if keycode == 0

- with forward-key-event signal to follow GTK4.

+ BUG=chromium-os:11421

+ BUG=http://codereview.appspot.com/3989060

  ---

-  client/gtk2/ibusimcontext.c | 22 ++++++++++++++++++----

-  1 file changed, 18 insertions(+), 4 deletions(-)

+  client/gtk2/ibusimcontext.c | 33 +--------------------------------

+  1 file changed, 1 insertion(+), 32 deletions(-)

  

  diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c

- index e12be45d..b1424e87 100644

+ index a5e5e792..e314ae98 100644

  --- a/client/gtk2/ibusimcontext.c

  +++ b/client/gtk2/ibusimcontext.c

- @@ -1939,13 +1939,16 @@ _ibus_context_forward_key_event_cb (IBusInputContext  *ibuscontext,

-      int group = 0;

-      g_return_if_fail (GTK_IS_IM_CONTEXT (ibusimcontext));

-      if (keycode == 0 && ibusimcontext->client_window) {

- -        GdkDisplay *display = gtk_widget_get_display (ibusimcontext->client_window);

- +        GdkDisplay *display =

- +                gtk_widget_get_display (ibusimcontext->client_window);

-          GdkKeymapKey *keys = NULL;

-          gint n_keys = 0;

- -        if (!gdk_display_map_keyval (display, keyval, &keys, &n_keys))

- +        if (gdk_display_map_keyval (display, keyval, &keys, &n_keys)) {

- +            keycode = keys->keycode;

- +            group = keys->group;

- +        } else {

-              g_warning ("Failed to parse keycode from keyval %x", keyval);

- -       keycode = keys->keycode;

- -       group = keys->group;

- +        }

-      }

-      gtk_im_context_filter_key (

-          GTK_IM_CONTEXT (ibusimcontext),

- @@ -1957,6 +1960,17 @@ _ibus_context_forward_key_event_cb (IBusInputContext  *ibuscontext,

-          (GdkModifierType)state,

-          group);

-  #else

- +    if (keycode == 0 && ibusimcontext->client_window) {

- +        GdkDisplay *display =

- +                gdk_window_get_display (ibusimcontext->client_window);

- +        GdkKeymap *keymap = gdk_keymap_get_for_display (display);

- +        GdkKeymapKey *keys = NULL;

- +        gint n_keys = 0;

- +        if (gdk_keymap_get_entries_for_keyval (keymap, keyval, &keys, &n_keys))

- +            keycode = keys->keycode;

- +        else

- +            g_warning ("Failed to parse keycode from keyval %x", keyval);

- +    }

-      GdkEventKey *event = _create_gdk_event (ibusimcontext, keyval, keycode, state);

-      gdk_event_put ((GdkEvent *)event);

-      gdk_event_free ((GdkEvent *)event);

- -- 

- 2.28.0

- 

- From fbea5441fc53ae1d5533bed1ee53009141cf905a Mon Sep 17 00:00:00 2001

- From: fujiwarat <takao.fujiwara1@gmail.com>

- Date: Fri, 10 Sep 2021 00:09:26 +0900

- Subject: [PATCH] Fix build errors in Ubuntu focal

- 

- - Ubuntu focal uses glib 2.64.6 which does not include errno.h

-   so config.h includes errno.h as the workaround.

- - make autogen.sh not to delete dist files in Travis

- - Call $(PYTHON) for gensimple.py for Ubuntu python3

- - Add a code review in src/ibuscomposetable.c

- 

- BUG=https://github.com/ibus/ibus/pull/2348

- ---

-  autogen.sh             | 2 +-

-  configure.ac           | 9 +++++++++

-  engine/Makefile.am     | 2 +-

-  src/ibuscomposetable.c | 4 ++++

-  src/ibusregistry.c     | 4 ++++

-  src/ibusshare.c        | 3 +++

-  6 files changed, 26 insertions(+), 2 deletions(-)

- 

- diff --git a/autogen.sh b/autogen.sh

- index 693a2740..ea633e06 100755

- --- a/autogen.sh

- +++ b/autogen.sh

- @@ -53,4 +53,4 @@ ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I m4" REQUIRED_AUTOMAKE_VERSION=1.11 CFLAGS="$CFL

-          echo "rm $f"

-          rm $f

-      done

- -}

- +} || :

- diff --git a/configure.ac b/configure.ac

- index 29f8b3db..ce096ad3 100644

- --- a/configure.ac

- +++ b/configure.ac

- @@ -162,6 +162,15 @@ PKG_CHECK_MODULES(GIO2, [

-  PKG_CHECK_MODULES(GTHREAD2, [

-      gthread-2.0 >= glib_required_version

-  ])

- +PKG_CHECK_EXISTS(

- +    [glib-2.0 >= 2.65.0],

- +    [AC_DEFINE(GLIB2_EMBED_ERRNO_H, TRUE, [glib2 include errno.h])]

- +)

- +AH_BOTTOM([

- +#ifndef GLIB2_EMBED_ERRNO_H

- +#  include <errno.h>

- +#endif

- +])

-  

-  # --disable-tests option.

-  AC_ARG_ENABLE(tests,

- diff --git a/engine/Makefile.am b/engine/Makefile.am

- index 84bc7f6c..03867f52 100644

- --- a/engine/Makefile.am

- +++ b/engine/Makefile.am

- @@ -99,7 +99,7 @@ simple.xml: simple.xml.in

-  	    mv $@.tmp $@

-  

-  simple.xml.in:

- -	$(srcdir)/gensimple.py \

- +	$(PYTHON) $(srcdir)/gensimple.py \

-  	    --input=$(XKBCONFIG_BASE)/rules/evdev.xml \

-  	    --output=$@ \

-  	    --version=$(VERSION).`date '+%Y%m%d'` \

- diff --git a/src/ibuscomposetable.c b/src/ibuscomposetable.c

- index d4184d30..b76464bc 100644

- --- a/src/ibuscomposetable.c

- +++ b/src/ibuscomposetable.c

- @@ -18,6 +18,9 @@

-   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301

-   * USA

-   */

- +#ifdef HAVE_CONFIG_H

- +#include <config.h>

- +#endif

+ @@ -2,7 +2,7 @@

+  /* vim:set et sts=4: */

+  /* ibus - The Input Bus

+   * Copyright (C) 2008-2013 Peng Huang <shawn.p.huang@gmail.com>

+ - * Copyright (C) 2015-2021 Takao Fujiwara <takao.fujiwara1@gmail.com>

+ + * Copyright (C) 2015-2022 Takao Fujiwara <takao.fujiwara1@gmail.com>

+   * Copyright (C) 2008-2021 Red Hat, Inc.

+   *

+   * This library is free software; you can redistribute it and/or

+ @@ -874,33 +874,6 @@ ibus_im_context_class_fini (IBusIMContextClass *class)

+      g_bus_unwatch_name (_daemon_name_watch_id);

+  }

   

-  #include <glib.h>

-  #include <glib/gstdio.h>

- @@ -1606,6 +1609,7 @@ ibus_compose_table_compact_check (const IBusComposeTableCompactEx

-              row_stride = i + 1;

+ -/* Copied from gtk+2.0-2.20.1/modules/input/imcedilla.c to fix crosbug.com/11421.

+ - * Overwrite the original Gtk+'s compose table in gtk+-2.x.y/gtk/gtkimcontextsimple.c. */

+ -

+ -/* The difference between this and the default input method is the handling

+ - * of C+acute - this method produces C WITH CEDILLA rather than C WITH ACUTE.

+ - * For languages that use CCedilla and not acute, this is the preferred mapping,

+ - * and is particularly important for pt_BR, where the us-intl keyboard is

+ - * used extensively.

+ - */

+ -static guint16 cedilla_compose_seqs[] = {

+ -#ifdef DEPRECATED_GDK_KEYSYMS

+ -  GDK_dead_acute,	GDK_C,	0,	0,	0,	0x00C7,	/* LATIN_CAPITAL_LETTER_C_WITH_CEDILLA */

+ -  GDK_dead_acute,	GDK_c,	0,	0,	0,	0x00E7,	/* LATIN_SMALL_LETTER_C_WITH_CEDILLA */

+ -  GDK_Multi_key,	GDK_apostrophe,	GDK_C,  0,      0,      0x00C7, /* LATIN_CAPITAL_LETTER_C_WITH_CEDILLA */

+ -  GDK_Multi_key,	GDK_apostrophe,	GDK_c,  0,      0,      0x00E7, /* LATIN_SMALL_LETTER_C_WITH_CEDILLA */

+ -  GDK_Multi_key,	GDK_C,  GDK_apostrophe,	0,      0,      0x00C7, /* LATIN_CAPITAL_LETTER_C_WITH_CEDILLA */

+ -  GDK_Multi_key,	GDK_c,  GDK_apostrophe,	0,      0,      0x00E7, /* LATIN_SMALL_LETTER_C_WITH_CEDILLA */

+ -#else

+ -  GDK_KEY_dead_acute,	GDK_KEY_C,	0,	0,	0,	0x00C7,	/* LATIN_CAPITAL_LETTER_C_WITH_CEDILLA */

+ -  GDK_KEY_dead_acute,	GDK_KEY_c,	0,	0,	0,	0x00E7,	/* LATIN_SMALL_LETTER_C_WITH_CEDILLA */

+ -  GDK_KEY_Multi_key,	GDK_KEY_apostrophe,	GDK_KEY_C,  0,      0,      0x00C7, /* LATIN_CAPITAL_LETTER_C_WITH_CEDILLA */

+ -  GDK_KEY_Multi_key,	GDK_KEY_apostrophe,	GDK_KEY_c,  0,      0,      0x00E7, /* LATIN_SMALL_LETTER_C_WITH_CEDILLA */

+ -  GDK_KEY_Multi_key,	GDK_KEY_C,  GDK_KEY_apostrophe,	0,      0,      0x00C7, /* LATIN_CAPITAL_LETTER_C_WITH_CEDILLA */

+ -  GDK_KEY_Multi_key,	GDK_KEY_c,  GDK_KEY_apostrophe,	0,      0,      0x00E7, /* LATIN_SMALL_LETTER_C_WITH_CEDILLA */

+ -#endif

+ -};

+ -

+  static void

+  ibus_im_context_init (GObject *obj)

+  {

+ @@ -936,10 +909,6 @@ ibus_im_context_init (GObject *obj)

   

-              if (seq_index[i + 1] - seq_index[i] > 0) {

- +                g_assert (row_stride);

-                  seq = bsearch (compose_buffer + 1,

-                                 table->data + seq_index[i],

-                                 (seq_index[i + 1] - seq_index[i]) / row_stride,

- diff --git a/src/ibusregistry.c b/src/ibusregistry.c

- index 23c5ca1b..962afb20 100644

- --- a/src/ibusregistry.c

- +++ b/src/ibusregistry.c

- @@ -20,6 +20,10 @@

-   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301

-   * USA

-   */

- +#ifdef HAVE_CONFIG_H

- +#include <config.h>

- +#endif

- +

-  #include <gio/gio.h>

-  #include <glib/gstdio.h>

-  #include <string.h>

- diff --git a/src/ibusshare.c b/src/ibusshare.c

- index 8974511a..0c0bda10 100644

- --- a/src/ibusshare.c

- +++ b/src/ibusshare.c

- @@ -20,6 +20,9 @@

-   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301

-   * USA

-   */

- +#ifdef HAVE_CONFIG_H

- +#include <config.h>

- +#endif

+      // Create slave im context

+      ibusimcontext->slave = gtk_im_context_simple_new ();

+ -    gtk_im_context_simple_add_table (GTK_IM_CONTEXT_SIMPLE (ibusimcontext->slave),

+ -                                     cedilla_compose_seqs,

+ -                                     4,

+ -                                     G_N_ELEMENTS (cedilla_compose_seqs) / (4 + 2));

   

-  #include "ibusshare.h"

-  #include <glib.h>

+      g_signal_connect (ibusimcontext->slave,

+                        "commit",

  -- 

- 2.33.1

+ 2.34.1

  

- From 943d37444d9cc0881cb5fff87bdd4b9efd5abdb4 Mon Sep 17 00:00:00 2001

+ From 37900574934bb01cc31860ae3ae2f668e4360838 Mon Sep 17 00:00:00 2001

  From: fujiwarat <takao.fujiwara1@gmail.com>

- Date: Mon, 9 Aug 2021 12:49:15 +0900

- Subject: [PATCH] client/gtk2/ibusimcontext: Fix a key event loop with

-  forwarding keys.

- 

- _ibus_context_forward_key_event_cb() caused a key event loop in

- _key_snooper_cb() with key release events.

- ---

-  client/gtk2/ibusimcontext.c | 11 +++++++++--

-  1 file changed, 9 insertions(+), 2 deletions(-)

- 

- diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c

- index da9a402f..e66125df 100644

- --- a/client/gtk2/ibusimcontext.c

- +++ b/client/gtk2/ibusimcontext.c

- @@ -366,6 +366,10 @@ ibus_im_context_commit_event (IBusIMContext *ibusimcontext,

-          g_signal_emit (ibusimcontext, _signal_commit_id, 0, text->text);

-          g_object_unref (text);

-          _request_surrounding_text (ibusimcontext);

- +#if !GTK_CHECK_VERSION (3, 98, 4)

- +        /* Avoid a loop with _ibus_context_forward_key_event_cb() */

- +        event->state |= IBUS_HANDLED_MASK;

- +#endif

-          return TRUE;

-      }

-     return FALSE;

- @@ -643,12 +647,15 @@ _key_snooper_cb (GtkWidget   *widget,

-  

-      } while (0);

-  

- -    if (ibusimcontext != NULL) {

- +    if (ibusimcontext != NULL && event->type == GDK_KEY_PRESS) {

-          /* "retrieve-surrounding" signal sometimes calls unref by

-           * gtk_im_multicontext_get_slave() because priv->context_id is not

-           * the latest than global_context_id in GtkIMMulticontext.

-           * Since _focus_im_context is gotten by the focus_in event,

-           * it would be good to call ref here.

- +         *

- +         * Most release key events would be redundant from

- +         * _ibus_context_forward_key_event_cb ().

-           */

-          g_object_ref (ibusimcontext);

-          _request_surrounding_text (ibusimcontext);

- @@ -657,7 +664,7 @@ _key_snooper_cb (GtkWidget   *widget,

-  

-      retval = _process_key_event (ibuscontext, event, ibusimcontext);

-  

- -    if (ibusimcontext != NULL) {

- +    if (ibusimcontext != NULL && event->type == GDK_KEY_PRESS) {

-          /* unref ibusimcontext could call ibus_im_context_finalize here

-           * because "retrieve-surrounding" signal could call unref.

-           */

- -- 

- 2.28.0

+ Date: Mon, 28 Mar 2022 23:18:58 +0900

+ Subject: [PATCH] src/tests: Run ibus-daemon from CI even if GNOME desktop

  

- From 179ebddf4dbde1cef1cea2df4e659cf4940d1a30 Mon Sep 17 00:00:00 2001

- From: fujiwarat <takao.fujiwara1@gmail.com>

- Date: Fri, 27 Aug 2021 20:05:02 +0900

- Subject: [PATCH] src/tests: Add --screendump option in

-  ibus-desktop-testing-runner

+ gnome-shell no longer launch ibus-daemon with IBus systemd file.

+ This is a workaround to call ibus-daemon after GNOME fails to

+ launch ibus-daemon

  

- The screendump is useful in CI to if check gnome-shell-extension-no-overview

- works.

- Also add ibus-desktop-testing-autostart to get the debug info in CI.

- You can copy ibus-desktop-testing.desktop to $HOME/.config/autostart

- if CI fails.

+ BUG=https://gitlab.gnome.org/GNOME/gdm/-/issues/777

  ---

-  src/tests/Makefile.am                     | 11 +++++

-  src/tests/ibus-desktop-testing-autostart  | 55 +++++++++++++++++++++++

-  src/tests/ibus-desktop-testing-runner.in  | 20 +++++++--

-  src/tests/ibus-desktop-testing.desktop.in | 11 +++++

-  4 files changed, 93 insertions(+), 4 deletions(-)

-  create mode 100755 src/tests/ibus-desktop-testing-autostart

-  create mode 100644 src/tests/ibus-desktop-testing.desktop.in

+  src/tests/ibus-desktop-testing-runner.in | 38 +++++++++++++++++++++---

+  1 file changed, 34 insertions(+), 4 deletions(-)

  

- diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am

- index 13c06eb4..7d00f236 100644

- --- a/src/tests/Makefile.am

- +++ b/src/tests/Makefile.am

- @@ -96,6 +96,7 @@ test_sourcesdir = $(datadir)/installed-tests/ibus

-  CLEANFILES += \

-      $(test_metas) \

-      ibus-desktop-testing-runner \

- +    org.freedesktop.IBus.Desktop.Testing.desktop \

-      $(NULL)

-  

-  test_execs_PROGRAMS = $(TESTS)

- @@ -106,6 +107,14 @@ CLEANFILES += \

-      $(NULL)

-  endif

-  test_execsdir = $(libexecdir)/installed-tests/ibus

- +libexec_SCRIPTS = ibus-desktop-testing-autostart

- +

- +test_frame_DATA = org.freedesktop.IBus.Desktop.Testing.desktop

- +test_framedir = $(pkgdatadir)/tests

- +org.freedesktop.IBus.Desktop.Testing.desktop: ibus-desktop-testing.desktop.in

- +	$(AM_V_GEN) sed -e "s|\@libexecdir\@|$(libexecdir)|g" \

- +	$< > $@.tmp && \

- +	mv $@.tmp $@

-  endif

-  

-  $(test_metas): $(test_metas_in) $(test_programs)

- @@ -133,6 +142,8 @@ EXTRA_DIST = \

-      ibus-compose.emoji \

-      ibus-compose.env \

-      ibus-compose-locales.in \

- +    ibus-desktop-testing.desktop.in \

- +    ibus-desktop-testing-autostart \

-      ibus-desktop-testing-runner.in \

-      $(NULL)

-  

- diff --git a/src/tests/ibus-desktop-testing-autostart b/src/tests/ibus-desktop-testing-autostart

- new file mode 100755

- index 00000000..da22b64e

- --- /dev/null

- +++ b/src/tests/ibus-desktop-testing-autostart

- @@ -0,0 +1,55 @@

- +#!/bin/sh

- +# -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*-

- +# vim:set noet ts=4:

- +#

- +# ibus - The Input Bus

- +#

- +# Copyright (c) 2021 Takao Fujiwara <takao.fujiwara1@gmail.com>

- +# Copyright (c) 2021 Red Hat, Inc.

- +#

- +# This program is free software; you can redistribute it and/or modify

- +# it under the terms of the GNU General Public License as published by

- +# the Free Software Foundation; either version 2 of the License, or

- +# (at your option) any later version.

- +#

- +# This program is distributed in the hope that it will be useful,

- +# but WITHOUT ANY WARRANTY; without even the implied warranty of

- +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

- +# GNU General Public License for more details.

- +#

- +# You should have received a copy of the GNU General Public License along

- +# with this program; if not, write to the Free Software Foundation, Inc.,

- +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

- +

- +TEST_LOG=

- +COMMANDS='

- +id

- +echo $DISPLAY

- +pwd

- +pstree -asp $$

- +gsettings list-recursively org.gnome.shell

- +rpm -q gnome-shell-extension-no-overview gnome-shell gnome-session

- +'

- +

- +if [ $# -gt 0 ] ; then

- +    TEST_LOG=$1

- +fi

- +

- +run_test()

- +{

- +while read cmd ; do

- +    if [ x"$cmd" = x ] ; then

- +        continue

- +    fi

- +    echo "# $cmd"

- +    eval "$cmd"

- +done << EOF_COMMANDS

- +`echo "$COMMANDS"`

- +EOF_COMMANDS

- +}

- +

- +if [ x"$TEST_LOG" = x ] ; then

- +    run_test

- +else

- +    run_test 2>>$TEST_LOG 1>>$TEST_LOG

- +fi

  diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in

- index c1016703..48528326 100755

+ index 48528326..6b208345 100755

  --- a/src/tests/ibus-desktop-testing-runner.in

  +++ b/src/tests/ibus-desktop-testing-runner.in

- @@ -36,13 +36,14 @@

+ @@ -55,6 +55,7 @@ GREEN='\033[0;32m'

+  RED='\033[0;31m'

+  NC='\033[0m'

   

+ +

+  print_log()

+  {

+      if [ x"$RESULT_LOG" != x ] ; then

+ @@ -69,6 +70,7 @@ print_log()

+      fi

+  }

   

-  PROGNAME=`basename $0`

- -VERSION=0.2

- +VERSION=0.3

-  DISPLAY=:99.0

-  BUILDDIR="."

-  SRCDIR="."

-  TEST_LOG="test-suite.log"

-  TEST_LOG_STDOUT=0

-  RESULT_LOG=""

- +SCREEN_LOG=""

-  HAVE_GRAPHICS=1

-  DESKTOP_COMMAND="dbus-launch --exit-with-session gnome-session"

-  PID_XORG=0

- @@ -90,14 +91,15 @@ usage()

-  "-T, --timeout=TIMEOUT            Set timeout (default TIMEOUT is 300 sec).\n" \

-  "-o, --output=OUTPUT_FILE         OUtput the log to OUTPUT_FILE\n"             \

-  "-O, --result=RESULT_FILE         OUtput the result to RESULT_FILE\n"          \

- +"-S, --screendump=DUMP_FILE       OUtput the screen to DUMP_FILE ('STDOUT' can be stdout)\n" \

+ +

+  usage()

+  {

+      $ECHO -e \

+ @@ -95,6 +97,7 @@ usage()

   ""

   }

   

+ +

   parse_args()

   {

       # This is GNU getopt. "sudo port getopt" in BSD?

- -    ARGS=`getopt -o hvb:s:cd:t:r:T:o:O: --long \

- -          help,version,builddir:,srcdir:,no-graphics,desktop:,tests:,runner:,timeout:,output:,result:\

- +    ARGS=`getopt -o hvb:s:cd:t:r:T:o:O:S: --long \

- +          help,version,builddir:,srcdir:,no-graphics,desktop:,tests:,runner:,timeout:,output:,result:,screendump:\

-          -- "$@"`;

-      eval set -- "$ARGS"

-      while [ 1 ] ; do

- @@ -113,6 +115,7 @@ parse_args()

-          -T | --timeout )     TIMEOUT="$2"; shift 2;;

-          -o | --output )      TEST_LOG="$2"; shift 2;;

-          -O | --result )      RESULT_LOG="$2"; shift 2;;

- +        -S | --screendump )  SCREEN_LOG="$2"; shift 2;;

-          -- )                 shift; break;;

-          * )                  usage; exit 1;;

-          esac

- @@ -259,6 +262,7 @@ run_desktop()

-  {

-      echo "$DESKTOP_COMMAND" | grep gnome-session > /dev/null

-      HAS_GNOME=$?

- +    export DISPLAY=$DISPLAY

-      if test $HAVE_GRAPHICS -eq 1 ; then

-          /usr/libexec/Xorg.wrap -noreset +extension GLX +extension RANDR +extension RENDER -logfile ./xorg.log -config ./xorg.conf -configdir . $DISPLAY &

-      else

- @@ -266,7 +270,6 @@ run_desktop()

+ @@ -129,6 +132,7 @@ parse_args()

       fi

-      PID_XORG=$!

-      sleep 1

- -    export DISPLAY=$DISPLAY

-      # init_gnome need to be called with $DISPLAY before gnome-session is called

-      if [  $HAS_GNOME -eq 0 ] ; then

-          init_gnome

- @@ -454,6 +457,15 @@ main()

-      init_desktop

-      run_dbus_daemon 2>>$TEST_LOG 1>>$TEST_LOG

-      run_desktop 2>>$TEST_LOG 1>>$TEST_LOG

- +    if [ x"$SCREEN_LOG" != x ] ; then

- +        SCREEN_PNG="`date '+%Y%m%d%H%M%S'`.png"

- +        gnome-screenshot --file=$SCREEN_PNG

- +        if [ x"$SCREEN_LOG" = xSTDOUT ] ; then

- +            base64 $SCREEN_PNG

- +        else

- +            base64 $SCREEN_PNG > $SCREEN_LOG

- +        fi

- +    fi

-      run_test_suite

-      finit

   }

- diff --git a/src/tests/ibus-desktop-testing.desktop.in b/src/tests/ibus-desktop-testing.desktop.in

- new file mode 100644

- index 00000000..fa0c9b40

- --- /dev/null

- +++ b/src/tests/ibus-desktop-testing.desktop.in

- @@ -0,0 +1,11 @@

- +[Desktop Entry]

- +Name=IBus Desktop Testing Runner

- +GenericName=Input Method Desktop Testing Runner

- +Comment=Test plugin for IBus Desktop Testing

- +Exec=@ibexecdir@/ibus-desktop-testing-autostart /var/tmp/ibus-ci-autostart.log

- +Terminal=false

- +Type=Application

- +Encoding=UTF-8

- +Icon=ibus

- +Categories=System

- +Keywords=im;

- -- 

- 2.28.0

- 

- From acc5570511698c7b5cc037eb81be2c4be52a824f Mon Sep 17 00:00:00 2001

- From: fujiwarat <takao.fujiwara1@gmail.com>

- Date: Fri, 29 Oct 2021 12:56:49 +0900

- Subject: [PATCH] ui/gtk3: Erase Emojier preedit/lookup popup between

-  applications

- 

- It would be better to erase Emojier popup window when users change

- the input focus between applications. But it hasn't been implemented

- because the focus-out/in events also happen when the Emojier popup window

- is launching or rebuilding to the category list in GNOME Wayland.

- The focus-out/in events do not happen in Xorg desktops with the rebuilding

- GUI because GTK popup window causes focus-in/out evnets in Wayland.

- 

- Now I'm convinced with several issues and added a little complicated logic

- to erase Emojier popup window with the focus changes between input contexts

- to handle focus-in/out events in Wayland.

- 

- BUG=rhbz#1942970

- ---

-  ui/gtk3/emojier.vala      | 69 ++++++++++++++++++++++++++++++++++++---

-  ui/gtk3/emojierapp.vala   | 12 +++++--

-  ui/gtk3/panelbinding.vala | 21 ++++++++++--

-  3 files changed, 94 insertions(+), 8 deletions(-)

- 

- diff --git a/ui/gtk3/emojier.vala b/ui/gtk3/emojier.vala

- index 9e6e9263..69fb8abe 100644

- --- a/ui/gtk3/emojier.vala

- +++ b/ui/gtk3/emojier.vala

- @@ -2,7 +2,7 @@

-   *

-   * ibus - The Input Bus

-   *

- - * Copyright (c) 2017-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>

- + * Copyright (c) 2017-2021 Takao Fujiwara <takao.fujiwara1@gmail.com>

-   *

-   * This library is free software; you can redistribute it and/or

-   * modify it under the terms of the GNU Lesser General Public

- @@ -227,6 +227,8 @@ public class IBusEmojier : Gtk.ApplicationWindow {

-          BACKWARD,

-      }

   

- +    public bool is_wayland { get; set; }

  +

-      public const uint BUTTON_CLOSE_BUTTON = 1000;

-  

-      private const uint EMOJI_GRID_PAGE = 10;

- @@ -317,15 +319,18 @@ public class IBusEmojier : Gtk.ApplicationWindow {

-      private Gdk.Rectangle m_cursor_location;

-      private bool m_is_up_side_down = false;

-      private uint m_redraw_window_id;

- +    private bool m_rebuilding_gui = false;

- +    private uint m_rebuilding_gui_timeout_id;

-  

-      public signal void candidate_clicked(uint index, uint button, uint state);

-      public signal void commit_text(string text);

-      public signal void cancel();

-  

- -    public IBusEmojier() {

- +    public IBusEmojier(bool is_wayland) {

-          GLib.Object(

-              type : Gtk.WindowType.POPUP

-          );

- +        this.is_wayland = is_wayland;

-  

-          // GLib.ActionEntry accepts const variables only.

-          var action = new GLib.SimpleAction.stateful(

- @@ -1002,6 +1007,7 @@ public class IBusEmojier : Gtk.ApplicationWindow {

-          button.button_press_event.connect((w, e) => {

-              m_category_active_index = -1;

-              m_show_unicode = false;

- +            start_rebuild_gui(false);

-              hide_candidate_panel();

-              show_all();

-              return true;

- @@ -1458,6 +1464,7 @@ public class IBusEmojier : Gtk.ApplicationWindow {

-                      show_emoji_for_category(m_backward);

-                      show_candidate_panel();

-                  } else {

- +                    start_rebuild_gui(false);

-                      hide_candidate_panel();

-                      show_all();

-                  }

- @@ -1778,6 +1785,34 @@ public class IBusEmojier : Gtk.ApplicationWindow {

-      }

-  

+  init_desktop()

+  {

+      if [ "$RESULT_LOG" != "" ] ; then

+ @@ -207,6 +211,7 @@ _EOF

+      #export XDG_SEAT=seat0

+  }

   

- +    private void start_rebuild_gui(bool initial_launching) {

- +        if (!this.is_wayland)

- +            return;

- +        if (!initial_launching && !base.get_visible())

- +            return;

- +        if (initial_launching && base.get_visible())

- +            return;

- +        if (m_rebuilding_gui_timeout_id != 0) {

- +            GLib.Source.remove(m_rebuilding_gui_timeout_id);

- +            m_rebuilding_gui_timeout_id = 0;

- +        }

- +

- +        m_rebuilding_gui = true;

- +        m_rebuilding_gui_timeout_id =

- +                GLib.Timeout.add_seconds(10, () => {

- +                    if (!m_rebuilding_gui) {

- +                        m_rebuilding_gui_timeout_id = 0;

- +                        return false;

- +                    }

- +                    warning("Rebuilding GUI is time out.");

- +                    m_rebuilding_gui = false;

- +                    m_rebuilding_gui_timeout_id = 0;

- +                    return false;

- +                },

- +                GLib.Priority.DEFAULT_IDLE);

- +    }

  +

- +

-      public bool has_variants(uint index,

-                               bool need_commit_signal) {

-          if (index >= m_lookup_table.get_number_of_candidates())

- @@ -1880,12 +1915,17 @@ public class IBusEmojier : Gtk.ApplicationWindow {

-                  m_show_unicode = false;

-                  m_category_active_index = -1;

-              }

- +            start_rebuild_gui(false);

-              hide_candidate_panel();

-              return true;

-          } else if (m_backward_index >= 0 && m_backward != null) {

- +            // Escape on Emoji variants window does not call focus-out events

- +            // because hide() is not called here so start_rebuild_gui()

- +            // is not called.

-              show_emoji_for_category(m_backward);

-              return true;

-          } else if (m_candidate_panel_is_visible && m_backward != null) {

- +            start_rebuild_gui(false);

-              hide_candidate_panel();

-              return true;

-          }

- @@ -2218,7 +2258,7 @@ public class IBusEmojier : Gtk.ApplicationWindow {

-  

-          /* Some window managers, e.g. MATE, GNOME, Plasma desktops,

-           * does not give the keyboard focus when Emojier is lauched

- -         * twice with Ctrl-Shift-e via XIEvent, if present_with_time()

- +         * twice with Ctrl-period via XIEvent, if present_with_time()

-           * is not applied.

-           * But XFCE4 desktop does not effect this bug.

-           * Seems this is caused by the window manager's focus stealing

- @@ -2265,8 +2305,10 @@ public class IBusEmojier : Gtk.ApplicationWindow {

-  #endif

-  

-  

- -    /* override virtual functions */

- +    // override virtual functions

-      public override void show_all() {

- +        // Ctrl-period, space keys causes focus-out/in events in GNOME Wayland.

- +        start_rebuild_gui(true);

-          base.show_all();

-          if (m_candidate_panel_mode)

-              show_candidate_panel();

- @@ -2416,6 +2458,17 @@ public class IBusEmojier : Gtk.ApplicationWindow {

-      }

-  

+  run_dbus_daemon()

+  {

+      # Use dbus-launch --exit-with-session later instead of --sh-syntax

+ @@ -216,6 +221,7 @@ run_dbus_daemon()

+      export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$UID/bus"

+  }

   

- +    public override bool focus_in_event(Gdk.EventFocus event) {

- +        m_rebuilding_gui = false;

- +        return base.focus_in_event(event);

- +    }

- +

  +

- +    public override bool focus_out_event(Gdk.EventFocus event) {

- +        return base.focus_out_event(event);

- +    }

- +

- +

-      public bool is_running() {

-          return m_is_running;

-      }

- @@ -2511,6 +2564,14 @@ public class IBusEmojier : Gtk.ApplicationWindow {

-      }

-  

+  init_gnome()

+  {

+      # gsettings set command needs dconf-service with the same $DISPLAY

+ @@ -258,6 +264,7 @@ init_gnome()

+      fi

+  }

   

- +    public bool is_rebuilding_gui() {

- +        /* The candidate window and preedit text should not be closed

- +         * when the GUI is rebuilding.

- +         */

- +        return m_rebuilding_gui;

- +    }

  +

- +

-      public static bool has_loaded_emoji_dict() {

-          if (m_emoji_to_data_dict == null)

-              return false;

- diff --git a/ui/gtk3/emojierapp.vala b/ui/gtk3/emojierapp.vala

- index 783c611c..812356f0 100644

- --- a/ui/gtk3/emojierapp.vala

- +++ b/ui/gtk3/emojierapp.vala

- @@ -3,7 +3,7 @@

-   * ibus - The Input Bus

-   *

-   * Copyright (c) 2017 Peng Wu <alexepico@gmail.com>

- - * Copyright (c) 2017-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>

- + * Copyright (c) 2017-2021 Takao Fujiwara <takao.fujiwara1@gmail.com>

-   *

-   * This library is free software; you can redistribute it and/or

-   * modify it under the terms of the GNU Lesser General Public

- @@ -208,7 +208,15 @@ public class EmojiApplication : Gtk.Application {

-          IBusEmojier.load_unicode_dict();

-  

-          if (m_emojier == null) {

- -            m_emojier = new IBusEmojier();

- +            bool is_wayland = false;

- +#if USE_GDK_WAYLAND

- +            Type instance_type = Gdk.Display.get_default().get_type();

- +            Type wayland_type = typeof(GdkWayland.Display);

- +            is_wayland = instance_type.is_a(wayland_type);

- +#else

- +            warning("Checking Wayland is disabled");

- +#endif

- +            m_emojier = new IBusEmojier(is_wayland);

-              // For title handling in gnome-shell

-              add_window(m_emojier);

-              m_emojier.candidate_clicked.connect((i, b, s) => {

- diff --git a/ui/gtk3/panelbinding.vala b/ui/gtk3/panelbinding.vala

- index 861255b1..e63d93f2 100644

- --- a/ui/gtk3/panelbinding.vala

- +++ b/ui/gtk3/panelbinding.vala

- @@ -3,7 +3,7 @@

-   * ibus - The Input Bus

-   *

-   * Copyright(c) 2018 Peng Huang <shawn.p.huang@gmail.com>

- - * Copyright(c) 2018-2020 Takao Fujwiara <takao.fujiwara1@gmail.com>

- + * Copyright(c) 2018-2021 Takao Fujwiara <takao.fujiwara1@gmail.com>

-   *

-   * This library is free software; you can redistribute it and/or

-   * modify it under the terms of the GNU Lesser General Public

- @@ -799,6 +799,23 @@ class PanelBinding : IBus.PanelService {

-  

-      public override void focus_out(string input_context_path) {

-          m_current_context_path = "";

- +        /* Close emoji typing when the focus out happens but it's not a

- +         * rebuilding GUI.

- +         * Emojier rebuilding GUI happens when Escape key is pressed on

- +         * Emojier candidate list and the rebuilding also causes focus-out/in

- +         * events in GNOME Wayland but not Xorg desktops.

- +         * The rebuilding GUI can be checked with m_emojier.is_rebuilding_gui()

- +         * in Wayland.

- +         * m_emojier.is_rebuilding_gui() always returns false in Xorg desktops

- +         * since focus-out/in events does not happen.

- +         */

- +        if (m_emojier != null && !m_emojier.is_rebuilding_gui()) {

- +            m_preedit.reset();

- +            m_emojier.set_annotation("");

- +            if (m_wayland_lookup_table_is_visible)

- +                hide_wayland_lookup_table();

- +            key_press_escape();

- +        }

-      }

-  

-  

- @@ -822,7 +839,7 @@ class PanelBinding : IBus.PanelService {

-              m_loaded_unicode = true;

-          }

-          if (m_emojier == null) {

- -            m_emojier = new IBusEmojier();

- +            m_emojier = new IBusEmojier(m_is_wayland);

-              // For title handling in gnome-shell

-              m_application.add_window(m_emojier);

-              m_emojier.candidate_clicked.connect((i, b, s) => {

- -- 

- 2.28.0

- 

- From 28acfd433b3df1673b7c7177915c027ce48c061e Mon Sep 17 00:00:00 2001

- From: fujiwarat <takao.fujiwara1@gmail.com>

- Date: Fri, 5 Nov 2021 07:22:34 +0900

- Subject: [PATCH] ui/gtk2: Deprecate gettext.bind_textdomain_codeset()

-  since Python 3.8

- 

- setup/i18n.py is a symlink of ui/gtk2/i18n.py

- env PYTHONWARNINGS='d' ibus-setup

- 

- BUG=https://github.com/ibus/ibus/issues/2276

- ---

-  setup/i18n.py | 8 +++++++-

-  1 file changed, 7 insertions(+), 1 deletion(-)

- 

- diff --git a/setup/i18n.py b/setup/i18n.py

- index 976d1aee..af14efc6 100644

- --- a/setup/i18n.py

- +++ b/setup/i18n.py

- @@ -3,7 +3,9 @@

-  # ibus - The Input Bus

-  #

-  # Copyright(c) 2007-2015 Peng Huang <shawn.p.huang@gmail.com>

- +# Copyright(c) 2012-2021 Takao Fujiwara <takao.fujiwara1@gmail.com>

-  # Copyright(c) 2007-2015 Google, Inc.

- +# Copyright(c) 2012-2021 Red Hat, Inc.

-  #

-  # This library is free software; you can redistribute it and/or

-  # modify it under the terms of the GNU Lesser General Public

- @@ -23,12 +25,14 @@

-  import locale

-  import gettext

-  import os

- +import sys

-  

-  DOMAINNAME = "ibus10"

-  

-  _ = lambda a: gettext.dgettext(DOMAINNAME, a)

-  N_ = lambda a: a

-  

- +PY3K = sys.version_info >= (3, 0)

-  LOCALEDIR = os.getenv("IBUS_LOCALEDIR")

-  

-  def init_textdomain(domainname):

- @@ -42,7 +46,9 @@ def init_textdomain(domainname):

-      except AttributeError:

-          pass

-      gettext.bindtextdomain(domainname, LOCALEDIR)

- -    gettext.bind_textdomain_codeset(domainname, 'UTF-8')

- +    # https://docs.python.org/3/library/gettext.html#gettext.lgettext

- +    if not PY3K:

- +        gettext.bind_textdomain_codeset(domainname, 'UTF-8')

-  

-  def gettext_engine_longname(engine):

-      name = engine.get_name()

- -- 

- 2.33.1

- 

- From cfcc6f194cfc95ab0cf1b3b719d77321c249a83b Mon Sep 17 00:00:00 2001

- From: =?UTF-8?q?Na=C3=AFm=20Favier?= <n@monade.li>

- Date: Tue, 16 Nov 2021 00:33:37 +0100

- Subject: [PATCH] src/ibuscomposetable: invalidate cache based on symlink

-  mtime too

- 

- When the compose file is a symbolic link, take the link itself's

- modification time into account (in addition to its target's) in

- determining whether to invalidate the compose cache.

- 

- This is useful e.g. on NixOS systems where the compose file might point

- to a store path with an irrelevant modification time, and we want the

- cache to expire when the symlink itself changes.

- 

- BUG=https://github.com/ibus/ibus/pull/2362

- ---

-  src/ibuscomposetable.c | 8 ++++++--

-  1 file changed, 6 insertions(+), 2 deletions(-)

- 

- diff --git a/src/ibuscomposetable.c b/src/ibuscomposetable.c

- index b76464bc..250e0139 100644

- --- a/src/ibuscomposetable.c

- +++ b/src/ibuscomposetable.c

- @@ -1040,10 +1040,14 @@ ibus_compose_table_load_cache (const gchar *compose_file)

-          if (!g_file_test (path, G_FILE_TEST_EXISTS))

-              break;

-  

- -        if (g_stat (compose_file, &original_buf))

- -            break;

-          if (g_stat (path, &cache_buf))

-              break;

- +        if (g_lstat (compose_file, &original_buf))

- +            break;

- +        if (original_buf.st_mtime > cache_buf.st_mtime)

- +            break;

- +        if (g_stat (compose_file, &original_buf))

- +            break;

-          if (original_buf.st_mtime > cache_buf.st_mtime)

-              break;

-          if (!g_file_get_contents (path, &contents, &length, &error)) {

- -- 

- 2.33.1

- 

- From 2bc47f09832073c87ccdf1060bd93ff95878685a Mon Sep 17 00:00:00 2001

- From: fujiwarat <takao.fujiwara1@gmail.com>

- Date: Thu, 2 Dec 2021 23:52:36 +0900

- Subject: [PATCH] autogen: Delete gnome-autogen dependency

- 

- You may like to call ./autogen.sh --enable-gtk-doc with your custom

- configure options.

- Also set SAVE_DIST_FILE=1 by default

- ---

-  autogen.sh      | 96 +++++++++++++++++++++++++++++++++----------------

-  src/Makefile.am | 18 ++++++----

-  3 files changed, 80 insertions(+), 41 deletions(-)

- 

- diff --git a/autogen.sh b/autogen.sh

- index ea633e06..1acbf705 100755

- --- a/autogen.sh

- +++ b/autogen.sh

- @@ -1,22 +1,47 @@

-  #!/bin/sh

-  # Run this to generate all the initial makefiles, etc.

+  run_desktop()

+  {

+      echo "$DESKTOP_COMMAND" | grep gnome-session > /dev/null

+ @@ -278,12 +285,28 @@ run_desktop()

+      $DESKTOP_COMMAND &

+      PID_GNOME_SESSION=$!

+      sleep 30

+ -    if [  $HAS_GNOME -ne 0 ] ; then

+ -        ibus-daemon --daemonize --verbose

+ -        sleep 3

+ -    fi

+ +

+ +    # gnome-shell 42 checks if org.freedesktop.IBus.session.GNOME.service

+ +    # systemd file is available with org.freedesktop.systemd1.Manager.GetUnit

+ +    # D-Bus method, which is provided by IBus 1.5.26, and if the file

+ +    # is available, gnome-shell no longer launch ibus-daemon

+ +    # because gnome-shell assumes gnome-session would launch ibus-daemon

+ +    # with org.freedesktop.systemd1.Manager.StartUnit D-Bus method.

+ +    # But actually gnome-session failed to launch ibus-daemon

+ +    # because the IBus systemd file depends on gnome-session.target

+ +    # but this CI launches gnome-session directly.

+ +    #

+ +    # So ibus-dameon is now always called here after gnome-shell fails to

+ +    # launch ibus-daemon.

+ +    # It may be better this CI launches GDM autologin to run gnome-session

+ +    # with gnome-session.target systemd file.

+ +    # But `systemctl start gdm` terminates the parent script forcibly

+ +    # and the script cannot get the CI result.

+ +    ibus-daemon --daemonize --verbose

+ +    sleep 3

+  }

   

- -srcdir=`dirname $0`

- -test -z "$srcdir" && srcdir=.

- -

- -PKG_NAME="ibus"

- -DIST_FILES="

- -engine/simple.xml.in

- -src/ibusemojigen.h

- -src/ibusunicodegen.h

- -"

- +: ${srcdir=$(dirname $0)}

- +: ${srcdir:=.}

- +: ${SAVE_DIST_FILES:=0}

  +

- +olddir=$(pwd)

- +# shellcheck disable=SC2016

- +PKG_NAME=$(autoconf --trace 'AC_INIT:$1' configure.ac)

- +WANT_GTK_DOC=0

- +GCC_VERSION=$(gcc --version | head -1 | awk '{print $3}')

- +GCC_MAJOR_VERSION=$(echo "$GCC_VERSION" | awk -F. '{print $1}')

-  FEDORA_PKG1='autoconf automake libtool gettext-devel'

-  FEDORA_PKG2='glib2-devel gtk2-devel gtk3-devel

-   wayland-devel'

-  FEDORA_PKG3='cldr-emoji-annotation iso-codes-devel unicode-emoji unicode-ucd

-   xkeyboard-config-devel'

+  count_case_result()

+  {

+      retval=$1

+ @@ -298,6 +321,7 @@ count_case_result()

+      echo $pass $fail

+  }

   

- -(test -z "$DISABLE_INSTALL_PKGS") && {

- +CFLAGS=${CFLAGS-"-Wall -Wformat -Werror=format-security"}

- +(test $GCC_MAJOR_VERSION -ge 10) && {

- +    CFLAGS="$CFLAGS -fanalyzer -fsanitize=address -fsanitize=leak"

- +    FEDORA_PKG1="$FEDORA_PKG1 libasan"

- +}

- +

- +cd "$srcdir"

- +

- +(test -f configure.ac \

- +  && test -f README ) || {

- +    echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"

- +    echo " top-level $PKG_NAME directory"

- +    exit 1

- +}

- +

- +(test $(grep -q "^GTK_DOC_CHECK" configure.ac)) || {

- +    WANT_GTK_DOC=1

- +    FEDORA_PKG2="$FEDORA_PKG2 gtk-doc"

- +}

- +

- +(test -f ChangeLog) || {

- +    touch ChangeLog

- +}

  +

- +(test "x$DISABLE_INSTALL_PKGS" = "x") && {

-      (test -f /etc/fedora-release ) && {

-          rpm -q $FEDORA_PKG1 || exit 1

-          rpm -q $FEDORA_PKG2 || exit 1

- @@ -27,30 +52,39 @@ FEDORA_PKG3='cldr-emoji-annotation iso-codes-devel unicode-emoji unicode-ucd

-      }

+  echo_case_result()

+  {

+      retval=$1

+ @@ -311,6 +335,7 @@ echo_case_result()

+      fi

   }

   

- -(test -f $srcdir/configure.ac \

- -  && test -f $srcdir/README ) || {

- -    echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"

- -    echo " top-level $PKG_NAME directory"

- -    exit 1

- -}

- -

- -which gnome-autogen.sh || {

- -    echo "Not found gnome-autogen.sh. You may need to install gnome-common"

- -    exit 1

- +CONFIGFLAGS="$@"

- +(test "$#" = 0 -a "x$NOCONFIGURE" = "x" ) && {

- +    echo "*** WARNING: I am going to run 'configure' with no arguments." >&2

- +    echo "*** If you wish to pass any to it, please specify them on the" >&2

- +    echo "*** '$0' command line." >&2

- +    echo "" >&2

- +    (test $WANT_GTK_DOC -eq 1) && CONFIGFLAGS="--enable-gtk-doc $@"

+ +

+  run_direct_test_cases()

+  {

+      pass=0

+ @@ -363,6 +388,7 @@ EOF_ENVS

+      echo $pass $fail

   }

   

- -(test -f $srcdir/ChangeLog) || {

- -    touch $srcdir/ChangeLog

- -}

- +(test $WANT_GTK_DOC -eq 1) && gtkdocize --copy

-  

- -CFLAGS=${CFLAGS-"-Wall -Wformat -Werror=format-security"}

- +ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I m4" REQUIRED_AUTOMAKE_VERSION=1.11 \

- +autoreconf --verbose --force --install || exit 1

-  

- -# need --enable-gtk-doc for gnome-autogen.sh to make dist

- -ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I m4" REQUIRED_AUTOMAKE_VERSION=1.11 CFLAGS="$CFLAGS" . gnome-autogen.sh "$@"

- +cd "$olddir"

- +(test "x$NOCONFIGURE" = "x" ) && {

- +    echo "$srcdir/configure $CONFIGFLAGS"

- +    $srcdir/configure $CONFIGFLAGS || exit 1

- +    (test "$1" = "--help" ) && {

- +        exit 0

- +    } || {

- +        echo "Now type 'make' to compile $PKG_NAME" || exit 1

- +    }

- +} || {

- +    echo "Skipping configure process."

- +}

-  

- -(test -z "$SAVE_DIST_FILES") && {

- -    for f in $DIST_FILES ; do

- -        echo "rm $f"

- -        rm $f

- -    done

- +cd "$srcdir"

- +(test "x$SAVE_DIST_FILES" = "x0" ) && {

- +    # rm engine/simple.xml.in src/ibusemojigen.h src/ibusunicodegen.h

- +    for d in engine src; do

- +        echo "make -C $d maintainer-clean-generic"

- +        make -C $d maintainer-clean-generic

- +   done

-  } || :

- +cd "$olddir"

- diff --git a/src/Makefile.am b/src/Makefile.am

- index 742ee7d7..578694b5 100644

- --- a/src/Makefile.am

- +++ b/src/Makefile.am

- @@ -3,7 +3,7 @@

-  # ibus - The Input Bus

-  #

-  # Copyright (c) 2007-2015 Peng Huang <shawn.p.huang@gmail.com>

- -# Copyright (c) 2015-2020 Takao Fujiwara <takao.fujiwara1@gmail.com>

- +# Copyright (c) 2015-2021 Takao Fujiwara <takao.fujiwara1@gmail.com>

-  # Copyright (c) 2007-2017 Red Hat, Inc.

-  #

-  # This library is free software; you can redistribute it and/or

- @@ -296,8 +296,8 @@ dicts/emoji-%.dict: emoji-parser

-  	    echo "Skip $$plus_comment $@"; \

-  	fi;

-  

- -ibusemojigen.h: dicts/emoji-en.dict

- -	$(NULL)

- +ibusemojigen.h:

- +	$(MAKE) $(AM_MAKEFLAGS) dicts/emoji-en.dict

-  

-  # We put dicts/emoji-%.dict as the make target for the parallel build

-  # and the make target has to be genarated even if the file size is zero.

- @@ -364,8 +364,8 @@ dicts/unicode-blocks.dict: unicode-parser

-  	    echo "Generated $@"; \

-  	fi;

+ +

+  run_gnome_desktop_testing_runner()

+  {

+      pass=0

+ @@ -397,6 +423,7 @@ EOF

+      echo $pass $fail

+  }

   

- -ibusunicodegen.h: dicts/unicode-blocks.dict

- -	$(NULL)

- +ibusunicodegen.h:

- +	$(MAKE) $(AM_MAKEFLAGS) dicts/unicode-blocks.dict

+ +

+  run_test_suite()

+  {

+      pass=0

+ @@ -435,6 +462,7 @@ EOF_RUNNER

+      fi

+  }

   

-  unicode_parser_SOURCES =        \

-      unicode-parser.c            \

- @@ -398,9 +398,15 @@ CLEANFILES +=                   \

-      stamp-ibusenumtypes.h       \

-      $(NULL)

+ +

+  finit()

+  {

+      echo "# Killing left gnome-session and Xorg"

+ @@ -451,6 +479,7 @@ finit()

+      echo "# Finished $PROGNAME testing"

+  }

   

- -DISTCLEANFILES =                \

- +MAINTAINERCLEANFILES =          \

-      ibusemojigen.h              \

-      ibusunicodegen.h            \

- +    dicts/emoji-en.dict         \

- +    dicts/unicode-blocks.dict   \

- +    $(NULL)

  +

- +DISTCLEANFILES =                \

- +    $(MAINTAINERCLEANFILES)     \

-      ibusversion.h               \

-      $(NULL)

+  main()

+  {

+      parse_args "$@"

+ @@ -470,5 +499,6 @@ main()

+      finit

+  }

   

+ +

+  # Need to enclose $@ with double quotes not to split the array.

+  main "$@"

  -- 

- 2.33.1

- 

- From 104148bcdada1f8f22ef905c930f9944f3e99a63 Mon Sep 17 00:00:00 2001

- From: fujiwarat <takao.fujiwara1@gmail.com>

- Date: Thu, 2 Dec 2021 23:53:28 +0900

- Subject: [PATCH] src: Disable emoji shortcut key with no-emoji hint

- 

- BUG=https://gitlab.gnome.org/GNOME/gtk/-/issues/4337

- ---

-  src/ibusengine.c | 8 ++++++--

-  1 file changed, 6 insertions(+), 2 deletions(-)

- 

- diff --git a/src/ibusengine.c b/src/ibusengine.c

- index 9aeafbf9..7e844838 100644

- --- a/src/ibusengine.c

- +++ b/src/ibusengine.c

- @@ -2,8 +2,8 @@

-  /* vim:set et sts=4: */

-  /* ibus - The Input Bus

-   * Copyright (C) 2008-2013 Peng Huang <shawn.p.huang@gmail.com>

- - * Copyright (C) 2018-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>

- - * Copyright (C) 2008-2019 Red Hat, Inc.

- + * Copyright (C) 2018-2021 Takao Fujiwara <takao.fujiwara1@gmail.com>

- + * Copyright (C) 2008-2021 Red Hat, Inc.

-   *

-   * This library is free software; you can redistribute it and/or

-   * modify it under the terms of the GNU Lesser General Public

- @@ -954,6 +954,10 @@ ibus_engine_filter_key_event (IBusEngine *engine,

-          return FALSE;

-      for (n = names; n; n = n->next) {

-          const gchar *name = (const gchar *)n->data;

- +        if (!g_strcmp0 (name, "emoji") &&

- +            (engine->priv->content_hints & IBUS_INPUT_HINT_NO_EMOJI)) {

- +            continue;

- +        }

-          keys = g_hash_table_lookup (priv->extension_keybindings, name);

-          for (; keys; keys++) {

-              if (keys->keyval == 0 && keys->keycode == 0 && keys->state == 0)

- -- 

- 2.33.1

+ 2.34.1

  

@@ -1,6 +1,6 @@ 

  From d63da885f8f4e3764b8b572347b70a0cefadc335 Mon Sep 17 00:00:00 2001

  From: fujiwarat <takao.fujiwara1@gmail.com>

- Date: Wed, 16 Jun 2021 20:55:20 +0900

+ Date: Fri, 11 Feb 2022 11:43:57 +0900

  Subject: [PATCH] src/tests: Change window manager to mutter for RHEL

  

  ---
@@ -11,16 +11,16 @@ 

  index 54b7e0d7..211e0da5 100755

  --- a/src/tests/ibus-desktop-testing-runner.in

  +++ b/src/tests/ibus-desktop-testing-runner.in

- @@ -44,7 +44,7 @@ TEST_LOG="test-suite.log"

-  TEST_LOG_STDOUT=0

+ @@ -45,7 +45,7 @@ TEST_LOG_STDOUT=0

   RESULT_LOG=""

+  SCREEN_LOG=""

   HAVE_GRAPHICS=1

  -DESKTOP_COMMAND="dbus-launch --exit-with-session gnome-session"

  +DESKTOP_COMMAND="dbus-launch --exit-with-session mutter"

   PID_XORG=0

   PID_GNOME_SESSION=0

   TESTING_RUNNER="default"

- @@ -80,9 +80,9 @@ usage()

+ @@ -81,9 +81,9 @@ usage()

   "-b, --builddir=BUILDDIR          Set the BUILDDIR\n"                          \

   "-s, --srcdir=SOURCEDIR           Set the SOURCEDIR\n"                         \

   "-c, --no-graphics                Use Xvfb instead of Xorg\n"                  \

file modified
+42 -3
@@ -38,8 +38,8 @@ 

  %global dbus_python_version 0.83.0

  

  Name:           ibus

- Version:        1.5.25

- Release:        6%{?dist}

+ Version:        1.5.26

+ Release:        2%{?dist}

  Summary:        Intelligent Input Bus for Linux OS

  License:        LGPLv2+

  URL:            https://github.com/ibus/%name/wiki
@@ -88,6 +88,7 @@ 

  BuildRequires:  cldr-emoji-annotation

  BuildRequires:  unicode-emoji

  BuildRequires:  unicode-ucd

+ BuildRequires:  systemd

  # for ibus-keypress

  BuildRequires:  libXtst-devel

  
@@ -320,7 +321,6 @@ 

      --enable-introspection \

      --enable-install-tests \

      %{nil}

- make -C ui/gtk3 maintainer-clean-generic

  

  %make_build

  
@@ -433,6 +433,10 @@ 

  %{_libexecdir}/ibus-x11

  %{_sysconfdir}/dconf/db/ibus.d

  %{_sysconfdir}/dconf/profile/ibus

+ %dir %{_sysconfdir}/xdg/Xwayland-session.d

+ %{_sysconfdir}/xdg/Xwayland-session.d/10-ibus-x11

+ %{_prefix}/lib/systemd/user/gnome-session.target.wants/*.service

+ %{_prefix}/lib/systemd/user/org.freedesktop.IBus.session.*.service

  %python3_sitearch/gi/overrides/__pycache__/*.py*

  %python3_sitearch/gi/overrides/IBus.py

  # ibus owns xinput.d because gnome does not like to depend on imsettings.
@@ -517,6 +521,41 @@ 

  %{_datadir}/installed-tests/ibus

  

  %changelog

+ * Mon Mar 28 2022 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.26-2

+ - Update ibus-desktop-testing-runner to always run ibus-daemon directly

+ 

+ * Mon Mar 14 2022 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.26-1

+ - Bump to 1.5.26

+ - Revert CCedilla change for pt-BR

+ 

+ * Fri Mar 04 2022 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.25-13

+ - Check XDG_SESSION_DESKTOP for Plasma desktop

+ 

+ * Tue Mar 01 2022 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.25-12

+ - Fix algorithm dead keys

+ 

+ * Mon Feb 21 2022 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.25-11

+ - Fix forwarding keycode in GTK4

+ 

+ * Fri Feb 11 2022 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.25-10

+ - Do not mkdir abstract unix socket

+ - Fix IBus.key_event_from_string

+ - Add systemd unit file

+ 

+ * Thu Feb 03 2022 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.25-9

+ - Change XKB layout string color in panel

+ - Add Ctrl-semicolon to Emoji shortcut key

+ - Fix unref problems with floating references

+ - Update man page for Emoji shortcut key

+ - Add IBUS_INPUT_HINT_PRIVATE for browser private mode

+ - mkdir socket dirs instead of socket paths

+ 

+ * Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.25-8

+ - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

+ 

+ * Tue Jan 18 2022 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.25-7

+ - Update and fix typo in autostart scripts

+ 

  * Fri Dec 03 2021 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.25-6

  - Check mtime of entity compose file instead of one of symlink file

  - Disable emoji shortcut key with no-emoji hint

file modified
+1 -1
@@ -1,1 +1,1 @@ 

- SHA512 (ibus-1.5.25.tar.gz) = 4b8955a20a1e5a0daf61213817a9697874439866e235e6a7905f5994b145cd5a143e6cfc41f17204a828756baeb8edab70698596731ecebf7f1eea7cc5f36aa6

+ SHA512 (ibus-1.5.26.tar.gz) = 923607c17114af673dcc36532fb44a278b61161ee1b7d4e01b2e0dcffc40c95eb91c6416acc9c0da0333e933863e15263e9a5ff1e467cfc02b71398d601b9714

no initial comment

1 new commit added

  • test2
2 years ago

1 new commit added

  • Add ibus-xx-tests.patch
2 years ago

1 new commit added

  • test3
2 years ago

1 new commit added

  • test4
2 years ago

1 new commit added

  • test5
2 years ago

1 new commit added

  • test6
2 years ago

1 new commit added

  • test7
2 years ago

1 new commit added

  • test8
2 years ago

1 new commit added

  • test9
2 years ago

1 new commit added

  • test10
2 years ago

1 new commit added

  • test10
2 years ago

1 new commit added

  • Add tests/ibus-desktop-testing.desktop
2 years ago

1 new commit added

  • Update ibus.spec for autostart
2 years ago

1 new commit added

  • test11
2 years ago

1 new commit added

  • test12
2 years ago

1 new commit added

  • test13
2 years ago

1 new commit added

  • test14
2 years ago

1 new commit added

  • test15
2 years ago

1 new commit added

  • test16
2 years ago

1 new commit added

  • test17
2 years ago

1 new commit added

  • test18
2 years ago

1 new commit added

  • test19
2 years ago

1 new commit added

  • test20
2 years ago

1 new commit added

  • test21
2 years ago

1 new commit added

  • test22
2 years ago

1 new commit added

  • Add gnome-desktop-testing dependency in CI instead of installing from git
2 years ago

1 new commit added

  • test23
2 years ago

1 new commit added

  • Generate results.yml to follow the defined result format
2 years ago

rebased onto 62afb96

2 years ago

Pull-Request has been closed by fujiwara

2 days ago