Bumped to 1.4.99.20121109
Removed im-chooser, imsettings-gnome, gnome-icon-theme-symbolic dependencies in f18 because ibus gnome integration is done. Use ibus-keyboard instead of input-keyboard-symbolic. Disabled ibus-gjs build because of ibus gnome integration.
This commit is contained in:
parent
28f7f62c93
commit
a208e6b136
1
.gitignore
vendored
1
.gitignore
vendored
@ -23,6 +23,7 @@ ibus-1.3.6.tar.gz
|
|||||||
/ibus-1.4.99.20120822.tar.gz
|
/ibus-1.4.99.20120822.tar.gz
|
||||||
/ibus-1.4.99.20120914.tar.gz
|
/ibus-1.4.99.20120914.tar.gz
|
||||||
/ibus-1.4.99.20121006.tar.gz
|
/ibus-1.4.99.20121006.tar.gz
|
||||||
|
/ibus-1.4.99.20121109.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
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
From 2c4bbcc26f735d6c274483a79b4b27f730afa7b2 Mon Sep 17 00:00:00 2001
|
From a2558c5d403bc150fae7fb1e07f0b541a7f90e8a Mon Sep 17 00:00:00 2001
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||||
Date: Fri, 14 Sep 2012 18:49:59 +0900
|
Date: Wed, 14 Nov 2012 07:07:08 +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,
|
||||||
@ -18,14 +18,14 @@ 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 | 61 ++++++++++++++++++++--
|
setup/main.py | 61 +++++++++++++++++++++--
|
||||||
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 | 136 +++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
5 files changed, 246 insertions(+), 7 deletions(-)
|
5 files changed, 246 insertions(+), 7 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 07169ae..4086f67 100644
|
index 1a0e2d2..64f6f33 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,7 +60,7 @@ index 07169ae..4086f67 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 2a19c49..000a03b 100644
|
index c02229b..5da6340 100644
|
||||||
--- a/setup/main.py
|
--- a/setup/main.py
|
||||||
+++ b/setup/main.py
|
+++ b/setup/main.py
|
||||||
@@ -196,6 +196,20 @@ class Setup(object):
|
@@ -196,6 +196,20 @@ class Setup(object):
|
||||||
@ -138,7 +138,7 @@ index 2a19c49..000a03b 100644
|
|||||||
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():
|
||||||
@@ -561,8 +604,18 @@ class Setup(object):
|
@@ -562,8 +605,18 @@ class Setup(object):
|
||||||
value = GLib.Variant.new_boolean(value)
|
value = GLib.Variant.new_boolean(value)
|
||||||
self.__config.set_value("general", "use_global_engine", value)
|
self.__config.set_value("general", "use_global_engine", value)
|
||||||
|
|
||||||
@ -228,19 +228,19 @@ 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 8e6f756..01cc7aa 100644
|
index 1aca443..1ec2579 100644
|
||||||
--- a/ui/gtk3/panel.vala
|
--- a/ui/gtk3/panel.vala
|
||||||
+++ b/ui/gtk3/panel.vala
|
+++ b/ui/gtk3/panel.vala
|
||||||
@@ -291,6 +291,8 @@ class Panel : IBus.PanelService {
|
@@ -309,6 +309,8 @@ class Panel : IBus.PanelService {
|
||||||
if (m_config != null) {
|
if (m_config != null) {
|
||||||
m_config.value_changed.connect(config_value_changed_cb);
|
m_config.value_changed.connect(config_value_changed_cb);
|
||||||
m_config.watch("general", "preload_engines");
|
m_config.watch("general", "preload_engines");
|
||||||
+ m_config.watch("general", "preload_engines_inited");
|
+ m_config.watch("general", "preload_engines_inited");
|
||||||
+ m_config.watch("general", "preload_engine_mode");
|
+ m_config.watch("general", "preload_engine_mode");
|
||||||
m_config.watch("general", "engines_order");
|
m_config.watch("general", "engines_order");
|
||||||
|
m_config.watch("general", "switcher_delay_time");
|
||||||
m_config.watch("general/hotkey", "trigger_accel");
|
m_config.watch("general/hotkey", "trigger_accel");
|
||||||
m_config.watch("general/hotkey", "trigger_accel_backward");
|
@@ -417,7 +419,136 @@ class Panel : IBus.PanelService {
|
||||||
@@ -352,7 +354,136 @@ class Panel : IBus.PanelService {
|
|
||||||
init_gkbd();
|
init_gkbd();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -377,7 +377,7 @@ index 8e6f756..01cc7aa 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void update_xkb_engines() {
|
private void update_xkb_engines() {
|
||||||
@@ -513,6 +644,11 @@ class Panel : IBus.PanelService {
|
@@ -580,6 +711,11 @@ class Panel : IBus.PanelService {
|
||||||
string section,
|
string section,
|
||||||
string name,
|
string name,
|
||||||
Variant variant) {
|
Variant variant) {
|
||||||
@ -390,5 +390,5 @@ index 8e6f756..01cc7aa 100644
|
|||||||
update_engines(variant, null);
|
update_engines(variant, null);
|
||||||
return;
|
return;
|
||||||
--
|
--
|
||||||
1.7.10.4
|
1.8.0
|
||||||
|
|
||||||
|
@ -1,37 +1,36 @@
|
|||||||
From 15a9eb2a8f9a278b5e357d7dd7ffebedd05d0c5e Mon Sep 17 00:00:00 2001
|
From c53acc91c40753ec845a4a73035769d4e205be7c Mon Sep 17 00:00:00 2001
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||||
Date: Tue, 9 Oct 2012 17:21:01 +0900
|
Date: Wed, 14 Nov 2012 07:06:58 +0900
|
||||||
Subject: [PATCH] Add ibus-xkb and libgnomekbd.
|
Subject: [PATCH] Add ibus-xkb and libgnomekbd.
|
||||||
|
|
||||||
---
|
---
|
||||||
bindings/vala/Gkbd-3.0.metadata | 1 +
|
bindings/vala/Gkbd-3.0.metadata | 1 +
|
||||||
bindings/vala/Makefile.am | 23 ++
|
bindings/vala/Makefile.am | 23 ++
|
||||||
bindings/vala/Xkl-1.0.metadata | 3 +
|
bindings/vala/Xkl-1.0.metadata | 3 +
|
||||||
client/x11/gdk-private.c | 3 +-
|
configure.ac | 68 +++++
|
||||||
configure.ac | 60 +++++
|
|
||||||
data/ibus.schemas.in | 94 +++++++
|
data/ibus.schemas.in | 94 +++++++
|
||||||
engine/Makefile.am | 6 +
|
engine/Makefile.am | 6 +
|
||||||
engine/ibus-xkb/Makefile.am | 64 +++++
|
engine/ibus-xkb/Makefile.am | 61 ++++
|
||||||
engine/ibus-xkb/ibus-xkb-main.c | 111 ++++++++
|
engine/ibus-xkb/ibus-xkb-main.c | 177 ++++++++++++
|
||||||
engine/ibus-xkb/xkblib.c | 327 ++++++++++++++++++++++++
|
engine/ibus-xkb/xkblib.c | 327 ++++++++++++++++++++++
|
||||||
engine/ibus-xkb/xkblib.h | 41 +++
|
engine/ibus-xkb/xkblib.h | 41 +++
|
||||||
engine/main.vala | 86 +++++++
|
engine/main.vala | 86 ++++++
|
||||||
engine/simple.xml.in.in | 531 +--------------------------------------
|
engine/simple.xml.in.in | 605 +---------------------------------------
|
||||||
ibus-1.0.pc.in | 4 +
|
ibus-1.0.pc.in | 4 +
|
||||||
ibus.spec.in | 12 +
|
ibus.spec.in | 12 +
|
||||||
setup/main.py | 38 ++-
|
setup/main.py | 38 ++-
|
||||||
src/Makefile.am | 5 +
|
src/Makefile.am | 5 +
|
||||||
src/ibus.h | 1 +
|
src/ibus.h | 1 +
|
||||||
src/ibusxkbxml.c | 466 ++++++++++++++++++++++++++++++++++
|
src/ibusxkbxml.c | 466 +++++++++++++++++++++++++++++++
|
||||||
src/ibusxkbxml.h | 187 ++++++++++++++
|
src/ibusxkbxml.h | 187 +++++++++++++
|
||||||
ui/gtk3/Makefile.am | 39 +++
|
ui/gtk3/Makefile.am | 39 +++
|
||||||
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/keybindingmanager.vala | 14 +-
|
ui/gtk3/keybindingmanager.vala | 14 +-
|
||||||
ui/gtk3/panel.vala | 365 +++++++++++++++++++++++----
|
ui/gtk3/panel.vala | 353 ++++++++++++++++++++---
|
||||||
ui/gtk3/switcher.vala | 49 ++--
|
ui/gtk3/switcher.vala | 49 ++--
|
||||||
ui/gtk3/xkblayout.vala | 464 ++++++++++++++++++++++++++++++++++
|
ui/gtk3/xkblayout.vala | 464 ++++++++++++++++++++++++++++++
|
||||||
27 files changed, 2562 insertions(+), 603 deletions(-)
|
26 files changed, 2628 insertions(+), 667 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 engine/ibus-xkb/Makefile.am
|
create mode 100644 engine/ibus-xkb/Makefile.am
|
||||||
@ -114,37 +113,32 @@ index 0000000..4961d0c
|
|||||||
+Xkl cheader_filename="libxklavier/xklavier.h"
|
+Xkl cheader_filename="libxklavier/xklavier.h"
|
||||||
+Engine
|
+Engine
|
||||||
+ .filter_events.evt ref type="X.Event"
|
+ .filter_events.evt ref type="X.Event"
|
||||||
diff --git a/client/x11/gdk-private.c b/client/x11/gdk-private.c
|
|
||||||
index 009a5b0..20689c3 100644
|
|
||||||
--- a/client/x11/gdk-private.c
|
|
||||||
+++ b/client/x11/gdk-private.c
|
|
||||||
@@ -27,8 +27,7 @@
|
|
||||||
#include <gdk/gdkx.h>
|
|
||||||
#include <gdk/gdkkeysyms.h>
|
|
||||||
|
|
||||||
-#ifdef HAVE_X11_XKBLIB_H
|
|
||||||
-# define HAVE_XKB
|
|
||||||
+#ifdef HAVE_XKB
|
|
||||||
# include <X11/XKBlib.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
diff --git a/configure.ac b/configure.ac
|
||||||
index cc7d0e0..df0d4a7 100644
|
index cc7d0e0..246b3fc 100644
|
||||||
--- a/configure.ac
|
--- a/configure.ac
|
||||||
+++ b/configure.ac
|
+++ b/configure.ac
|
||||||
@@ -252,6 +252,63 @@ else
|
@@ -252,6 +252,71 @@ else
|
||||||
enable_xim="no (disabled, use --enable-xim to enable)"
|
enable_xim="no (disabled, use --enable-xim to enable)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
+# --enable-xkb option.
|
+# Option for XKB command.
|
||||||
+AC_ARG_ENABLE(xkb,
|
+AC_ARG_WITH(xkb-command,
|
||||||
+ AS_HELP_STRING([--enable-xkb],
|
+ AS_HELP_STRING([--with-xkb-command[=XKB_COMMAND]],
|
||||||
+ [Build xkb]),
|
+ [Use XKB_COMMAND to set keymap. ibus-xkb is available. (default is setxkbmap)]),
|
||||||
+ [enable_xkb=$enableval],
|
+ XKB_COMMAND=$with_xkb_command,
|
||||||
+ [enable_xkb=no]
|
+ XKB_COMMAND=setxkbmap
|
||||||
+)
|
+)
|
||||||
+AM_CONDITIONAL([ENABLE_XKB], [test x"$enable_xkb" = x"yes"])
|
+AC_DEFINE_UNQUOTED(XKB_COMMAND, "$XKB_COMMAND",
|
||||||
+if test x"$enable_xkb" = x"yes"; then
|
+ [xkb command line to set xkb keymaps.])
|
||||||
|
+
|
||||||
|
+if test x"$XKB_COMMAND" = x"ibus-xkb"; then
|
||||||
|
+ enable_ibus_xkb=yes
|
||||||
|
+else
|
||||||
|
+ enable_ibus_xkb=no
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+AM_CONDITIONAL([ENABLE_IBUS_XKB], [test x"$enable_ibus_xkb" = x"yes"])
|
||||||
|
+if test x"$enable_ibus_xkb" = x"yes"; then
|
||||||
+ PKG_CHECK_MODULES(X11, [
|
+ PKG_CHECK_MODULES(X11, [
|
||||||
+ x11
|
+ x11
|
||||||
+ ])
|
+ ])
|
||||||
@ -152,10 +146,9 @@ index cc7d0e0..df0d4a7 100644
|
|||||||
+ [xkbfile],,
|
+ [xkbfile],,
|
||||||
+ [XKB_LIBS="-lxkbfile"]
|
+ [XKB_LIBS="-lxkbfile"]
|
||||||
+ )
|
+ )
|
||||||
+ AC_DEFINE(HAVE_XKB, 1, [define to 1 if you have xkbfile])
|
+ AC_DEFINE(HAVE_IBUS_XKB, 1, [define to 1 if you have xkbfile])
|
||||||
+ HAVE_IBUS_XKB=true
|
+ HAVE_IBUS_XKB=true
|
||||||
+else
|
+else
|
||||||
+ enable_xkb="no (disabled, use --enable-xkb to enable)"
|
|
||||||
+ HAVE_IBUS_XKB=false
|
+ HAVE_IBUS_XKB=false
|
||||||
+fi
|
+fi
|
||||||
+AC_SUBST(HAVE_IBUS_XKB)
|
+AC_SUBST(HAVE_IBUS_XKB)
|
||||||
@ -196,7 +189,7 @@ index cc7d0e0..df0d4a7 100644
|
|||||||
# GObject introspection
|
# GObject introspection
|
||||||
GOBJECT_INTROSPECTION_CHECK([0.6.8])
|
GOBJECT_INTROSPECTION_CHECK([0.6.8])
|
||||||
|
|
||||||
@@ -517,6 +574,7 @@ src/ibusversion.h
|
@@ -517,6 +582,7 @@ src/ibusversion.h
|
||||||
src/tests/Makefile
|
src/tests/Makefile
|
||||||
bus/Makefile
|
bus/Makefile
|
||||||
engine/Makefile
|
engine/Makefile
|
||||||
@ -204,19 +197,20 @@ index cc7d0e0..df0d4a7 100644
|
|||||||
engine/simple.xml.in
|
engine/simple.xml.in
|
||||||
util/Makefile
|
util/Makefile
|
||||||
util/IMdkit/Makefile
|
util/IMdkit/Makefile
|
||||||
@@ -577,5 +635,7 @@ Build options:
|
@@ -576,6 +642,8 @@ Build options:
|
||||||
|
No snooper regexes "$NO_SNOOPER_APPS"
|
||||||
Panel icon "$IBUS_ICON_KEYBOARD"
|
Panel icon "$IBUS_ICON_KEYBOARD"
|
||||||
Enable surrounding-text $enable_surrounding_text
|
Enable surrounding-text $enable_surrounding_text
|
||||||
Run test cases $enable_tests
|
+ XKB command $XKB_COMMAND
|
||||||
+ Build XKB $enable_xkb
|
|
||||||
+ Build libgnomebkd $enable_libgnomekbd
|
+ Build libgnomebkd $enable_libgnomekbd
|
||||||
|
Run test cases $enable_tests
|
||||||
])
|
])
|
||||||
|
|
||||||
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 53ba05c..07169ae 100644
|
index a8c7d7f..1a0e2d2 100644
|
||||||
--- a/data/ibus.schemas.in
|
--- a/data/ibus.schemas.in
|
||||||
+++ b/data/ibus.schemas.in
|
+++ b/data/ibus.schemas.in
|
||||||
@@ -26,6 +26,52 @@
|
@@ -42,6 +42,52 @@
|
||||||
</locale>
|
</locale>
|
||||||
</schema>
|
</schema>
|
||||||
<schema>
|
<schema>
|
||||||
@ -269,7 +263,7 @@ index 53ba05c..07169ae 100644
|
|||||||
<key>/schemas/desktop/ibus/general/hotkey/trigger</key>
|
<key>/schemas/desktop/ibus/general/hotkey/trigger</key>
|
||||||
<applyto>/desktop/ibus/general/hotkey/trigger</applyto>
|
<applyto>/desktop/ibus/general/hotkey/trigger</applyto>
|
||||||
<owner>ibus</owner>
|
<owner>ibus</owner>
|
||||||
@@ -34,6 +80,54 @@
|
@@ -50,6 +96,54 @@
|
||||||
<default>[Control+space,Zenkaku_Hankaku,Alt+Kanji,Alt+grave,Hangul,Alt+Release+Alt_R]</default>
|
<default>[Control+space,Zenkaku_Hankaku,Alt+Kanji,Alt+grave,Hangul,Alt+Release+Alt_R]</default>
|
||||||
<locale name="C">
|
<locale name="C">
|
||||||
<short>Trigger shortcut keys</short>
|
<short>Trigger shortcut keys</short>
|
||||||
@ -325,7 +319,7 @@ index 53ba05c..07169ae 100644
|
|||||||
</locale>
|
</locale>
|
||||||
</schema>
|
</schema>
|
||||||
diff --git a/engine/Makefile.am b/engine/Makefile.am
|
diff --git a/engine/Makefile.am b/engine/Makefile.am
|
||||||
index b3b46be..7a806fc 100644
|
index b3b46be..90c6fde 100644
|
||||||
--- a/engine/Makefile.am
|
--- a/engine/Makefile.am
|
||||||
+++ b/engine/Makefile.am
|
+++ b/engine/Makefile.am
|
||||||
@@ -22,6 +22,12 @@
|
@@ -22,6 +22,12 @@
|
||||||
@ -334,7 +328,7 @@ index b3b46be..7a806fc 100644
|
|||||||
|
|
||||||
+SUBDIRS =
|
+SUBDIRS =
|
||||||
+
|
+
|
||||||
+if ENABLE_XKB
|
+if ENABLE_IBUS_XKB
|
||||||
+SUBDIRS += ibus-xkb
|
+SUBDIRS += ibus-xkb
|
||||||
+endif
|
+endif
|
||||||
+
|
+
|
||||||
@ -343,10 +337,10 @@ index b3b46be..7a806fc 100644
|
|||||||
-I$(top_builddir)/src \
|
-I$(top_builddir)/src \
|
||||||
diff --git a/engine/ibus-xkb/Makefile.am b/engine/ibus-xkb/Makefile.am
|
diff --git a/engine/ibus-xkb/Makefile.am b/engine/ibus-xkb/Makefile.am
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..65ede37
|
index 0000000..4a32e87
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/engine/ibus-xkb/Makefile.am
|
+++ b/engine/ibus-xkb/Makefile.am
|
||||||
@@ -0,0 +1,64 @@
|
@@ -0,0 +1,61 @@
|
||||||
+# vim:set noet ts=4:
|
+# vim:set noet ts=4:
|
||||||
+#
|
+#
|
||||||
+# ibus - The Input Bus
|
+# ibus - The Input Bus
|
||||||
@ -385,9 +379,6 @@ index 0000000..65ede37
|
|||||||
+ -Wno-unused-function \
|
+ -Wno-unused-function \
|
||||||
+ $(NULL)
|
+ $(NULL)
|
||||||
+
|
+
|
||||||
+AM_LDADD = \
|
|
||||||
+ $(NULL)
|
|
||||||
+
|
|
||||||
+libexec_PROGRAMS = ibus-xkb
|
+libexec_PROGRAMS = ibus-xkb
|
||||||
+
|
+
|
||||||
+ibus_xkb_SOURCES = \
|
+ibus_xkb_SOURCES = \
|
||||||
@ -413,10 +404,10 @@ index 0000000..65ede37
|
|||||||
+-include $(top_srcdir)/git.mk
|
+-include $(top_srcdir)/git.mk
|
||||||
diff --git a/engine/ibus-xkb/ibus-xkb-main.c b/engine/ibus-xkb/ibus-xkb-main.c
|
diff --git a/engine/ibus-xkb/ibus-xkb-main.c b/engine/ibus-xkb/ibus-xkb-main.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..2529e4d
|
index 0000000..3878b5f
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/engine/ibus-xkb/ibus-xkb-main.c
|
+++ b/engine/ibus-xkb/ibus-xkb-main.c
|
||||||
@@ -0,0 +1,111 @@
|
@@ -0,0 +1,177 @@
|
||||||
+/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
|
+/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
|
||||||
+/* vim:set et sts=4: */
|
+/* vim:set et sts=4: */
|
||||||
+/* bus - The Input Bus
|
+/* bus - The Input Bus
|
||||||
@ -454,7 +445,7 @@ index 0000000..2529e4d
|
|||||||
+
|
+
|
||||||
+#include "xkblib.h"
|
+#include "xkblib.h"
|
||||||
+
|
+
|
||||||
+static gboolean get_layout = FALSE;
|
+static gboolean query = FALSE;
|
||||||
+static gboolean get_group = FALSE;
|
+static gboolean get_group = FALSE;
|
||||||
+static gchar *layout = NULL;
|
+static gchar *layout = NULL;
|
||||||
+static gchar *variant = NULL;
|
+static gchar *variant = NULL;
|
||||||
@ -463,7 +454,7 @@ index 0000000..2529e4d
|
|||||||
+
|
+
|
||||||
+static const GOptionEntry entries[] =
|
+static const GOptionEntry entries[] =
|
||||||
+{
|
+{
|
||||||
+ { "get", 'g', 0, G_OPTION_ARG_NONE, &get_layout, N_("Get current xkb layout"), NULL },
|
+ { "get", 'g', 0, G_OPTION_ARG_NONE, &query, N_("Query the current xkb layout"), NULL },
|
||||||
+ { "layout", 'l', 0, G_OPTION_ARG_STRING, &layout, N_("Set xkb LAYOUT"), N_("LAYOUT") },
|
+ { "layout", 'l', 0, G_OPTION_ARG_STRING, &layout, N_("Set xkb LAYOUT"), N_("LAYOUT") },
|
||||||
+ { "variant", 'v', 0, G_OPTION_ARG_STRING, &variant, N_("Set xkb VARIANT"), N_("VARIANT") },
|
+ { "variant", 'v', 0, G_OPTION_ARG_STRING, &variant, N_("Set xkb VARIANT"), N_("VARIANT") },
|
||||||
+ { "option", 'o', 0, G_OPTION_ARG_STRING, &option, N_("Set xkb OPTION"), N_("OPTION") },
|
+ { "option", 'o', 0, G_OPTION_ARG_STRING, &option, N_("Set xkb OPTION"), N_("OPTION") },
|
||||||
@ -471,9 +462,60 @@ index 0000000..2529e4d
|
|||||||
+ { NULL },
|
+ { NULL },
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
|
+
|
||||||
|
+gboolean
|
||||||
|
+parse_setxkbmap_args (int *pargc, char ***pargv)
|
||||||
|
+{
|
||||||
|
+ int argc = *pargc;
|
||||||
|
+ char **argv = *pargv;
|
||||||
|
+ char **new_argv = NULL;
|
||||||
|
+ int n = 1;
|
||||||
|
+ int i;
|
||||||
|
+ gboolean retval = FALSE;
|
||||||
|
+
|
||||||
|
+ for (i = 0; i < argc; i++) {
|
||||||
|
+ if (g_strcmp0 (argv[i], "-layout") == 0 && i + 1 < argc) {
|
||||||
|
+ g_free (layout);
|
||||||
|
+ layout = g_strdup (argv[i + 1]);
|
||||||
|
+ i++;
|
||||||
|
+ retval = TRUE;
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+ if (g_strcmp0 (argv[i], "-variant") == 0 && i + 1 < argc) {
|
||||||
|
+ g_free (variant);
|
||||||
|
+ variant = g_strdup (argv[i + 1]);
|
||||||
|
+ i++;
|
||||||
|
+ retval = TRUE;
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+ if (g_strcmp0 (argv[i], "-option") == 0 && i + 1 < argc) {
|
||||||
|
+ g_free (option);
|
||||||
|
+ option = g_strdup (argv[i + 1]);
|
||||||
|
+ i++;
|
||||||
|
+ retval = TRUE;
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+ if (g_strcmp0 (argv[i], "-query") == 0) {
|
||||||
|
+ query = TRUE;
|
||||||
|
+ retval = TRUE;
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ new_argv = g_renew(char*, new_argv, n);
|
||||||
|
+ new_argv[n - 1] = g_strdup (argv[i]);
|
||||||
|
+ n++;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ *pargc = n - 1;
|
||||||
|
+ *pargv = new_argv;
|
||||||
|
+
|
||||||
|
+ return retval;
|
||||||
|
+}
|
||||||
|
+
|
||||||
+int
|
+int
|
||||||
+main (int argc, char *argv[])
|
+main (int argc, char *argv[])
|
||||||
+{
|
+{
|
||||||
|
+ gboolean parsed;
|
||||||
+ GOptionContext *context;
|
+ GOptionContext *context;
|
||||||
+ GError *error = NULL;
|
+ GError *error = NULL;
|
||||||
+ Display *xdisplay;
|
+ Display *xdisplay;
|
||||||
@ -485,12 +527,14 @@ index 0000000..2529e4d
|
|||||||
+ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
|
+ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
|
+ parsed = parse_setxkbmap_args (&argc, &argv);
|
||||||
|
+
|
||||||
+ context = g_option_context_new ("- ibus daemon");
|
+ context = g_option_context_new ("- ibus daemon");
|
||||||
+
|
+
|
||||||
+ g_option_context_set_translation_domain (context, GETTEXT_PACKAGE);
|
+ g_option_context_set_translation_domain (context, GETTEXT_PACKAGE);
|
||||||
+ g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
|
+ g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
|
||||||
+
|
+
|
||||||
+ if (!g_option_context_parse (context, &argc, &argv, &error)) {
|
+ if (!parsed && !g_option_context_parse (context, &argc, &argv, &error)) {
|
||||||
+ g_printerr ("Option parsing failed: %s\n", error->message);
|
+ g_printerr ("Option parsing failed: %s\n", error->message);
|
||||||
+ return -1;
|
+ return -1;
|
||||||
+ }
|
+ }
|
||||||
@ -503,9 +547,22 @@ index 0000000..2529e4d
|
|||||||
+ ibus_xkb_init (xdisplay);
|
+ ibus_xkb_init (xdisplay);
|
||||||
+
|
+
|
||||||
+ if (layout) {
|
+ if (layout) {
|
||||||
|
+ if (variant == NULL) {
|
||||||
|
+ variant = ibus_xkb_get_current_variant ();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (option == NULL) {
|
||||||
|
+ option = ibus_xkb_get_current_option ();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
+ ibus_xkb_set_layout (layout, variant, option);
|
+ ibus_xkb_set_layout (layout, variant, option);
|
||||||
+ }
|
+ }
|
||||||
+ if (get_layout) {
|
+
|
||||||
|
+ if (query) {
|
||||||
|
+ g_free (layout);
|
||||||
|
+ g_free (variant);
|
||||||
|
+ g_free (option);
|
||||||
|
+
|
||||||
+ layout = ibus_xkb_get_current_layout ();
|
+ layout = ibus_xkb_get_current_layout ();
|
||||||
+ variant = ibus_xkb_get_current_variant ();
|
+ variant = ibus_xkb_get_current_variant ();
|
||||||
+ option = ibus_xkb_get_current_option ();
|
+ option = ibus_xkb_get_current_option ();
|
||||||
@ -1013,10 +1070,10 @@ index acfa737..afadca0 100644
|
|||||||
if (!bus.is_connected()) {
|
if (!bus.is_connected()) {
|
||||||
warning("ibus-daemon does not exist.");
|
warning("ibus-daemon does not exist.");
|
||||||
diff --git a/engine/simple.xml.in.in b/engine/simple.xml.in.in
|
diff --git a/engine/simple.xml.in.in b/engine/simple.xml.in.in
|
||||||
index 25db578..7de949a 100644
|
index d064ad6..d14ad93 100644
|
||||||
--- a/engine/simple.xml.in.in
|
--- a/engine/simple.xml.in.in
|
||||||
+++ b/engine/simple.xml.in.in
|
+++ b/engine/simple.xml.in.in
|
||||||
@@ -7,534 +7,5 @@
|
@@ -7,608 +7,5 @@
|
||||||
<license>GPL</license>
|
<license>GPL</license>
|
||||||
<homepage>http://code.google.com/p/ibus</homepage>
|
<homepage>http://code.google.com/p/ibus</homepage>
|
||||||
<textdomain>ibus</textdomain>
|
<textdomain>ibus</textdomain>
|
||||||
@ -1037,7 +1094,8 @@ index 25db578..7de949a 100644
|
|||||||
- <language>eng</language>
|
- <language>eng</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
- <layout>us(intl)</layout>
|
- <layout>us</layout>
|
||||||
|
- <layout_variant>intl</layout_variant>
|
||||||
- <longname>English (US, international with dead keys)</longname>
|
- <longname>English (US, international with dead keys)</longname>
|
||||||
- <description>English (US, international with dead keys)</description>
|
- <description>English (US, international with dead keys)</description>
|
||||||
- <icon>ibus-keyboard</icon>
|
- <icon>ibus-keyboard</icon>
|
||||||
@ -1048,7 +1106,8 @@ index 25db578..7de949a 100644
|
|||||||
- <language>eng</language>
|
- <language>eng</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
- <layout>us(colemak)</layout>
|
- <layout>us</layout>
|
||||||
|
- <layout_variant>colemak</layout_variant>
|
||||||
- <longname>English (Colemak)</longname>
|
- <longname>English (Colemak)</longname>
|
||||||
- <description>English (Colemak)</description>
|
- <description>English (Colemak)</description>
|
||||||
- <icon>ibus-keyboard</icon>
|
- <icon>ibus-keyboard</icon>
|
||||||
@ -1059,7 +1118,8 @@ index 25db578..7de949a 100644
|
|||||||
- <language>eng</language>
|
- <language>eng</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
- <layout>us(dvorak)</layout>
|
- <layout>us</layout>
|
||||||
|
- <layout_variant>dvorak</layout_variant>
|
||||||
- <longname>English (Dvorak)</longname>
|
- <longname>English (Dvorak)</longname>
|
||||||
- <description>English (Dvorak)</description>
|
- <description>English (Dvorak)</description>
|
||||||
- <icon>ibus-keyboard</icon>
|
- <icon>ibus-keyboard</icon>
|
||||||
@ -1070,20 +1130,21 @@ index 25db578..7de949a 100644
|
|||||||
- <language>eng</language>
|
- <language>eng</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
- <layout>us(altgr-intl)</layout>
|
- <layout>us</layout>
|
||||||
|
- <layout_variant>altgr-intl</layout_variant>
|
||||||
- <longname>English (international AltGr dead keys)</longname>
|
- <longname>English (international AltGr dead keys)</longname>
|
||||||
- <description>English (international AltGr dead keys)</description>
|
- <description>English (international AltGr dead keys)</description>
|
||||||
- <icon>ibus-keyboard</icon>
|
- <icon>ibus-keyboard</icon>
|
||||||
- <rank>99</rank>
|
- <rank>99</rank>
|
||||||
- </engine>
|
- </engine>
|
||||||
- <engine>
|
- <engine>
|
||||||
- <name>xkb:us:altgr-intl:eng</name>
|
- <name>xkb:ara::ara</name>
|
||||||
- <language>eng</language>
|
- <language>ara</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
- <layout>us(altgr-intl)</layout>
|
- <layout>ara</layout>
|
||||||
- <longname>English (international AltGr dead keys)</longname>
|
- <longname>Arabic</longname>
|
||||||
- <description>English (international AltGr dead keys)</description>
|
- <description>Arabic</description>
|
||||||
- <icon>ibus-keyboard</icon>
|
- <icon>ibus-keyboard</icon>
|
||||||
- <rank>99</rank>
|
- <rank>99</rank>
|
||||||
- </engine>
|
- </engine>
|
||||||
@ -1132,6 +1193,18 @@ index 25db578..7de949a 100644
|
|||||||
- <rank>99</rank>
|
- <rank>99</rank>
|
||||||
- </engine>
|
- </engine>
|
||||||
- <engine>
|
- <engine>
|
||||||
|
- <name>xkb:br:dvorak:por</name>
|
||||||
|
- <language>por</language>
|
||||||
|
- <license>GPL</license>
|
||||||
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>br</layout>
|
||||||
|
- <layout_variant>dvorak</layout_variant>
|
||||||
|
- <longname>Portuguese (Brazil, Dvorak)</longname>
|
||||||
|
- <description>Portuguese (Brazil, Dvorak)</description>
|
||||||
|
- <icon>ibus-keyboard</icon>
|
||||||
|
- <rank>99</rank>
|
||||||
|
- </engine>
|
||||||
|
- <engine>
|
||||||
- <name>xkb:bg::bul</name>
|
- <name>xkb:bg::bul</name>
|
||||||
- <language>bul</language>
|
- <language>bul</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
@ -1147,7 +1220,8 @@ index 25db578..7de949a 100644
|
|||||||
- <language>bul</language>
|
- <language>bul</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
- <layout>bg(phonetic)</layout>
|
- <layout>bg</layout>
|
||||||
|
- <layout_variant>phonetic</layout_variant>
|
||||||
- <longname>Bulgarian (traditional phonetic)</longname>
|
- <longname>Bulgarian (traditional phonetic)</longname>
|
||||||
- <description>Bulgarian (traditional phonetic)</description>
|
- <description>Bulgarian (traditional phonetic)</description>
|
||||||
- <icon>ibus-keyboard</icon>
|
- <icon>ibus-keyboard</icon>
|
||||||
@ -1169,7 +1243,8 @@ index 25db578..7de949a 100644
|
|||||||
- <language>eng</language>
|
- <language>eng</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
- <layout>ca(eng)</layout>
|
- <layout>ca</layout>
|
||||||
|
- <layout_variant>eng</layout_variant>
|
||||||
- <longname>English (Canada)</longname>
|
- <longname>English (Canada)</longname>
|
||||||
- <description>English (Canada)</description>
|
- <description>English (Canada)</description>
|
||||||
- <icon>ibus-keyboard</icon>
|
- <icon>ibus-keyboard</icon>
|
||||||
@ -1242,6 +1317,18 @@ index 25db578..7de949a 100644
|
|||||||
- <rank>99</rank>
|
- <rank>99</rank>
|
||||||
- </engine>
|
- </engine>
|
||||||
- <engine>
|
- <engine>
|
||||||
|
- <name>xkb:fr:dvorak:fra</name>
|
||||||
|
- <language>fra</language>
|
||||||
|
- <license>GPL</license>
|
||||||
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>fr</layout>
|
||||||
|
- <layout_variant>dvorak</layout_variant>
|
||||||
|
- <longname>French (Dvorak)</longname>
|
||||||
|
- <description>French (Dvorak)</description>
|
||||||
|
- <icon>ibus-keyboard</icon>
|
||||||
|
- <rank>99</rank>
|
||||||
|
- </engine>
|
||||||
|
- <engine>
|
||||||
- <name>xkb:de::ger</name>
|
- <name>xkb:de::ger</name>
|
||||||
- <language>ger</language>
|
- <language>ger</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
@ -1253,11 +1340,24 @@ index 25db578..7de949a 100644
|
|||||||
- <rank>99</rank>
|
- <rank>99</rank>
|
||||||
- </engine>
|
- </engine>
|
||||||
- <engine>
|
- <engine>
|
||||||
|
- <name>xkb:de:dvorak:ger</name>
|
||||||
|
- <language>ger</language>
|
||||||
|
- <license>GPL</license>
|
||||||
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>de</layout>
|
||||||
|
- <layout_variant>dvorak</layout_variant>
|
||||||
|
- <longname>German (Dvorak)</longname>
|
||||||
|
- <description>German (Dvorak)</description>
|
||||||
|
- <icon>ibus-keyboard</icon>
|
||||||
|
- <rank>99</rank>
|
||||||
|
- </engine>
|
||||||
|
- <engine>
|
||||||
- <name>xkb:de:neo:ger</name>
|
- <name>xkb:de:neo:ger</name>
|
||||||
- <language>ger</language>
|
- <language>ger</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
- <layout>de(neo)</layout>
|
- <layout>de</layout>
|
||||||
|
- <layout_variant>neo</layout_variant>
|
||||||
- <longname>German (Neo 2)</longname>
|
- <longname>German (Neo 2)</longname>
|
||||||
- <description>German (Neo 2)</description>
|
- <description>German (Neo 2)</description>
|
||||||
- <icon>ibus-keyboard</icon>
|
- <icon>ibus-keyboard</icon>
|
||||||
@ -1345,7 +1445,8 @@ index 25db578..7de949a 100644
|
|||||||
- <language>lav</language>
|
- <language>lav</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
- <layout>lv(apostrophe)</layout>
|
- <layout>lv</layout>
|
||||||
|
- <layout_variant>apostrophe</layout_variant>
|
||||||
- <longname>Latvian (apostrophe variant)</longname>
|
- <longname>Latvian (apostrophe variant)</longname>
|
||||||
- <description>Latvian (apostrophe variant)</description>
|
- <description>Latvian (apostrophe variant)</description>
|
||||||
- <icon>ibus-keyboard</icon>
|
- <icon>ibus-keyboard</icon>
|
||||||
@ -1363,6 +1464,18 @@ index 25db578..7de949a 100644
|
|||||||
- <rank>99</rank>
|
- <rank>99</rank>
|
||||||
- </engine>
|
- </engine>
|
||||||
- <engine>
|
- <engine>
|
||||||
|
- <name>xkb:pl:dvorak:pol</name>
|
||||||
|
- <language>pol</language>
|
||||||
|
- <license>GPL</license>
|
||||||
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>pl</layout>
|
||||||
|
- <layout_variant>dvorak</layout_variant>
|
||||||
|
- <longname>Polish (Dvorak)</longname>
|
||||||
|
- <description>Polish (Dvorak)</description>
|
||||||
|
- <icon>ibus-keyboard</icon>
|
||||||
|
- <rank>99</rank>
|
||||||
|
- </engine>
|
||||||
|
- <engine>
|
||||||
- <name>xkb:pt::por</name>
|
- <name>xkb:pt::por</name>
|
||||||
- <language>por</language>
|
- <language>por</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
@ -1400,7 +1513,8 @@ index 25db578..7de949a 100644
|
|||||||
- <language>rus</language>
|
- <language>rus</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
- <layout>ru(phonetic)</layout>
|
- <layout>ru</layout>
|
||||||
|
- <layout_variant>phonetic</layout_variant>
|
||||||
- <longname>Russian (phonetic)</longname>
|
- <longname>Russian (phonetic)</longname>
|
||||||
- <description>Russian (phonetic)</description>
|
- <description>Russian (phonetic)</description>
|
||||||
- <icon>ibus-keyboard</icon>
|
- <icon>ibus-keyboard</icon>
|
||||||
@ -1455,7 +1569,8 @@ index 25db578..7de949a 100644
|
|||||||
- <language>cat</language>
|
- <language>cat</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
- <layout>es(cat)</layout>
|
- <layout>es</layout>
|
||||||
|
- <layout_variant>cat</layout_variant>
|
||||||
- <longname>Catalan (Spain, with middle-dot L)</longname>
|
- <longname>Catalan (Spain, with middle-dot L)</longname>
|
||||||
- <description>Catalan (Spain, with middle-dot L)</description>
|
- <description>Catalan (Spain, with middle-dot L)</description>
|
||||||
- <icon>ibus-keyboard</icon>
|
- <icon>ibus-keyboard</icon>
|
||||||
@ -1473,6 +1588,18 @@ index 25db578..7de949a 100644
|
|||||||
- <rank>99</rank>
|
- <rank>99</rank>
|
||||||
- </engine>
|
- </engine>
|
||||||
- <engine>
|
- <engine>
|
||||||
|
- <name>xkb:se:dvorak:swe</name>
|
||||||
|
- <language>swe</language>
|
||||||
|
- <license>GPL</license>
|
||||||
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>se</layout>
|
||||||
|
- <layout_variant>dvorak</layout_variant>
|
||||||
|
- <longname>Swedish (Dvorak)</longname>
|
||||||
|
- <description>Swedish (Dvorak)</description>
|
||||||
|
- <icon>ibus-keyboard</icon>
|
||||||
|
- <rank>99</rank>
|
||||||
|
- </engine>
|
||||||
|
- <engine>
|
||||||
- <name>xkb:ch::ger</name>
|
- <name>xkb:ch::ger</name>
|
||||||
- <language>ger</language>
|
- <language>ger</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
@ -1488,7 +1615,8 @@ index 25db578..7de949a 100644
|
|||||||
- <language>fra</language>
|
- <language>fra</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
- <layout>ch(fr)</layout>
|
- <layout>ch</layout>
|
||||||
|
- <layout_variant>fr</layout_variant>
|
||||||
- <longname>French (Switzerland)</longname>
|
- <longname>French (Switzerland)</longname>
|
||||||
- <description>French (Switzerland)</description>
|
- <description>French (Switzerland)</description>
|
||||||
- <icon>ibus-keyboard</icon>
|
- <icon>ibus-keyboard</icon>
|
||||||
@ -1521,7 +1649,8 @@ index 25db578..7de949a 100644
|
|||||||
- <language>eng</language>
|
- <language>eng</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
- <layout>gb(extd)</layout>
|
- <layout>gb</layout>
|
||||||
|
- <layout_variant>extd</layout_variant>
|
||||||
- <longname>English (UK, extended WinKeys)</longname>
|
- <longname>English (UK, extended WinKeys)</longname>
|
||||||
- <description>English (UK, extended WinKeys)</description>
|
- <description>English (UK, extended WinKeys)</description>
|
||||||
- <icon>ibus-keyboard</icon>
|
- <icon>ibus-keyboard</icon>
|
||||||
@ -1532,7 +1661,8 @@ index 25db578..7de949a 100644
|
|||||||
- <language>eng</language>
|
- <language>eng</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
- <layout>gb(dvorak)</layout>
|
- <layout>gb</layout>
|
||||||
|
- <layout_variant>dvorak</layout_variant>
|
||||||
- <longname>English (UK, Dvorak)</longname>
|
- <longname>English (UK, Dvorak)</longname>
|
||||||
- <description>English (UK, Dvorak)</description>
|
- <description>English (UK, Dvorak)</description>
|
||||||
- <icon>ibus-keyboard</icon>
|
- <icon>ibus-keyboard</icon>
|
||||||
@ -1543,7 +1673,8 @@ index 25db578..7de949a 100644
|
|||||||
- <language>kor</language>
|
- <language>kor</language>
|
||||||
- <license>GPL</license>
|
- <license>GPL</license>
|
||||||
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
- <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
- <layout>kr(kr104)</layout>
|
- <layout>kr</layout>
|
||||||
|
- <layout_variant>kr104</layout_variant>
|
||||||
- <longname>Korean (101/104 key compatible)</longname>
|
- <longname>Korean (101/104 key compatible)</longname>
|
||||||
- <description>Korean (101/104 key compatible)</description>
|
- <description>Korean (101/104 key compatible)</description>
|
||||||
- <icon>ibus-keyboard</icon>
|
- <icon>ibus-keyboard</icon>
|
||||||
@ -1615,7 +1746,7 @@ index 58cac38..4b6f869 100644
|
|||||||
|
|
||||||
# make -C po update-gmo
|
# make -C po update-gmo
|
||||||
diff --git a/setup/main.py b/setup/main.py
|
diff --git a/setup/main.py b/setup/main.py
|
||||||
index 8a2391d..2a19c49 100644
|
index f527da1..c02229b 100644
|
||||||
--- a/setup/main.py
|
--- a/setup/main.py
|
||||||
+++ b/setup/main.py
|
+++ b/setup/main.py
|
||||||
@@ -67,6 +67,13 @@ class Setup(object):
|
@@ -67,6 +67,13 @@ class Setup(object):
|
||||||
@ -1688,14 +1819,14 @@ index 8a2391d..2a19c49 100644
|
|||||||
if prop.name not in ("active-engine", "engines"):
|
if prop.name not in ("active-engine", "engines"):
|
||||||
return
|
return
|
||||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||||
index df4ada3..e249ada 100644
|
index df4ada3..f8499a8 100644
|
||||||
--- a/src/Makefile.am
|
--- a/src/Makefile.am
|
||||||
+++ b/src/Makefile.am
|
+++ b/src/Makefile.am
|
||||||
@@ -194,6 +194,11 @@ typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
|
@@ -194,6 +194,11 @@ typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
|
||||||
CLEANFILES += $(dist_gir_DATA) $(typelibs_DATA)
|
CLEANFILES += $(dist_gir_DATA) $(typelibs_DATA)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
+if ENABLE_XKB
|
+if ENABLE_IBUS_XKB
|
||||||
+ibus_sources += ibusxkbxml.c
|
+ibus_sources += ibusxkbxml.c
|
||||||
+ibus_headers += ibusxkbxml.h
|
+ibus_headers += ibusxkbxml.h
|
||||||
+endif
|
+endif
|
||||||
@ -2646,7 +2777,7 @@ index 0000000..2b78c69
|
|||||||
+ */
|
+ */
|
||||||
+}
|
+}
|
||||||
diff --git a/ui/gtk3/keybindingmanager.vala b/ui/gtk3/keybindingmanager.vala
|
diff --git a/ui/gtk3/keybindingmanager.vala b/ui/gtk3/keybindingmanager.vala
|
||||||
index 5ff0c65..bfe560c 100644
|
index 12d731d..0f6b7c9 100644
|
||||||
--- a/ui/gtk3/keybindingmanager.vala
|
--- a/ui/gtk3/keybindingmanager.vala
|
||||||
+++ b/ui/gtk3/keybindingmanager.vala
|
+++ b/ui/gtk3/keybindingmanager.vala
|
||||||
@@ -41,15 +41,18 @@ public class KeybindingManager : GLib.Object {
|
@@ -41,15 +41,18 @@ public class KeybindingManager : GLib.Object {
|
||||||
@ -2697,7 +2828,7 @@ index 5ff0c65..bfe560c 100644
|
|||||||
m_bindings.append(binding);
|
m_bindings.append(binding);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -198,7 +202,7 @@ public class KeybindingManager : GLib.Object {
|
@@ -199,7 +203,7 @@ public class KeybindingManager : GLib.Object {
|
||||||
if (event.key.keyval != binding.keysym ||
|
if (event.key.keyval != binding.keysym ||
|
||||||
modifiers != binding.modifiers)
|
modifiers != binding.modifiers)
|
||||||
continue;
|
continue;
|
||||||
@ -2707,7 +2838,7 @@ index 5ff0c65..bfe560c 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
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 40079ec..8e6f756 100644
|
index c159693..1aca443 100644
|
||||||
--- a/ui/gtk3/panel.vala
|
--- a/ui/gtk3/panel.vala
|
||||||
+++ b/ui/gtk3/panel.vala
|
+++ b/ui/gtk3/panel.vala
|
||||||
@@ -21,6 +21,20 @@
|
@@ -21,6 +21,20 @@
|
||||||
@ -2731,10 +2862,10 @@ index 40079ec..8e6f756 100644
|
|||||||
private IBus.Bus m_bus;
|
private IBus.Bus m_bus;
|
||||||
private IBus.Config m_config;
|
private IBus.Config m_config;
|
||||||
private Gtk.StatusIcon m_status_icon;
|
private Gtk.StatusIcon m_status_icon;
|
||||||
@@ -33,10 +47,17 @@ class Panel : IBus.PanelService {
|
@@ -34,10 +48,17 @@ class Panel : IBus.PanelService {
|
||||||
private GLib.Pid m_setup_pid = 0;
|
|
||||||
private Gtk.AboutDialog m_about_dialog;
|
private Gtk.AboutDialog m_about_dialog;
|
||||||
private Gtk.CssProvider m_css_provider;
|
private Gtk.CssProvider m_css_provider;
|
||||||
|
private int m_switcher_delay_time = 400;
|
||||||
+ private GkbdLayout m_gkbdlayout = null;
|
+ private GkbdLayout m_gkbdlayout = null;
|
||||||
+ private XKBLayout m_xkblayout = null;
|
+ private XKBLayout m_xkblayout = null;
|
||||||
+ private string[] m_layouts = {};
|
+ private string[] m_layouts = {};
|
||||||
@ -2751,15 +2882,15 @@ index 40079ec..8e6f756 100644
|
|||||||
|
|
||||||
public Panel(IBus.Bus bus) {
|
public Panel(IBus.Bus bus) {
|
||||||
GLib.assert(bus.is_connected());
|
GLib.assert(bus.is_connected());
|
||||||
@@ -59,7 +80,6 @@ class Panel : IBus.PanelService {
|
@@ -60,7 +81,6 @@ class Panel : IBus.PanelService {
|
||||||
m_candidate_panel.page_down.connect((w) => this.page_down());
|
m_candidate_panel.page_down.connect((w) => this.page_down());
|
||||||
|
|
||||||
m_switcher = new Switcher();
|
m_switcher = new Switcher();
|
||||||
- bind_switch_shortcut();
|
- bind_switch_shortcut();
|
||||||
|
|
||||||
m_property_manager = new PropertyManager();
|
if (m_switcher_delay_time >= 0) {
|
||||||
m_property_manager.property_activate.connect((k, s) => {
|
m_switcher.set_popup_delay_time((uint) m_switcher_delay_time);
|
||||||
@@ -71,64 +91,135 @@ class Panel : IBus.PanelService {
|
@@ -76,64 +96,129 @@ class Panel : IBus.PanelService {
|
||||||
|
|
||||||
~Panel() {
|
~Panel() {
|
||||||
unbind_switch_shortcut();
|
unbind_switch_shortcut();
|
||||||
@ -2772,11 +2903,11 @@ index 40079ec..8e6f756 100644
|
|||||||
+ m_gkbdlayout.stop_listen();
|
+ m_gkbdlayout.stop_listen();
|
||||||
+ m_gkbdlayout = null;
|
+ m_gkbdlayout = null;
|
||||||
+ }
|
+ }
|
||||||
+
|
|
||||||
+ m_xkblayout = null;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- var accelerator = ACCELERATOR_SWITCH_IME_FOREWARD;
|
- var accelerator = ACCELERATOR_SWITCH_IME_FOREWARD;
|
||||||
|
+ m_xkblayout = null;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
+ private void keybinding_manager_bind(KeybindingManager keybinding_manager,
|
+ private void keybinding_manager_bind(KeybindingManager keybinding_manager,
|
||||||
+ string? accelerator,
|
+ string? accelerator,
|
||||||
+ bool reverse) {
|
+ bool reverse) {
|
||||||
@ -2850,10 +2981,7 @@ index 40079ec..8e6f756 100644
|
|||||||
+ GLib.Variant variant = m_config.get_value("general/hotkey",
|
+ GLib.Variant variant = m_config.get_value("general/hotkey",
|
||||||
+ "trigger_accel");
|
+ "trigger_accel");
|
||||||
+ if (variant != null) {
|
+ if (variant != null) {
|
||||||
+ ACCELERATOR_IME_HOTKEYS = {};
|
+ ACCELERATOR_IME_HOTKEYS = variant.dup_strv();
|
||||||
+ for (int i = 0; i < variant.n_children(); i++) {
|
|
||||||
+ ACCELERATOR_IME_HOTKEYS += variant.get_child_value(i).dup_string();
|
|
||||||
+ }
|
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
@ -2879,21 +3007,18 @@ index 40079ec..8e6f756 100644
|
|||||||
+
|
+
|
||||||
+ ACCELERATOR_IME_HOTKEYS = {};
|
+ ACCELERATOR_IME_HOTKEYS = {};
|
||||||
+ ACCELERATOR_IME_HOTKEYS += ACCELERATOR_SWITCH_IME_BACKWARD;
|
+ ACCELERATOR_IME_HOTKEYS += ACCELERATOR_SWITCH_IME_BACKWARD;
|
||||||
|
+
|
||||||
- keybinding_manager.bind(m_switch_keysym,
|
|
||||||
- m_switch_modifiers | Gdk.ModifierType.SHIFT_MASK,
|
|
||||||
- (e) => handle_engine_switch(e, true));
|
|
||||||
+ if (m_config != null) {
|
+ if (m_config != null) {
|
||||||
+ GLib.Variant variant = m_config.get_value("general/hotkey",
|
+ GLib.Variant variant = m_config.get_value("general/hotkey",
|
||||||
+ "trigger_accel_backward");
|
+ "trigger_accel_backward");
|
||||||
+ if (variant != null) {
|
+ if (variant != null) {
|
||||||
+ ACCELERATOR_IME_HOTKEYS = {};
|
+ ACCELERATOR_IME_HOTKEYS = variant.dup_strv();
|
||||||
+ for (int i = 0; i < variant.n_children(); i++) {
|
|
||||||
+ ACCELERATOR_IME_HOTKEYS += variant.get_child_value(i).dup_string();
|
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ }
|
|
||||||
+
|
- keybinding_manager.bind(m_switch_keysym,
|
||||||
|
- m_switch_modifiers | Gdk.ModifierType.SHIFT_MASK,
|
||||||
|
- (e) => handle_engine_switch(e, true));
|
||||||
+ foreach (var accelerator in ACCELERATOR_IME_HOTKEYS) {
|
+ foreach (var accelerator in ACCELERATOR_IME_HOTKEYS) {
|
||||||
+ keybinding_manager_bind(keybinding_manager, accelerator, true);
|
+ keybinding_manager_bind(keybinding_manager, accelerator, true);
|
||||||
+ }
|
+ }
|
||||||
@ -2905,18 +3030,18 @@ index 40079ec..8e6f756 100644
|
|||||||
- if (m_switch_keysym == 0 && m_switch_modifiers == 0)
|
- if (m_switch_keysym == 0 && m_switch_modifiers == 0)
|
||||||
- return;
|
- return;
|
||||||
+ unowned GLib.List<Keybinding> keybindings = m_keybindings;
|
+ unowned GLib.List<Keybinding> keybindings = m_keybindings;
|
||||||
+
|
|
||||||
+ while (keybindings != null) {
|
|
||||||
+ Keybinding keybinding = keybindings.data;
|
|
||||||
|
|
||||||
- keybinding_manager.unbind(m_switch_keysym, m_switch_modifiers);
|
- keybinding_manager.unbind(m_switch_keysym, m_switch_modifiers);
|
||||||
- keybinding_manager.unbind(m_switch_keysym,
|
- keybinding_manager.unbind(m_switch_keysym,
|
||||||
- m_switch_modifiers | Gdk.ModifierType.SHIFT_MASK);
|
- m_switch_modifiers | Gdk.ModifierType.SHIFT_MASK);
|
||||||
+ keybinding_manager.unbind(keybinding.keysym,
|
+ while (keybindings != null) {
|
||||||
+ keybinding.modifiers);
|
+ Keybinding keybinding = keybindings.data;
|
||||||
|
|
||||||
- m_switch_keysym = 0;
|
- m_switch_keysym = 0;
|
||||||
- m_switch_modifiers = 0;
|
- m_switch_modifiers = 0;
|
||||||
|
+ keybinding_manager.unbind(keybinding.keysym,
|
||||||
|
+ keybinding.modifiers);
|
||||||
|
+
|
||||||
+ // Need to get keybindings.next before GList.remove is called.
|
+ // Need to get keybindings.next before GList.remove is called.
|
||||||
+ keybindings = keybindings.next;
|
+ keybindings = keybindings.next;
|
||||||
+ m_keybindings.remove(keybinding);
|
+ m_keybindings.remove(keybinding);
|
||||||
@ -2924,7 +3049,7 @@ index 40079ec..8e6f756 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void set_custom_font() {
|
private void set_custom_font() {
|
||||||
@@ -196,12 +287,16 @@ class Panel : IBus.PanelService {
|
@@ -220,13 +305,17 @@ class Panel : IBus.PanelService {
|
||||||
}
|
}
|
||||||
|
|
||||||
m_config = config;
|
m_config = config;
|
||||||
@ -2933,6 +3058,7 @@ index 40079ec..8e6f756 100644
|
|||||||
m_config.value_changed.connect(config_value_changed_cb);
|
m_config.value_changed.connect(config_value_changed_cb);
|
||||||
m_config.watch("general", "preload_engines");
|
m_config.watch("general", "preload_engines");
|
||||||
m_config.watch("general", "engines_order");
|
m_config.watch("general", "engines_order");
|
||||||
|
m_config.watch("general", "switcher_delay_time");
|
||||||
+ m_config.watch("general/hotkey", "trigger_accel");
|
+ m_config.watch("general/hotkey", "trigger_accel");
|
||||||
+ m_config.watch("general/hotkey", "trigger_accel_backward");
|
+ m_config.watch("general/hotkey", "trigger_accel_backward");
|
||||||
m_config.watch("panel", "custom_font");
|
m_config.watch("panel", "custom_font");
|
||||||
@ -2940,9 +3066,9 @@ index 40079ec..8e6f756 100644
|
|||||||
+ init_engines_order();
|
+ init_engines_order();
|
||||||
update_engines(m_config.get_value("general", "preload_engines"),
|
update_engines(m_config.get_value("general", "preload_engines"),
|
||||||
m_config.get_value("general", "engines_order"));
|
m_config.get_value("general", "engines_order"));
|
||||||
} else {
|
set_switcher_delay_time(null);
|
||||||
@@ -211,6 +306,192 @@ class Panel : IBus.PanelService {
|
@@ -282,6 +371,194 @@ class Panel : IBus.PanelService {
|
||||||
set_custom_font();
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+ private void gkbdlayout_changed_cb() {
|
+ private void gkbdlayout_changed_cb() {
|
||||||
@ -3111,7 +3237,9 @@ index 40079ec..8e6f756 100644
|
|||||||
+ return false;
|
+ return false;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ private void set_layout(string layout) {
|
+ private void set_layout(IBus.EngineDesc engine) {
|
||||||
|
+ string layout = engine.get_layout();
|
||||||
|
+
|
||||||
+ if (layout == "default" || layout == null) {
|
+ if (layout == "default" || layout == null) {
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
@ -3134,24 +3262,16 @@ index 40079ec..8e6f756 100644
|
|||||||
private void switch_engine(int i, bool force = false) {
|
private void switch_engine(int i, bool force = false) {
|
||||||
GLib.assert(i >= 0 && i < m_engines.length);
|
GLib.assert(i >= 0 && i < m_engines.length);
|
||||||
|
|
||||||
@@ -225,15 +506,7 @@ class Panel : IBus.PanelService {
|
@@ -296,7 +573,7 @@ class Panel : IBus.PanelService {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// set xkb layout
|
// set xkb layout
|
||||||
- string cmdline = "setxkbmap %s".printf(engine.get_layout());
|
- exec_setxkbmap(engine);
|
||||||
- try {
|
+ set_layout(engine);
|
||||||
- if (!GLib.Process.spawn_command_line_sync(cmdline)) {
|
|
||||||
- warning("Switch xkb layout to %s failed.",
|
|
||||||
- engine.get_layout());
|
|
||||||
- }
|
|
||||||
- } catch (GLib.SpawnError e) {
|
|
||||||
- warning("Execute setxkbmap failed: %s", e.message);
|
|
||||||
- }
|
|
||||||
+ set_layout(engine.get_layout());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void config_value_changed_cb(IBus.Config config,
|
private void config_value_changed_cb(IBus.Config config,
|
||||||
@@ -245,6 +518,13 @@ class Panel : IBus.PanelService {
|
@@ -308,6 +585,13 @@ class Panel : IBus.PanelService {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3165,9 +3285,9 @@ index 40079ec..8e6f756 100644
|
|||||||
if (section == "panel" && (name == "custom_font" ||
|
if (section == "panel" && (name == "custom_font" ||
|
||||||
name == "use_custom_font")) {
|
name == "use_custom_font")) {
|
||||||
set_custom_font();
|
set_custom_font();
|
||||||
@@ -264,8 +544,7 @@ class Panel : IBus.PanelService {
|
@@ -331,8 +615,7 @@ class Panel : IBus.PanelService {
|
||||||
event, primary_modifiers);
|
event, primary_modifiers);
|
||||||
if (pressed) {
|
if (pressed && m_switcher_delay_time >= 0) {
|
||||||
int i = revert ? m_engines.length - 1 : 1;
|
int i = revert ? m_engines.length - 1 : 1;
|
||||||
- i = m_switcher.run(m_switch_keysym, m_switch_modifiers, event,
|
- i = m_switcher.run(m_switch_keysym, m_switch_modifiers, event,
|
||||||
- m_engines, i);
|
- m_engines, i);
|
||||||
@ -3176,7 +3296,7 @@ index 40079ec..8e6f756 100644
|
|||||||
debug("switch cancelled");
|
debug("switch cancelled");
|
||||||
} else {
|
} else {
|
||||||
diff --git a/ui/gtk3/switcher.vala b/ui/gtk3/switcher.vala
|
diff --git a/ui/gtk3/switcher.vala b/ui/gtk3/switcher.vala
|
||||||
index ab2040b..dff5c96 100644
|
index c5286b1..8836cb2 100644
|
||||||
--- a/ui/gtk3/switcher.vala
|
--- a/ui/gtk3/switcher.vala
|
||||||
+++ b/ui/gtk3/switcher.vala
|
+++ b/ui/gtk3/switcher.vala
|
||||||
@@ -63,13 +63,26 @@ class Switcher : Gtk.Window {
|
@@ -63,13 +63,26 @@ class Switcher : Gtk.Window {
|
||||||
@ -3208,7 +3328,7 @@ index ab2040b..dff5c96 100644
|
|||||||
private Gdk.ModifierType m_primary_modifier;
|
private Gdk.ModifierType m_primary_modifier;
|
||||||
private GLib.MainLoop m_loop;
|
private GLib.MainLoop m_loop;
|
||||||
private int m_result;
|
private int m_result;
|
||||||
@@ -105,19 +118,17 @@ class Switcher : Gtk.Window {
|
@@ -109,19 +122,17 @@ class Switcher : Gtk.Window {
|
||||||
grab_focus();
|
grab_focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3231,12 +3351,16 @@ index ab2040b..dff5c96 100644
|
|||||||
|
|
||||||
update_engines(engines);
|
update_engines(engines);
|
||||||
/* Let gtk recalculate the window size. */
|
/* Let gtk recalculate the window size. */
|
||||||
@@ -305,23 +316,25 @@ class Switcher : Gtk.Window {
|
@@ -328,27 +339,29 @@ class Switcher : Gtk.Window {
|
||||||
public override bool key_press_event(Gdk.EventKey e) {
|
public override bool key_press_event(Gdk.EventKey e) {
|
||||||
bool retval = true;
|
bool retval = true;
|
||||||
Gdk.EventKey *pe = &e;
|
Gdk.EventKey *pe = &e;
|
||||||
+ uint modifiers = KeybindingManager.MODIFIER_FILTER & pe->state;
|
+ uint modifiers = KeybindingManager.MODIFIER_FILTER & pe->state;
|
||||||
|
|
||||||
|
if (m_popup_delay_time > 0) {
|
||||||
|
restore_window_position("pressed");
|
||||||
|
}
|
||||||
|
|
||||||
- do {
|
- do {
|
||||||
- uint modifiers = KeybindingManager.MODIFIER_FILTER & pe->state;
|
- uint modifiers = KeybindingManager.MODIFIER_FILTER & pe->state;
|
||||||
+ for (unowned GLib.List<Keybinding> keybindings = m_keybindings;
|
+ for (unowned GLib.List<Keybinding> keybindings = m_keybindings;
|
||||||
@ -3739,5 +3863,5 @@ index 0000000..33e9d9d
|
|||||||
+ */
|
+ */
|
||||||
+}
|
+}
|
||||||
--
|
--
|
||||||
1.7.10.4
|
1.8.0
|
||||||
|
|
||||||
|
@ -1,163 +0,0 @@
|
|||||||
--- ibus-1.4.0/src/ibusproperty.c.orig 2012-01-04 12:31:08.697335369 +0900
|
|
||||||
+++ ibus-1.4.0/src/ibusproperty.c 2012-01-04 12:58:07.191725794 +0900
|
|
||||||
@@ -218,6 +218,17 @@ ibus_property_class_init (IBusPropertyCl
|
|
||||||
static void
|
|
||||||
ibus_property_init (IBusProperty *prop)
|
|
||||||
{
|
|
||||||
+ prop->key = NULL;
|
|
||||||
+ prop->type = 0;
|
|
||||||
+ prop->label = NULL;
|
|
||||||
+ prop->icon = NULL;
|
|
||||||
+ prop->tooltip = NULL;
|
|
||||||
+ prop->sensitive = FALSE;
|
|
||||||
+ prop->visible = FALSE;
|
|
||||||
+ prop->state = 0;
|
|
||||||
+
|
|
||||||
+ prop->sub_props = NULL;
|
|
||||||
+
|
|
||||||
prop->priv = IBUS_PROPERTY_GET_PRIVATE (prop);
|
|
||||||
|
|
||||||
ibus_property_set_label (prop, NULL);
|
|
||||||
@@ -308,6 +319,27 @@ ibus_property_get_property (IBusProperty
|
|
||||||
static void
|
|
||||||
ibus_property_destroy (IBusProperty *prop)
|
|
||||||
{
|
|
||||||
+ g_free (prop->key);
|
|
||||||
+ prop->key = NULL;
|
|
||||||
+
|
|
||||||
+ g_free (prop->icon);
|
|
||||||
+ prop->icon = NULL;
|
|
||||||
+
|
|
||||||
+ if (prop->label) {
|
|
||||||
+ g_object_unref (prop->label);
|
|
||||||
+ prop->label = NULL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (prop->tooltip) {
|
|
||||||
+ g_object_unref (prop->tooltip);
|
|
||||||
+ prop->tooltip = NULL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (prop->sub_props) {
|
|
||||||
+ g_object_unref (prop->sub_props);
|
|
||||||
+ prop->sub_props = NULL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
g_free (prop->priv->key);
|
|
||||||
prop->priv->key = NULL;
|
|
||||||
|
|
||||||
@@ -494,6 +526,17 @@ ibus_property_set_label (IBusProperty *p
|
|
||||||
g_assert (IBUS_IS_PROPERTY (prop));
|
|
||||||
g_return_if_fail (label == NULL || IBUS_IS_TEXT (label));
|
|
||||||
|
|
||||||
+ if (prop->label) {
|
|
||||||
+ g_object_unref (prop->label);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (label == NULL) {
|
|
||||||
+ prop->label = ibus_text_new_from_static_string ("");
|
|
||||||
+ }
|
|
||||||
+ else {
|
|
||||||
+ prop->label = g_object_ref_sink (label);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (prop->priv->label) {
|
|
||||||
g_object_unref (prop->priv->label);
|
|
||||||
}
|
|
||||||
@@ -512,6 +555,9 @@ ibus_property_set_icon (IBusProperty *pr
|
|
||||||
{
|
|
||||||
g_assert (IBUS_IS_PROPERTY (prop));
|
|
||||||
|
|
||||||
+ g_free (prop->icon);
|
|
||||||
+ prop->icon = g_strdup (icon != NULL ? icon : "");
|
|
||||||
+
|
|
||||||
g_free (prop->priv->icon);
|
|
||||||
prop->priv->icon = g_strdup (icon != NULL ? icon : "");
|
|
||||||
}
|
|
||||||
@@ -525,6 +571,19 @@ ibus_property_set_tooltip (IBusProperty
|
|
||||||
|
|
||||||
IBusPropertyPrivate *priv = prop->priv;
|
|
||||||
|
|
||||||
+ if (prop->tooltip) {
|
|
||||||
+ g_object_unref (prop->tooltip);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (tooltip == NULL) {
|
|
||||||
+ prop->tooltip = ibus_text_new_from_static_string ("");
|
|
||||||
+ g_object_ref_sink (prop->tooltip);
|
|
||||||
+ }
|
|
||||||
+ else {
|
|
||||||
+ prop->tooltip = tooltip;
|
|
||||||
+ g_object_ref_sink (prop->tooltip);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (priv->tooltip) {
|
|
||||||
g_object_unref (priv->tooltip);
|
|
||||||
}
|
|
||||||
@@ -544,6 +603,7 @@ ibus_property_set_sensitive (IBusPropert
|
|
||||||
gboolean sensitive)
|
|
||||||
{
|
|
||||||
g_assert (IBUS_IS_PROPERTY (prop));
|
|
||||||
+ prop->sensitive = sensitive;
|
|
||||||
prop->priv->sensitive = sensitive;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -552,6 +612,7 @@ ibus_property_set_visible (IBusProperty
|
|
||||||
gboolean visible)
|
|
||||||
{
|
|
||||||
g_assert (IBUS_IS_PROPERTY (prop));
|
|
||||||
+ prop->visible = visible;
|
|
||||||
prop->priv->visible = visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -564,6 +625,7 @@ ibus_property_set_state (IBusProperty *
|
|
||||||
state == PROP_STATE_CHECKED ||
|
|
||||||
state == PROP_STATE_INCONSISTENT);
|
|
||||||
|
|
||||||
+ prop->state = state;
|
|
||||||
prop->priv->state = state;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -576,6 +638,19 @@ ibus_property_set_sub_props (IBusPropert
|
|
||||||
|
|
||||||
IBusPropertyPrivate *priv = prop->priv;
|
|
||||||
|
|
||||||
+ if (prop->sub_props) {
|
|
||||||
+ g_object_unref (prop->sub_props);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (prop_list) {
|
|
||||||
+ prop->sub_props = prop_list;
|
|
||||||
+ g_object_ref_sink (prop_list);
|
|
||||||
+ }
|
|
||||||
+ else {
|
|
||||||
+ prop->sub_props = ibus_prop_list_new ();
|
|
||||||
+ g_object_ref_sink (prop->sub_props);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (priv->sub_props) {
|
|
||||||
g_object_unref (priv->sub_props);
|
|
||||||
}
|
|
||||||
--- ibus-1.4.0/src/ibusproperty.h.orig 2012-01-04 12:30:52.189069565 +0900
|
|
||||||
+++ ibus-1.4.0/src/ibusproperty.h 2012-01-04 12:34:38.101706419 +0900
|
|
||||||
@@ -140,6 +140,20 @@ typedef struct _IBusPropListClass IBusPr
|
|
||||||
struct _IBusProperty {
|
|
||||||
/*< private >*/
|
|
||||||
IBusSerializable parent;
|
|
||||||
+
|
|
||||||
+ /*< public >*/
|
|
||||||
+ gchar *key;
|
|
||||||
+ gchar *icon;
|
|
||||||
+ IBusText *label;
|
|
||||||
+ IBusText *tooltip;
|
|
||||||
+
|
|
||||||
+ gboolean sensitive;
|
|
||||||
+ gboolean visible;
|
|
||||||
+ guint type;
|
|
||||||
+ guint state;
|
|
||||||
+
|
|
||||||
+ IBusPropList *sub_props;
|
|
||||||
+
|
|
||||||
IBusPropertyPrivate *priv;
|
|
||||||
|
|
||||||
gpointer pdummy[7];
|
|
@ -1,4 +1,4 @@
|
|||||||
From c93407a1056a3dc062f1efb79104f0ae32352b0a Mon Sep 17 00:00:00 2001
|
From 092d20121fc5401810b60c1d01f331a80b4ed42c Mon Sep 17 00:00:00 2001
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||||
Date: Sat, 6 Oct 2012 17:54:27 +0900
|
Date: Sat, 6 Oct 2012 17:54:27 +0900
|
||||||
Subject: [PATCH] Fix not to switch engines by non-trigger keys.
|
Subject: [PATCH] Fix not to switch engines by non-trigger keys.
|
||||||
@ -8,10 +8,10 @@ Subject: [PATCH] Fix not to switch engines by non-trigger keys.
|
|||||||
1 file changed, 6 insertions(+)
|
1 file changed, 6 insertions(+)
|
||||||
|
|
||||||
diff --git a/ui/gtk3/switcher.vala b/ui/gtk3/switcher.vala
|
diff --git a/ui/gtk3/switcher.vala b/ui/gtk3/switcher.vala
|
||||||
index 2587117..ab2040b 100644
|
index 494fab9..c5286b1 100644
|
||||||
--- a/ui/gtk3/switcher.vala
|
--- a/ui/gtk3/switcher.vala
|
||||||
+++ b/ui/gtk3/switcher.vala
|
+++ b/ui/gtk3/switcher.vala
|
||||||
@@ -123,6 +123,7 @@ class Switcher : Gtk.Window {
|
@@ -127,6 +127,7 @@ class Switcher : Gtk.Window {
|
||||||
/* Let gtk recalculate the window size. */
|
/* Let gtk recalculate the window size. */
|
||||||
resize(1, 1);
|
resize(1, 1);
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ index 2587117..ab2040b 100644
|
|||||||
m_selected_engine = index;
|
m_selected_engine = index;
|
||||||
m_label.set_text(m_buttons[index].longname);
|
m_label.set_text(m_buttons[index].longname);
|
||||||
m_buttons[index].grab_focus();
|
m_buttons[index].grab_focus();
|
||||||
@@ -338,6 +339,11 @@ class Switcher : Gtk.Window {
|
@@ -365,6 +366,11 @@ class Switcher : Gtk.Window {
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
debug("0x%04x", pe->keyval);
|
debug("0x%04x", pe->keyval);
|
||||||
@ -32,5 +32,5 @@ index 2587117..ab2040b 100644
|
|||||||
}
|
}
|
||||||
} while (false);
|
} while (false);
|
||||||
--
|
--
|
||||||
1.7.10.4
|
1.8.0
|
||||||
|
|
||||||
|
308
ibus-HEAD.patch
308
ibus-HEAD.patch
@ -1,53 +1,267 @@
|
|||||||
From f0fa7254fb1326489daa88ffed6af6d48cad49d0 Mon Sep 17 00:00:00 2001
|
From 15f3ccb38474c6bb206a2158d86171c93d6ec6a5 Mon Sep 17 00:00:00 2001
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||||
Date: Thu, 11 Oct 2012 16:04:38 +0900
|
Date: Tue, 13 Nov 2012 12:05:07 +0900
|
||||||
Subject: [PATCH] Fix typo in data/dconf/profile/ibus
|
Subject: [PATCH] Update simple.xml to enable layout_variant tag.
|
||||||
|
|
||||||
http://git.gnome.org/browse/gdm/commit/?id=aa25b559c6e907485cc9e
|
Review URL: https://codereview.appspot.com/6820129
|
||||||
I copied the typo by mitake. dconf_engine_source_new() supports
|
|
||||||
"user-db" or "system-db".
|
|
||||||
http://git.gnome.org/browse/dconf/tree/engine/dconf-engine-source.c#n75
|
|
||||||
---
|
---
|
||||||
data/dconf/profile/ibus | 2 +-
|
engine/simple.xml.in.in | 112 ++++++++++++++++++++++++++++++++++++++++--------
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 93 insertions(+), 19 deletions(-)
|
||||||
|
|
||||||
diff --git a/data/dconf/profile/ibus b/data/dconf/profile/ibus
|
diff --git a/engine/simple.xml.in.in b/engine/simple.xml.in.in
|
||||||
index 1d3fc5f..aa8fe5f 100644
|
index 25db578..d064ad6 100644
|
||||||
--- a/data/dconf/profile/ibus
|
--- a/engine/simple.xml.in.in
|
||||||
+++ b/data/dconf/profile/ibus
|
+++ b/engine/simple.xml.in.in
|
||||||
@@ -1,2 +1,2 @@
|
@@ -24,7 +24,8 @@
|
||||||
user-db:user
|
<language>eng</language>
|
||||||
-systemd-db:ibus
|
<license>GPL</license>
|
||||||
+system-db:ibus
|
<author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>us(intl)</layout>
|
||||||
|
+ <layout>us</layout>
|
||||||
|
+ <layout_variant>intl</layout_variant>
|
||||||
|
<longname>English (US, international with dead keys)</longname>
|
||||||
|
<description>English (US, international with dead keys)</description>
|
||||||
|
<icon>ibus-keyboard</icon>
|
||||||
|
@@ -35,7 +36,8 @@
|
||||||
|
<language>eng</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
<author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>us(colemak)</layout>
|
||||||
|
+ <layout>us</layout>
|
||||||
|
+ <layout_variant>colemak</layout_variant>
|
||||||
|
<longname>English (Colemak)</longname>
|
||||||
|
<description>English (Colemak)</description>
|
||||||
|
<icon>ibus-keyboard</icon>
|
||||||
|
@@ -46,7 +48,8 @@
|
||||||
|
<language>eng</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
<author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>us(dvorak)</layout>
|
||||||
|
+ <layout>us</layout>
|
||||||
|
+ <layout_variant>dvorak</layout_variant>
|
||||||
|
<longname>English (Dvorak)</longname>
|
||||||
|
<description>English (Dvorak)</description>
|
||||||
|
<icon>ibus-keyboard</icon>
|
||||||
|
@@ -57,20 +60,21 @@
|
||||||
|
<language>eng</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
<author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>us(altgr-intl)</layout>
|
||||||
|
+ <layout>us</layout>
|
||||||
|
+ <layout_variant>altgr-intl</layout_variant>
|
||||||
|
<longname>English (international AltGr dead keys)</longname>
|
||||||
|
<description>English (international AltGr dead keys)</description>
|
||||||
|
<icon>ibus-keyboard</icon>
|
||||||
|
<rank>99</rank>
|
||||||
|
</engine>
|
||||||
|
<engine>
|
||||||
|
- <name>xkb:us:altgr-intl:eng</name>
|
||||||
|
- <language>eng</language>
|
||||||
|
+ <name>xkb:ara::ara</name>
|
||||||
|
+ <language>ara</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
<author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>us(altgr-intl)</layout>
|
||||||
|
- <longname>English (international AltGr dead keys)</longname>
|
||||||
|
- <description>English (international AltGr dead keys)</description>
|
||||||
|
+ <layout>ara</layout>
|
||||||
|
+ <longname>Arabic</longname>
|
||||||
|
+ <description>Arabic</description>
|
||||||
|
<icon>ibus-keyboard</icon>
|
||||||
|
<rank>99</rank>
|
||||||
|
</engine>
|
||||||
|
@@ -119,6 +123,18 @@
|
||||||
|
<rank>99</rank>
|
||||||
|
</engine>
|
||||||
|
<engine>
|
||||||
|
+ <name>xkb:br:dvorak:por</name>
|
||||||
|
+ <language>por</language>
|
||||||
|
+ <license>GPL</license>
|
||||||
|
+ <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
+ <layout>br</layout>
|
||||||
|
+ <layout_variant>dvorak</layout_variant>
|
||||||
|
+ <longname>Portuguese (Brazil, Dvorak)</longname>
|
||||||
|
+ <description>Portuguese (Brazil, Dvorak)</description>
|
||||||
|
+ <icon>ibus-keyboard</icon>
|
||||||
|
+ <rank>99</rank>
|
||||||
|
+ </engine>
|
||||||
|
+ <engine>
|
||||||
|
<name>xkb:bg::bul</name>
|
||||||
|
<language>bul</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
@@ -134,7 +150,8 @@
|
||||||
|
<language>bul</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
<author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>bg(phonetic)</layout>
|
||||||
|
+ <layout>bg</layout>
|
||||||
|
+ <layout_variant>phonetic</layout_variant>
|
||||||
|
<longname>Bulgarian (traditional phonetic)</longname>
|
||||||
|
<description>Bulgarian (traditional phonetic)</description>
|
||||||
|
<icon>ibus-keyboard</icon>
|
||||||
|
@@ -156,7 +173,8 @@
|
||||||
|
<language>eng</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
<author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>ca(eng)</layout>
|
||||||
|
+ <layout>ca</layout>
|
||||||
|
+ <layout_variant>eng</layout_variant>
|
||||||
|
<longname>English (Canada)</longname>
|
||||||
|
<description>English (Canada)</description>
|
||||||
|
<icon>ibus-keyboard</icon>
|
||||||
|
@@ -229,6 +247,18 @@
|
||||||
|
<rank>99</rank>
|
||||||
|
</engine>
|
||||||
|
<engine>
|
||||||
|
+ <name>xkb:fr:dvorak:fra</name>
|
||||||
|
+ <language>fra</language>
|
||||||
|
+ <license>GPL</license>
|
||||||
|
+ <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
+ <layout>fr</layout>
|
||||||
|
+ <layout_variant>dvorak</layout_variant>
|
||||||
|
+ <longname>French (Dvorak)</longname>
|
||||||
|
+ <description>French (Dvorak)</description>
|
||||||
|
+ <icon>ibus-keyboard</icon>
|
||||||
|
+ <rank>99</rank>
|
||||||
|
+ </engine>
|
||||||
|
+ <engine>
|
||||||
|
<name>xkb:de::ger</name>
|
||||||
|
<language>ger</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
@@ -240,11 +270,24 @@
|
||||||
|
<rank>99</rank>
|
||||||
|
</engine>
|
||||||
|
<engine>
|
||||||
|
+ <name>xkb:de:dvorak:ger</name>
|
||||||
|
+ <language>ger</language>
|
||||||
|
+ <license>GPL</license>
|
||||||
|
+ <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
+ <layout>de</layout>
|
||||||
|
+ <layout_variant>dvorak</layout_variant>
|
||||||
|
+ <longname>German (Dvorak)</longname>
|
||||||
|
+ <description>German (Dvorak)</description>
|
||||||
|
+ <icon>ibus-keyboard</icon>
|
||||||
|
+ <rank>99</rank>
|
||||||
|
+ </engine>
|
||||||
|
+ <engine>
|
||||||
|
<name>xkb:de:neo:ger</name>
|
||||||
|
<language>ger</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
<author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>de(neo)</layout>
|
||||||
|
+ <layout>de</layout>
|
||||||
|
+ <layout_variant>neo</layout_variant>
|
||||||
|
<longname>German (Neo 2)</longname>
|
||||||
|
<description>German (Neo 2)</description>
|
||||||
|
<icon>ibus-keyboard</icon>
|
||||||
|
@@ -332,7 +375,8 @@
|
||||||
|
<language>lav</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
<author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>lv(apostrophe)</layout>
|
||||||
|
+ <layout>lv</layout>
|
||||||
|
+ <layout_variant>apostrophe</layout_variant>
|
||||||
|
<longname>Latvian (apostrophe variant)</longname>
|
||||||
|
<description>Latvian (apostrophe variant)</description>
|
||||||
|
<icon>ibus-keyboard</icon>
|
||||||
|
@@ -350,6 +394,18 @@
|
||||||
|
<rank>99</rank>
|
||||||
|
</engine>
|
||||||
|
<engine>
|
||||||
|
+ <name>xkb:pl:dvorak:pol</name>
|
||||||
|
+ <language>pol</language>
|
||||||
|
+ <license>GPL</license>
|
||||||
|
+ <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
+ <layout>pl</layout>
|
||||||
|
+ <layout_variant>dvorak</layout_variant>
|
||||||
|
+ <longname>Polish (Dvorak)</longname>
|
||||||
|
+ <description>Polish (Dvorak)</description>
|
||||||
|
+ <icon>ibus-keyboard</icon>
|
||||||
|
+ <rank>99</rank>
|
||||||
|
+ </engine>
|
||||||
|
+ <engine>
|
||||||
|
<name>xkb:pt::por</name>
|
||||||
|
<language>por</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
@@ -387,7 +443,8 @@
|
||||||
|
<language>rus</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
<author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>ru(phonetic)</layout>
|
||||||
|
+ <layout>ru</layout>
|
||||||
|
+ <layout_variant>phonetic</layout_variant>
|
||||||
|
<longname>Russian (phonetic)</longname>
|
||||||
|
<description>Russian (phonetic)</description>
|
||||||
|
<icon>ibus-keyboard</icon>
|
||||||
|
@@ -442,7 +499,8 @@
|
||||||
|
<language>cat</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
<author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>es(cat)</layout>
|
||||||
|
+ <layout>es</layout>
|
||||||
|
+ <layout_variant>cat</layout_variant>
|
||||||
|
<longname>Catalan (Spain, with middle-dot L)</longname>
|
||||||
|
<description>Catalan (Spain, with middle-dot L)</description>
|
||||||
|
<icon>ibus-keyboard</icon>
|
||||||
|
@@ -460,6 +518,18 @@
|
||||||
|
<rank>99</rank>
|
||||||
|
</engine>
|
||||||
|
<engine>
|
||||||
|
+ <name>xkb:se:dvorak:swe</name>
|
||||||
|
+ <language>swe</language>
|
||||||
|
+ <license>GPL</license>
|
||||||
|
+ <author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
+ <layout>se</layout>
|
||||||
|
+ <layout_variant>dvorak</layout_variant>
|
||||||
|
+ <longname>Swedish (Dvorak)</longname>
|
||||||
|
+ <description>Swedish (Dvorak)</description>
|
||||||
|
+ <icon>ibus-keyboard</icon>
|
||||||
|
+ <rank>99</rank>
|
||||||
|
+ </engine>
|
||||||
|
+ <engine>
|
||||||
|
<name>xkb:ch::ger</name>
|
||||||
|
<language>ger</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
@@ -475,7 +545,8 @@
|
||||||
|
<language>fra</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
<author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>ch(fr)</layout>
|
||||||
|
+ <layout>ch</layout>
|
||||||
|
+ <layout_variant>fr</layout_variant>
|
||||||
|
<longname>French (Switzerland)</longname>
|
||||||
|
<description>French (Switzerland)</description>
|
||||||
|
<icon>ibus-keyboard</icon>
|
||||||
|
@@ -508,7 +579,8 @@
|
||||||
|
<language>eng</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
<author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>gb(extd)</layout>
|
||||||
|
+ <layout>gb</layout>
|
||||||
|
+ <layout_variant>extd</layout_variant>
|
||||||
|
<longname>English (UK, extended WinKeys)</longname>
|
||||||
|
<description>English (UK, extended WinKeys)</description>
|
||||||
|
<icon>ibus-keyboard</icon>
|
||||||
|
@@ -519,7 +591,8 @@
|
||||||
|
<language>eng</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
<author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>gb(dvorak)</layout>
|
||||||
|
+ <layout>gb</layout>
|
||||||
|
+ <layout_variant>dvorak</layout_variant>
|
||||||
|
<longname>English (UK, Dvorak)</longname>
|
||||||
|
<description>English (UK, Dvorak)</description>
|
||||||
|
<icon>ibus-keyboard</icon>
|
||||||
|
@@ -530,7 +603,8 @@
|
||||||
|
<language>kor</language>
|
||||||
|
<license>GPL</license>
|
||||||
|
<author>Peng Huang <shawn.p.huang@gmail.com></author>
|
||||||
|
- <layout>kr(kr104)</layout>
|
||||||
|
+ <layout>kr</layout>
|
||||||
|
+ <layout_variant>kr104</layout_variant>
|
||||||
|
<longname>Korean (101/104 key compatible)</longname>
|
||||||
|
<description>Korean (101/104 key compatible)</description>
|
||||||
|
<icon>ibus-keyboard</icon>
|
||||||
--
|
--
|
||||||
1.7.10.4
|
1.8.0
|
||||||
|
|
||||||
From 065ad6c44a665526796dffe91ac7c2ebd83ecd71 Mon Sep 17 00:00:00 2001
|
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
|
||||||
Date: Thu, 11 Oct 2012 16:43:06 +0900
|
|
||||||
Subject: [PATCH] Fix fallback 'C' locale in ibus-setup.
|
|
||||||
|
|
||||||
---
|
|
||||||
setup/main.py | 6 +++++-
|
|
||||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/setup/main.py b/setup/main.py
|
|
||||||
index 8a2391d..81e4301 100644
|
|
||||||
--- a/setup/main.py
|
|
||||||
+++ b/setup/main.py
|
|
||||||
@@ -548,7 +548,11 @@ class Setup(object):
|
|
||||||
Gtk.main()
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
- locale.setlocale(locale.LC_ALL, '')
|
|
||||||
+ try:
|
|
||||||
+ locale.setlocale(locale.LC_ALL, '')
|
|
||||||
+ except locale.Error:
|
|
||||||
+ print >> sys.stderr, "IBUS-WARNING **: Using the fallback 'C' locale"
|
|
||||||
+ locale.setlocale(locale.LC_ALL, 'C')
|
|
||||||
i18n_init()
|
|
||||||
setup = Setup()
|
|
||||||
setup.run()
|
|
||||||
--
|
|
||||||
1.7.10.4
|
|
||||||
|
|
||||||
|
@ -1,106 +1,198 @@
|
|||||||
From 59cf8aea1a9d6f687f58671e07f19b827cc9ff4a Mon Sep 17 00:00:00 2001
|
From 907edb10fd53e91f05bb4327df201345525f4d90 Mon Sep 17 00:00:00 2001
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||||
Date: Fri, 14 Sep 2012 20:04:11 +0900
|
Date: Tue, 13 Nov 2012 22:38:19 +0900
|
||||||
Subject: [PATCH] Disabled to show non-used GUI.
|
Subject: [PATCH] Disabled to show non-used GUI.
|
||||||
|
|
||||||
---
|
---
|
||||||
setup/main.py | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++------
|
setup/keyboardshortcut.py | 87 +++++++++++++++++++++++++----------------------
|
||||||
setup/setup.ui | 38 ++++++++++++++++++----------------
|
setup/main.py | 23 +++++++------
|
||||||
2 files changed, 77 insertions(+), 24 deletions(-)
|
setup/setup.ui | 26 +++++++-------
|
||||||
|
3 files changed, 72 insertions(+), 64 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/setup/keyboardshortcut.py b/setup/keyboardshortcut.py
|
||||||
|
index 3861d2f..efbdeb7 100644
|
||||||
|
--- a/setup/keyboardshortcut.py
|
||||||
|
+++ b/setup/keyboardshortcut.py
|
||||||
|
@@ -185,15 +185,17 @@ class KeyboardShortcutSelection(Gtk.VBox):
|
||||||
|
modifiers.append(name)
|
||||||
|
if keycode.startswith("_"):
|
||||||
|
keycode = keycode[1:]
|
||||||
|
- keys = modifiers + [keycode]
|
||||||
|
- shortcut = "+".join(keys)
|
||||||
|
+ shortcut = "".join(map(lambda m: '<' + m + '>', modifiers))
|
||||||
|
+ shortcut += keycode
|
||||||
|
return shortcut
|
||||||
|
|
||||||
|
def __set_shortcut_to_buttons(self, shortcut):
|
||||||
|
- keys = shortcut.split("+")
|
||||||
|
- mods = keys[:-1]
|
||||||
|
+ (keyval, state) = Gtk.accelerator_parse(shortcut)
|
||||||
|
+ if keyval == 0 and state == 0:
|
||||||
|
+ return
|
||||||
|
+ keys = shortcut.split('>')
|
||||||
|
for name, button, mask in self.__modifier_buttons:
|
||||||
|
- if name in mods:
|
||||||
|
+ if state & mask:
|
||||||
|
button.set_active(True)
|
||||||
|
else:
|
||||||
|
button.set_active(False)
|
||||||
|
@@ -247,54 +249,59 @@ class KeyboardShortcutSelection(Gtk.VBox):
|
||||||
|
self.__update_add_and_apply_buttons()
|
||||||
|
|
||||||
|
def __keycode_button_clicked_cb(self, button):
|
||||||
|
- out = []
|
||||||
|
dlg = Gtk.MessageDialog(parent = self.get_toplevel(), buttons = Gtk.ButtonsType.CLOSE)
|
||||||
|
+ out = [dlg]
|
||||||
|
message = _("Please press a key (or a key combination).\nThe dialog will be closed when the key is released.")
|
||||||
|
dlg.set_markup(message)
|
||||||
|
dlg.set_title(_("Please press a key (or a key combination)"))
|
||||||
|
-
|
||||||
|
- def __key_press_event(d, k, out):
|
||||||
|
- out.append(k.copy())
|
||||||
|
-
|
||||||
|
- def __key_release_event(d, k, out):
|
||||||
|
- d.response(Gtk.ResponseType.OK)
|
||||||
|
-
|
||||||
|
- dlg.connect("key-press-event", __key_press_event, out)
|
||||||
|
- dlg.connect("key-release-event", __key_release_event, None)
|
||||||
|
+ sw = Gtk.ScrolledWindow()
|
||||||
|
+
|
||||||
|
+ def __accel_edited_cb(c, path, keyval, state, keycode, out):
|
||||||
|
+ dlg = out[0]
|
||||||
|
+ out.append(keyval)
|
||||||
|
+ out.append(state)
|
||||||
|
+ out.append(keycode)
|
||||||
|
+ dlg.response(Gtk.ResponseType.OK)
|
||||||
|
+
|
||||||
|
+ model = Gtk.ListStore(GObject.TYPE_INT,
|
||||||
|
+ GObject.TYPE_UINT,
|
||||||
|
+ GObject.TYPE_UINT)
|
||||||
|
+ accel_view = Gtk.TreeView(model)
|
||||||
|
+ sw.add(accel_view)
|
||||||
|
+ column = Gtk.TreeViewColumn()
|
||||||
|
+ renderer = Gtk.CellRendererAccel(accel_mode=Gtk.CellRendererAccelMode.OTHER,
|
||||||
|
+ editable=True)
|
||||||
|
+ renderer.connect('accel-edited', __accel_edited_cb, out)
|
||||||
|
+ column.pack_start(renderer, True)
|
||||||
|
+ column.add_attribute(renderer, 'accel-mods', 0)
|
||||||
|
+ column.add_attribute(renderer, 'accel-key', 1)
|
||||||
|
+ column.add_attribute(renderer, 'keycode', 2)
|
||||||
|
+ accel_view.append_column(column)
|
||||||
|
+ it = model.append(None)
|
||||||
|
+ area = dlg.get_message_area()
|
||||||
|
+ area.pack_end(sw, True, True, 0)
|
||||||
|
+ sw.show_all()
|
||||||
|
id = dlg.run()
|
||||||
|
dlg.destroy()
|
||||||
|
- if id != Gtk.ResponseType.OK or not out:
|
||||||
|
+ if id != Gtk.ResponseType.OK or len(out) == 1:
|
||||||
|
return
|
||||||
|
- keyevent = out[len(out) - 1]
|
||||||
|
- state = keyevent.state & (Gdk.ModifierType.CONTROL_MASK | \
|
||||||
|
- Gdk.ModifierType.SHIFT_MASK | \
|
||||||
|
- Gdk.ModifierType.MOD1_MASK | \
|
||||||
|
- Gdk.ModifierType.META_MASK | \
|
||||||
|
- Gdk.ModifierType.SUPER_MASK | \
|
||||||
|
- Gdk.ModifierType.HYPER_MASK)
|
||||||
|
-
|
||||||
|
-
|
||||||
|
- if state == 0:
|
||||||
|
- state = state | Gdk.ModifierType.RELEASE_MASK
|
||||||
|
- elif keyevent.keyval in (Gdk.KEY_Control_L, Gdk.KEY_Control_R) and state == Gdk.ModifierType.CONTROL_MASK:
|
||||||
|
- state = state | Gdk.ModifierType.RELEASE_MASK
|
||||||
|
- elif keyevent.keyval in (Gdk.KEY_Shift_L, Gdk.KEY_Shift_R) and state == Gdk.ModifierType.SHIFT_MASK:
|
||||||
|
- state = state | Gdk.ModifierType.RELEASE_MASK
|
||||||
|
- elif keyevent.keyval in (Gdk.KEY_Alt_L, Gdk.KEY_Alt_R) and state == Gdk.ModifierType.MOD1_MASK:
|
||||||
|
- state = state | Gdk.ModifierType.RELEASE_MASK
|
||||||
|
- elif keyevent.keyval in (Gdk.KEY_Meta_L, Gdk.KEY_Meta_R) and state == Gdk.ModifierType.META_MASK:
|
||||||
|
- state = state | Gdk.ModifierType.RELEASE_MASK
|
||||||
|
- elif keyevent.keyval in (Gdk.KEY_Super_L, Gdk.KEY_Super_R) and state == Gdk.ModifierType.SUPER_MASK:
|
||||||
|
- state = state | Gdk.ModifierType.RELEASE_MASK
|
||||||
|
- elif keyevent.keyval in (Gdk.KEY_Hyper_L, Gdk.KEY_Hyper_R) and state == Gdk.ModifierType.HYPER_MASK:
|
||||||
|
- state = state | Gdk.ModifierType.RELEASE_MASK
|
||||||
|
+ keyval = out[1]
|
||||||
|
+ state = out[2]
|
||||||
|
+ keycode = out[3]
|
||||||
|
|
||||||
|
for name, button, mask in self.__modifier_buttons:
|
||||||
|
if state & mask:
|
||||||
|
button.set_active(True)
|
||||||
|
else:
|
||||||
|
button.set_active(False)
|
||||||
|
- self.__keycode_entry.set_text(Gdk.keyval_name(keyevent.keyval))
|
||||||
|
+
|
||||||
|
+ shortcut = Gtk.accelerator_name_with_keycode(None,
|
||||||
|
+ keyval,
|
||||||
|
+ keycode,
|
||||||
|
+ state)
|
||||||
|
+ shortcut = shortcut.replace('<Primary>', '<Control>')
|
||||||
|
+ keys = shortcut.split('>')
|
||||||
|
+ self.__keycode_entry.set_text(keys[-1])
|
||||||
|
|
||||||
|
def __add_button_clicked_cb(self, button):
|
||||||
|
shortcut = self.__get_shortcut_from_buttons()
|
||||||
diff --git a/setup/main.py b/setup/main.py
|
diff --git a/setup/main.py b/setup/main.py
|
||||||
index 37a8b0a..7b0b8d5 100644
|
index 46209b6..1b98e17 100644
|
||||||
--- a/setup/main.py
|
--- a/setup/main.py
|
||||||
+++ b/setup/main.py
|
+++ b/setup/main.py
|
||||||
@@ -85,22 +85,31 @@ class Setup(object):
|
@@ -93,21 +93,23 @@ class Setup(object):
|
||||||
self.__init_ui()
|
|
||||||
|
|
||||||
def __init_hotkey(self):
|
def __init_hotkey(self):
|
||||||
+ '''
|
|
||||||
default_values = {
|
default_values = {
|
||||||
"trigger" : (N_("trigger"), ["Control+space"]),
|
- "trigger" : (N_("trigger"), ["Control+space"]),
|
||||||
"enable_unconditional" : (N_("enable"), []),
|
- "enable_unconditional" : (N_("enable"), []),
|
||||||
"disable_unconditional" : (N_("disable"), [])
|
- "disable_unconditional" : (N_("disable"), [])
|
||||||
}
|
|
||||||
+ '''
|
|
||||||
+ default_values = {
|
|
||||||
+ 'trigger_accel' : ('next_engine', ['<Control>space']),
|
+ 'trigger_accel' : ('next_engine', ['<Control>space']),
|
||||||
+ 'trigger_accel_backward' : ('prev_engine', ['<Control><Shift>space']),
|
+ 'trigger_accel_backward' : ('prev_engine', ['<Control><Shift>space']),
|
||||||
+ }
|
}
|
||||||
|
|
||||||
values = dict(self.__config.get_values("general/hotkey"))
|
values = dict(self.__config.get_values("general/hotkey"))
|
||||||
|
|
||||||
- for name, (label, shortcuts) in default_values.items():
|
for name, (label, shortcuts) in default_values.items():
|
||||||
+ for name, (id, shortcuts) in default_values.items():
|
|
||||||
shortcuts = values.get(name, shortcuts)
|
shortcuts = values.get(name, shortcuts)
|
||||||
- button = self.__builder.get_object("button_%s" % name)
|
- button = self.__builder.get_object("button_%s" % name)
|
||||||
- entry = self.__builder.get_object("entry_%s" % name)
|
- entry = self.__builder.get_object("entry_%s" % name)
|
||||||
+ button = self.__builder.get_object("button_%s" % id)
|
+ button = self.__builder.get_object("button_%s" % label)
|
||||||
+ entry = self.__builder.get_object("entry_%s" % id)
|
+ entry = self.__builder.get_object("entry_%s" % label)
|
||||||
entry.set_text("; ".join(shortcuts))
|
entry.set_text("; ".join(shortcuts))
|
||||||
- entry.set_tooltip_text("\n".join(shortcuts))
|
- entry.set_tooltip_text("\n".join(shortcuts))
|
||||||
- button.connect("clicked", self.__shortcut_button_clicked_cb,
|
|
||||||
- label, "general/hotkey", name, entry)
|
|
||||||
+ text = '\n'.join(shortcuts)
|
+ text = '\n'.join(shortcuts)
|
||||||
+ text = "Use ';' separated values\n" + text
|
+ text = "Use ';' separated values\n" + text
|
||||||
+ entry.set_tooltip_text(text)
|
+ entry.set_tooltip_text(text)
|
||||||
+ button.connect("clicked", self.__shortcut_button_clicked_cb2,
|
button.connect("clicked", self.__shortcut_button_clicked_cb,
|
||||||
+ name, "general/hotkey", id, entry)
|
- label, "general/hotkey", name, entry)
|
||||||
|
+ name, "general/hotkey", label, entry)
|
||||||
+ button.set_tooltip_text("Save the left entry string")
|
+ button.set_tooltip_text("Save the left entry string")
|
||||||
|
|
||||||
def __init_panel(self):
|
def __init_panel(self):
|
||||||
values = dict(self.__config.get_values("panel"))
|
values = dict(self.__config.get_values("panel"))
|
||||||
@@ -459,6 +468,48 @@ class Setup(object):
|
@@ -449,7 +451,9 @@ class Setup(object):
|
||||||
|
def __shortcut_button_clicked_cb(self, button, name, section, _name, entry):
|
||||||
|
buttons = (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
|
||||||
|
Gtk.STOCK_OK, Gtk.ResponseType.OK)
|
||||||
|
- title = _("Select keyboard shortcut for %s") % _(name)
|
||||||
|
+ title = _("Select keyboard shortcut for %s") % \
|
||||||
|
+ _("next engine") if name == 'next_engine' else \
|
||||||
|
+ _("previous engine")
|
||||||
|
dialog = keyboardshortcut.KeyboardShortcutSelectionDialog(buttons = buttons, title = title)
|
||||||
|
text = entry.get_text()
|
||||||
|
if text:
|
||||||
|
@@ -462,12 +466,11 @@ class Setup(object):
|
||||||
|
dialog.destroy()
|
||||||
|
if id != Gtk.ResponseType.OK:
|
||||||
|
return
|
||||||
|
- self.__config.set_value(section, _name, GLib.Variant.new_strv(shortcuts))
|
||||||
|
+ self.__config.set_value(section, name, GLib.Variant.new_strv(shortcuts))
|
||||||
|
text = "; ".join(shortcuts)
|
||||||
entry.set_text(text)
|
entry.set_text(text)
|
||||||
entry.set_tooltip_text(text)
|
entry.set_tooltip_text(text)
|
||||||
|
|
||||||
+ def __shortcut_button_clicked_cb2(self, button, name, section, id, entry):
|
-
|
||||||
+ text = entry.get_text()
|
|
||||||
+ if text:
|
|
||||||
+ text = text.replace(' ', '')
|
|
||||||
+ shortcuts = text.split(';')
|
|
||||||
+ else:
|
|
||||||
+ shortcuts = []
|
|
||||||
+ orig_list =['<Control>space']
|
|
||||||
+ if name == 'trigger_accel_backward':
|
|
||||||
+ orig_list =['<Control><Shift>space']
|
|
||||||
+ variant = self.__config.get_value(section, name)
|
|
||||||
+ if variant != None:
|
|
||||||
+ orig_list = self.__variant_dup_strv(variant)
|
|
||||||
+ orig_text = ';'.join(orig_list)
|
|
||||||
+ if text == orig_text:
|
|
||||||
+ return
|
|
||||||
+ invalid_shortcut = None
|
|
||||||
+ for shortcut in shortcuts:
|
|
||||||
+ (key, mods) = Gtk.accelerator_parse(shortcut)
|
|
||||||
+ if shortcut.find('<') >= 0:
|
|
||||||
+ if mods <= 0:
|
|
||||||
+ invalid_shortcut = shortcut
|
|
||||||
+ break
|
|
||||||
+ if not Gtk.accelerator_valid(key, mods):
|
|
||||||
+ invalid_shortcut = shortcut
|
|
||||||
+ break
|
|
||||||
+ # Alt_R could be supported as the trigger key.
|
|
||||||
+ else:
|
|
||||||
+ if key <= 0:
|
|
||||||
+ invalid_shortcut = shortcut
|
|
||||||
+ break
|
|
||||||
+ if invalid_shortcut != None:
|
|
||||||
+ dlg = Gtk.MessageDialog(type = Gtk.MessageType.ERROR,
|
|
||||||
+ buttons = Gtk.ButtonsType.CLOSE,
|
|
||||||
+ message_format = "Invalid key %s" % invalid_shortcut)
|
|
||||||
+ dlg.run()
|
|
||||||
+ dlg.destroy()
|
|
||||||
+ return
|
|
||||||
+ self.__config.set_value(section, name, GLib.Variant.new_strv(shortcuts))
|
|
||||||
+ text = '\n'.join(shortcuts)
|
|
||||||
+ text = "Use ';' separated values\n" + text
|
|
||||||
+ entry.set_tooltip_text(text)
|
|
||||||
|
|
||||||
def __item_started_column_toggled_cb(self, cell, path_str, model):
|
def __item_started_column_toggled_cb(self, cell, path_str, model):
|
||||||
|
|
||||||
|
# get toggled iter
|
||||||
diff --git a/setup/setup.ui b/setup/setup.ui
|
diff --git a/setup/setup.ui b/setup/setup.ui
|
||||||
index 2026172..af99cae 100644
|
index 2026172..fb4340d 100644
|
||||||
--- a/setup/setup.ui
|
--- a/setup/setup.ui
|
||||||
+++ b/setup/setup.ui
|
+++ b/setup/setup.ui
|
||||||
@@ -122,7 +122,6 @@
|
@@ -122,7 +122,6 @@
|
||||||
@ -128,52 +220,23 @@ index 2026172..af99cae 100644
|
|||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
@@ -183,7 +183,7 @@
|
@@ -223,7 +223,6 @@
|
||||||
<object class="GtkEntry" id="entry_next_engine">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
- <property name="editable">False</property>
|
|
||||||
+ <!-- property name="editable">False</property -->
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="expand">True</property>
|
|
||||||
@@ -193,7 +193,9 @@
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton" id="button_next_engine">
|
|
||||||
- <property name="label" translatable="yes">...</property>
|
|
||||||
+ <!-- property name="label" translatable="yes">...</property -->
|
|
||||||
+ <property name="label">gtk-apply</property>
|
|
||||||
+ <property name="use_stock">True</property>
|
|
||||||
<property name="use_action_appearance">False</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">True</property>
|
|
||||||
@@ -223,9 +225,8 @@
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkEntry" id="entry_prev_engine">
|
<object class="GtkEntry" id="entry_prev_engine">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
- <property name="sensitive">False</property>
|
- <property name="sensitive">False</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
- <property name="editable">False</property>
|
<property name="editable">False</property>
|
||||||
+ <!-- property name="editable">False</property -->
|
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
@@ -238,7 +237,6 @@
|
||||||
<property name="expand">True</property>
|
<property name="label" translatable="yes">...</property>
|
||||||
@@ -235,10 +236,11 @@
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton" id="button_prev_engine">
|
|
||||||
- <property name="label" translatable="yes">...</property>
|
|
||||||
+ <!-- property name="label" translatable="yes">...</property -->
|
|
||||||
+ <property name="label">gtk-apply</property>
|
|
||||||
+ <property name="use_stock">True</property>
|
|
||||||
<property name="use_action_appearance">False</property>
|
<property name="use_action_appearance">False</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
- <property name="sensitive">False</property>
|
- <property name="sensitive">False</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="receives_default">False</property>
|
<property name="receives_default">False</property>
|
||||||
<property name="use_action_appearance">False</property>
|
<property name="use_action_appearance">False</property>
|
||||||
@@ -260,7 +262,7 @@
|
@@ -260,7 +258,7 @@
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label7">
|
<object class="GtkLabel" id="label7">
|
||||||
@ -182,7 +245,7 @@ index 2026172..af99cae 100644
|
|||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="tooltip_text" translatable="yes">The shortcut keys for turning input method on or off</property>
|
<property name="tooltip_text" translatable="yes">The shortcut keys for turning input method on or off</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
@@ -273,7 +275,7 @@
|
@@ -273,7 +271,7 @@
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label18">
|
<object class="GtkLabel" id="label18">
|
||||||
@ -191,7 +254,7 @@ index 2026172..af99cae 100644
|
|||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">Enable:</property>
|
<property name="label" translatable="yes">Enable:</property>
|
||||||
@@ -287,7 +289,7 @@
|
@@ -287,7 +285,7 @@
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkHBox" id="hbox2">
|
<object class="GtkHBox" id="hbox2">
|
||||||
@ -200,7 +263,7 @@ index 2026172..af99cae 100644
|
|||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="spacing">6</property>
|
<property name="spacing">6</property>
|
||||||
<child>
|
<child>
|
||||||
@@ -328,7 +330,7 @@
|
@@ -328,7 +326,7 @@
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label19">
|
<object class="GtkLabel" id="label19">
|
||||||
@ -209,7 +272,7 @@ index 2026172..af99cae 100644
|
|||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
<property name="label" translatable="yes">Disable:</property>
|
<property name="label" translatable="yes">Disable:</property>
|
||||||
@@ -342,7 +344,7 @@
|
@@ -342,7 +340,7 @@
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkHBox" id="hbox3">
|
<object class="GtkHBox" id="hbox3">
|
||||||
@ -218,7 +281,7 @@ index 2026172..af99cae 100644
|
|||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="spacing">6</property>
|
<property name="spacing">6</property>
|
||||||
<child>
|
<child>
|
||||||
@@ -452,7 +454,7 @@
|
@@ -452,7 +450,7 @@
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="label10">
|
<object class="GtkLabel" id="label10">
|
||||||
@ -227,7 +290,7 @@ index 2026172..af99cae 100644
|
|||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="tooltip_text" translatable="yes">Set the behavior of ibus how to show or hide language bar</property>
|
<property name="tooltip_text" translatable="yes">Set the behavior of ibus how to show or hide language bar</property>
|
||||||
<property name="xalign">0</property>
|
<property name="xalign">0</property>
|
||||||
@@ -481,7 +483,7 @@
|
@@ -481,7 +479,7 @@
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkComboBox" id="combobox_panel_show">
|
<object class="GtkComboBox" id="combobox_panel_show">
|
||||||
@ -236,7 +299,7 @@ index 2026172..af99cae 100644
|
|||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="model">model_panel_show_mode</property>
|
<property name="model">model_panel_show_mode</property>
|
||||||
<child>
|
<child>
|
||||||
@@ -521,7 +523,7 @@
|
@@ -521,7 +519,7 @@
|
||||||
<object class="GtkCheckButton" id="checkbutton_show_icon_on_systray">
|
<object class="GtkCheckButton" id="checkbutton_show_icon_on_systray">
|
||||||
<property name="label" translatable="yes">Show icon on system tray</property>
|
<property name="label" translatable="yes">Show icon on system tray</property>
|
||||||
<property name="use_action_appearance">False</property>
|
<property name="use_action_appearance">False</property>
|
||||||
@ -245,7 +308,7 @@ index 2026172..af99cae 100644
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="receives_default">False</property>
|
<property name="receives_default">False</property>
|
||||||
<property name="tooltip_text" translatable="yes">Show icon on system tray</property>
|
<property name="tooltip_text" translatable="yes">Show icon on system tray</property>
|
||||||
@@ -540,7 +542,7 @@
|
@@ -540,7 +538,7 @@
|
||||||
<object class="GtkCheckButton" id="checkbutton_show_im_name">
|
<object class="GtkCheckButton" id="checkbutton_show_im_name">
|
||||||
<property name="label" translatable="yes">Show input method name on language bar</property>
|
<property name="label" translatable="yes">Show input method name on language bar</property>
|
||||||
<property name="use_action_appearance">False</property>
|
<property name="use_action_appearance">False</property>
|
||||||
@ -254,7 +317,7 @@ index 2026172..af99cae 100644
|
|||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="receives_default">False</property>
|
<property name="receives_default">False</property>
|
||||||
<property name="tooltip_text" translatable="yes">Show input method's name on language bar when check the checkbox</property>
|
<property name="tooltip_text" translatable="yes">Show input method's name on language bar when check the checkbox</property>
|
||||||
@@ -1001,7 +1003,7 @@ You may use up/down buttons to change it.</i></small></property>
|
@@ -1001,7 +999,7 @@ You may use up/down buttons to change it.</i></small></property>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkFrame" id="frame5">
|
<object class="GtkFrame" id="frame5">
|
||||||
@ -264,5 +327,5 @@ index 2026172..af99cae 100644
|
|||||||
<property name="label_xalign">0</property>
|
<property name="label_xalign">0</property>
|
||||||
<property name="shadow_type">none</property>
|
<property name="shadow_type">none</property>
|
||||||
--
|
--
|
||||||
1.7.10.4
|
1.8.0
|
||||||
|
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
From 9fe1a6cf5d10d82c93bf2280a29ebf96e9813087 Mon Sep 17 00:00:00 2001
|
From cdfad7a4f7026c6db0e570b4d9b2c14d1c7ca2b2 Mon Sep 17 00:00:00 2001
|
||||||
From: fujiwarat <takao.fujiwara1@gmail.com>
|
From: fujiwarat <takao.fujiwara1@gmail.com>
|
||||||
Date: Fri, 14 Sep 2012 18:50:10 +0900
|
Date: Wed, 14 Nov 2012 07:07:17 +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 | 155 +++++++++++++++++++++++++++++++++++++-------
|
||||||
setup/main.py | 1 +
|
setup/main.py | 1 +
|
||||||
3 files changed, 300 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 4086f67..445d423 100644
|
index 64f6f33..23739af 100644
|
||||||
--- a/data/ibus.schemas.in
|
--- a/data/ibus.schemas.in
|
||||||
+++ b/data/ibus.schemas.in
|
+++ b/data/ibus.schemas.in
|
||||||
@@ -332,6 +332,174 @@ se,si,sk,sy,sy(ku),th,tj,tr,ua,uz,vn
|
@@ -348,6 +348,174 @@ se,si,sk,sy,sy(ku),th,tj,tr,ua,uz,vn
|
||||||
</locale>
|
</locale>
|
||||||
</schema>
|
</schema>
|
||||||
<schema>
|
<schema>
|
||||||
@ -411,7 +411,7 @@ index f80b164..578098c 100644
|
|||||||
return self.get_property("active-engine")
|
return self.get_property("active-engine")
|
||||||
|
|
||||||
diff --git a/setup/main.py b/setup/main.py
|
diff --git a/setup/main.py b/setup/main.py
|
||||||
index 000a03b..ff1c0c6 100644
|
index 5da6340..d6fa3ef 100644
|
||||||
--- a/setup/main.py
|
--- a/setup/main.py
|
||||||
+++ b/setup/main.py
|
+++ b/setup/main.py
|
||||||
@@ -224,6 +224,7 @@ class Setup(object):
|
@@ -224,6 +224,7 @@ class Setup(object):
|
||||||
@ -423,5 +423,5 @@ index 000a03b..ff1c0c6 100644
|
|||||||
|
|
||||||
engine_names = values.get("preload_engines", [])
|
engine_names = values.get("preload_engines", [])
|
||||||
--
|
--
|
||||||
1.7.10.4
|
1.8.0
|
||||||
|
|
||||||
|
42
ibus.spec
42
ibus.spec
@ -7,19 +7,15 @@
|
|||||||
%define with_pygobject2 1
|
%define with_pygobject2 1
|
||||||
%define with_pygobject3 1
|
%define with_pygobject3 1
|
||||||
|
|
||||||
%ifarch ppc ppc64 s390 s390x
|
%if (0%{?fedora} > 17 || 0%{?rhel} > 6)
|
||||||
|
#ifarch ppc ppc64 s390 s390x
|
||||||
%define with_gjs 0
|
%define with_gjs 0
|
||||||
%else
|
%else
|
||||||
%define with_gjs 1
|
%define with_gjs 1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if (0%{?fedora} > 16 || 0%{?rhel} > 6)
|
|
||||||
%define ibus_gjs_version 3.4.1.20120815
|
%define ibus_gjs_version 3.4.1.20120815
|
||||||
%define ibus_gjs_build_failure 1
|
%define ibus_gjs_build_failure 1
|
||||||
%else
|
|
||||||
%define ibus_gjs_version 3.2.1.20111230
|
|
||||||
%define ibus_gjs_build_failure 0
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%define ibus_api_version 1.0
|
%define ibus_api_version 1.0
|
||||||
|
|
||||||
@ -29,15 +25,17 @@
|
|||||||
%define gnome_icon_theme_legacy_version 2.91.6
|
%define gnome_icon_theme_legacy_version 2.91.6
|
||||||
|
|
||||||
Name: ibus
|
Name: ibus
|
||||||
Version: 1.4.99.20121006
|
Version: 1.4.99.20121109
|
||||||
Release: 2%{?dist}
|
Release: 1%{?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
|
||||||
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: xinput-ibus
|
Source1: xinput-ibus
|
||||||
|
%if %with_gjs
|
||||||
Source2: http://fujiwara.fedorapeople.org/ibus/gnome-shell/ibus-gjs-%{ibus_gjs_version}.tar.gz
|
Source2: http://fujiwara.fedorapeople.org/ibus/gnome-shell/ibus-gjs-%{ibus_gjs_version}.tar.gz
|
||||||
|
%endif
|
||||||
Patch0: ibus-HEAD.patch
|
Patch0: ibus-HEAD.patch
|
||||||
Patch1: ibus-810211-no-switch-by-no-trigger.patch
|
Patch1: ibus-810211-no-switch-by-no-trigger.patch
|
||||||
Patch2: ibus-541492-xkb.patch
|
Patch2: ibus-541492-xkb.patch
|
||||||
@ -49,7 +47,6 @@ Patch4: ibus-xx-setup-frequent-lang.patch
|
|||||||
# https://bugzilla.gnome.org/show_bug.cgi?id=658420
|
# https://bugzilla.gnome.org/show_bug.cgi?id=658420
|
||||||
Patch92: ibus-xx-g-s-disable-preedit.patch
|
Patch92: ibus-xx-g-s-disable-preedit.patch
|
||||||
%endif
|
%endif
|
||||||
Patch93: ibus-771115-property-compatible.patch
|
|
||||||
# Hide no nused properties in f17.
|
# Hide no nused properties in f17.
|
||||||
Patch94: ibus-xx-no-use.diff
|
Patch94: ibus-xx-no-use.diff
|
||||||
|
|
||||||
@ -104,7 +101,9 @@ Requires: pyxdg
|
|||||||
Requires: iso-codes
|
Requires: iso-codes
|
||||||
Requires: dbus-python >= %{dbus_python_version}
|
Requires: dbus-python >= %{dbus_python_version}
|
||||||
Requires: dbus-x11
|
Requires: dbus-x11
|
||||||
|
%if 0%{?fedora} <= 17
|
||||||
Requires: im-chooser
|
Requires: im-chooser
|
||||||
|
%endif
|
||||||
%if %with_dconf
|
%if %with_dconf
|
||||||
Requires: dconf
|
Requires: dconf
|
||||||
%else
|
%else
|
||||||
@ -114,7 +113,9 @@ Requires: notify-python
|
|||||||
Requires: libgnomekbd
|
Requires: libgnomekbd
|
||||||
Requires: librsvg2
|
Requires: librsvg2
|
||||||
Requires: gnome-icon-theme-legacy >= %{gnome_icon_theme_legacy_version}
|
Requires: gnome-icon-theme-legacy >= %{gnome_icon_theme_legacy_version}
|
||||||
|
%if 0%{?fedora} <= 17
|
||||||
Requires: gnome-icon-theme-symbolic
|
Requires: gnome-icon-theme-symbolic
|
||||||
|
%endif
|
||||||
|
|
||||||
Requires(post): desktop-file-utils
|
Requires(post): desktop-file-utils
|
||||||
Requires(postun): desktop-file-utils
|
Requires(postun): desktop-file-utils
|
||||||
@ -163,7 +164,9 @@ Summary: IBus im module for gtk3
|
|||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
Requires: %{name} = %{version}-%{release}
|
Requires: %{name} = %{version}-%{release}
|
||||||
Requires: %{name}-libs = %{version}-%{release}
|
Requires: %{name}-libs = %{version}-%{release}
|
||||||
|
%if 0%{?fedora} <= 17
|
||||||
Requires: imsettings-gnome
|
Requires: imsettings-gnome
|
||||||
|
%endif
|
||||||
Requires(post): glib2 >= %{glib_ver}
|
Requires(post): glib2 >= %{glib_ver}
|
||||||
|
|
||||||
%description gtk3
|
%description gtk3
|
||||||
@ -225,10 +228,6 @@ rm -f data/dconf/00-upstream-settings
|
|||||||
%patch3 -p1 -b .preload-sys
|
%patch3 -p1 -b .preload-sys
|
||||||
%patch4 -p1 -b .setup-frequent-lang
|
%patch4 -p1 -b .setup-frequent-lang
|
||||||
|
|
||||||
%if 0%{?fedora} <= 16
|
|
||||||
%patch93 -p1 -b .compat
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%patch94 -p1 -b .no-used
|
%patch94 -p1 -b .no-used
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -254,9 +253,12 @@ autoreconf -f -i
|
|||||||
--enable-gtk-doc \
|
--enable-gtk-doc \
|
||||||
--with-no-snooper-apps='gnome-do,Do.*,firefox.*,.*chrome.*,.*chromium.*' \
|
--with-no-snooper-apps='gnome-do,Do.*,firefox.*,.*chrome.*,.*chromium.*' \
|
||||||
--enable-surrounding-text \
|
--enable-surrounding-text \
|
||||||
|
%if (0%{?fedora} > 17 || 0%{?rhel} > 6)
|
||||||
|
--with-panel-icon-keyboard=legacy \
|
||||||
|
%endif
|
||||||
%if %with_xkbfile
|
%if %with_xkbfile
|
||||||
--with-xkb-preload-layouts=$XKB_PRELOAD_LAYOUTS \
|
--with-xkb-preload-layouts=$XKB_PRELOAD_LAYOUTS \
|
||||||
--enable-xkb \
|
--with-xkb-command=ibus-xkb \
|
||||||
--enable-libgnomekbd \
|
--enable-libgnomekbd \
|
||||||
%endif
|
%endif
|
||||||
%if %with_dconf
|
%if %with_dconf
|
||||||
@ -272,7 +274,7 @@ autoreconf -f -i
|
|||||||
make -C ui/gtk3 maintainer-clean-generic
|
make -C ui/gtk3 maintainer-clean-generic
|
||||||
%endif
|
%endif
|
||||||
# make -C po update-gmo
|
# make -C po update-gmo
|
||||||
make USE_SYMBOL_ICON=TRUE %{?_smp_mflags}
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
%if %with_gjs
|
%if %with_gjs
|
||||||
d=`basename %SOURCE2 .tar.gz`
|
d=`basename %SOURCE2 .tar.gz`
|
||||||
@ -475,6 +477,16 @@ dconf update
|
|||||||
%{_datadir}/gtk-doc/html/*
|
%{_datadir}/gtk-doc/html/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Oct 11 2012 Takao Fujiwara <tfujiwar@redhat.com> - 1.4.99.20121109-1
|
||||||
|
- Bumped to 1.4.99.20121109
|
||||||
|
- Removed im-chooser, imsettings-gnome, gnome-icon-theme-symbolic
|
||||||
|
dependencies in f18 because ibus gnome integration is done.
|
||||||
|
Use ibus-keyboard instead of input-keyboard-symbolic.
|
||||||
|
- Disabled ibus-gjs build because of ibus gnome integration.
|
||||||
|
|
||||||
|
* Thu Oct 11 2012 Takao Fujiwara <tfujiwar@redhat.com> - 1.4.99.20121006-2
|
||||||
|
- Updated ibus-HEAD.patch to fix typo in data/dconf/profile/ibus
|
||||||
|
|
||||||
* Thu Oct 11 2012 Takao Fujiwara <tfujiwar@redhat.com> - 1.4.99.20121006-2
|
* Thu Oct 11 2012 Takao Fujiwara <tfujiwar@redhat.com> - 1.4.99.20121006-2
|
||||||
- Updated ibus-HEAD.patch to fix typo in data/dconf/profile/ibus
|
- Updated ibus-HEAD.patch to fix typo in data/dconf/profile/ibus
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1,3 +1,3 @@
|
|||||||
28b26c84f021a0c15023d6326d4ad58e ibus-1.4.99.20121006.tar.gz
|
be482479357210283e91a47f43a0a0fe ibus-1.4.99.20121109.tar.gz
|
||||||
2d2ad58e3e41429dbd883ba7e501c9b2 ibus-gjs-3.2.1.20111230.tar.gz
|
2d2ad58e3e41429dbd883ba7e501c9b2 ibus-gjs-3.2.1.20111230.tar.gz
|
||||||
8acf4ac4d1a7dfb9a0af9e755a8e7dba ibus-gjs-3.4.1.20120815.tar.gz
|
8acf4ac4d1a7dfb9a0af9e755a8e7dba ibus-gjs-3.4.1.20120815.tar.gz
|
||||||
|
Loading…
Reference in New Issue
Block a user