Bumped to 1.5.4
This commit is contained in:
parent
28399e7f1a
commit
1faf033457
20
.gitignore
vendored
20
.gitignore
vendored
@ -1,12 +1,3 @@
|
|||||||
ibus-1.3.6.tar.gz
|
|
||||||
/ibus-1.3.7.tar.gz
|
|
||||||
/ibus-1.3.8.tar.gz
|
|
||||||
/ibus-1.3.9.tar.gz
|
|
||||||
/ibus-1.4.0.tar.gz
|
|
||||||
/ibus-1.4.1.tar.gz
|
|
||||||
/ibus-1.5.1.tar.gz
|
|
||||||
/ibus-1.5.2.tar.gz
|
|
||||||
/ibus-1.5.3.tar.gz
|
|
||||||
/ibus-gjs-3.0.2.20110823.tar.gz
|
/ibus-gjs-3.0.2.20110823.tar.gz
|
||||||
/ibus-gjs-3.1.4.20110823.tar.gz
|
/ibus-gjs-3.1.4.20110823.tar.gz
|
||||||
/ibus-gjs-3.0.2.20110908.tar.gz
|
/ibus-gjs-3.0.2.20110908.tar.gz
|
||||||
@ -33,3 +24,14 @@ ibus-1.3.6.tar.gz
|
|||||||
/ibus-gjs-3.4.1.20120518.tar.gz
|
/ibus-gjs-3.4.1.20120518.tar.gz
|
||||||
/ibus-gjs-3.4.1.20120815.tar.gz
|
/ibus-gjs-3.4.1.20120815.tar.gz
|
||||||
/ibus-gjs-3.4.1.20130115.tar.gz
|
/ibus-gjs-3.4.1.20130115.tar.gz
|
||||||
|
/ibus-xkb-1.5.0.tar.gz
|
||||||
|
ibus-1.3.6.tar.gz
|
||||||
|
/ibus-1.3.7.tar.gz
|
||||||
|
/ibus-1.3.8.tar.gz
|
||||||
|
/ibus-1.3.9.tar.gz
|
||||||
|
/ibus-1.4.0.tar.gz
|
||||||
|
/ibus-1.4.1.tar.gz
|
||||||
|
/ibus-1.5.1.tar.gz
|
||||||
|
/ibus-1.5.2.tar.gz
|
||||||
|
/ibus-1.5.3.tar.gz
|
||||||
|
/ibus-1.5.4.tar.gz
|
||||||
|
@ -1,31 +1,31 @@
|
|||||||
From 38a22f910f28d0babadd79d8430b2854281f705e Mon Sep 17 00:00:00 2001
|
From d566bc83a4672b88a38fa5de25741b99ebaeae62 Mon Sep 17 00:00:00 2001
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||||
Date: Fri, 26 Jul 2013 11:28:51 +0900
|
Date: Fri, 20 Sep 2013 17:20:09 +0900
|
||||||
Subject: [PATCH] Reload preload engines until users customize the list.
|
Subject: [PATCH] Reload preload engines until users customize the list.
|
||||||
|
|
||||||
The idea is, if users don't customize the preload_engines with ibus-setup,
|
The idea is, if users don't customize the preload_engines with ibus-setup,
|
||||||
users would prefer to load the system default engines again by login.
|
users would prefer to load the system default engines again by login.
|
||||||
The gconf value 'preload_engine_mode' is
|
The gsettings value 'preload-engine-mode' is
|
||||||
IBUS_PRELOAD_ENGINE_MODE_USER by default but set
|
IBUS_PRELOAD_ENGINE_MODE_USER by default but set
|
||||||
IBUS_PRELOAD_ENGINE_MODE_LANG_RELATIVE for the initial login.
|
IBUS_PRELOAD_ENGINE_MODE_LANG_RELATIVE for the initial login.
|
||||||
If preload_engine_mode is IBUS_PRELOAD_ENGINE_MODE_LANG_RELATIVE,
|
If 'preload-engine-mode' is IBUS_PRELOAD_ENGINE_MODE_LANG_RELATIVE,
|
||||||
ibus-daemon loads the system preload engines by langs.
|
ibus-daemon loads the system preload engines by langs.
|
||||||
If preload_engine_mode is IBUS_PRELOAD_ENGINE_MODE_USER,
|
If 'preload-engine-mode' is IBUS_PRELOAD_ENGINE_MODE_USER,
|
||||||
ibus-daemon do not update the gconf value preload_engines.
|
ibus-daemon do not update the gsettings value 'preload-engines'
|
||||||
On the other hand, if users enable the customized engine checkbutton
|
On the other hand, if users enable the customized engine checkbutton
|
||||||
on ibus-setup, ibus-setup sets 'preload_engine_mode' as
|
on ibus-setup, ibus-setup sets 'preload-engine-mode' as
|
||||||
IBUS_PRELOAD_ENGINE_MODE_USER and users can customize the value
|
IBUS_PRELOAD_ENGINE_MODE_USER and users can customize the value
|
||||||
'preload_engines'.
|
'preload-engines'.
|
||||||
---
|
---
|
||||||
data/ibus.schemas.in | 24 +++++++++
|
data/ibus.schemas.in | 24 ++++++++++++++
|
||||||
setup/main.py | 73 ++++++++++++++++++++++++---
|
setup/main.py | 70 +++++++++++++++++++++++++++++++++++----
|
||||||
setup/setup.ui | 22 +++++++--
|
setup/setup.ui | 22 +++++++++++--
|
||||||
src/ibustypes.h | 10 ++++
|
src/ibustypes.h | 10 ++++++
|
||||||
ui/gtk3/panel.vala | 136 +++++++++++++++++++++++++++++++++++++++++++++++++++
|
ui/gtk3/panel.vala | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
5 files changed, 254 insertions(+), 11 deletions(-)
|
5 files changed, 210 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in
|
diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in
|
||||||
index d0b3db8..52ece27 100644
|
index 88a287f..b6709fd 100644
|
||||||
--- a/data/ibus.schemas.in
|
--- a/data/ibus.schemas.in
|
||||||
+++ b/data/ibus.schemas.in
|
+++ b/data/ibus.schemas.in
|
||||||
@@ -2,6 +2,30 @@
|
@@ -2,6 +2,30 @@
|
||||||
@ -60,26 +60,29 @@ index d0b3db8..52ece27 100644
|
|||||||
<applyto>/desktop/ibus/general/preload_engines</applyto>
|
<applyto>/desktop/ibus/general/preload_engines</applyto>
|
||||||
<owner>ibus</owner>
|
<owner>ibus</owner>
|
||||||
diff --git a/setup/main.py b/setup/main.py
|
diff --git a/setup/main.py b/setup/main.py
|
||||||
index 9703d5e..b39a044 100644
|
index d3f4414..235ef9c 100644
|
||||||
--- a/setup/main.py
|
--- a/setup/main.py
|
||||||
+++ b/setup/main.py
|
+++ b/setup/main.py
|
||||||
@@ -189,16 +189,27 @@ class Setup(object):
|
@@ -187,16 +187,30 @@ class Setup(object):
|
||||||
self.__checkbutton_use_global_engine.connect("toggled",
|
'active',
|
||||||
self.__checkbutton_use_global_engine_toggled_cb)
|
Gio.SettingsBindFlags.DEFAULT)
|
||||||
|
|
||||||
+ # set preload mode
|
+ # set preload mode
|
||||||
+ preload_engine_mode = IBus.PreloadEngineMode.USER
|
+ preload_engine_mode = \
|
||||||
+ variant = self.__config.get_value("general", "preload_engine_mode")
|
+ self.__settings_general.get_int('preload-engine-mode')
|
||||||
+ if variant != None:
|
|
||||||
+ preload_engine_mode = variant.get_int32()
|
|
||||||
+ button = self.__builder.get_object("checkbutton_preload_engine_mode")
|
+ button = self.__builder.get_object("checkbutton_preload_engine_mode")
|
||||||
|
+ hbox = self.__builder.get_object("hbox_customize_active_input_methods")
|
||||||
+ if preload_engine_mode == IBus.PreloadEngineMode.USER:
|
+ if preload_engine_mode == IBus.PreloadEngineMode.USER:
|
||||||
+ button.set_active(True)
|
+ button.set_active(True)
|
||||||
+ self.__builder.get_object("hbox_customize_active_input_methods").set_sensitive(True)
|
+ hbox.set_sensitive(True)
|
||||||
+ else:
|
+ else:
|
||||||
+ button.set_active(False)
|
+ button.set_active(False)
|
||||||
+ self.__builder.get_object("hbox_customize_active_input_methods").set_sensitive(False)
|
+ hbox.set_sensitive(False)
|
||||||
+ button.connect("toggled", self.__checkbutton_preload_engine_mode_toggled_cb)
|
+ button.connect('toggled',
|
||||||
|
+ self.__checkbutton_preload_engine_mode_toggled_cb)
|
||||||
|
+
|
||||||
|
+ self.__settings_general.connect('changed::preload-engines',
|
||||||
|
+ self.__settings_general_preload_engines_cb)
|
||||||
+
|
+
|
||||||
# init engine page
|
# init engine page
|
||||||
self.__engines = self.__bus.list_engines()
|
self.__engines = self.__bus.list_engines()
|
||||||
@ -89,21 +92,13 @@ index 9703d5e..b39a044 100644
|
|||||||
- tmp_dict = {}
|
- tmp_dict = {}
|
||||||
- for e in self.__engines:
|
- for e in self.__engines:
|
||||||
- tmp_dict[e.get_name()] = e
|
- tmp_dict[e.get_name()] = e
|
||||||
engine_names = values.get("preload_engines", [])
|
engine_names = self.__settings_general.get_strv('preload-engines')
|
||||||
- engines = [tmp_dict[name] for name in engine_names if name in tmp_dict]
|
- engines = [tmp_dict[name] for name in engine_names if name in tmp_dict]
|
||||||
+ engines = self.__get_engine_descs_from_names(engine_names)
|
+ engines = self.__get_engine_descs_from_names(engine_names)
|
||||||
|
|
||||||
self.__treeview = self.__builder.get_object("treeview_engines")
|
self.__treeview = self.__builder.get_object("treeview_engines")
|
||||||
self.__treeview.set_engines(engines)
|
self.__treeview.set_engines(engines)
|
||||||
@@ -242,6 +253,7 @@ class Setup(object):
|
@@ -246,8 +260,8 @@ class Setup(object):
|
||||||
self.__checkbutton_auto_start_toggled_cb)
|
|
||||||
|
|
||||||
self.__config = self.__bus.get_config()
|
|
||||||
+ self.__config.connect("value-changed", self.__config_value_changed_cb)
|
|
||||||
|
|
||||||
self.__init_hotkey()
|
|
||||||
self.__init_panel()
|
|
||||||
@@ -250,8 +262,8 @@ class Setup(object):
|
|
||||||
def __combobox_notify_active_engine_cb(self, combobox, property):
|
def __combobox_notify_active_engine_cb(self, combobox, property):
|
||||||
engine = self.__combobox.get_active_engine()
|
engine = self.__combobox.get_active_engine()
|
||||||
button = self.__builder.get_object("button_engine_add")
|
button = self.__builder.get_object("button_engine_add")
|
||||||
@ -114,7 +109,7 @@ index 9703d5e..b39a044 100644
|
|||||||
|
|
||||||
def __get_engine_setup_exec_args(self, engine):
|
def __get_engine_setup_exec_args(self, engine):
|
||||||
args = []
|
args = []
|
||||||
@@ -271,6 +283,13 @@ class Setup(object):
|
@@ -267,6 +281,13 @@ class Setup(object):
|
||||||
args.append(path.basename(setup_path))
|
args.append(path.basename(setup_path))
|
||||||
return args
|
return args
|
||||||
|
|
||||||
@ -128,18 +123,17 @@ index 9703d5e..b39a044 100644
|
|||||||
def __treeview_notify_cb(self, treeview, prop):
|
def __treeview_notify_cb(self, treeview, prop):
|
||||||
if prop.name not in ("active-engine", "engines"):
|
if prop.name not in ("active-engine", "engines"):
|
||||||
return
|
return
|
||||||
@@ -323,6 +342,34 @@ class Setup(object):
|
@@ -318,6 +339,43 @@ class Setup(object):
|
||||||
del self.__engine_setup_exec_list[name]
|
del self.__engine_setup_exec_list[name]
|
||||||
self.__engine_setup_exec_list[name] = os.spawnl(os.P_NOWAIT, *args)
|
self.__engine_setup_exec_list[name] = os.spawnl(os.P_NOWAIT, *args)
|
||||||
|
|
||||||
+ def __checkbutton_preload_engine_mode_toggled_cb(self, button):
|
+ def __checkbutton_preload_engine_mode_toggled_cb(self, button):
|
||||||
+ if button.get_active():
|
+ if button.get_active():
|
||||||
+ variant = GLib.Variant.new_int32(IBus.PreloadEngineMode.USER)
|
+ self.__settings_general.set_int('preload-engine-mode',
|
||||||
+ self.__config.set_value("general",
|
+ IBus.PreloadEngineMode.USER)
|
||||||
+ "preload_engine_mode",
|
+ self.__builder.get_object(
|
||||||
+ variant)
|
+ "hbox_customize_active_input_methods").set_sensitive(True)
|
||||||
+ self.__builder.get_object("hbox_customize_active_input_methods").set_sensitive(True)
|
+ self.__treeview.notify('engines')
|
||||||
+ self.__treeview.notify("engines")
|
|
||||||
+ else:
|
+ else:
|
||||||
+ message = _("The list of your saved input methods will be " \
|
+ message = _("The list of your saved input methods will be " \
|
||||||
+ "cleared immediately and the list will be " \
|
+ "cleared immediately and the list will be " \
|
||||||
@ -154,38 +148,27 @@ index 9703d5e..b39a044 100644
|
|||||||
+ if id != Gtk.ResponseType.YES:
|
+ if id != Gtk.ResponseType.YES:
|
||||||
+ button.set_active(True)
|
+ button.set_active(True)
|
||||||
+ return
|
+ return
|
||||||
+ variant = GLib.Variant.new_int32(IBus.PreloadEngineMode.LANG_RELATIVE)
|
+ self.__settings_general.set_int(
|
||||||
+ self.__config.set_value("general",
|
+ 'preload-engine-mode',
|
||||||
+ "preload_engine_mode",
|
+ IBus.PreloadEngineMode.LANG_RELATIVE)
|
||||||
+ variant)
|
+ self.__builder.get_object(
|
||||||
+ self.__builder.get_object("hbox_customize_active_input_methods").set_sensitive(False)
|
+ "hbox_customize_active_input_methods").set_sensitive(False)
|
||||||
|
+
|
||||||
|
+ def __settings_general_preload_engines_cb(self, settings, key):
|
||||||
|
+ engine_names = self.__settings_general.get_strv('preload-engines')
|
||||||
|
+ engines = self.__get_engine_descs_from_names(engine_names)
|
||||||
|
+ current_engines = self.__treeview.get_engines()
|
||||||
|
+ engines_csv = str.join(',', map(lambda e: e.get_name(), engines))
|
||||||
|
+ current_engines_csv = \
|
||||||
|
+ str.join(',', map(lambda e: e.get_name(), current_engines))
|
||||||
|
+ if engines_csv != current_engines_csv:
|
||||||
|
+ self.__treeview.set_engines(engines)
|
||||||
+
|
+
|
||||||
def __init_bus(self):
|
def __init_bus(self):
|
||||||
self.__bus = IBus.Bus()
|
self.__bus = IBus.Bus()
|
||||||
if self.__bus.is_connected():
|
if self.__bus.is_connected():
|
||||||
@@ -541,8 +588,18 @@ class Setup(object):
|
|
||||||
value = GLib.Variant.new_boolean(value)
|
|
||||||
self.__config.set_value("general", "use_global_engine", value)
|
|
||||||
|
|
||||||
- def __config_value_changed_cb(self, bus, section, name, value):
|
|
||||||
- pass
|
|
||||||
+ def __config_value_changed_cb(self, bus, section, name, variant):
|
|
||||||
+ if section == 'general' and name == 'preload_engines':
|
|
||||||
+ value = []
|
|
||||||
+ if variant != None:
|
|
||||||
+ value = variant.unpack()
|
|
||||||
+ engines = self.__get_engine_descs_from_names(value)
|
|
||||||
+ current_engines = self.__treeview.get_engines()
|
|
||||||
+ engines_csv = str.join(',', map(lambda e: e.get_name(), engines))
|
|
||||||
+ current_engines_csv = \
|
|
||||||
+ str.join(',', map(lambda e: e.get_name(), current_engines))
|
|
||||||
+ if engines_csv != current_engines_csv:
|
|
||||||
+ self.__treeview.set_engines(engines)
|
|
||||||
|
|
||||||
def __config_reloaded_cb(self, bus):
|
|
||||||
pass
|
|
||||||
diff --git a/setup/setup.ui b/setup/setup.ui
|
diff --git a/setup/setup.ui b/setup/setup.ui
|
||||||
index 2042263..33827f1 100644
|
index 1638abb..72a5d57 100644
|
||||||
--- a/setup/setup.ui
|
--- a/setup/setup.ui
|
||||||
+++ b/setup/setup.ui
|
+++ b/setup/setup.ui
|
||||||
@@ -669,7 +669,23 @@
|
@@ -669,7 +669,23 @@
|
||||||
@ -232,7 +215,7 @@ index 2042263..33827f1 100644
|
|||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
diff --git a/src/ibustypes.h b/src/ibustypes.h
|
diff --git a/src/ibustypes.h b/src/ibustypes.h
|
||||||
index 737b3e2..8ce5a16 100644
|
index 6d30a86..dac7f8f 100644
|
||||||
--- a/src/ibustypes.h
|
--- a/src/ibustypes.h
|
||||||
+++ b/src/ibustypes.h
|
+++ b/src/ibustypes.h
|
||||||
@@ -204,6 +204,16 @@ typedef enum {
|
@@ -204,6 +204,16 @@ typedef enum {
|
||||||
@ -253,73 +236,55 @@ index 737b3e2..8ce5a16 100644
|
|||||||
* @x: x coordinate.
|
* @x: x coordinate.
|
||||||
* @y: y coordinate.
|
* @y: y coordinate.
|
||||||
diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
|
diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
|
||||||
index fb012c3..54251e7 100644
|
index c08f6f4..9c1fef5 100644
|
||||||
--- a/ui/gtk3/panel.vala
|
--- a/ui/gtk3/panel.vala
|
||||||
+++ b/ui/gtk3/panel.vala
|
+++ b/ui/gtk3/panel.vala
|
||||||
@@ -413,6 +413,8 @@ class Panel : IBus.PanelService {
|
@@ -130,6 +130,10 @@ class Panel : IBus.PanelService {
|
||||||
if (m_config != null) {
|
null);
|
||||||
m_config.value_changed.connect(config_value_changed_cb);
|
});
|
||||||
m_config.watch("general", "preload_engines");
|
|
||||||
+ m_config.watch("general", "preload_engines_inited");
|
+ m_settings_general.changed["preload-engine-mode"].connect((key) => {
|
||||||
+ m_config.watch("general", "preload_engine_mode");
|
+ update_im_engines();
|
||||||
m_config.watch("general", "embed_preedit_text");
|
+ });
|
||||||
m_config.watch("general", "engines_order");
|
+
|
||||||
m_config.watch("general", "switcher_delay_time");
|
m_settings_general.changed["switcher-delay-time"].connect((key) => {
|
||||||
@@ -487,7 +489,136 @@ class Panel : IBus.PanelService {
|
set_switcher_delay_time();
|
||||||
|
});
|
||||||
|
@@ -476,7 +480,96 @@ class Panel : IBus.PanelService {
|
||||||
init_gkbd();
|
init_gkbd();
|
||||||
}
|
}
|
||||||
|
|
||||||
+ GLib.Variant var_engines =
|
+ string[] preload_engines =
|
||||||
+ m_config.get_value("general", "preload_engines");
|
+ m_settings_general.get_strv("preload-engines");
|
||||||
+ string[] preload_engines = {};
|
|
||||||
+
|
+
|
||||||
+ if (var_engines != null) {
|
+ bool preload_engines_inited =
|
||||||
+ preload_engines = var_engines.dup_strv();
|
+ m_settings_general.get_boolean("preload-engines-inited");
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ bool preload_engines_inited = false;
|
|
||||||
+ GLib.Variant var_preload_engines_inited =
|
|
||||||
+ m_config.get_value("general", "preload_engines_inited");
|
|
||||||
+
|
|
||||||
+ if (var_preload_engines_inited != null) {
|
|
||||||
+ preload_engines_inited = var_preload_engines_inited.get_boolean();
|
|
||||||
+ }
|
|
||||||
+
|
+
|
||||||
+ // Set preload_engines_inited = true for back compatibility
|
+ // Set preload_engines_inited = true for back compatibility
|
||||||
+ if (preload_engines.length != 0 && !preload_engines_inited) {
|
+ if (preload_engines.length != 0 && !preload_engines_inited) {
|
||||||
+ preload_engines_inited = true;
|
+ preload_engines_inited = true;
|
||||||
+ m_config.set_value("general",
|
+ m_settings_general.set_boolean("preload-engines-inited", true);
|
||||||
+ "preload_engines_inited",
|
|
||||||
+ new GLib.Variant.boolean(true));
|
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
update_xkb_engines();
|
update_xkb_engines();
|
||||||
+
|
+
|
||||||
+ // Before update preload_engine_mode, update_xkb_engines() is called
|
+ // Before update preload_engine_mode, update_xkb_engines() is called
|
||||||
+ // because config_value_changed_cb() calls update_im_engines().
|
+ // because "preload-engine-mode" signal calls update_im_engines().
|
||||||
+ if (!preload_engines_inited) {
|
+ if (!preload_engines_inited)
|
||||||
+ GLib.Variant variant = new GLib.Variant.int32(
|
+ m_settings_general.set_int("preload-engine-mode",
|
||||||
+ IBus.PreloadEngineMode.LANG_RELATIVE);
|
+ IBus.PreloadEngineMode.LANG_RELATIVE);
|
||||||
+ m_config.set_value("general",
|
|
||||||
+ "preload_engine_mode",
|
|
||||||
+ variant);
|
|
||||||
+ }
|
|
||||||
+
|
+
|
||||||
+ update_im_engines();
|
+ update_im_engines();
|
||||||
+
|
+
|
||||||
+ if (!preload_engines_inited) {
|
+ if (!preload_engines_inited)
|
||||||
+ m_config.set_value("general",
|
+ m_settings_general.set_boolean("preload-engines-inited", true);
|
||||||
+ "preload_engines_inited",
|
|
||||||
+ new GLib.Variant.boolean(true));
|
|
||||||
+ }
|
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ private bool set_lang_relative_preload_engines() {
|
+ private bool set_lang_relative_preload_engines() {
|
||||||
+ string locale = Intl.setlocale(LocaleCategory.CTYPE, null);
|
+ string locale = Intl.setlocale(LocaleCategory.CTYPE, null);
|
||||||
+
|
+
|
||||||
+ if (locale == null) {
|
+ if (locale == null)
|
||||||
+ locale = "C";
|
+ locale = "C";
|
||||||
+ }
|
|
||||||
+
|
+
|
||||||
+ string lang = locale.split(".")[0];
|
+ string lang = locale.split(".")[0];
|
||||||
+ GLib.List<IBus.EngineDesc> engines = m_bus.list_engines();
|
+ GLib.List<IBus.EngineDesc> engines = m_bus.list_engines();
|
||||||
@ -329,10 +294,8 @@ index fb012c3..54251e7 100644
|
|||||||
+ p != null;
|
+ p != null;
|
||||||
+ p = p.next) {
|
+ p = p.next) {
|
||||||
+ unowned IBus.EngineDesc engine = p.data;
|
+ unowned IBus.EngineDesc engine = p.data;
|
||||||
+ if (engine.get_language() == lang &&
|
+ if (engine.get_language() == lang && engine.get_rank() > 0)
|
||||||
+ engine.get_rank() > 0) {
|
|
||||||
+ im_engines += engine.get_name();
|
+ im_engines += engine.get_name();
|
||||||
+ }
|
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ lang = lang.split("_")[0];
|
+ lang = lang.split("_")[0];
|
||||||
@ -341,79 +304,49 @@ index fb012c3..54251e7 100644
|
|||||||
+ p != null;
|
+ p != null;
|
||||||
+ p = p.next) {
|
+ p = p.next) {
|
||||||
+ unowned IBus.EngineDesc engine = p.data;
|
+ unowned IBus.EngineDesc engine = p.data;
|
||||||
+ if (engine.get_language() == lang &&
|
+ if (engine.get_language() == lang && engine.get_rank() > 0)
|
||||||
+ engine.get_rank() > 0) {
|
|
||||||
+ im_engines += engine.get_name();
|
+ im_engines += engine.get_name();
|
||||||
+ }
|
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ if (im_engines.length == 0) {
|
+ if (im_engines.length == 0)
|
||||||
+ return false;
|
+ return false;
|
||||||
+ }
|
|
||||||
+
|
+
|
||||||
+ GLib.Variant var_engines =
|
+ string[] orig_preload_engines =
|
||||||
+ m_config.get_value("general", "preload_engines");
|
+ m_settings_general.get_strv("preload-engines");
|
||||||
+ string[] orig_preload_engines = {};
|
|
||||||
+ string[] preload_engines = {};
|
+ string[] preload_engines = {};
|
||||||
+
|
+
|
||||||
+ if (var_engines != null) {
|
|
||||||
+ orig_preload_engines = var_engines.dup_strv();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ // clear input method engines
|
+ // clear input method engines
|
||||||
+ foreach (string name in orig_preload_engines) {
|
+ foreach (string name in orig_preload_engines) {
|
||||||
+ if (name.ascii_ncasecmp("xkb:", 4) != 0) {
|
+ if (name.ascii_ncasecmp("xkb:", 4) != 0)
|
||||||
+ continue;
|
+ continue;
|
||||||
+ }
|
+
|
||||||
+ preload_engines += name;
|
+ preload_engines += name;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ foreach (string name in im_engines) {
|
+ foreach (string name in im_engines) {
|
||||||
+ if (!(name in preload_engines)) {
|
+ if (!(name in preload_engines))
|
||||||
+ preload_engines += name;
|
+ preload_engines += name;
|
||||||
+ }
|
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ if ("".joinv(",", orig_preload_engines) !=
|
+ if ("".joinv(",", orig_preload_engines) !=
|
||||||
+ "".joinv(",", preload_engines)) {
|
+ "".joinv(",", preload_engines))
|
||||||
+ m_config.set_value("general",
|
+ m_settings_general.set_strv("preload-engines", preload_engines);
|
||||||
+ "preload_engines",
|
|
||||||
+ new GLib.Variant.strv(preload_engines));
|
|
||||||
+ }
|
|
||||||
+
|
+
|
||||||
+ return true;
|
+ return true;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ private void update_im_engines() {
|
+ private void update_im_engines() {
|
||||||
+ int preload_engine_mode = IBus.PreloadEngineMode.USER;
|
+ int preload_engine_mode =
|
||||||
+ GLib.Variant var_preload_engine_mode =
|
+ m_settings_general.get_int("preload-engine-mode");
|
||||||
+ m_config.get_value("general", "preload_engine_mode");
|
|
||||||
+
|
+
|
||||||
+ if (var_preload_engine_mode != null) {
|
+ if (preload_engine_mode == IBus.PreloadEngineMode.USER)
|
||||||
+ preload_engine_mode = var_preload_engine_mode.get_int32();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (preload_engine_mode == IBus.PreloadEngineMode.USER) {
|
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
|
||||||
+
|
+
|
||||||
+ set_lang_relative_preload_engines();
|
+ set_lang_relative_preload_engines();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void update_xkb_engines() {
|
private void update_xkb_engines() {
|
||||||
@@ -704,6 +835,11 @@ class Panel : IBus.PanelService {
|
|
||||||
string section,
|
|
||||||
string name,
|
|
||||||
Variant variant) {
|
|
||||||
+ if (section == "general" && name == "preload_engine_mode") {
|
|
||||||
+ update_im_engines();
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (section == "general" && name == "preload_engines") {
|
|
||||||
update_engines(variant, null);
|
|
||||||
return;
|
|
||||||
--
|
--
|
||||||
1.8.0
|
1.8.0
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
From 53928ed24b12912fdec8e279f5e739b251a5084a Mon Sep 17 00:00:00 2001
|
From 5c8ce9720f607512c2734f08d3e7141d8f5b9e99 Mon Sep 17 00:00:00 2001
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||||
Date: Fri, 26 Jul 2013 11:27:37 +0900
|
Date: Fri, 20 Sep 2013 17:16:56 +0900
|
||||||
Subject: [PATCH] Add libgnomekbd and load preload engines.
|
Subject: [PATCH] Add libgnomekbd and load preload engines.
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -19,9 +19,9 @@ Subject: [PATCH] Add libgnomekbd and load preload engines.
|
|||||||
ui/gtk3/Makefile.am | 36 ++++
|
ui/gtk3/Makefile.am | 36 ++++
|
||||||
ui/gtk3/gkbdlayout.vala.false | 63 ++++++
|
ui/gtk3/gkbdlayout.vala.false | 63 ++++++
|
||||||
ui/gtk3/gkbdlayout.vala.true | 108 ++++++++++
|
ui/gtk3/gkbdlayout.vala.true | 108 ++++++++++
|
||||||
ui/gtk3/panel.vala | 216 ++++++++++++++++++-
|
ui/gtk3/panel.vala | 196 ++++++++++++++++-
|
||||||
ui/gtk3/xkblayout.vala | 431 +++++++++++++++++++++++++++++++++++++
|
ui/gtk3/xkblayout.vala | 429 ++++++++++++++++++++++++++++++++++++
|
||||||
17 files changed, 1645 insertions(+), 4 deletions(-)
|
17 files changed, 1623 insertions(+), 4 deletions(-)
|
||||||
create mode 100644 bindings/vala/Gkbd-3.0.metadata
|
create mode 100644 bindings/vala/Gkbd-3.0.metadata
|
||||||
create mode 100644 bindings/vala/Xkl-1.0.metadata
|
create mode 100644 bindings/vala/Xkl-1.0.metadata
|
||||||
create mode 100644 bindings/vala/gkbd.deps
|
create mode 100644 bindings/vala/gkbd.deps
|
||||||
@ -39,7 +39,7 @@ index 0000000..661e6fd
|
|||||||
@@ -0,0 +1 @@
|
@@ -0,0 +1 @@
|
||||||
+Configuration cheader_filename="libgnomekbd/gkbd-configuration.h"
|
+Configuration cheader_filename="libgnomekbd/gkbd-configuration.h"
|
||||||
diff --git a/bindings/vala/Makefile.am b/bindings/vala/Makefile.am
|
diff --git a/bindings/vala/Makefile.am b/bindings/vala/Makefile.am
|
||||||
index be45e41..44b3e61 100644
|
index 84aa1b4..4d8aae4 100644
|
||||||
--- a/bindings/vala/Makefile.am
|
--- a/bindings/vala/Makefile.am
|
||||||
+++ b/bindings/vala/Makefile.am
|
+++ b/bindings/vala/Makefile.am
|
||||||
@@ -28,8 +28,6 @@ vapi_deps = \
|
@@ -28,8 +28,6 @@ vapi_deps = \
|
||||||
@ -105,11 +105,11 @@ index 0000000..172632c
|
|||||||
+glib-2.0
|
+glib-2.0
|
||||||
+gmodule-2.0
|
+gmodule-2.0
|
||||||
diff --git a/configure.ac b/configure.ac
|
diff --git a/configure.ac b/configure.ac
|
||||||
index 45c195a..79cae77 100644
|
index e8fde49..d084c8e 100644
|
||||||
--- a/configure.ac
|
--- a/configure.ac
|
||||||
+++ b/configure.ac
|
+++ b/configure.ac
|
||||||
@@ -242,6 +242,45 @@ else
|
@@ -261,6 +261,45 @@ else
|
||||||
enable_xim="no (disabled, use --enable-xim to enable)"
|
enable_wayland="no (disabled, use --enable-wayland to enable)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
+# Option for XKB command.
|
+# Option for XKB command.
|
||||||
@ -154,7 +154,7 @@ index 45c195a..79cae77 100644
|
|||||||
# GObject introspection
|
# GObject introspection
|
||||||
GOBJECT_INTROSPECTION_CHECK([0.6.8])
|
GOBJECT_INTROSPECTION_CHECK([0.6.8])
|
||||||
|
|
||||||
@@ -595,6 +634,7 @@ Build options:
|
@@ -619,6 +658,7 @@ Build options:
|
||||||
Panel icon "$IBUS_ICON_KEYBOARD"
|
Panel icon "$IBUS_ICON_KEYBOARD"
|
||||||
Enable surrounding-text $enable_surrounding_text
|
Enable surrounding-text $enable_surrounding_text
|
||||||
Enable libnotify $enable_libnotify
|
Enable libnotify $enable_libnotify
|
||||||
@ -163,7 +163,7 @@ index 45c195a..79cae77 100644
|
|||||||
])
|
])
|
||||||
|
|
||||||
diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in
|
diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in
|
||||||
index 9cfe83b..d0b3db8 100644
|
index 2779139..88a287f 100644
|
||||||
--- a/data/ibus.schemas.in
|
--- a/data/ibus.schemas.in
|
||||||
+++ b/data/ibus.schemas.in
|
+++ b/data/ibus.schemas.in
|
||||||
@@ -56,6 +56,52 @@
|
@@ -56,6 +56,52 @@
|
||||||
@ -296,7 +296,7 @@ index 334f37e..2017af9 100644
|
|||||||
|
|
||||||
# make -C po update-gmo
|
# make -C po update-gmo
|
||||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||||
index 74b6838..2645314 100644
|
index 811d097..912b75c 100644
|
||||||
--- a/src/Makefile.am
|
--- a/src/Makefile.am
|
||||||
+++ b/src/Makefile.am
|
+++ b/src/Makefile.am
|
||||||
@@ -201,6 +201,9 @@ typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
|
@@ -201,6 +201,9 @@ typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
|
||||||
@ -310,7 +310,7 @@ index 74b6838..2645314 100644
|
|||||||
ibusenumtypes.h: $(ibus_headers) ibusenumtypes.h.template
|
ibusenumtypes.h: $(ibus_headers) ibusenumtypes.h.template
|
||||||
$(AM_V_GEN) ( top_builddir=`cd $(top_builddir) && pwd`; \
|
$(AM_V_GEN) ( top_builddir=`cd $(top_builddir) && pwd`; \
|
||||||
diff --git a/src/ibus.h b/src/ibus.h
|
diff --git a/src/ibus.h b/src/ibus.h
|
||||||
index e27f845..4b3919c 100644
|
index d8e226e..f0a9456 100644
|
||||||
--- a/src/ibus.h
|
--- a/src/ibus.h
|
||||||
+++ b/src/ibus.h
|
+++ b/src/ibus.h
|
||||||
@@ -47,6 +47,7 @@
|
@@ -47,6 +47,7 @@
|
||||||
@ -987,7 +987,7 @@ index 0000000..5aa486d
|
|||||||
+G_END_DECLS
|
+G_END_DECLS
|
||||||
+#endif
|
+#endif
|
||||||
diff --git a/ui/gtk3/Makefile.am b/ui/gtk3/Makefile.am
|
diff --git a/ui/gtk3/Makefile.am b/ui/gtk3/Makefile.am
|
||||||
index 97c915c..5d53836 100644
|
index 547ef53..4b32d7e 100644
|
||||||
--- a/ui/gtk3/Makefile.am
|
--- a/ui/gtk3/Makefile.am
|
||||||
+++ b/ui/gtk3/Makefile.am
|
+++ b/ui/gtk3/Makefile.am
|
||||||
@@ -44,6 +44,8 @@ AM_CPPFLAGS = \
|
@@ -44,6 +44,8 @@ AM_CPPFLAGS = \
|
||||||
@ -1254,10 +1254,10 @@ index 0000000..a6e0f8d
|
|||||||
+ */
|
+ */
|
||||||
+}
|
+}
|
||||||
diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
|
diff --git a/ui/gtk3/panel.vala b/ui/gtk3/panel.vala
|
||||||
index 39aca08..fb012c3 100644
|
index 82b9ee5..c08f6f4 100644
|
||||||
--- a/ui/gtk3/panel.vala
|
--- a/ui/gtk3/panel.vala
|
||||||
+++ b/ui/gtk3/panel.vala
|
+++ b/ui/gtk3/panel.vala
|
||||||
@@ -49,6 +49,13 @@ class Panel : IBus.PanelService {
|
@@ -57,6 +57,13 @@ class Panel : IBus.PanelService {
|
||||||
private Gtk.CssProvider m_css_provider;
|
private Gtk.CssProvider m_css_provider;
|
||||||
private int m_switcher_delay_time = 400;
|
private int m_switcher_delay_time = 400;
|
||||||
private bool m_use_system_keyboard_layout = false;
|
private bool m_use_system_keyboard_layout = false;
|
||||||
@ -1268,10 +1268,10 @@ index 39aca08..fb012c3 100644
|
|||||||
+ private int m_fallback_lock_id = -1;
|
+ private int m_fallback_lock_id = -1;
|
||||||
+ private bool m_changed_xkb_option = false;
|
+ private bool m_changed_xkb_option = false;
|
||||||
+ private GLib.Timer m_changed_layout_timer;
|
+ private GLib.Timer m_changed_layout_timer;
|
||||||
private const string ACCELERATOR_SWITCH_IME_FOREWARD = "<Super>space";
|
|
||||||
|
|
||||||
private GLib.List<Keybinding> m_keybindings = new GLib.List<Keybinding>();
|
private GLib.List<Keybinding> m_keybindings = new GLib.List<Keybinding>();
|
||||||
@@ -91,6 +98,14 @@ class Panel : IBus.PanelService {
|
|
||||||
|
@@ -102,6 +109,14 @@ class Panel : IBus.PanelService {
|
||||||
|
|
||||||
~Panel() {
|
~Panel() {
|
||||||
unbind_switch_shortcut();
|
unbind_switch_shortcut();
|
||||||
@ -1285,17 +1285,17 @@ index 39aca08..fb012c3 100644
|
|||||||
+ m_xkblayout = null;
|
+ m_xkblayout = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void keybinding_manager_bind(KeybindingManager keybinding_manager,
|
private void init_settings() {
|
||||||
@@ -405,6 +420,7 @@ class Panel : IBus.PanelService {
|
@@ -399,6 +414,7 @@ class Panel : IBus.PanelService {
|
||||||
m_config.watch("general/hotkey", "triggers");
|
}
|
||||||
m_config.watch("panel", "custom_font");
|
|
||||||
m_config.watch("panel", "use_custom_font");
|
public void load_settings() {
|
||||||
+ init_engines_order();
|
+ init_engines_order();
|
||||||
// Update m_use_system_keyboard_layout before update_engines()
|
// Update m_use_system_keyboard_layout before update_engines()
|
||||||
// is called.
|
// is called.
|
||||||
set_use_system_keyboard_layout(null);
|
set_use_system_keyboard_layout();
|
||||||
@@ -422,6 +438,204 @@ class Panel : IBus.PanelService {
|
@@ -415,6 +431,184 @@ class Panel : IBus.PanelService {
|
||||||
}
|
set_version();
|
||||||
}
|
}
|
||||||
|
|
||||||
+ private void gkbdlayout_changed_cb() {
|
+ private void gkbdlayout_changed_cb() {
|
||||||
@ -1334,11 +1334,7 @@ index 39aca08..fb012c3 100644
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ private void init_engines_order() {
|
+ private void init_engines_order() {
|
||||||
+ if (m_config == null) {
|
+ m_xkblayout = new XKBLayout();
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ m_xkblayout = new XKBLayout(m_config);
|
|
||||||
+ string session = Environment.get_variable("DESKTOP_SESSION");
|
+ string session = Environment.get_variable("DESKTOP_SESSION");
|
||||||
+
|
+
|
||||||
+ if (HAVE_IBUS_GKBD &&
|
+ if (HAVE_IBUS_GKBD &&
|
||||||
@ -1389,15 +1385,10 @@ index 39aca08..fb012c3 100644
|
|||||||
+ var_xkb_engine_names += "%s:%s:%s".printf("xkb", name, lang);
|
+ var_xkb_engine_names += "%s:%s:%s".printf("xkb", name, lang);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ GLib.Variant var_engines =
|
+ string[] engine_names =
|
||||||
+ m_config.get_value("general", "preload_engines");
|
+ m_settings_general.get_strv("preload-engines");
|
||||||
+ string[] engine_names = {};
|
|
||||||
+ bool updated_engine_names = false;
|
+ bool updated_engine_names = false;
|
||||||
+
|
+
|
||||||
+ if (var_engines != null) {
|
|
||||||
+ engine_names = var_engines.dup_strv();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ foreach (string name in var_xkb_engine_names) {
|
+ foreach (string name in var_xkb_engine_names) {
|
||||||
+ if (name in engine_names)
|
+ if (name in engine_names)
|
||||||
+ continue;
|
+ continue;
|
||||||
@ -1405,21 +1396,13 @@ index 39aca08..fb012c3 100644
|
|||||||
+ engine_names += name;
|
+ engine_names += name;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ if (updated_engine_names) {
|
+ if (updated_engine_names)
|
||||||
+ m_config.set_value("general",
|
+ m_settings_general.set_strv("preload-engines", engine_names);
|
||||||
+ "preload_engines",
|
|
||||||
+ new GLib.Variant.strv(engine_names));
|
|
||||||
+ }
|
|
||||||
+
|
+
|
||||||
+ GLib.Variant var_order =
|
+ string[] order_names =
|
||||||
+ m_config.get_value("general", "engines_order");
|
+ m_settings_general.get_strv("engines-order");
|
||||||
+ string[] order_names = {};
|
|
||||||
+ bool updated_order_names = false;
|
+ bool updated_order_names = false;
|
||||||
+
|
+
|
||||||
+ if (var_order != null) {
|
|
||||||
+ order_names = var_order.dup_strv();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ foreach (var name in var_xkb_engine_names) {
|
+ foreach (var name in var_xkb_engine_names) {
|
||||||
+ if (name in order_names)
|
+ if (name in order_names)
|
||||||
+ continue;
|
+ continue;
|
||||||
@ -1427,11 +1410,8 @@ index 39aca08..fb012c3 100644
|
|||||||
+ updated_order_names = true;
|
+ updated_order_names = true;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ if (updated_order_names) {
|
+ if (updated_order_names)
|
||||||
+ m_config.set_value("general",
|
+ m_settings_general.set_strv("engines-order", order_names);
|
||||||
+ "engines_order",
|
|
||||||
+ new GLib.Variant.strv(order_names));
|
|
||||||
+ }
|
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ private void set_xkb_group_layout(IBus.EngineDesc engine) {
|
+ private void set_xkb_group_layout(IBus.EngineDesc engine) {
|
||||||
@ -1499,21 +1479,21 @@ index 39aca08..fb012c3 100644
|
|||||||
private void exec_setxkbmap(IBus.EngineDesc engine) {
|
private void exec_setxkbmap(IBus.EngineDesc engine) {
|
||||||
string layout = engine.get_layout();
|
string layout = engine.get_layout();
|
||||||
string variant = engine.get_layout_variant();
|
string variant = engine.get_layout_variant();
|
||||||
@@ -482,7 +696,7 @@ class Panel : IBus.PanelService {
|
@@ -480,7 +674,7 @@ class Panel : IBus.PanelService {
|
||||||
}
|
|
||||||
// set xkb layout
|
// set xkb layout
|
||||||
if (!m_use_system_keyboard_layout) {
|
if (!m_use_system_keyboard_layout)
|
||||||
- exec_setxkbmap(engine);
|
- exec_setxkbmap(engine);
|
||||||
+ set_layout(engine);
|
+ set_layout(engine);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
engine_contexts_insert(engine);
|
||||||
|
}
|
||||||
diff --git a/ui/gtk3/xkblayout.vala b/ui/gtk3/xkblayout.vala
|
diff --git a/ui/gtk3/xkblayout.vala b/ui/gtk3/xkblayout.vala
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..b4b54ff
|
index 0000000..b7dfb3e
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/ui/gtk3/xkblayout.vala
|
+++ b/ui/gtk3/xkblayout.vala
|
||||||
@@ -0,0 +1,431 @@
|
@@ -0,0 +1,429 @@
|
||||||
+/* vim:set et sts=4 sw=4:
|
+/* vim:set et sts=4 sw=4:
|
||||||
+ *
|
+ *
|
||||||
+ * ibus - The Input Bus
|
+ * ibus - The Input Bus
|
||||||
@ -1544,7 +1524,7 @@ index 0000000..b4b54ff
|
|||||||
+class XKBLayout
|
+class XKBLayout
|
||||||
+{
|
+{
|
||||||
+ string m_xkb_command = "setxkbmap";
|
+ string m_xkb_command = "setxkbmap";
|
||||||
+ IBus.Config m_config = null;
|
+ GLib.Settings m_settings_general;
|
||||||
+ string[] m_xkb_latin_layouts = {};
|
+ string[] m_xkb_latin_layouts = {};
|
||||||
+ GLib.Pid m_xkb_pid = -1;
|
+ GLib.Pid m_xkb_pid = -1;
|
||||||
+ GLib.Pid m_xmodmap_pid = -1;
|
+ GLib.Pid m_xmodmap_pid = -1;
|
||||||
@ -1556,18 +1536,16 @@ index 0000000..b4b54ff
|
|||||||
+ string m_default_variant = "";
|
+ string m_default_variant = "";
|
||||||
+ string m_default_option = "";
|
+ string m_default_option = "";
|
||||||
+
|
+
|
||||||
+ public XKBLayout(IBus.Config? config) {
|
+ public XKBLayout() {
|
||||||
+ m_config = config;
|
+ m_settings_general = new GLib.Settings("org.freedesktop.ibus.general");
|
||||||
+
|
+
|
||||||
+ if (config != null) {
|
+ var value = m_settings_general.get_value("xkb-latin-layouts");
|
||||||
+ var value = config.get_value("general", "xkb_latin_layouts");
|
+ for (int i = 0; value != null && i < value.n_children(); i++) {
|
||||||
+ for (int i = 0; value != null && i < value.n_children(); i++) {
|
+ m_xkb_latin_layouts +=
|
||||||
+ m_xkb_latin_layouts +=
|
+ value.get_child_value(i).dup_string();
|
||||||
+ value.get_child_value(i).dup_string();
|
+ }
|
||||||
+ }
|
+ if (m_use_xmodmap) {
|
||||||
+ if (m_use_xmodmap) {
|
+ m_use_xmodmap = m_settings_general.get_boolean("use-xmodmap");
|
||||||
+ m_use_xmodmap = config.get_value("general", "use_xmodmap").get_boolean();
|
|
||||||
+ }
|
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
23
ibus-xx-f19-password.patch
Normal file
23
ibus-xx-f19-password.patch
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
|
||||||
|
index eef062c..d644d69 100644
|
||||||
|
--- a/client/gtk2/ibusimcontext.c
|
||||||
|
+++ b/client/gtk2/ibusimcontext.c
|
||||||
|
@@ -845,6 +845,18 @@ ibus_im_context_focus_in (GtkIMContext *context)
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* don't set focus on password entry */
|
||||||
|
+#if GTK_CHECK_VERSION (3, 6, 0)
|
||||||
|
+ {
|
||||||
|
+ GtkInputPurpose purpose;
|
||||||
|
+
|
||||||
|
+ g_object_get (G_OBJECT (context),
|
||||||
|
+ "input-purpose", &purpose,
|
||||||
|
+ NULL);
|
||||||
|
+
|
||||||
|
+ if (purpose == GTK_INPUT_PURPOSE_PASSWORD)
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
if (ibusimcontext->client_window != NULL) {
|
||||||
|
GtkWidget *widget;
|
||||||
|
|
@ -1,17 +1,16 @@
|
|||||||
From c9d8db44583262f49adf7588fe0adbf0842a995a Mon Sep 17 00:00:00 2001
|
From 0e3608c614c2dee3c504a21cf5054ff621633585 Mon Sep 17 00:00:00 2001
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||||
Date: Thu, 31 Jan 2013 17:31:55 +0900
|
Date: Fri, 20 Sep 2013 17:20:23 +0900
|
||||||
Subject: [PATCH] Enable ibus-setup to show the frequently used languages
|
Subject: [PATCH] Enable ibus-setup to show the frequently used languages
|
||||||
only in IME list.
|
only in IME list.
|
||||||
|
|
||||||
---
|
---
|
||||||
data/ibus.schemas.in | 168 ++++++++++++++++++++++++++++++++++++++++++++++++
|
data/ibus.schemas.in | 168 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
setup/enginecombobox.py | 155 +++++++++++++++++++++++++++++++++++++-------
|
setup/enginecombobox.py | 148 +++++++++++++++++++++++++++++++++++-------
|
||||||
setup/main.py | 1 +
|
2 files changed, 292 insertions(+), 24 deletions(-)
|
||||||
3 files changed, 300 insertions(+), 24 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in
|
diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in
|
||||||
index 52ece27..007fc66 100644
|
index b6709fd..e6cfaaa 100644
|
||||||
--- a/data/ibus.schemas.in
|
--- a/data/ibus.schemas.in
|
||||||
+++ b/data/ibus.schemas.in
|
+++ b/data/ibus.schemas.in
|
||||||
@@ -339,6 +339,174 @@ se,si,sk,sy,sy(ku),th,tj,tr,ua,uz,vn
|
@@ -339,6 +339,174 @@ se,si,sk,sy,sy(ku),th,tj,tr,ua,uz,vn
|
||||||
@ -190,20 +189,29 @@ index 52ece27..007fc66 100644
|
|||||||
<applyto>/desktop/ibus/panel/custom_font</applyto>
|
<applyto>/desktop/ibus/panel/custom_font</applyto>
|
||||||
<owner>ibus</owner>
|
<owner>ibus</owner>
|
||||||
diff --git a/setup/enginecombobox.py b/setup/enginecombobox.py
|
diff --git a/setup/enginecombobox.py b/setup/enginecombobox.py
|
||||||
index 0f8a6ae..9828ee6 100644
|
index b45ad56..830f0e8 100644
|
||||||
--- a/setup/enginecombobox.py
|
--- a/setup/enginecombobox.py
|
||||||
+++ b/setup/enginecombobox.py
|
+++ b/setup/enginecombobox.py
|
||||||
@@ -45,6 +45,9 @@ class EngineComboBox(Gtk.ComboBox):
|
@@ -22,6 +22,7 @@
|
||||||
|
|
||||||
|
import locale
|
||||||
|
|
||||||
|
+from gi.repository import Gio
|
||||||
|
from gi.repository import GObject
|
||||||
|
from gi.repository import Gtk
|
||||||
|
from gi.repository import IBus
|
||||||
|
@@ -45,6 +46,10 @@ class EngineComboBox(Gtk.ComboBox):
|
||||||
self.connect("notify::active", self.__notify_active_cb)
|
self.connect("notify::active", self.__notify_active_cb)
|
||||||
|
|
||||||
self.__model = None
|
self.__model = None
|
||||||
+ self.__all_model = None
|
+ self.__all_model = None
|
||||||
+ self.__config = None
|
|
||||||
+ self.__show_sub_lang = False
|
+ self.__show_sub_lang = False
|
||||||
|
+ self.__settings_xkblayoutconfig = Gio.Settings(
|
||||||
|
+ "org.freedesktop.ibus.general.xkblayoutconfig");
|
||||||
|
|
||||||
renderer = Gtk.CellRendererPixbuf()
|
renderer = Gtk.CellRendererPixbuf()
|
||||||
renderer.set_property("xalign", 0)
|
renderer.set_property("xalign", 0)
|
||||||
@@ -58,20 +61,51 @@ class EngineComboBox(Gtk.ComboBox):
|
@@ -58,20 +63,45 @@ class EngineComboBox(Gtk.ComboBox):
|
||||||
self.pack_start(renderer, True)
|
self.pack_start(renderer, True)
|
||||||
self.set_cell_data_func(renderer, self.__name_cell_data_cb, None)
|
self.set_cell_data_func(renderer, self.__name_cell_data_cb, None)
|
||||||
|
|
||||||
@ -211,8 +219,6 @@ index 0f8a6ae..9828ee6 100644
|
|||||||
- self.__model = Gtk.TreeStore(object)
|
- self.__model = Gtk.TreeStore(object)
|
||||||
+ def __gconf_get_lang_list_from_locale(self):
|
+ def __gconf_get_lang_list_from_locale(self):
|
||||||
+ common_list = ['en', 'Other']
|
+ common_list = ['en', 'Other']
|
||||||
+ if self.__config == None:
|
|
||||||
+ return None
|
|
||||||
+ loc = None
|
+ loc = None
|
||||||
+ try:
|
+ try:
|
||||||
+ loc = locale.setlocale (locale.LC_ALL)
|
+ loc = locale.setlocale (locale.LC_ALL)
|
||||||
@ -223,18 +229,14 @@ index 0f8a6ae..9828ee6 100644
|
|||||||
+ current_lang = IBus.get_language_name(loc)
|
+ current_lang = IBus.get_language_name(loc)
|
||||||
+ if current_lang == None:
|
+ if current_lang == None:
|
||||||
+ return common_list
|
+ return common_list
|
||||||
+ group_list = self.__config.get_value("general/xkblayoutconfig",
|
+ group_list = self.__settings_xkblayoutconfig.get_strv('group-list')
|
||||||
+ "group_list")
|
+ if len(group_list) == 0:
|
||||||
+ if group_list == None:
|
|
||||||
+ return [loc] + common_list
|
+ return [loc] + common_list
|
||||||
+ group_list = list(group_list)
|
|
||||||
+ lang_list = None
|
+ lang_list = None
|
||||||
+ for group in group_list:
|
+ for group in group_list:
|
||||||
+ group = str(group)
|
+ group = group.replace('_', '-')
|
||||||
+ langs = list(self.__config.get_value("general/xkblayoutconfig",
|
+ langs = self.__settings_xkblayoutconfig.get_strv(group)
|
||||||
+ group))
|
|
||||||
+ for lang in langs:
|
+ for lang in langs:
|
||||||
+ lang = str(lang)
|
|
||||||
+ if current_lang == IBus.get_language_name(lang):
|
+ if current_lang == IBus.get_language_name(lang):
|
||||||
+ lang_list = langs
|
+ lang_list = langs
|
||||||
+ break
|
+ break
|
||||||
@ -267,7 +269,7 @@ index 0f8a6ae..9828ee6 100644
|
|||||||
keys = langs.keys()
|
keys = langs.keys()
|
||||||
keys.sort(locale.strcoll)
|
keys.sort(locale.strcoll)
|
||||||
loc = locale.getlocale()[0]
|
loc = locale.getlocale()[0]
|
||||||
@@ -89,29 +123,86 @@ class EngineComboBox(Gtk.ComboBox):
|
@@ -89,29 +119,86 @@ class EngineComboBox(Gtk.ComboBox):
|
||||||
keys.remove(IBus.get_language_name("Other"))
|
keys.remove(IBus.get_language_name("Other"))
|
||||||
keys += [IBus.get_language_name("Other")]
|
keys += [IBus.get_language_name("Other")]
|
||||||
for l in keys:
|
for l in keys:
|
||||||
@ -288,7 +290,8 @@ index 0f8a6ae..9828ee6 100644
|
|||||||
+
|
+
|
||||||
+ def set_engines(self, engines):
|
+ def set_engines(self, engines):
|
||||||
+ self.__model = Gtk.TreeStore(object)
|
+ self.__model = Gtk.TreeStore(object)
|
||||||
+
|
|
||||||
|
- self.set_model(self.__model)
|
||||||
+ iter1 = self.__model.append(None)
|
+ iter1 = self.__model.append(None)
|
||||||
+ self.__model.set(iter1, 0, 0)
|
+ self.__model.set(iter1, 0, 0)
|
||||||
+ lang_list = self.__gconf_get_lang_list_from_locale()
|
+ lang_list = self.__gconf_get_lang_list_from_locale()
|
||||||
@ -319,8 +322,7 @@ index 0f8a6ae..9828ee6 100644
|
|||||||
+ self.__model_append_langs(self.__all_model, sub_lang, False)
|
+ self.__model_append_langs(self.__all_model, sub_lang, False)
|
||||||
+
|
+
|
||||||
+ self.__toggle_sub_lang()
|
+ self.__toggle_sub_lang()
|
||||||
|
+
|
||||||
- self.set_model(self.__model)
|
|
||||||
+ def __toggle_sub_lang(self):
|
+ def __toggle_sub_lang(self):
|
||||||
+ self.set_model(None)
|
+ self.set_model(None)
|
||||||
+ if self.__show_sub_lang:
|
+ if self.__show_sub_lang:
|
||||||
@ -362,7 +364,7 @@ index 0f8a6ae..9828ee6 100644
|
|||||||
else:
|
else:
|
||||||
renderer.set_property("visible", True)
|
renderer.set_property("visible", True)
|
||||||
renderer.set_property("sensitive", True)
|
renderer.set_property("sensitive", True)
|
||||||
@@ -119,7 +210,8 @@ class EngineComboBox(Gtk.ComboBox):
|
@@ -119,7 +206,8 @@ class EngineComboBox(Gtk.ComboBox):
|
||||||
renderer.set_property("pixbuf", pixbuf)
|
renderer.set_property("pixbuf", pixbuf)
|
||||||
|
|
||||||
def __name_cell_data_cb(self, celllayout, renderer, model, iter, data):
|
def __name_cell_data_cb(self, celllayout, renderer, model, iter, data):
|
||||||
@ -372,7 +374,7 @@ index 0f8a6ae..9828ee6 100644
|
|||||||
|
|
||||||
if isinstance (engine, str) or isinstance (engine, unicode):
|
if isinstance (engine, str) or isinstance (engine, unicode):
|
||||||
renderer.set_property("sensitive", False)
|
renderer.set_property("sensitive", False)
|
||||||
@@ -127,8 +219,15 @@ class EngineComboBox(Gtk.ComboBox):
|
@@ -127,8 +215,15 @@ class EngineComboBox(Gtk.ComboBox):
|
||||||
renderer.set_property("weight", Pango.Weight.NORMAL)
|
renderer.set_property("weight", Pango.Weight.NORMAL)
|
||||||
elif isinstance(engine, int):
|
elif isinstance(engine, int):
|
||||||
renderer.set_property("sensitive", True)
|
renderer.set_property("sensitive", True)
|
||||||
@ -390,7 +392,7 @@ index 0f8a6ae..9828ee6 100644
|
|||||||
else:
|
else:
|
||||||
renderer.set_property("sensitive", True)
|
renderer.set_property("sensitive", True)
|
||||||
renderer.set_property("text", engine.get_longname())
|
renderer.set_property("text", engine.get_longname())
|
||||||
@@ -144,10 +243,18 @@ class EngineComboBox(Gtk.ComboBox):
|
@@ -144,7 +239,12 @@ class EngineComboBox(Gtk.ComboBox):
|
||||||
if i == 0 or i == -1:
|
if i == 0 or i == -1:
|
||||||
return None
|
return None
|
||||||
iter = self.get_active_iter()
|
iter = self.get_active_iter()
|
||||||
@ -404,24 +406,6 @@ index 0f8a6ae..9828ee6 100644
|
|||||||
else:
|
else:
|
||||||
raise AttributeError, 'unknown property %s' % property.name
|
raise AttributeError, 'unknown property %s' % property.name
|
||||||
|
|
||||||
+ def set_config(self, config):
|
|
||||||
+ self.__config = config
|
|
||||||
+
|
|
||||||
def get_active_engine(self):
|
|
||||||
return self.get_property("active-engine")
|
|
||||||
|
|
||||||
diff --git a/setup/main.py b/setup/main.py
|
|
||||||
index b39a044..5b077a8 100644
|
|
||||||
--- a/setup/main.py
|
|
||||||
+++ b/setup/main.py
|
|
||||||
@@ -206,6 +206,7 @@ class Setup(object):
|
|
||||||
# init engine page
|
|
||||||
self.__engines = self.__bus.list_engines()
|
|
||||||
self.__combobox = self.__builder.get_object("combobox_engines")
|
|
||||||
+ self.__combobox.set_config(self.__config)
|
|
||||||
self.__combobox.set_engines(self.__engines)
|
|
||||||
|
|
||||||
engine_names = values.get("preload_engines", [])
|
|
||||||
--
|
--
|
||||||
1.8.0
|
1.8.0
|
||||||
|
|
||||||
|
73
ibus.conf.5
Normal file
73
ibus.conf.5
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
.\" This file is distributed under the same license as the ibus
|
||||||
|
.\" package.
|
||||||
|
.\" Copyright (C) Takao Fujiwara <takao.fujiwara1@gmail.com>, 2013.
|
||||||
|
.\"
|
||||||
|
.TH IBUS.CONF "5" "August 2013" "1.5.3" "User Commands"
|
||||||
|
.SH NAME
|
||||||
|
.B ibus.conf
|
||||||
|
\- X input preload/configuration file for ibus
|
||||||
|
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B /etc/X11/xinit/xinput.d/ibus.conf
|
||||||
|
|
||||||
|
.SH DESCRIPTION
|
||||||
|
|
||||||
|
.PP
|
||||||
|
IBus is an Intelligent Input Bus. It is a new input framework for Linux
|
||||||
|
OS. It provides full featured and user friendly input method user
|
||||||
|
interface. It also may help developers to develop input method easily.
|
||||||
|
|
||||||
|
.PP
|
||||||
|
.B ibus.conf
|
||||||
|
is a configuration file containing X input setting values to be read in
|
||||||
|
and set by /etc/X11/xinit/xinitrc\-common.
|
||||||
|
.I imsettings-switch(1)
|
||||||
|
is called from XDG auto\-start and invokes
|
||||||
|
xinitrc\-common.
|
||||||
|
.LP
|
||||||
|
If this file is the alias of
|
||||||
|
.I /etc/X11/xinit/xinputrc
|
||||||
|
for the system setting
|
||||||
|
or
|
||||||
|
.I [$XDG_CONFIG_HOME|$HOME/.config]/imsettings/xinputrc
|
||||||
|
for the user setting, the setting can be default.
|
||||||
|
.I im\-chooser(1)
|
||||||
|
can choose the user setting.
|
||||||
|
.LP
|
||||||
|
The configuration options are:
|
||||||
|
.TP
|
||||||
|
\fBXIM\fP
|
||||||
|
XIM name for XMODIFIERS
|
||||||
|
.TP
|
||||||
|
\fBXIM_PROGRAM\fP
|
||||||
|
XIM executable program name
|
||||||
|
.TP
|
||||||
|
\fBXIM_ARGS\fP
|
||||||
|
XIM arguments for XIM_PROGRAM
|
||||||
|
.TP
|
||||||
|
\fBSHORT_DESC\fP
|
||||||
|
XIM human readable name for
|
||||||
|
.I im\-chooser(1)
|
||||||
|
.TP
|
||||||
|
\fBICON\fP
|
||||||
|
icon file for
|
||||||
|
.I im\-chooser(1)
|
||||||
|
.TP
|
||||||
|
\fBPREFERENCE_PROGRAM\fP
|
||||||
|
XIM setup program for
|
||||||
|
.I im\-chooser(1)
|
||||||
|
.TP
|
||||||
|
\fBGTK_IM_MODULE\fP
|
||||||
|
IM environment valuable for GTK+ applications.
|
||||||
|
.TP
|
||||||
|
\fBQT_IM_MODULE\fP
|
||||||
|
IM environment valuable for QT applications.
|
||||||
|
|
||||||
|
.SH BUGS
|
||||||
|
If you find a bug, please report it at http://code.google.com/p/ibus/issues/list
|
||||||
|
|
||||||
|
.SH "SEE ALSO"
|
||||||
|
.BR ibus\-daemon (1)
|
||||||
|
.BR imsettings\-switch (1)
|
||||||
|
.BR im\-chooser (1)
|
||||||
|
.BR X (7)
|
96
ibus.spec
96
ibus.spec
@ -10,7 +10,14 @@
|
|||||||
%global with_python_pkg 0
|
%global with_python_pkg 0
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%if (0%{?fedora} > 19 || 0%{?rhel} > 7)
|
||||||
|
%global with_wayland 1
|
||||||
|
%else
|
||||||
|
%global with_wayland 0
|
||||||
|
%endif
|
||||||
|
|
||||||
%global ibus_api_version 1.0
|
%global ibus_api_version 1.0
|
||||||
|
%global ibus_xkb_version 1.5.0
|
||||||
|
|
||||||
%if %with_pkg_config
|
%if %with_pkg_config
|
||||||
%{!?gtk2_binary_version: %global gtk2_binary_version %(pkg-config --variable=gtk_binary_version gtk+-2.0)}
|
%{!?gtk2_binary_version: %global gtk2_binary_version %(pkg-config --variable=gtk_binary_version gtk+-2.0)}
|
||||||
@ -25,7 +32,7 @@
|
|||||||
%global dbus_python_version 0.83.0
|
%global dbus_python_version 0.83.0
|
||||||
|
|
||||||
Name: ibus
|
Name: ibus
|
||||||
Version: 1.5.3
|
Version: 1.5.4
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Intelligent Input Bus for Linux OS
|
Summary: Intelligent Input Bus for Linux OS
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
@ -33,8 +40,12 @@ Group: System Environment/Libraries
|
|||||||
URL: http://code.google.com/p/ibus/
|
URL: http://code.google.com/p/ibus/
|
||||||
Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
|
Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
|
||||||
Source1: %{name}-xinput
|
Source1: %{name}-xinput
|
||||||
|
Source2: %{name}.conf.5
|
||||||
|
# Actual path is https://github.com/.../%%{ibus_xkb_version}.tar.gz
|
||||||
|
# Renamed %%{ibus_xkb_version}.tar.gz to ibus-xkb-%%{ibus_xkb_version}.tar.gz
|
||||||
|
Source3: https://github.com/ibus/ibus-xkb/archive/ibus-xkb-%{ibus_xkb_version}.tar.gz
|
||||||
# Upstreamed patches.
|
# Upstreamed patches.
|
||||||
# Patch0: %{name}-HEAD.patch
|
# Patch0: %%{name}-HEAD.patch
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=810211
|
# https://bugzilla.redhat.com/show_bug.cgi?id=810211
|
||||||
Patch1: %{name}-810211-no-switch-by-no-trigger.patch
|
Patch1: %{name}-810211-no-switch-by-no-trigger.patch
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=541492
|
# https://bugzilla.redhat.com/show_bug.cgi?id=541492
|
||||||
@ -48,6 +59,10 @@ Patch4: %{name}-xx-setup-frequent-lang.patch
|
|||||||
# Keep the default triggers for the back compatiblity.
|
# Keep the default triggers for the back compatiblity.
|
||||||
Patch95: %{name}-xx-ctrl-space.patch
|
Patch95: %{name}-xx-ctrl-space.patch
|
||||||
%endif
|
%endif
|
||||||
|
%if (0%{?fedora} < 20 && 0%{?rhel} < 8)
|
||||||
|
# Disable IME on gnome-shell password for the back compatiblity.
|
||||||
|
Patch96: %{name}-xx-f19-password.patch
|
||||||
|
%endif
|
||||||
|
|
||||||
|
|
||||||
BuildRequires: gettext-devel
|
BuildRequires: gettext-devel
|
||||||
@ -69,6 +84,9 @@ BuildRequires: GConf2-devel
|
|||||||
BuildRequires: intltool
|
BuildRequires: intltool
|
||||||
BuildRequires: iso-codes-devel
|
BuildRequires: iso-codes-devel
|
||||||
BuildRequires: libnotify-devel
|
BuildRequires: libnotify-devel
|
||||||
|
%if %with_wayland
|
||||||
|
BuildRequires: libwayland-client-devel
|
||||||
|
%endif
|
||||||
|
|
||||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||||
Requires: %{name}-gtk2%{?_isa} = %{version}-%{release}
|
Requires: %{name}-gtk2%{?_isa} = %{version}-%{release}
|
||||||
@ -76,6 +94,9 @@ Requires: %{name}-gtk3%{?_isa} = %{version}-%{release}
|
|||||||
%if %with_python_pkg
|
%if %with_python_pkg
|
||||||
Requires: %{name}-setup = %{version}-%{release}
|
Requires: %{name}-setup = %{version}-%{release}
|
||||||
%endif
|
%endif
|
||||||
|
%if %with_wayland
|
||||||
|
Requires: %{name}-wayland%{?_isa} = %{version}-%{release}
|
||||||
|
%endif
|
||||||
|
|
||||||
Requires: iso-codes
|
Requires: iso-codes
|
||||||
Requires: dbus-python >= %{dbus_python_version}
|
Requires: dbus-python >= %{dbus_python_version}
|
||||||
@ -173,6 +194,17 @@ and this package will be deprecated.
|
|||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%if %with_wayland
|
||||||
|
%package wayland
|
||||||
|
Summary: IBus im module for Wayland
|
||||||
|
Group: System Environment/Libraries
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
|
%description wayland
|
||||||
|
This package contains IBus im module for Wayland
|
||||||
|
%endif
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: Development tools for ibus
|
Summary: Development tools for ibus
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
@ -201,9 +233,12 @@ The ibus-devel-docs package contains developer documentation for ibus
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
# %%patch0 -p1
|
# %%patch0 -p1
|
||||||
|
%if (0%{?fedora} < 20 && 0%{?rhel} < 8)
|
||||||
|
%patch96 -p1 -b .passwd
|
||||||
|
%endif
|
||||||
cp client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c ||
|
cp client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c ||
|
||||||
|
|
||||||
%patch1 -p1 -b .noswitch
|
%patch1 -p1 -b .noswitch
|
||||||
%if %with_preload_xkb_engine
|
%if %with_preload_xkb_engine
|
||||||
%patch2 -p1 -b .preload-xkb
|
%patch2 -p1 -b .preload-xkb
|
||||||
@ -217,6 +252,14 @@ rm -f data/dconf/00-upstream-settings
|
|||||||
%patch95 -p1 -b .ctrl
|
%patch95 -p1 -b .ctrl
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
zcat %SOURCE3 | tar xf -
|
||||||
|
POS=`(cd ibus-xkb-%ibus_xkb_version/po; ls *.po)`
|
||||||
|
for PO in $POS
|
||||||
|
do
|
||||||
|
cp po/$PO po/$PO.orig
|
||||||
|
msgcat --use-first po/$PO ibus-xkb-%ibus_xkb_version/po/$PO -o po/$PO
|
||||||
|
done
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if %with_preload_xkb_engine
|
%if %with_preload_xkb_engine
|
||||||
autoreconf -f -i -v
|
autoreconf -f -i -v
|
||||||
@ -231,6 +274,9 @@ autoreconf -f -i -v
|
|||||||
--enable-surrounding-text \
|
--enable-surrounding-text \
|
||||||
%if %with_pygobject2
|
%if %with_pygobject2
|
||||||
--enable-python-library \
|
--enable-python-library \
|
||||||
|
%endif
|
||||||
|
%if %with_wayland
|
||||||
|
--enable-wayland \
|
||||||
%endif
|
%endif
|
||||||
--enable-introspection
|
--enable-introspection
|
||||||
|
|
||||||
@ -246,12 +292,21 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libibus-%{ibus_api_version}.la
|
|||||||
rm -f $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/%{gtk2_binary_version}/immodules/im-ibus.la
|
rm -f $RPM_BUILD_ROOT%{_libdir}/gtk-2.0/%{gtk2_binary_version}/immodules/im-ibus.la
|
||||||
rm -f $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{gtk3_binary_version}/immodules/im-ibus.la
|
rm -f $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{gtk3_binary_version}/immodules/im-ibus.la
|
||||||
|
|
||||||
|
# install man page
|
||||||
|
for S in %{SOURCE2}
|
||||||
|
do
|
||||||
|
cp $S .
|
||||||
|
MP=`basename $S`
|
||||||
|
gzip $MP
|
||||||
|
install -pm 644 -D ${MP}.gz $RPM_BUILD_ROOT%{_datadir}/man/man5/${MP}.gz
|
||||||
|
done
|
||||||
|
|
||||||
# install xinput config file
|
# install xinput config file
|
||||||
install -pm 644 -D %{SOURCE1} $RPM_BUILD_ROOT%{_xinputconf}
|
install -pm 644 -D %{SOURCE1} $RPM_BUILD_ROOT%{_xinputconf}
|
||||||
|
|
||||||
# install .desktop files
|
# install .desktop files
|
||||||
echo "NoDisplay=true" >> $RPM_BUILD_ROOT%{_datadir}/applications/ibus-setup.desktop
|
echo "NoDisplay=true" >> $RPM_BUILD_ROOT%{_datadir}/applications/ibus-setup.desktop
|
||||||
#echo "X-GNOME-Autostart-enabled=false" >> $RPM_BUILD_ROOT%{_sysconfdir}/xdg/autostart/ibus.desktop
|
#echo "X-GNOME-Autostart-enabled=false" >> $RPM_BUILD_ROOT%%{_sysconfdir}/xdg/autostart/ibus.desktop
|
||||||
|
|
||||||
desktop-file-install --delete-original \
|
desktop-file-install --delete-original \
|
||||||
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
|
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
|
||||||
@ -278,23 +333,20 @@ if [ "$1" -eq 0 ]; then
|
|||||||
|
|
||||||
glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || :
|
glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || :
|
||||||
# 'dconf update' sometimes does not update the db...
|
# 'dconf update' sometimes does not update the db...
|
||||||
dconf update
|
dconf update || :
|
||||||
if [ -f %{_sysconfdir}/dconf/db/ibus ] ; then
|
[ -f %{_sysconfdir}/dconf/db/ibus ] && \
|
||||||
rm -f %{_sysconfdir}/dconf/db/ibus
|
rm %{_sysconfdir}/dconf/db/ibus || :
|
||||||
fi
|
|
||||||
# 'ibus write-cache --system' updates the system cache.
|
# 'ibus write-cache --system' updates the system cache.
|
||||||
if [ -f /var/cache/ibus/bus/registry ] ; then
|
[ -f /var/cache/ibus/bus/registry ] && \
|
||||||
rm -f /var/cache/ibus/bus/registry
|
rm /var/cache/ibus/bus/registry || :
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
%posttrans
|
%posttrans
|
||||||
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
||||||
glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || :
|
glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || :
|
||||||
dconf update
|
dconf update || :
|
||||||
if [ %{_bindir}/ibus ] ; then
|
[ -x %{_bindir}/ibus ] && \
|
||||||
%{_bindir}/ibus write-cache --system &>/dev/null || :
|
%{_bindir}/ibus write-cache --system &>/dev/null || :
|
||||||
fi
|
|
||||||
|
|
||||||
%post libs -p /sbin/ldconfig
|
%post libs -p /sbin/ldconfig
|
||||||
|
|
||||||
@ -325,7 +377,6 @@ fi
|
|||||||
%dir %{_datadir}/ibus/
|
%dir %{_datadir}/ibus/
|
||||||
%{_bindir}/ibus
|
%{_bindir}/ibus
|
||||||
%{_bindir}/ibus-daemon
|
%{_bindir}/ibus-daemon
|
||||||
%{_datadir}/applications/*
|
|
||||||
%{_datadir}/bash-completion/completions/ibus.bash
|
%{_datadir}/bash-completion/completions/ibus.bash
|
||||||
%{_datadir}/GConf/gsettings/*
|
%{_datadir}/GConf/gsettings/*
|
||||||
%{_datadir}/glib-2.0/schemas/*.xml
|
%{_datadir}/glib-2.0/schemas/*.xml
|
||||||
@ -335,6 +386,7 @@ fi
|
|||||||
%{_datadir}/icons/hicolor/*/apps/*
|
%{_datadir}/icons/hicolor/*/apps/*
|
||||||
%{_datadir}/man/man1/ibus.1.gz
|
%{_datadir}/man/man1/ibus.1.gz
|
||||||
%{_datadir}/man/man1/ibus-daemon.1.gz
|
%{_datadir}/man/man1/ibus-daemon.1.gz
|
||||||
|
%{_datadir}/man/man5/ibus.conf.5.gz
|
||||||
%{_libexecdir}/ibus-engine-simple
|
%{_libexecdir}/ibus-engine-simple
|
||||||
%{_libexecdir}/ibus-dconf
|
%{_libexecdir}/ibus-dconf
|
||||||
%{_libexecdir}/ibus-ui-gtk3
|
%{_libexecdir}/ibus-ui-gtk3
|
||||||
@ -346,6 +398,7 @@ fi
|
|||||||
%if ! %with_python_pkg
|
%if ! %with_python_pkg
|
||||||
%if %with_pygobject3
|
%if %with_pygobject3
|
||||||
%{_bindir}/ibus-setup
|
%{_bindir}/ibus-setup
|
||||||
|
%{_datadir}/applications/ibus-setup.desktop
|
||||||
%{_datadir}/ibus/setup
|
%{_datadir}/ibus/setup
|
||||||
%{_datadir}/man/man1/ibus-setup.1.gz
|
%{_datadir}/man/man1/ibus-setup.1.gz
|
||||||
%endif
|
%endif
|
||||||
@ -369,6 +422,7 @@ fi
|
|||||||
%if %with_pygobject3
|
%if %with_pygobject3
|
||||||
%files setup
|
%files setup
|
||||||
%{_bindir}/ibus-setup
|
%{_bindir}/ibus-setup
|
||||||
|
%{_datadir}/applications/ibus-setup.desktop
|
||||||
%{_datadir}/ibus/setup
|
%{_datadir}/ibus/setup
|
||||||
%{_datadir}/man/man1/ibus-setup.1.gz
|
%{_datadir}/man/man1/ibus-setup.1.gz
|
||||||
%endif
|
%endif
|
||||||
@ -380,6 +434,11 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%if %with_wayland
|
||||||
|
%files wayland
|
||||||
|
%{_libexecdir}/ibus-wayland
|
||||||
|
%endif
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%{_libdir}/lib*.so
|
%{_libdir}/lib*.so
|
||||||
%{_libdir}/pkgconfig/*
|
%{_libdir}/pkgconfig/*
|
||||||
@ -392,6 +451,13 @@ fi
|
|||||||
%{_datadir}/gtk-doc/html/*
|
%{_datadir}/gtk-doc/html/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Sep 20 2013 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.4-1
|
||||||
|
- Bumped to 1.5.4
|
||||||
|
- Added ibus.conf.5
|
||||||
|
- Added ibus-xkb-1.5.0.tar.gz for po files.
|
||||||
|
- Added ibus-xx-f19-password.patch for back compatibility.
|
||||||
|
- Added ibus-wayland in f20 or later.
|
||||||
|
|
||||||
* Fri Jul 26 2013 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.3-1
|
* Fri Jul 26 2013 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.3-1
|
||||||
- Bumped to 1.5.3
|
- Bumped to 1.5.3
|
||||||
- Deleted ibus-xx-g-s-disable-preedit.patch as EOL.
|
- Deleted ibus-xx-g-s-disable-preedit.patch as EOL.
|
||||||
|
Loading…
Reference in New Issue
Block a user