Fixed Bug 747902 - mouse and ctrl+space not working
Updated ibus-HEAD.patch - Fixed prev/next keys without global engine. Updated ibus-xx-bridge-hotkey.patch for f16 - Fixed Bug 747902 - mouse and ctrl+space not working - Fixed Bug 749770 - IME hotkey after Control + Space Updated ibus-711632-fedora-fallback-icon.patch - Fixed Bug 717831 - use old icon for desktops other than gnome
This commit is contained in:
parent
15fdf9a598
commit
be89530857
@ -1,3 +1,22 @@
|
||||
--- ibus/ibus/_config.py.in.orig 2011-11-01 18:32:09.235894859 +0900
|
||||
+++ ibus/ibus/_config.py.in 2011-11-02 10:26:40.672355868 +0900
|
||||
@@ -47,10 +47,14 @@ def get_license():
|
||||
|
||||
def get_ICON_KEYBOARD():
|
||||
import gtk
|
||||
- theme = gtk.icon_theme_get_default()
|
||||
icon = '@IBUS_ICON_KEYBOARD@'
|
||||
+ fallback_icon = 'ibus-keyboard'
|
||||
+ settings = gtk.settings_get_default()
|
||||
+ if settings.get_property('gtk-icon-theme-name') != 'gnome':
|
||||
+ icon = fallback_icon
|
||||
+ theme = gtk.icon_theme_get_default()
|
||||
if not theme.lookup_icon(icon, 18, 0):
|
||||
- icon = 'ibus-keyboard'
|
||||
+ icon = fallback_icon
|
||||
return icon
|
||||
|
||||
def use_bridge_hotkey():
|
||||
--- ibus/ui/gtk/main.py.orig 2011-04-25 12:33:39.296999692 +0900
|
||||
+++ ibus/ui/gtk/main.py 2011-06-08 11:53:44.027232075 +0900
|
||||
@@ -86,6 +86,9 @@ class UIApplication:
|
||||
@ -10,9 +29,9 @@
|
||||
# gtk.settings_get_default().props.gtk_theme_name = "/home/phuang/.themes/aud-Default/gtk-2.0/gtkrc"
|
||||
# gtk.rc_parse("./themes/default/gtkrc")
|
||||
UIApplication(replace).run()
|
||||
--- ibus/ui/gtk/panel.py.orig 2011-06-08 12:16:40.107577438 +0900
|
||||
+++ ibus/ui/gtk/panel.py 2011-06-08 12:17:00.440460268 +0900
|
||||
@@ -507,7 +507,7 @@ class Panel(ibus.PanelBase):
|
||||
--- ibus/ui/gtk/panel.py.orig 2011-11-01 18:31:49.845898037 +0900
|
||||
+++ ibus/ui/gtk/panel.py 2011-11-01 18:31:34.480900329 +0900
|
||||
@@ -654,7 +660,7 @@ class Panel(ibus.PanelBase):
|
||||
menu = gtk.Menu()
|
||||
item = gtk.ImageMenuItem(_("No input window"))
|
||||
size = gtk.icon_size_lookup(gtk.ICON_SIZE_MENU)
|
||||
|
@ -249,17 +249,17 @@ index 327a5d9..b6ca12e 100644
|
||||
--
|
||||
1.7.6.4
|
||||
|
||||
From d57b575f2a1b33b60ad84310a4e685e706f8a574 Mon Sep 17 00:00:00 2001
|
||||
From 05f9556278f791bacc0f1019427f8575fa39c9db Mon Sep 17 00:00:00 2001
|
||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||
Date: Fri, 28 Oct 2011 13:09:07 +0900
|
||||
Date: Wed, 2 Nov 2011 10:47:55 +0900
|
||||
Subject: [PATCH] Rerotate next/previous engines without global engine.
|
||||
|
||||
---
|
||||
bus/ibusimpl.c | 33 ++++++++++++++++++++++++++++++---
|
||||
1 files changed, 30 insertions(+), 3 deletions(-)
|
||||
bus/ibusimpl.c | 31 ++++++++++++++++++++++++++++---
|
||||
1 files changed, 28 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c
|
||||
index 0a4f3fb..687f910 100644
|
||||
index 0a4f3fb..059d660 100644
|
||||
--- a/bus/ibusimpl.c
|
||||
+++ b/bus/ibusimpl.c
|
||||
@@ -1056,7 +1056,7 @@ bus_ibus_impl_context_request_rotate_engine_in_menu (BusIBusImpl *ibus,
|
||||
@ -271,7 +271,7 @@ index 0a4f3fb..687f910 100644
|
||||
|
||||
engine = bus_input_context_get_engine (context);
|
||||
if (engine == NULL) {
|
||||
@@ -1074,21 +1074,48 @@ bus_ibus_impl_context_request_rotate_engine_in_menu (BusIBusImpl *ibus,
|
||||
@@ -1074,21 +1074,46 @@ bus_ibus_impl_context_request_rotate_engine_in_menu (BusIBusImpl *ibus,
|
||||
if (p != NULL) {
|
||||
if (is_next) {
|
||||
p = p->next;
|
||||
@ -282,14 +282,12 @@ index 0a4f3fb..687f910 100644
|
||||
}
|
||||
+
|
||||
+ /* Rotate register_engine_list and engine_list. */
|
||||
+ if (p == NULL && is_next &&
|
||||
+ g_list_find (ibus->register_engine_list, desc) != NULL) {
|
||||
+ p = ibus->engine_list;
|
||||
+ }
|
||||
+ else if (p == NULL && !is_next &&
|
||||
+ g_list_find (ibus->register_engine_list, desc) != NULL &&
|
||||
+ ibus->engine_list != NULL) {
|
||||
+ p = g_list_last (ibus->engine_list);
|
||||
+ if (p == NULL && g_list_find (ibus->register_engine_list, desc) != NULL) {
|
||||
+ if (is_next) {
|
||||
+ p = ibus->engine_list;
|
||||
+ } else {
|
||||
+ p = g_list_last (ibus->engine_list);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (p == NULL) {
|
||||
@ -304,18 +302,18 @@ index 0a4f3fb..687f910 100644
|
||||
}
|
||||
}
|
||||
|
||||
+ if (p == NULL && !is_next &&
|
||||
+ g_list_find (ibus->engine_list, desc) != NULL) {
|
||||
+ p = g_list_last (ibus->register_engine_list);
|
||||
+ if (p == NULL) {
|
||||
+ p = g_list_last (ibus->engine_list);
|
||||
+ }
|
||||
+ }
|
||||
+ else if (p == NULL && is_next &&
|
||||
+ g_list_find (ibus->engine_list, desc) != NULL) {
|
||||
+ p = ibus->register_engine_list;
|
||||
+ if (p == NULL) {
|
||||
+ p = ibus->engine_list;
|
||||
+ /* Rerotate register_engine_list and engine_list. */
|
||||
+ if (p == NULL && g_list_find (ibus->engine_list, desc) != NULL) {
|
||||
+ if (is_next) {
|
||||
+ p = ibus->register_engine_list;
|
||||
+ if (p == NULL) {
|
||||
+ p = ibus->engine_list;
|
||||
+ }
|
||||
+ } else {
|
||||
+ p = g_list_last (ibus->register_engine_list);
|
||||
+ if (p == NULL) {
|
||||
+ p = g_list_last (ibus->engine_list);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
|
@ -1,22 +1,22 @@
|
||||
From 0c7589f84d4a0e8723f7fce37981d177a11da4f6 Mon Sep 17 00:00:00 2001
|
||||
From d4fd56784b18c8eb321c75e86a9c21d3e1984888 Mon Sep 17 00:00:00 2001
|
||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||
Date: Fri, 28 Oct 2011 15:30:12 +0900
|
||||
Date: Wed, 2 Nov 2011 12:01:55 +0900
|
||||
Subject: [PATCH] Add a bridge hotkey which use prev-next engines instead
|
||||
of on-off.
|
||||
|
||||
---
|
||||
bus/Makefile.am | 20 +-
|
||||
bus/ibusimpl.c | 571 +++++++++++++++++++++++++++++++++++----
|
||||
bus/ibusimpl.c | 598 +++++++++++++++++++++++++++++++++++----
|
||||
bus/inputcontext.c | 81 ++++++
|
||||
bus/inputcontext.h | 22 ++
|
||||
bus/registry.c | 61 +++++
|
||||
bus/registry.c | 61 ++++
|
||||
bus/registry.h | 10 +
|
||||
configure.ac | 31 +++
|
||||
configure.ac | 31 ++
|
||||
data/Makefile.am | 6 +-
|
||||
data/ibus.schemas.in | 287 --------------------
|
||||
data/ibus.schemas.in | 287 -------------------
|
||||
data/ibus.schemas.in.in | 300 ++++++++++++++++++++
|
||||
ibus/_config.py.in | 6 +
|
||||
ibus/inputcontext.py | 17 ++-
|
||||
ibus/inputcontext.py | 17 +-
|
||||
ibus/interface/iinputcontext.py | 7 +-
|
||||
ibus/xkbxml.py.in | 4 +
|
||||
setup/enginecombobox.py | 3 +
|
||||
@ -26,15 +26,15 @@ Subject: [PATCH] Add a bridge hotkey which use prev-next engines instead
|
||||
src/Makefile.am | 18 +-
|
||||
src/ibushotkey.c | 11 +
|
||||
src/ibushotkey.h | 11 +
|
||||
src/ibusinputcontext.c | 28 ++
|
||||
src/ibusinputcontext.c | 27 ++
|
||||
src/ibusinputcontext.h | 12 +
|
||||
src/ibusutil.c | 12 +
|
||||
src/ibusutil.h | 14 +
|
||||
ui/gtk/panel.py | 305 +++++++++++++++++++--
|
||||
ui/gtk/panel.py | 315 +++++++++++++++++++--
|
||||
xkb/Makefile.am | 2 +
|
||||
xkb/ibus-engine-xkb-main.c | 16 ++
|
||||
xkb/ibus-engine-xkb-main.c | 16 +
|
||||
xkb/xkbxml.c | 10 +-
|
||||
29 files changed, 1561 insertions(+), 391 deletions(-)
|
||||
29 files changed, 1596 insertions(+), 392 deletions(-)
|
||||
delete mode 100644 data/ibus.schemas.in
|
||||
create mode 100644 data/ibus.schemas.in.in
|
||||
|
||||
@ -70,7 +70,7 @@ index 074b456..0efaa1b 100644
|
||||
AM_LDADD = \
|
||||
@GOBJECT2_LIBS@ \
|
||||
diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c
|
||||
index 853465c..00864ac 100644
|
||||
index 059d660..71bb6f1 100644
|
||||
--- a/bus/ibusimpl.c
|
||||
+++ b/bus/ibusimpl.c
|
||||
@@ -20,12 +20,17 @@
|
||||
@ -392,16 +392,66 @@ index 853465c..00864ac 100644
|
||||
#else
|
||||
_set_preload_engines (ibus, value);
|
||||
#endif
|
||||
@@ -1226,7 +1482,73 @@ _context_request_engine_cb (BusInputCont
|
||||
@@ -1216,6 +1472,53 @@ _find_engine_desc_by_name (BusIBusImpl *
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+#if USE_BRIDGE_HOTKEY
|
||||
+const gchar *
|
||||
+_get_engine_desc_hotkeys_with_system (IBusEngineDesc *desc)
|
||||
+{
|
||||
+ const gchar *hotkeys = NULL;
|
||||
+
|
||||
+ /* If the user customized the trigger key, the trigger key is used for
|
||||
+ * any IBus engines. */
|
||||
+ if (_bridge_trigger_keys != NULL &&
|
||||
+ *_bridge_trigger_keys != '\0' &&
|
||||
+ g_strcmp0 (_bridge_trigger_keys, "Control+space") != 0) {
|
||||
+
|
||||
+ hotkeys = (const gchar *) _bridge_trigger_keys;
|
||||
+ } else if (desc) {
|
||||
+ hotkeys = ibus_engine_desc_get_hotkeys (desc);
|
||||
+ }
|
||||
+
|
||||
+ /* If engine hotkeys are not defined in the compose xml file,
|
||||
+ * IBus trigger keys are used. */
|
||||
+ if (!hotkeys || !*hotkeys) {
|
||||
+ hotkeys = (const gchar *) _bridge_trigger_keys;
|
||||
+ }
|
||||
+
|
||||
+ return hotkeys;
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+_update_hotkeys_by_prev_engine_desc (BusIBusImpl *ibus,
|
||||
+ IBusEngineDesc *next_desc,
|
||||
+ IBusEngineDesc *prev_desc)
|
||||
+{
|
||||
+ struct _impl_and_desc {
|
||||
+ BusIBusImpl *ibus;
|
||||
+ IBusEngineDesc *desc;
|
||||
+ } id = {ibus, next_desc};
|
||||
+ const gchar *hotkeys = NULL;
|
||||
+
|
||||
+ hotkeys = _get_engine_desc_hotkeys_with_system (prev_desc);
|
||||
+ if (hotkeys && *hotkeys) {
|
||||
+ ibus_hotkey_profile_foreach_hotkey (ibus->engines_hotkey_profile,
|
||||
+ _foreach_remove_engine_hotkey,
|
||||
+ &id);
|
||||
+ _add_engine_hotkey_with_hotkeys (next_desc, ibus, hotkeys);
|
||||
+ }
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
/**
|
||||
* _context_request_engine_cb:
|
||||
*
|
||||
@@ -1226,7 +1529,53 @@ _context_request_engine_cb (BusInputCont
|
||||
const gchar *engine_name,
|
||||
BusIBusImpl *ibus)
|
||||
{
|
||||
- return bus_ibus_impl_get_engine_desc (ibus, engine_name);
|
||||
+ IBusEngineDesc *desc = bus_ibus_impl_get_engine_desc (ibus, engine_name);
|
||||
+ struct _impl_and_desc {
|
||||
+ BusIBusImpl *ibus;
|
||||
+ IBusEngineDesc *desc;
|
||||
+ } id = {ibus, desc};
|
||||
+
|
||||
+#if USE_BRIDGE_HOTKEY
|
||||
+ IBusEngineDesc *current_desc = NULL;
|
||||
@ -417,6 +467,16 @@ index 853465c..00864ac 100644
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (((current_desc == NULL && desc != NULL) ||
|
||||
+ (current_desc != NULL && desc != NULL &&
|
||||
+ g_strcmp0 (ibus_engine_desc_get_name (current_desc),
|
||||
+ ibus_engine_desc_get_name (desc)) != 0)) &&
|
||||
+ g_ascii_strncasecmp (ibus_engine_desc_get_name (desc),
|
||||
+ DEFAULT_BRIDGE_ENGINE_NAME,
|
||||
+ strlen (DEFAULT_BRIDGE_ENGINE_NAME)) == 0) {
|
||||
+ _update_hotkeys_by_prev_engine_desc (ibus, desc, current_desc);
|
||||
+ }
|
||||
+
|
||||
+ if (current_desc && desc &&
|
||||
+ g_strcmp0 (ibus_engine_desc_get_name (current_desc),
|
||||
+ ibus_engine_desc_get_name (desc)) != 0) {
|
||||
@ -425,49 +485,23 @@ index 853465c..00864ac 100644
|
||||
+ } else {
|
||||
+ ibus->prev_hotkey_engine = current_desc;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (((current_desc == NULL && desc != NULL) ||
|
||||
+ (current_desc != NULL && desc != NULL &&
|
||||
+ g_strcmp0 (ibus_engine_desc_get_name (current_desc),
|
||||
+ ibus_engine_desc_get_name (desc)) != 0)) &&
|
||||
+ g_ascii_strncasecmp (ibus_engine_desc_get_name (desc),
|
||||
+ DEFAULT_BRIDGE_ENGINE_NAME,
|
||||
+ strlen (DEFAULT_BRIDGE_ENGINE_NAME)) == 0) {
|
||||
+ const gchar *hotkeys = NULL;
|
||||
+
|
||||
+ /* If the user customized the trigger key, the trigger key is used for
|
||||
+ * any IBus engines. */
|
||||
+ if (_bridge_trigger_keys != NULL &&
|
||||
+ *_bridge_trigger_keys != '\0' &&
|
||||
+ g_strcmp0 (_bridge_trigger_keys, "Control+space") != 0) {
|
||||
+
|
||||
+ hotkeys = (const gchar *) _bridge_trigger_keys;
|
||||
+ } else if (current_desc) {
|
||||
+ hotkeys = ibus_engine_desc_get_hotkeys (current_desc);
|
||||
+ /* If the previous engine is not included in engine_list and
|
||||
+ * the current engine is the defualt bridge engine,
|
||||
+ * the current engine is also not included in engine_list.
|
||||
+ * So the engine is added here. */
|
||||
+ if (g_ascii_strncasecmp (ibus_engine_desc_get_name (current_desc),
|
||||
+ DEFAULT_BRIDGE_ENGINE_NAME,
|
||||
+ strlen (DEFAULT_BRIDGE_ENGINE_NAME)) == 0) {
|
||||
+ _update_hotkeys_by_prev_engine_desc (ibus, current_desc, desc);
|
||||
+ }
|
||||
+
|
||||
+ /* If engine hotkeys are not defined in the compose xml file,
|
||||
+ * IBus trigger keys are used. */
|
||||
+ if (!hotkeys || !*hotkeys) {
|
||||
+ hotkeys = (const gchar *) _bridge_trigger_keys;
|
||||
+ }
|
||||
+
|
||||
+ if (!hotkeys || !*hotkeys) {
|
||||
+ return desc;
|
||||
+ }
|
||||
+
|
||||
+ ibus_hotkey_profile_foreach_hotkey (ibus->engines_hotkey_profile,
|
||||
+ _foreach_remove_engine_hotkey,
|
||||
+ &id);
|
||||
+ _add_engine_hotkey_with_hotkeys (desc, ibus, hotkeys);
|
||||
+ }
|
||||
+#endif
|
||||
+ return desc;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1265,8 +1587,13 @@ bus_ibus_impl_get_engine_desc (BusIBusIm
|
||||
@@ -1265,8 +1614,13 @@ bus_ibus_impl_get_engine_desc (BusIBusIm
|
||||
if (!desc) {
|
||||
if (ibus->register_engine_list) {
|
||||
desc = (IBusEngineDesc *) ibus->register_engine_list->data;
|
||||
@ -482,7 +516,7 @@ index 853465c..00864ac 100644
|
||||
desc = (IBusEngineDesc *) ibus->engine_list->data;
|
||||
}
|
||||
}
|
||||
@@ -1311,9 +1638,20 @@ bus_ibus_impl_context_request_rotate_eng
|
||||
@@ -1311,9 +1665,20 @@ bus_ibus_impl_context_request_rotate_eng
|
||||
desc = bus_engine_proxy_get_desc (engine);
|
||||
|
||||
p = g_list_find (ibus->register_engine_list, desc);
|
||||
@ -503,35 +537,33 @@ index 853465c..00864ac 100644
|
||||
} else {
|
||||
p = p->prev;
|
||||
}
|
||||
@@ -1344,6 +1682,15 @@ bus_ibus_impl_context_request_rotate_eng
|
||||
if (p == NULL && !is_next &&
|
||||
g_list_find (ibus->engine_list, desc) != NULL) {
|
||||
p = g_list_last (ibus->register_engine_list);
|
||||
@@ -1343,11 +1708,25 @@ bus_ibus_impl_context_request_rotate_eng
|
||||
if (p == NULL && g_list_find (ibus->engine_list, desc) != NULL) {
|
||||
if (is_next) {
|
||||
p = ibus->register_engine_list;
|
||||
+#if USE_BRIDGE_HOTKEY
|
||||
+ if (!use_bridge_hotkey (ibus)) {
|
||||
+ p = NULL;
|
||||
+ }
|
||||
+ else if (ibus->xkb_group_length > 0) {
|
||||
+ p = g_list_nth (ibus->register_engine_list,
|
||||
+ ibus->xkb_group_length - 1);
|
||||
+ }
|
||||
+ if (!use_bridge_hotkey (ibus)) {
|
||||
+ p = NULL;
|
||||
+ }
|
||||
+#endif
|
||||
if (p == NULL) {
|
||||
p = g_list_last (ibus->engine_list);
|
||||
}
|
||||
@@ -1351,6 +1698,11 @@ bus_ibus_impl_context_request_rotate_eng
|
||||
else if (p == NULL && is_next &&
|
||||
g_list_find (ibus->engine_list, desc) != NULL) {
|
||||
p = ibus->register_engine_list;
|
||||
if (p == NULL) {
|
||||
p = ibus->engine_list;
|
||||
}
|
||||
} else {
|
||||
p = g_list_last (ibus->register_engine_list);
|
||||
+#if USE_BRIDGE_HOTKEY
|
||||
+ if (!use_bridge_hotkey (ibus)) {
|
||||
+ p = NULL;
|
||||
+ }
|
||||
+ if (!use_bridge_hotkey (ibus)) {
|
||||
+ p = NULL;
|
||||
+ }
|
||||
+ else if (ibus->xkb_group_length > 0) {
|
||||
+ p = g_list_nth (ibus->register_engine_list,
|
||||
+ ibus->xkb_group_length - 1);
|
||||
+ }
|
||||
+#endif
|
||||
if (p == NULL) {
|
||||
p = ibus->engine_list;
|
||||
}
|
||||
@@ -1360,14 +1712,25 @@ bus_ibus_impl_context_request_rotate_eng
|
||||
if (p == NULL) {
|
||||
p = g_list_last (ibus->engine_list);
|
||||
}
|
||||
@@ -1358,14 +1737,31 @@ bus_ibus_impl_context_request_rotate_eng
|
||||
next_desc = (IBusEngineDesc*) p->data;
|
||||
}
|
||||
else {
|
||||
@ -550,14 +582,20 @@ index 853465c..00864ac 100644
|
||||
}
|
||||
|
||||
+#if USE_BRIDGE_HOTKEY
|
||||
+ if (use_bridge_hotkey (ibus)) {
|
||||
+ if (use_bridge_hotkey (ibus) && desc != next_desc) {
|
||||
+ bus_input_context_set_prev_hotkey_engine (context, desc);
|
||||
+ if (desc != NULL &&
|
||||
+ g_ascii_strncasecmp (ibus_engine_desc_get_name (desc),
|
||||
+ DEFAULT_BRIDGE_ENGINE_NAME,
|
||||
+ strlen (DEFAULT_BRIDGE_ENGINE_NAME)) == 0) {
|
||||
+ _update_hotkeys_by_prev_engine_desc (ibus, desc, next_desc);
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
bus_ibus_impl_set_context_engine_from_desc (ibus, context, next_desc);
|
||||
}
|
||||
|
||||
@@ -1389,7 +1752,9 @@ bus_ibus_impl_context_request_previous_e
|
||||
@@ -1387,7 +1783,9 @@ bus_ibus_impl_context_request_previous_e
|
||||
if (!ibus->global_previous_engine_name) {
|
||||
ibus->global_previous_engine_name = bus_ibus_impl_load_global_previous_engine_name_from_config (ibus);
|
||||
}
|
||||
@ -567,7 +605,7 @@ index 853465c..00864ac 100644
|
||||
if (engine_name != NULL) {
|
||||
/* If the previous engine is removed from the engine list or the
|
||||
current engine and the previous engine are the same one, force
|
||||
@@ -1450,6 +1815,9 @@ bus_ibus_impl_set_focused_context (BusIB
|
||||
@@ -1448,6 +1846,9 @@ bus_ibus_impl_set_focused_context (BusIB
|
||||
|
||||
BusEngineProxy *engine = NULL;
|
||||
gboolean is_enabled = FALSE;
|
||||
@ -577,7 +615,7 @@ index 853465c..00864ac 100644
|
||||
|
||||
if (ibus->focused_context) {
|
||||
if (ibus->use_global_engine) {
|
||||
@@ -1457,6 +1825,9 @@ bus_ibus_impl_set_focused_context (BusIB
|
||||
@@ -1455,6 +1856,9 @@ bus_ibus_impl_set_focused_context (BusIB
|
||||
engine = bus_input_context_get_engine (ibus->focused_context);
|
||||
if (engine) {
|
||||
is_enabled = bus_input_context_is_enabled (ibus->focused_context);
|
||||
@ -587,7 +625,7 @@ index 853465c..00864ac 100644
|
||||
g_object_ref (engine);
|
||||
bus_input_context_set_engine (ibus->focused_context, NULL);
|
||||
}
|
||||
@@ -1481,6 +1852,9 @@ bus_ibus_impl_set_focused_context (BusIB
|
||||
@@ -1479,6 +1883,9 @@ bus_ibus_impl_set_focused_context (BusIB
|
||||
if (is_enabled) {
|
||||
bus_input_context_enable (context);
|
||||
}
|
||||
@ -597,7 +635,7 @@ index 853465c..00864ac 100644
|
||||
g_object_unref (engine);
|
||||
}
|
||||
|
||||
@@ -1710,6 +2084,25 @@ _context_disabled_cb (BusInputContext
|
||||
@@ -1708,6 +2115,25 @@ _context_disabled_cb (BusInputContext
|
||||
}
|
||||
|
||||
/**
|
||||
@ -623,7 +661,7 @@ index 853465c..00864ac 100644
|
||||
* bus_ibus_impl_create_input_context:
|
||||
* @client: A name of a client. e.g. "gtk-im"
|
||||
* @returns: A BusInputContext object.
|
||||
@@ -1737,6 +2130,7 @@ bus_ibus_impl_create_input_context (BusI
|
||||
@@ -1735,6 +2161,7 @@ bus_ibus_impl_create_input_context (BusI
|
||||
{ "destroy", G_CALLBACK (_context_destroy_cb) },
|
||||
{ "enabled", G_CALLBACK (_context_enabled_cb) },
|
||||
{ "disabled", G_CALLBACK (_context_disabled_cb) },
|
||||
@ -631,7 +669,7 @@ index 853465c..00864ac 100644
|
||||
};
|
||||
|
||||
gint i;
|
||||
@@ -2314,6 +2708,9 @@ bus_ibus_impl_filter_keyboard_shortcuts
|
||||
@@ -2312,6 +2739,9 @@ bus_ibus_impl_filter_keyboard_shortcuts
|
||||
|
||||
GQuark event;
|
||||
GList *engine_list;
|
||||
@ -641,7 +679,7 @@ index 853465c..00864ac 100644
|
||||
|
||||
if (trigger == 0) {
|
||||
trigger = g_quark_from_static_string ("trigger");
|
||||
@@ -2379,6 +2776,12 @@ bus_ibus_impl_filter_keyboard_shortcuts
|
||||
@@ -2377,6 +2807,12 @@ bus_ibus_impl_filter_keyboard_shortcuts
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -654,7 +692,7 @@ index 853465c..00864ac 100644
|
||||
/* Then try engines hotkeys. */
|
||||
event = ibus_hotkey_profile_filter_key_event (ibus->engines_hotkey_profile,
|
||||
keyval,
|
||||
@@ -2400,6 +2803,24 @@ bus_ibus_impl_filter_keyboard_shortcuts
|
||||
@@ -2398,6 +2834,24 @@ bus_ibus_impl_filter_keyboard_shortcuts
|
||||
|
||||
g_assert (new_engine_desc);
|
||||
|
||||
@ -679,7 +717,7 @@ index 853465c..00864ac 100644
|
||||
/* Find out what engine we should switch to. If the current engine has
|
||||
* the same hotkey, then we should switch to the next engine with the
|
||||
* same hotkey in the list. Otherwise, we just switch to the first
|
||||
@@ -2411,8 +2832,47 @@ bus_ibus_impl_filter_keyboard_shortcuts
|
||||
@@ -2409,8 +2863,43 @@ bus_ibus_impl_filter_keyboard_shortcuts
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -696,38 +734,34 @@ index 853465c..00864ac 100644
|
||||
+ !bus_input_context_inited_engine (context)) {
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ if (current_engine_desc != new_engine_desc) {
|
||||
|
||||
if (current_engine_desc != new_engine_desc) {
|
||||
+ if (current_engine_desc) {
|
||||
+ if (context) {
|
||||
+ bus_input_context_set_prev_hotkey_engine (context,
|
||||
+ current_engine_desc);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
+ /* If the previous engine is not included in engine_list and
|
||||
+ * the current engine is the defualt bridge engine,
|
||||
+ * the current engine is also not included in engine_list.
|
||||
+
|
||||
+ /* If the current engine is the defualt bridge engine,
|
||||
+ * the current engine is not included in engine_list.
|
||||
+ * E.g. prev is Ctrl+space and Zenaku and current is Ctrl+space.
|
||||
+ * So the engine is added here. */
|
||||
+ if (current_engine_desc != NULL &&
|
||||
+ g_list_find (engine_list, current_engine_desc) == NULL &&
|
||||
+ g_ascii_strncasecmp (ibus_engine_desc_get_name (current_engine_desc),
|
||||
+ DEFAULT_BRIDGE_ENGINE_NAME,
|
||||
+ strlen (DEFAULT_BRIDGE_ENGINE_NAME)) == 0) {
|
||||
+ engine_list = g_list_append (engine_list, current_engine_desc);
|
||||
+
|
||||
+ g_hash_table_steal (ibus->hotkey_to_engines_map,
|
||||
+ GUINT_TO_POINTER (event));
|
||||
+ g_hash_table_insert (ibus->hotkey_to_engines_map,
|
||||
+ GUINT_TO_POINTER (event), engine_list);
|
||||
+ _update_hotkeys_by_prev_engine_desc (ibus,
|
||||
+ current_engine_desc,
|
||||
+ new_engine_desc);
|
||||
+ }
|
||||
+#else
|
||||
if (current_engine_desc != new_engine_desc) {
|
||||
+ if (current_engine_desc != new_engine_desc) {
|
||||
+#endif
|
||||
bus_ibus_impl_set_context_engine_from_desc (ibus, context, new_engine_desc);
|
||||
}
|
||||
|
||||
@@ -2516,59 +2976,54 @@ static void
|
||||
@@ -2514,59 +3003,54 @@ static void
|
||||
_add_engine_hotkey (IBusEngineDesc *engine, BusIBusImpl *ibus)
|
||||
{
|
||||
const gchar *hotkeys;
|
||||
@ -1654,7 +1688,7 @@ index 7cf1995..a19d16e 100644
|
||||
+
|
||||
#endif
|
||||
diff --git a/ui/gtk/panel.py b/ui/gtk/panel.py
|
||||
index 8804634..bef6fbf 100644
|
||||
index 8804634..2fc11bb 100644
|
||||
--- a/ui/gtk/panel.py
|
||||
+++ b/ui/gtk/panel.py
|
||||
@@ -67,6 +67,7 @@ class Panel(ibus.PanelBase):
|
||||
@ -1800,8 +1834,15 @@ index 8804634..bef6fbf 100644
|
||||
if not enabled:
|
||||
self.__set_im_icon(ICON_KEYBOARD)
|
||||
self.__set_im_name(None)
|
||||
@@ -250,7 +353,7 @@ class Panel(ibus.PanelBase):
|
||||
self.__set_im_icon(engine.icon)
|
||||
@@ -247,10 +350,13 @@ class Panel(ibus.PanelBase):
|
||||
else:
|
||||
engine = self.__focus_ic.get_engine()
|
||||
if engine:
|
||||
- self.__set_im_icon(engine.icon)
|
||||
+ if engine.name.startswith(ibus.DEFAULT_BRIDGE_ENGINE_NAME):
|
||||
+ self.__set_im_icon(ICON_KEYBOARD)
|
||||
+ else:
|
||||
+ self.__set_im_icon(engine.icon)
|
||||
self.__set_im_name(engine.longname)
|
||||
if self.__bus.get_use_sys_layout():
|
||||
- self.__xkblayout.set_layout(self.__engine_get_layout_wrapper(engine))
|
||||
@ -1809,7 +1850,7 @@ index 8804634..bef6fbf 100644
|
||||
else:
|
||||
self.__set_im_icon(ICON_KEYBOARD)
|
||||
self.__set_im_name(None)
|
||||
@@ -273,7 +376,21 @@ class Panel(ibus.PanelBase):
|
||||
@@ -273,7 +379,21 @@ class Panel(ibus.PanelBase):
|
||||
return
|
||||
|
||||
enabled = self.__focus_ic.is_enabled()
|
||||
@ -1832,8 +1873,15 @@ index 8804634..bef6fbf 100644
|
||||
|
||||
if enabled == False:
|
||||
self.reset()
|
||||
@@ -287,7 +404,7 @@ class Panel(ibus.PanelBase):
|
||||
self.__set_im_icon(engine.icon)
|
||||
@@ -284,10 +404,13 @@ class Panel(ibus.PanelBase):
|
||||
else:
|
||||
engine = self.__focus_ic.get_engine()
|
||||
if engine:
|
||||
- self.__set_im_icon(engine.icon)
|
||||
+ if engine.name.startswith(ibus.DEFAULT_BRIDGE_ENGINE_NAME):
|
||||
+ self.__set_im_icon(ICON_KEYBOARD)
|
||||
+ else:
|
||||
+ self.__set_im_icon(engine.icon)
|
||||
self.__set_im_name(engine.longname)
|
||||
if self.__bus.get_use_sys_layout():
|
||||
- self.__xkblayout.set_layout(self.__engine_get_layout_wrapper(engine))
|
||||
@ -1841,7 +1889,7 @@ index 8804634..bef6fbf 100644
|
||||
else:
|
||||
self.__set_im_icon(ICON_KEYBOARD)
|
||||
self.__set_im_name(None)
|
||||
@@ -315,6 +432,7 @@ class Panel(ibus.PanelBase):
|
||||
@@ -315,6 +438,7 @@ class Panel(ibus.PanelBase):
|
||||
|
||||
def __config_load_show(self):
|
||||
show = self.__config.get_value("panel", "show", 0)
|
||||
@ -1849,7 +1897,7 @@ index 8804634..bef6fbf 100644
|
||||
self.__language_bar.set_show(show)
|
||||
|
||||
def __config_load_position(self):
|
||||
@@ -443,6 +561,21 @@ class Panel(ibus.PanelBase):
|
||||
@@ -443,6 +567,21 @@ class Panel(ibus.PanelBase):
|
||||
# menu.set_take_focus(False)
|
||||
# return menu
|
||||
|
||||
@ -1871,7 +1919,7 @@ index 8804634..bef6fbf 100644
|
||||
def __create_im_menu(self):
|
||||
engines = self.__bus.list_active_engines()
|
||||
current_engine = \
|
||||
@@ -453,25 +586,39 @@ class Panel(ibus.PanelBase):
|
||||
@@ -453,25 +592,39 @@ class Panel(ibus.PanelBase):
|
||||
size = gtk.icon_size_lookup(gtk.ICON_SIZE_MENU)
|
||||
menu = gtk.Menu()
|
||||
for i, engine in enumerate(engines):
|
||||
@ -1924,7 +1972,7 @@ index 8804634..bef6fbf 100644
|
||||
|
||||
menu.show_all()
|
||||
menu.set_take_focus(False)
|
||||
@@ -523,8 +670,25 @@ class Panel(ibus.PanelBase):
|
||||
@@ -523,8 +676,25 @@ class Panel(ibus.PanelBase):
|
||||
if not self.__focus_ic:
|
||||
return
|
||||
if engine:
|
||||
@ -1951,7 +1999,7 @@ index 8804634..bef6fbf 100644
|
||||
self.__focus_ic.disable()
|
||||
|
||||
def __sys_menu_item_activate_cb(self, item, command):
|
||||
@@ -573,12 +737,113 @@ class Panel(ibus.PanelBase):
|
||||
@@ -573,12 +743,113 @@ class Panel(ibus.PanelBase):
|
||||
self.__setup_pid = pid
|
||||
glib.child_watch_add(self.__setup_pid, self.__child_watch_cb)
|
||||
|
||||
|
26
ibus.spec
26
ibus.spec
@ -30,7 +30,7 @@
|
||||
|
||||
Name: ibus
|
||||
Version: 1.4.0
|
||||
Release: 8%{?dist}
|
||||
Release: 9%{?dist}
|
||||
Summary: Intelligent Input Bus for Linux OS
|
||||
License: LGPLv2+
|
||||
Group: System Environment/Libraries
|
||||
@ -208,6 +208,17 @@ mv data/ibus.schemas.in data/ibus.schemas.in.in
|
||||
|
||||
%build
|
||||
%if %have_libxkbfile
|
||||
XKB_PRELOAD_LAYOUTS=\
|
||||
"us,us(chr),us(dvorak),ad,al,am,ara,az,ba,bd,be,bg,br,bt,by,"\
|
||||
"de,dk,ca,ch,cn(tib),cz,ee,epo,es,et,fi,fo,fr,"\
|
||||
"gb,ge,ge(dsb),ge(ru),ge(os),gh,gh(akan),gh(ewe),gh(fula),gh(ga),gh(hausa),"\
|
||||
"gn,gr,hu,hr,ie,ie(CloGaelach),il,"\
|
||||
"in,"\
|
||||
"in(tel),in(bolnagri),iq,iq(ku),ir,ir(ku),is,it,"\
|
||||
"kg,kh,kz,la,latam,lk,lk(tam_unicode),lt,lv,ma,ma(tifinagh),mal,mao,"\
|
||||
"me,mk,mm,mt,mv,ng,ng(hausa),ng,ng(igbo),ng(yoruba),nl,no,no(smi),np,"\
|
||||
"pk,pl,pl(csb),pt,ro,rs,ru,ru(cv),ru(kom),ru(sah),ru(tt),ru(xal),"\
|
||||
"se,si,sk,sy,sy(ku),th,tj,tr,ua,uz,vn"
|
||||
aclocal -I m4
|
||||
autoheader
|
||||
autoconf -f
|
||||
@ -221,6 +232,9 @@ automake -a -c -f
|
||||
--disable-gtk-doc \
|
||||
--with-no-snooper-apps='gnome-do,Do.*,firefox.*,.*chrome.*,.*chromium.*' \
|
||||
--enable-surrounding-text \
|
||||
%if %have_libxkbfile
|
||||
--with-xkb-preload-layouts=$XKB_PRELOAD_LAYOUTS \
|
||||
%endif
|
||||
%if %have_bridge_hotkey
|
||||
--enable-bridge-hotkey \
|
||||
%endif
|
||||
@ -392,7 +406,17 @@ fi
|
||||
%{_datadir}/gtk-doc/html/*
|
||||
|
||||
%changelog
|
||||
* Wed Nov 02 2011 Takao Fujiwara <tfujiwar@redhat.com> - 1.4.0-9
|
||||
- Updated ibus-HEAD.patch
|
||||
Fixed prev/next keys without global engine.
|
||||
- Updated ibus-xx-bridge-hotkey.patch for f16
|
||||
Fixed Bug 747902 - mouse and ctrl+space not working
|
||||
Fixed Bug 749770 - IME hotkey after Control + Space
|
||||
- Updated ibus-711632-fedora-fallback-icon.patch
|
||||
Fixed Bug 717831 - use old icon for desktops other than gnome
|
||||
|
||||
* Fri Oct 28 2011 Takao Fujiwara <tfujiwar@redhat.com> - 1.4.0-8
|
||||
- Updated ibus-xx-bridge-hotkey.patch for f16
|
||||
- Fixed Bug 747902 - mouse and ctrl+space not working
|
||||
|
||||
* Wed Oct 26 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.4.0-6
|
||||
|
Loading…
Reference in New Issue
Block a user