Updated ibus-xx-bridge-hotkey.patch
Fixed 718892, 718453, 718450
This commit is contained in:
parent
88e8e76eb5
commit
b4e3b48e01
@ -967,3 +967,28 @@ index 29b8f1d..6da342a 100644
|
|||||||
--
|
--
|
||||||
1.7.4.4
|
1.7.4.4
|
||||||
|
|
||||||
|
From a25187a315e9dfbb36a3e4a4f8e96f18e2cc6e0d Mon Sep 17 00:00:00 2001
|
||||||
|
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||||
|
Date: Tue, 5 Jul 2011 12:15:55 +0900
|
||||||
|
Subject: [PATCH] Fix SEGV in ibus_keymap_lookup_keysym
|
||||||
|
|
||||||
|
---
|
||||||
|
bus/engineproxy.c | 2 +-
|
||||||
|
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/bus/engineproxy.c b/bus/engineproxy.c
|
||||||
|
index 95e9e0b..a49d6fd 100644
|
||||||
|
--- a/bus/engineproxy.c
|
||||||
|
+++ b/bus/engineproxy.c
|
||||||
|
@@ -907,7 +907,7 @@ bus_engine_proxy_process_key_event (BusEngineProxy *engine,
|
||||||
|
if (keymap == NULL)
|
||||||
|
keymap = BUS_DEFAULT_KEYMAP;
|
||||||
|
if (keymap != NULL) {
|
||||||
|
- guint t = ibus_keymap_lookup_keysym (engine->keymap, keycode, state);
|
||||||
|
+ guint t = ibus_keymap_lookup_keysym (keymap, keycode, state);
|
||||||
|
if (t != IBUS_VoidSymbol) {
|
||||||
|
keyval = t;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
1.7.5.4
|
||||||
|
|
||||||
|
@ -1,32 +1,31 @@
|
|||||||
From bbf124332b8ba43f369be86ba3a6411fe66556d1 Mon Sep 17 00:00:00 2001
|
From 0242d89ec9d4d3d92d335e50b8aa6c16ff950438 Mon Sep 17 00:00:00 2001
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||||
Date: Thu, 30 Jun 2011 11:46:02 +0900
|
Date: Tue, 5 Jul 2011 12:00:31 +0900
|
||||||
Subject: [PATCH] Add a bridge hotkey which use prev-next engines instead
|
Subject: [PATCH] Add a bridge hotkey which use prev-next engines instead
|
||||||
of on-off.
|
of on-off.
|
||||||
|
|
||||||
---
|
---
|
||||||
bus/Makefile.am | 20 ++--
|
bus/Makefile.am | 20 ++-
|
||||||
bus/ibusimpl.c | 255 ++++++++++++++++++++++++++++++----------
|
bus/ibusimpl.c | 356 ++++++++++++++++++++++++++++++++++++--------
|
||||||
bus/registry.c | 35 ++++++
|
bus/registry.c | 35 +++++
|
||||||
configure.ac | 31 +++++
|
configure.ac | 31 ++++
|
||||||
data/Makefile.am | 6 +-
|
data/Makefile.am | 6 +-
|
||||||
data/ibus.schemas.in | 286 --------------------------------------------
|
data/ibus.schemas.in | 286 -----------------------------------
|
||||||
data/ibus.schemas.in.in | 286 ++++++++++++++++++++++++++++++++++++++++++++
|
data/ibus.schemas.in.in | 286 +++++++++++++++++++++++++++++++++++
|
||||||
ibus/_config.py.in | 6 +
|
ibus/_config.py.in | 6 +
|
||||||
ibus/inputcontext.py | 4 +
|
ibus/inputcontext.py | 4 +
|
||||||
setup/enginecombobox.py | 3 +
|
setup/enginecombobox.py | 3 +
|
||||||
setup/enginetreeview.py | 16 ++-
|
setup/enginetreeview.py | 16 ++-
|
||||||
src/Makefile.am | 18 ++--
|
src/Makefile.am | 18 ++-
|
||||||
src/ibusbus.c | 12 ++
|
src/ibusbus.c | 12 ++
|
||||||
src/ibusbus.h | 18 +++
|
src/ibusbus.h | 18 +++
|
||||||
src/ibusenginedesc.c | 4 +
|
|
||||||
src/ibushotkey.c | 11 ++
|
src/ibushotkey.c | 11 ++
|
||||||
src/ibushotkey.h | 11 ++
|
src/ibushotkey.h | 11 ++
|
||||||
ui/gtk/panel.py | 157 +++++++++++++++++++++---
|
ui/gtk/panel.py | 189 +++++++++++++++++++++---
|
||||||
xkb/Makefile.am | 2 +
|
xkb/Makefile.am | 2 +
|
||||||
xkb/ibus-engine-xkb-main.c | 8 ++
|
xkb/ibus-engine-xkb-main.c | 8 +
|
||||||
xkb/xkbxml.c | 8 +-
|
xkb/xkbxml.c | 8 +-
|
||||||
21 files changed, 810 insertions(+), 387 deletions(-)
|
20 files changed, 938 insertions(+), 388 deletions(-)
|
||||||
delete mode 100644 data/ibus.schemas.in
|
delete mode 100644 data/ibus.schemas.in
|
||||||
create mode 100644 data/ibus.schemas.in.in
|
create mode 100644 data/ibus.schemas.in.in
|
||||||
|
|
||||||
@ -62,7 +61,7 @@ index 074b456..0efaa1b 100644
|
|||||||
AM_LDADD = \
|
AM_LDADD = \
|
||||||
@GOBJECT2_LIBS@ \
|
@GOBJECT2_LIBS@ \
|
||||||
diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c
|
diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c
|
||||||
index b356b2c..f3ca330 100644
|
index b356b2c..ffea37a 100644
|
||||||
--- a/bus/ibusimpl.c
|
--- a/bus/ibusimpl.c
|
||||||
+++ b/bus/ibusimpl.c
|
+++ b/bus/ibusimpl.c
|
||||||
@@ -20,6 +20,10 @@
|
@@ -20,6 +20,10 @@
|
||||||
@ -87,7 +86,16 @@ index b356b2c..f3ca330 100644
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct _BusIBusImplClass {
|
struct _BusIBusImplClass {
|
||||||
@@ -285,6 +293,30 @@ _panel_destroy_cb (BusPanelProxy *panel,
|
@@ -99,6 +107,8 @@ enum {
|
||||||
|
static guint _signals[LAST_SIGNAL] = { 0 };
|
||||||
|
*/
|
||||||
|
|
||||||
|
+static gchar *_bridge_trigger_keys = NULL;
|
||||||
|
+
|
||||||
|
/* functions prototype */
|
||||||
|
static void bus_ibus_impl_destroy (BusIBusImpl *ibus);
|
||||||
|
static void bus_ibus_impl_service_method_call
|
||||||
|
@@ -285,6 +295,30 @@ _panel_destroy_cb (BusPanelProxy *panel,
|
||||||
g_object_unref (panel);
|
g_object_unref (panel);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,7 +126,7 @@ index b356b2c..f3ca330 100644
|
|||||||
static void
|
static void
|
||||||
_config_set_value_done (GObject *object,
|
_config_set_value_done (GObject *object,
|
||||||
GAsyncResult *res,
|
GAsyncResult *res,
|
||||||
@@ -475,8 +507,21 @@ _set_preload_engines (BusIBusImpl *ibus,
|
@@ -475,8 +509,21 @@ _set_preload_engines (BusIBusImpl *ibus,
|
||||||
g_variant_unref (value);
|
g_variant_unref (value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,7 +141,7 @@ index b356b2c..f3ca330 100644
|
|||||||
+ engine_list = g_list_insert (engine_list, engine, 1);
|
+ engine_list = g_list_insert (engine_list, engine, 1);
|
||||||
+ } else {
|
+ } else {
|
||||||
+ engine_list = g_list_append (engine_list, engine);
|
+ engine_list = g_list_append (engine_list, engine);
|
||||||
+ }
|
+ }
|
||||||
+ ibus->engine_list = engine_list;
|
+ ibus->engine_list = engine_list;
|
||||||
+ }
|
+ }
|
||||||
+#endif
|
+#endif
|
||||||
@ -141,17 +149,63 @@ index b356b2c..f3ca330 100644
|
|||||||
|
|
||||||
if (ibus->engine_list) {
|
if (ibus->engine_list) {
|
||||||
BusComponent *component = bus_component_from_engine_desc ((IBusEngineDesc *) ibus->engine_list->data);
|
BusComponent *component = bus_component_from_engine_desc ((IBusEngineDesc *) ibus->engine_list->data);
|
||||||
@@ -573,7 +618,9 @@ bus_ibus_impl_set_trigger (BusIBusImpl *
|
@@ -562,6 +609,43 @@ bus_ibus_impl_set_hotkey (BusIBusImpl *i
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if USE_BRIDGE_HOTKEY
|
||||||
|
+static void
|
||||||
|
+bus_ibus_impl_set_bridge_trigger_keys (BusIBusImpl *ibus,
|
||||||
|
+ GQuark hotkey,
|
||||||
|
+ GVariant *value)
|
||||||
|
+{
|
||||||
|
+ g_assert (BUS_IS_IBUS_IMPL (ibus));
|
||||||
|
+
|
||||||
|
+ ibus_hotkey_profile_remove_hotkey_by_event (ibus->hotkey_profile, hotkey);
|
||||||
|
+
|
||||||
|
+ if (value == NULL) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ GVariantIter iter;
|
||||||
|
+ g_variant_iter_init (&iter, value);
|
||||||
|
+ const gchar *str = NULL;
|
||||||
|
+
|
||||||
|
+ g_free (_bridge_trigger_keys);
|
||||||
|
+ _bridge_trigger_keys = NULL;
|
||||||
|
+
|
||||||
|
+ while (g_variant_iter_loop (&iter,"&s", &str)) {
|
||||||
|
+ if (str != NULL) {
|
||||||
|
+ gchar *tmp =NULL;
|
||||||
|
+
|
||||||
|
+ if (_bridge_trigger_keys) {
|
||||||
|
+ tmp = g_strdup_printf ("%s,%s", _bridge_trigger_keys, str);
|
||||||
|
+ } else {
|
||||||
|
+ tmp = g_strdup (str);
|
||||||
|
+ }
|
||||||
|
+ g_free (_bridge_trigger_keys);
|
||||||
|
+ _bridge_trigger_keys = tmp;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* bus_ibus_impl_set_trigger:
|
||||||
|
*
|
||||||
|
@@ -573,7 +657,11 @@ bus_ibus_impl_set_trigger (BusIBusImpl *
|
||||||
{
|
{
|
||||||
GQuark hotkey = g_quark_from_static_string ("trigger");
|
GQuark hotkey = g_quark_from_static_string ("trigger");
|
||||||
if (value != NULL) {
|
if (value != NULL) {
|
||||||
+#if !USE_BRIDGE_HOTKEY
|
+#if USE_BRIDGE_HOTKEY
|
||||||
|
+ bus_ibus_impl_set_bridge_trigger_keys (ibus, hotkey, value);
|
||||||
|
+#else
|
||||||
bus_ibus_impl_set_hotkey (ibus, hotkey, value);
|
bus_ibus_impl_set_hotkey (ibus, hotkey, value);
|
||||||
+#endif
|
+#endif
|
||||||
}
|
}
|
||||||
#ifndef OS_CHROMEOS
|
#ifndef OS_CHROMEOS
|
||||||
else {
|
else {
|
||||||
@@ -1182,28 +1229,110 @@ _ibus_get_address (BusIBusImpl
|
@@ -1182,28 +1270,110 @@ _ibus_get_address (BusIBusImpl
|
||||||
g_variant_new ("(s)", bus_server_get_address ()));
|
g_variant_new ("(s)", bus_server_get_address ()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -279,7 +333,7 @@ index b356b2c..f3ca330 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1216,7 +1345,39 @@ _context_request_engine_cb (BusInputCont
|
@@ -1216,7 +1386,61 @@ _context_request_engine_cb (BusInputCont
|
||||||
const gchar *engine_name,
|
const gchar *engine_name,
|
||||||
BusIBusImpl *ibus)
|
BusIBusImpl *ibus)
|
||||||
{
|
{
|
||||||
@ -292,24 +346,46 @@ index b356b2c..f3ca330 100644
|
|||||||
+
|
+
|
||||||
+#if USE_BRIDGE_HOTKEY
|
+#if USE_BRIDGE_HOTKEY
|
||||||
+ IBusEngineDesc *current_desc = NULL;
|
+ IBusEngineDesc *current_desc = NULL;
|
||||||
|
+
|
||||||
+ if (context) {
|
+ if (context) {
|
||||||
+ BusEngineProxy *engine = bus_input_context_get_engine (context);
|
+ BusEngineProxy *engine = bus_input_context_get_engine (context);
|
||||||
+ if (engine != NULL) {
|
+ if (engine != NULL) {
|
||||||
+ current_desc = bus_engine_proxy_get_desc (engine);
|
+ current_desc = bus_engine_proxy_get_desc (engine);
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
+ if (current_desc) {
|
+ if (current_desc) {
|
||||||
+ ibus->prev_hotkey_engine = current_desc;
|
+ ibus->prev_hotkey_engine = current_desc;
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
+ if (current_desc != NULL && desc != NULL &&
|
+ if (current_desc != NULL && desc != NULL &&
|
||||||
+ g_strcmp0 (ibus_engine_desc_get_name (current_desc),
|
+ g_strcmp0 (ibus_engine_desc_get_name (current_desc),
|
||||||
+ ibus_engine_desc_get_name (desc)) != 0 &&
|
+ ibus_engine_desc_get_name (desc)) != 0 &&
|
||||||
+ g_strcmp0 (ibus_engine_desc_get_name (desc),
|
+ g_strcmp0 (ibus_engine_desc_get_name (desc),
|
||||||
+ DEFAULT_BRIDGE_ENGINE_NAME) == 0) {
|
+ DEFAULT_BRIDGE_ENGINE_NAME) == 0) {
|
||||||
+ const gchar *hotkeys = ibus_engine_desc_get_hotkeys (current_desc);
|
+ const gchar *hotkeys = NULL;
|
||||||
+ if (!hotkeys || !*hotkeys) {
|
+
|
||||||
+ hotkeys = "Control+space";
|
+ /* 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 {
|
||||||
|
+ hotkeys = ibus_engine_desc_get_hotkeys (current_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,
|
+ ibus_hotkey_profile_foreach_hotkey (ibus->engines_hotkey_profile,
|
||||||
+ _foreach_remove_engine_hotkey,
|
+ _foreach_remove_engine_hotkey,
|
||||||
+ &id);
|
+ &id);
|
||||||
@ -320,19 +396,23 @@ index b356b2c..f3ca330 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2357,6 +2518,11 @@ bus_ibus_impl_filter_keyboard_shortcuts
|
@@ -2353,6 +2577,15 @@ bus_ibus_impl_filter_keyboard_shortcuts
|
||||||
* 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
|
g_assert (new_engine_desc);
|
||||||
* engine in the list. */
|
|
||||||
+#if USE_BRIDGE_HOTKEY
|
+#if USE_BRIDGE_HOTKEY
|
||||||
+ if (ibus->prev_hotkey_engine) {
|
+ /* If the previous engine is not included in engine_list,
|
||||||
|
+ * this enables a new engine instead of toggling the engines
|
||||||
|
+ * so should not enable the previous engine. */
|
||||||
|
+ if (ibus->prev_hotkey_engine &&
|
||||||
|
+ g_list_find (engine_list, ibus->prev_hotkey_engine) != NULL) {
|
||||||
+ new_engine_desc = ibus->prev_hotkey_engine;
|
+ new_engine_desc = ibus->prev_hotkey_engine;
|
||||||
+ }
|
+ }
|
||||||
+#else
|
+#else
|
||||||
GList *p = engine_list;
|
/* Find out what engine we should switch to. If the current engine has
|
||||||
for (; p->next != NULL; p = p->next) {
|
* the same hotkey, then we should switch to the next engine with the
|
||||||
if (current_engine_desc == (IBusEngineDesc *) p->data) {
|
* same hotkey in the list. Otherwise, we just switch to the first
|
||||||
@@ -2364,8 +2530,16 @@ bus_ibus_impl_filter_keyboard_shortcuts
|
@@ -2364,8 +2597,31 @@ bus_ibus_impl_filter_keyboard_shortcuts
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -343,13 +423,28 @@ index b356b2c..f3ca330 100644
|
|||||||
+ g_strcmp0 (ibus_engine_desc_get_name (new_engine_desc),
|
+ g_strcmp0 (ibus_engine_desc_get_name (new_engine_desc),
|
||||||
+ DEFAULT_BRIDGE_ENGINE_NAME) == 0) {
|
+ DEFAULT_BRIDGE_ENGINE_NAME) == 0) {
|
||||||
+ ibus->prev_hotkey_engine = current_engine_desc;
|
+ ibus->prev_hotkey_engine = 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.
|
||||||
|
+ * So the engine is added here. */
|
||||||
|
+ if (g_list_find (engine_list, current_engine_desc) == NULL &&
|
||||||
|
+ g_strcmp0 (ibus_engine_desc_get_name (current_engine_desc),
|
||||||
|
+ 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);
|
||||||
|
+ }
|
||||||
+#else
|
+#else
|
||||||
if (current_engine_desc != new_engine_desc) {
|
if (current_engine_desc != new_engine_desc) {
|
||||||
+#endif
|
+#endif
|
||||||
bus_ibus_impl_set_context_engine_from_desc (ibus, context, new_engine_desc);
|
bus_ibus_impl_set_context_engine_from_desc (ibus, context, new_engine_desc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2470,14 +2644,6 @@ static void
|
@@ -2470,59 +2726,39 @@ static void
|
||||||
_add_engine_hotkey (IBusEngineDesc *engine, BusIBusImpl *ibus)
|
_add_engine_hotkey (IBusEngineDesc *engine, BusIBusImpl *ibus)
|
||||||
{
|
{
|
||||||
const gchar *hotkeys;
|
const gchar *hotkeys;
|
||||||
@ -364,10 +459,32 @@ index b356b2c..f3ca330 100644
|
|||||||
|
|
||||||
if (!engine) {
|
if (!engine) {
|
||||||
return;
|
return;
|
||||||
@@ -2489,40 +2655,7 @@ _add_engine_hotkey (IBusEngineDesc *engi
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
+#if USE_BRIDGE_HOTKEY
|
||||||
|
+ /* 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 {
|
||||||
|
+ hotkeys = ibus_engine_desc_get_hotkeys (engine);
|
||||||
|
+ }
|
||||||
|
+#else
|
||||||
|
hotkeys = ibus_engine_desc_get_hotkeys (engine);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
+#if USE_BRIDGE_HOTKEY
|
||||||
|
+ /* If engine hotkeys are not defined in the compose xml file, IBus trigger
|
||||||
|
+ * keys are used. */
|
||||||
|
if (!hotkeys || !*hotkeys) {
|
||||||
|
- return;
|
||||||
|
+ hotkeys = (const gchar *) _bridge_trigger_keys;
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
|
||||||
- hotkey_list = g_strsplit_set (hotkeys, ";,", 0);
|
- hotkey_list = g_strsplit_set (hotkeys, ";,", 0);
|
||||||
-
|
-
|
||||||
- for (p = hotkey_list; p && *p; ++p) {
|
- for (p = hotkey_list; p && *p; ++p) {
|
||||||
@ -399,8 +516,10 @@ index b356b2c..f3ca330 100644
|
|||||||
-
|
-
|
||||||
- g_hash_table_insert (ibus->hotkey_to_engines_map,
|
- g_hash_table_insert (ibus->hotkey_to_engines_map,
|
||||||
- GUINT_TO_POINTER (event), engine_list);
|
- GUINT_TO_POINTER (event), engine_list);
|
||||||
- }
|
+ if (!hotkeys || !*hotkeys) {
|
||||||
-
|
+ return;
|
||||||
|
}
|
||||||
|
|
||||||
- g_strfreev (hotkey_list);
|
- g_strfreev (hotkey_list);
|
||||||
+ _add_engine_hotkey_with_hotkeys (engine, ibus, hotkeys);
|
+ _add_engine_hotkey_with_hotkeys (engine, ibus, hotkeys);
|
||||||
}
|
}
|
||||||
@ -473,7 +592,7 @@ index bc6680d..f47f727 100644
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
diff --git a/configure.ac b/configure.ac
|
diff --git a/configure.ac b/configure.ac
|
||||||
index 85e5e30..a6974d4 100644
|
index 85e5e30..3ada2f8 100644
|
||||||
--- a/configure.ac
|
--- a/configure.ac
|
||||||
+++ b/configure.ac
|
+++ b/configure.ac
|
||||||
@@ -438,6 +438,34 @@ else
|
@@ -438,6 +438,34 @@ else
|
||||||
@ -490,7 +609,7 @@ index 85e5e30..a6974d4 100644
|
|||||||
+
|
+
|
||||||
+if test x"$enable_bridge_hotkey" = x"yes"; then
|
+if test x"$enable_bridge_hotkey" = x"yes"; then
|
||||||
+ USE_BRIDGE_HOTKEY=1
|
+ USE_BRIDGE_HOTKEY=1
|
||||||
+ TRIGGER_HOTKEYS=""
|
+ TRIGGER_HOTKEYS="Control+space"
|
||||||
+else
|
+else
|
||||||
+ USE_BRIDGE_HOTKEY=0
|
+ USE_BRIDGE_HOTKEY=0
|
||||||
+ TRIGGER_HOTKEYS="Control+space,Zenkaku_Hankaku,Alt+Kanji,Alt+grave,Hangul,Alt+Release+Alt_R"
|
+ TRIGGER_HOTKEYS="Control+space,Zenkaku_Hankaku,Alt+Kanji,Alt+grave,Hangul,Alt+Release+Alt_R"
|
||||||
@ -737,22 +856,6 @@ index 77d3916..f560671 100644
|
|||||||
+
|
+
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
#endif
|
#endif
|
||||||
diff --git a/src/ibusenginedesc.c b/src/ibusenginedesc.c
|
|
||||||
index fa3a768..3d6100e 100644
|
|
||||||
--- a/src/ibusenginedesc.c
|
|
||||||
+++ b/src/ibusenginedesc.c
|
|
||||||
@@ -232,7 +232,11 @@ ibus_engine_desc_class_init (IBusEngineDescClass *class)
|
|
||||||
g_param_spec_string ("hotkeys",
|
|
||||||
"description hotkeys",
|
|
||||||
"The hotkeys of engine description",
|
|
||||||
+#if USE_BRIDGE_HOTKEY
|
|
||||||
+ "Control+space",
|
|
||||||
+#else
|
|
||||||
"",
|
|
||||||
+#endif
|
|
||||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
|
|
||||||
|
|
||||||
/**
|
|
||||||
diff --git a/src/ibushotkey.c b/src/ibushotkey.c
|
diff --git a/src/ibushotkey.c b/src/ibushotkey.c
|
||||||
index 32f8338..bef7dfc 100644
|
index 32f8338..bef7dfc 100644
|
||||||
--- a/src/ibushotkey.c
|
--- a/src/ibushotkey.c
|
||||||
@ -794,10 +897,10 @@ index 9a341f6..92ec6af 100644
|
|||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
#endif
|
#endif
|
||||||
diff --git a/ui/gtk/panel.py b/ui/gtk/panel.py
|
diff --git a/ui/gtk/panel.py b/ui/gtk/panel.py
|
||||||
index de64920..5839238 100644
|
index de64920..55acd5a 100644
|
||||||
--- a/ui/gtk/panel.py
|
--- a/ui/gtk/panel.py
|
||||||
+++ b/ui/gtk/panel.py
|
+++ b/ui/gtk/panel.py
|
||||||
@@ -133,6 +133,14 @@ class Panel(ibus.PanelBase):
|
@@ -133,6 +133,15 @@ class Panel(ibus.PanelBase):
|
||||||
# self.__bus.request_name(ibus.panel.IBUS_SERVICE_PANEL, 0)
|
# self.__bus.request_name(ibus.panel.IBUS_SERVICE_PANEL, 0)
|
||||||
|
|
||||||
# init xkb
|
# init xkb
|
||||||
@ -808,11 +911,12 @@ index de64920..5839238 100644
|
|||||||
+ self.__disabled_engines_id = -1
|
+ self.__disabled_engines_id = -1
|
||||||
+ self.__disabled_engines_prev_id = -1
|
+ self.__disabled_engines_prev_id = -1
|
||||||
+ self.__disabled_engines_swapped = 0
|
+ self.__disabled_engines_swapped = 0
|
||||||
|
+ self.__show = 0
|
||||||
+
|
+
|
||||||
self.__xkblayout = ibus.XKBLayout(self.__config)
|
self.__xkblayout = ibus.XKBLayout(self.__config)
|
||||||
use_xkb = self.__config.get_value("general", "use_system_keyboard_layout", False)
|
use_xkb = self.__config.get_value("general", "use_system_keyboard_layout", False)
|
||||||
if not use_xkb:
|
if not use_xkb:
|
||||||
@@ -142,11 +150,18 @@ class Panel(ibus.PanelBase):
|
@@ -142,11 +151,18 @@ class Panel(ibus.PanelBase):
|
||||||
value = 'default'
|
value = 'default'
|
||||||
if value != 'default':
|
if value != 'default':
|
||||||
self.__xkblayout.set_default_layout(value)
|
self.__xkblayout.set_default_layout(value)
|
||||||
@ -831,7 +935,7 @@ index de64920..5839238 100644
|
|||||||
|
|
||||||
def set_cursor_location(self, x, y, w, h):
|
def set_cursor_location(self, x, y, w, h):
|
||||||
self.__candidate_panel.set_cursor_location(x, y, w, h)
|
self.__candidate_panel.set_cursor_location(x, y, w, h)
|
||||||
@@ -233,12 +248,57 @@ class Panel(ibus.PanelBase):
|
@@ -233,12 +249,69 @@ class Panel(ibus.PanelBase):
|
||||||
def __set_im_name(self, name):
|
def __set_im_name(self, name):
|
||||||
self.__language_bar.set_im_name(name)
|
self.__language_bar.set_im_name(name)
|
||||||
|
|
||||||
@ -882,14 +986,27 @@ index de64920..5839238 100644
|
|||||||
self.reset()
|
self.reset()
|
||||||
self.__focus_ic = ibus.InputContext(self.__bus, ic)
|
self.__focus_ic = ibus.InputContext(self.__bus, ic)
|
||||||
enabled = self.__focus_ic.is_enabled()
|
enabled = self.__focus_ic.is_enabled()
|
||||||
self.__language_bar.set_enabled(enabled)
|
- self.__language_bar.set_enabled(enabled)
|
||||||
|
|
||||||
+ if ibus.use_bridge_hotkey():
|
+ if ibus.use_bridge_hotkey():
|
||||||
+ self.__set_default_layout_engine()
|
+ self.__set_default_layout_engine()
|
||||||
|
+ if self.__show != 1:
|
||||||
|
+ self.__language_bar.set_enabled(enabled)
|
||||||
|
+ elif enabled:
|
||||||
|
+ engine = self.__focus_ic.get_engine()
|
||||||
|
+ if engine != None and \
|
||||||
|
+ engine.name != ibus.DEFAULT_BRIDGE_ENGINE_NAME:
|
||||||
|
+ self.__language_bar.set_enabled(enabled)
|
||||||
|
+ else:
|
||||||
|
+ self.__language_bar.set_enabled(False)
|
||||||
|
+ else:
|
||||||
|
+ self.__language_bar.set_enabled(False)
|
||||||
|
+ else:
|
||||||
|
+ self.__language_bar.set_enabled(enabled)
|
||||||
if not enabled:
|
if not enabled:
|
||||||
self.__set_im_icon(ICON_KEYBOARD)
|
self.__set_im_icon(ICON_KEYBOARD)
|
||||||
self.__set_im_name(None)
|
self.__set_im_name(None)
|
||||||
@@ -250,7 +310,7 @@ class Panel(ibus.PanelBase):
|
@@ -250,7 +323,7 @@ class Panel(ibus.PanelBase):
|
||||||
self.__set_im_icon(engine.icon)
|
self.__set_im_icon(engine.icon)
|
||||||
self.__set_im_name(engine.longname)
|
self.__set_im_name(engine.longname)
|
||||||
if self.__bus.get_use_sys_layout():
|
if self.__bus.get_use_sys_layout():
|
||||||
@ -898,7 +1015,30 @@ index de64920..5839238 100644
|
|||||||
else:
|
else:
|
||||||
self.__set_im_icon(ICON_KEYBOARD)
|
self.__set_im_icon(ICON_KEYBOARD)
|
||||||
self.__set_im_name(None)
|
self.__set_im_name(None)
|
||||||
@@ -287,7 +347,7 @@ class Panel(ibus.PanelBase):
|
@@ -273,7 +346,21 @@ class Panel(ibus.PanelBase):
|
||||||
|
return
|
||||||
|
|
||||||
|
enabled = self.__focus_ic.is_enabled()
|
||||||
|
- self.__language_bar.set_enabled(enabled)
|
||||||
|
+
|
||||||
|
+ if ibus.use_bridge_hotkey():
|
||||||
|
+ if self.__show != 1:
|
||||||
|
+ self.__language_bar.set_enabled(enabled)
|
||||||
|
+ elif enabled:
|
||||||
|
+ engine = self.__focus_ic.get_engine()
|
||||||
|
+ if engine != None and \
|
||||||
|
+ engine.name != ibus.DEFAULT_BRIDGE_ENGINE_NAME:
|
||||||
|
+ self.__language_bar.set_enabled(enabled)
|
||||||
|
+ else:
|
||||||
|
+ self.__language_bar.set_enabled(False)
|
||||||
|
+ else:
|
||||||
|
+ self.__language_bar.set_enabled(False)
|
||||||
|
+ else:
|
||||||
|
+ self.__language_bar.set_enabled(enabled)
|
||||||
|
|
||||||
|
if enabled == False:
|
||||||
|
self.reset()
|
||||||
|
@@ -287,7 +374,7 @@ class Panel(ibus.PanelBase):
|
||||||
self.__set_im_icon(engine.icon)
|
self.__set_im_icon(engine.icon)
|
||||||
self.__set_im_name(engine.longname)
|
self.__set_im_name(engine.longname)
|
||||||
if self.__bus.get_use_sys_layout():
|
if self.__bus.get_use_sys_layout():
|
||||||
@ -907,7 +1047,15 @@ index de64920..5839238 100644
|
|||||||
else:
|
else:
|
||||||
self.__set_im_icon(ICON_KEYBOARD)
|
self.__set_im_icon(ICON_KEYBOARD)
|
||||||
self.__set_im_name(None)
|
self.__set_im_name(None)
|
||||||
@@ -443,6 +503,21 @@ class Panel(ibus.PanelBase):
|
@@ -315,6 +402,7 @@ class Panel(ibus.PanelBase):
|
||||||
|
|
||||||
|
def __config_load_show(self):
|
||||||
|
show = self.__config.get_value("panel", "show", 0)
|
||||||
|
+ self.__show = show
|
||||||
|
self.__language_bar.set_show(show)
|
||||||
|
|
||||||
|
def __config_load_position(self):
|
||||||
|
@@ -443,6 +531,21 @@ class Panel(ibus.PanelBase):
|
||||||
# menu.set_take_focus(False)
|
# menu.set_take_focus(False)
|
||||||
# return menu
|
# return menu
|
||||||
|
|
||||||
@ -929,7 +1077,7 @@ index de64920..5839238 100644
|
|||||||
def __create_im_menu(self):
|
def __create_im_menu(self):
|
||||||
engines = self.__bus.list_active_engines()
|
engines = self.__bus.list_active_engines()
|
||||||
current_engine = \
|
current_engine = \
|
||||||
@@ -453,25 +528,31 @@ class Panel(ibus.PanelBase):
|
@@ -453,25 +556,31 @@ class Panel(ibus.PanelBase):
|
||||||
size = gtk.icon_size_lookup(gtk.ICON_SIZE_MENU)
|
size = gtk.icon_size_lookup(gtk.ICON_SIZE_MENU)
|
||||||
menu = gtk.Menu()
|
menu = gtk.Menu()
|
||||||
for i, engine in enumerate(engines):
|
for i, engine in enumerate(engines):
|
||||||
@ -974,7 +1122,7 @@ index de64920..5839238 100644
|
|||||||
|
|
||||||
menu.show_all()
|
menu.show_all()
|
||||||
menu.set_take_focus(False)
|
menu.set_take_focus(False)
|
||||||
@@ -523,8 +604,25 @@ class Panel(ibus.PanelBase):
|
@@ -523,8 +632,25 @@ class Panel(ibus.PanelBase):
|
||||||
if not self.__focus_ic:
|
if not self.__focus_ic:
|
||||||
return
|
return
|
||||||
if engine:
|
if engine:
|
||||||
@ -1001,7 +1149,7 @@ index de64920..5839238 100644
|
|||||||
self.__focus_ic.disable()
|
self.__focus_ic.disable()
|
||||||
|
|
||||||
def __sys_menu_item_activate_cb(self, item, command):
|
def __sys_menu_item_activate_cb(self, item, command):
|
||||||
@@ -573,11 +671,34 @@ class Panel(ibus.PanelBase):
|
@@ -573,11 +699,34 @@ class Panel(ibus.PanelBase):
|
||||||
self.__setup_pid = pid
|
self.__setup_pid = pid
|
||||||
glib.child_watch_add(self.__setup_pid, self.__child_watch_cb)
|
glib.child_watch_add(self.__setup_pid, self.__child_watch_cb)
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
Name: ibus
|
Name: ibus
|
||||||
Version: 1.3.99.20110419
|
Version: 1.3.99.20110419
|
||||||
Release: 7%{?dist}
|
Release: 8%{?dist}
|
||||||
Summary: Intelligent Input Bus for Linux OS
|
Summary: Intelligent Input Bus for Linux OS
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
@ -354,7 +354,7 @@ fi
|
|||||||
%{_datadir}/gtk-doc/html/*
|
%{_datadir}/gtk-doc/html/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Mon Jun 20 2011 Takao Fujiwara <tfujiwar@redhat.com> - 1.3.99.20110419-7
|
* Mon Jun 20 2011 Takao Fujiwara <tfujiwar@redhat.com> - 1.3.99.20110419-8
|
||||||
- Updated ibus-HEAD.patch for upstream.
|
- Updated ibus-HEAD.patch for upstream.
|
||||||
- Removed ibus-435880-surrounding-text.patch as upstream.
|
- Removed ibus-435880-surrounding-text.patch as upstream.
|
||||||
- Added ibus-711632-fedora-fallback-icon.patch
|
- Added ibus-711632-fedora-fallback-icon.patch
|
||||||
|
Loading…
Reference in New Issue
Block a user