diff --git a/.gitignore b/.gitignore index fa060b4..da76a5f 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,4 @@ ibus-1.3.6.tar.gz /ibus-1.5.7.tar.gz /ibus-1.5.8.tar.gz /ibus-1.5.9.tar.gz +/ibus-po-1.5.9-20141001.tar.gz diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch index 8b13789..e849d59 100644 --- a/ibus-HEAD.patch +++ b/ibus-HEAD.patch @@ -1 +1,58 @@ +From f33e19bec6ab7d1a6133894c86fdeb5a81ce11f1 Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Wed, 1 Oct 2014 16:21:02 +0900 +Subject: [PATCH] Fix to lose a focus when move the focus from the delayed + focus-in/out. + +Some applications likes google-chrome URL entry could have the delayed +focus-in and focus-out events and ibus fails to get the new focus. + +BUG=rhbz#919863, rhbz#1136623 + +Review URL: https://codereview.appspot.com/7725045 +--- + bus/inputcontext.c | 28 ++++++++++++++++++++++++++++ + 1 file changed, 28 insertions(+) + +diff --git a/bus/inputcontext.c b/bus/inputcontext.c +index b7e1ff8..d9924a1 100644 +--- a/bus/inputcontext.c ++++ b/bus/inputcontext.c +@@ -773,6 +773,34 @@ _ic_process_key_event (BusInputContext *context, + } + } + ++ /* If I move the focus from the URL entry box of google-chrome ++ * to the text buffer of gnome-terminal, ++ * focus-in/focus-out of google-chrome is caused after ++ * focus-in of gonme-terminal and gnome-terminal loses the focus. ++ * The following focus events are received in ibusimcontext: ++ * 1) (gnome-terminal:445): IBUS-WARNING **: 15:32:36:717 focus_in ++ * 2) (google-chrome:495): IBUS-WARNING **: 15:32:36:866 focus_out ++ * 3) (google-chrome:495): IBUS-WARNING **: 15:32:36:875 focus_in ++ * 4) (google-chrome:495): IBUS-WARNING **: 15:32:36:890 focus_out ++ * In 2), Just return because focused_context is not google-chrome. ++ * In 3), focused_context is changed from gnome-terminal to google-chrome ++ * In 4), focused_context is changed from google-chrome to faked_context. ++ * ++ * It seems google-chrome has a popup window of the prediction of URL ++ * and async focus-in/focus-out. ++ */ ++ if (context->has_focus && context->engine == NULL && ++ context->fake == FALSE) { ++ BusInputContext *focused_context = ++ bus_ibus_impl_get_focused_input_context (BUS_DEFAULT_IBUS); ++ ++ if (focused_context != NULL && context != focused_context && ++ (context->capabilities & IBUS_CAP_FOCUS) != 0) { ++ context->has_focus = FALSE; ++ bus_input_context_focus_in (context); ++ } ++ } ++ + /* ignore key events, if it is a fake input context */ + if (context->has_focus && context->engine && context->fake == FALSE) { + bus_engine_proxy_process_key_event (context->engine, +-- +1.8.5.3 diff --git a/ibus.spec b/ibus.spec index 4f8e6b3..6f2f749 100644 --- a/ibus.spec +++ b/ibus.spec @@ -28,7 +28,7 @@ Name: ibus Version: 1.5.9 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Intelligent Input Bus for Linux OS License: LGPLv2+ Group: System Environment/Libraries @@ -36,8 +36,10 @@ URL: http://code.google.com/p/ibus/ Source0: https://github.com/ibus/ibus/releases/download/%{version}/%{name}-%{version}.tar.gz Source1: %{name}-xinput Source2: %{name}.conf.5 +Source3: https://fujiwara.fedorapeople.org/ibus/po/%{name}-po-%{version}-20141001.tar.gz # Upstreamed patches. # Patch0: %%{name}-HEAD.patch +Patch0: %{name}-HEAD.patch BuildRequires: gettext-devel BuildRequires: libtool @@ -214,7 +216,9 @@ The ibus-devel-docs package contains developer documentation for IBus %prep %setup -q +zcat %SOURCE3 | tar xfv - # %%patch0 -p1 +%patch0 -p1 # cp client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c || %build @@ -402,6 +406,10 @@ fi %{_datadir}/gtk-doc/html/* %changelog +* Wed Oct 01 2014 Takao Fujiwara - 1.5.9-2 +- Updated ibus-HEAD.patch for rhbz#1136623. +- Added ibus-po-1.5.9-20141001.tar.gz + * Tue Sep 16 2014 Takao Fujiwara - 1.5.9-1 - Bumped to 1.5.9 diff --git a/sources b/sources index 2239f6f..fc8d504 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ a6e820db4fe3d82c825398f1ed19c77e ibus-1.5.9.tar.gz +4877ac2bac89e33ff00881dba1d538bc ibus-po-1.5.9-20141001.tar.gz