[Fedora-i18n-bugs] [Bug 817841] [abrt] gdk_display_manager_get_default_display (manager=0x0) from ibus signal 11 (SIGSEGV)
by Red Hat Bugzilla
Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=817841
--- Comment #18 from Pedro Francisco <pedrogfrancisco(a)gmail.com> 2012-05-11 09:16:44 EDT ---
$ echo $DISPLAY; gtg
:0
** (process:1667): WARNING **: Trying to register gtype 'GMountMountFlags' as
enum when in fact it is of type 'GFlags'
** (process:1667): WARNING **: Trying to register gtype 'GDriveStartFlags' as
enum when in fact it is of type 'GFlags'
** (process:1667): WARNING **: Trying to register gtype 'GSocketMsgFlags' as
enum when in fact it is of type 'GFlags'
Gtk-Message: Failed to load module "pk-gtk-module"
/usr/lib/python2.7/site-packages/GTG/taskbrowser/browser.py:2005: Warning:
cannot register existing type `GdkWindow'
gtk.main()
/usr/lib/python2.7/site-packages/GTG/taskbrowser/browser.py:2005: Warning:
g_once_init_leave: assertion `result != 0' failed
gtk.main()
/usr/lib/python2.7/site-packages/GTG/taskbrowser/browser.py:2005: GtkWarning:
gdk_cairo_create: assertion `GDK_IS_WINDOW (window)' failed
gtk.main()
Segmentation fault (core dumped)
------------------------------------------------
$ echo $DISPLAY; gtg
:0.0
** (process:1812): WARNING **: Trying to register gtype 'GMountMountFlags' as
enum when in fact it is of type 'GFlags'
** (process:1812): WARNING **: Trying to register gtype 'GDriveStartFlags' as
enum when in fact it is of type 'GFlags'
** (process:1812): WARNING **: Trying to register gtype 'GSocketMsgFlags' as
enum when in fact it is of type 'GFlags'
Gtk-Message: Failed to load module "pk-gtk-module"
/usr/lib/python2.7/site-packages/GTG/taskbrowser/browser.py:2005: Warning:
cannot register existing type `GdkWindow'
gtk.main()
/usr/lib/python2.7/site-packages/GTG/taskbrowser/browser.py:2005: Warning:
g_once_init_leave: assertion `result != 0' failed
gtk.main()
/usr/lib/python2.7/site-packages/GTG/taskbrowser/browser.py:2005: GtkWarning:
gdk_cairo_create: assertion `GDK_IS_WINDOW (window)' failed
gtk.main()
Segmentation fault (core dumped)
--
Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
11 years, 11 months
[Fedora-i18n-bugs] [Bug 817841] [abrt] gdk_display_manager_get_default_display (manager=0x0) from ibus signal 11 (SIGSEGV)
by Red Hat Bugzilla
Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=817841
--- Comment #16 from Pedro Francisco <pedrogfrancisco(a)gmail.com> 2012-05-11 07:15:27 EDT ---
As I've found out thanks to #808789 , $DISPLAY is different depending on if a
program is started by Nautilus or by someone else (and I typically start
consoles by Nautilus). So, I did it twice:
$ echo $DISPLAY
:0.0
[pedro@sundaeII ~]$ python -c 'from gtk.gdk import Screen'
** (process:21197): WARNING **: Trying to register gtype 'GMountMountFlags' as
enum when in fact it is of type 'GFlags'
** (process:21197): WARNING **: Trying to register gtype 'GDriveStartFlags' as
enum when in fact it is of type 'GFlags'
** (process:21197): WARNING **: Trying to register gtype 'GSocketMsgFlags' as
enum when in fact it is of type 'GFlags'
Gtk-Message: Failed to load module "pk-gtk-module"
$
--------------------------------
$ echo $DISPLAY
:0
$ python -c 'from gtk.gdk import Screen'
** (process:21259): WARNING **: Trying to register gtype 'GMountMountFlags' as
enum when in fact it is of type 'GFlags'
** (process:21259): WARNING **: Trying to register gtype 'GDriveStartFlags' as
enum when in fact it is of type 'GFlags'
** (process:21259): WARNING **: Trying to register gtype 'GSocketMsgFlags' as
enum when in fact it is of type 'GFlags'
Gtk-Message: Failed to load module "pk-gtk-module"
$
--
Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
11 years, 11 months
[Fedora-i18n-bugs] [eekboard/f16] Update to 1.0.7-2.
by Daiki Ueno
commit 53ca66a8d74d7e8be80c57da29d16e63656c9e75
Author: Daiki Ueno <ueno(a)unixuser.org>
Date: Fri May 11 16:42:40 2012 +0900
Update to 1.0.7-2.
.gitignore | 1 +
eekboard-fix-crash.patch | 27 +++++++++++++++++++
eekboard.spec | 65 ++++++++++++++++++++++------------------------
sources | 2 +-
4 files changed, 60 insertions(+), 35 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 90e764a..08fc520 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,3 +16,4 @@ eekboard-0.0.5.tar.gz
/eekboard-1.0.3.tar.gz
/eekboard-1.0.4.tar.gz
/eekboard-1.0.5.tar.gz
+/eekboard-1.0.7.tar.gz
diff --git a/eekboard-fix-crash.patch b/eekboard-fix-crash.patch
new file mode 100644
index 0000000..75b811a
--- /dev/null
+++ b/eekboard-fix-crash.patch
@@ -0,0 +1,27 @@
+From 4df2ecc8ae08872614dc7c250f8df0aa7ea20938 Mon Sep 17 00:00:00 2001
+From: Daiki Ueno <ueno(a)unixuser.org>
+Date: Mon, 16 Apr 2012 14:37:18 +0900
+Subject: [PATCH] Don't abort when failed to load keyboard.
+
+---
+ src/client.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/client.c b/src/client.c
+index d85c87a..ee0c577 100644
+--- a/src/client.c
++++ b/src/client.c
+@@ -779,8 +779,8 @@ set_keyboards (Client *client,
+ for (p = keyboards; *p != NULL; p++) {
+ keyboard_id = eekboard_context_add_keyboard (client->context, *p, NULL);
+ if (keyboard_id == 0) {
+- g_slist_free (head);
+- return FALSE;
++ g_warning ("can't add keyboard %s", *p);
++ continue;
+ }
+ client->keyboards = g_slist_prepend (client->keyboards,
+ GUINT_TO_POINTER(keyboard_id));
+--
+1.7.7.6
+
diff --git a/eekboard.spec b/eekboard.spec
index 38da634..80f4e39 100644
--- a/eekboard.spec
+++ b/eekboard.spec
@@ -1,31 +1,24 @@
Name: eekboard
-Version: 1.0.5
+Version: 1.0.7
Release: 2%{?dist}
-Summary: An Easy-to-use Virtual Keyboard Toolkit
+Summary: Yet Another Virtual Keyboard
Group: Applications/System
License: GPLv3+
URL: http://fedorahosted.org/eekboard/
Source0: http://github.com/downloads/ueno/eekboard/eekboard-%{version}.tar.gz
-BuildRequires: libfakekey-devel
-# older libfakekey-devel has missing BR: libXtst-devel (#680878)
+Patch0: eekboard-fix-crash.patch
BuildRequires: libXtst-devel
-# clutter build is currently disabled
-# BuildRequires: clutter-gtk-devel
BuildRequires: gtk3-devel
BuildRequires: libxklavier-devel
BuildRequires: at-spi2-core-devel
-# at-spi2-core-devel has missing BR: dbus-glib-devel
-BuildRequires: dbus-glib-devel
BuildRequires: intltool desktop-file-utils
BuildRequires: gobject-introspection-devel
-BuildRequires: python2-devel
BuildRequires: libcroco-devel
-BuildRequires: ibus-devel
BuildRequires: vala-tools
-# eekboard-python is required for eekxml tool.
-Requires: eekboard-python = %{version}-%{release}
+Provides: eekboard-python = %{version}-%{release}
+Obsoletes: eekboard-python < 1.0.5-5
%description
eekboard is a virtual keyboard software package, including a set of
@@ -50,21 +43,14 @@ Requires: %{name}-libs = %{version}-%{release}
%description devel
This package contains the development tools for eekboard.
-%package python
-Summary: Python binding of eekboard client library
-Group: System Environment/Libraries
-Requires: %{name} = %{version}-%{release}
-
-%description python
-This package contains the Python language binding of eekboard client library.
-
%prep
%setup -q
+%patch0 -p1 -b .fix-crash
%build
-%configure --disable-static --with-gtk=3.0 --enable-atspi
+%configure --disable-static --enable-atspi
make %{?_smp_mflags}
@@ -77,10 +63,6 @@ rm -rf $RPM_BUILD_ROOT%{_libdir}/*.la
mkdir -p base-installed/examples
mv $RPM_BUILD_ROOT%{_sysconfdir}/xdg/autostart/%{name}-autostart.desktop base-installed/examples
-# Install Python examples under doc.
-mkdir -p python-installed/examples
-cp examples/simple-client/simple-client python-installed/examples
-
desktop-file-validate ${RPM_BUILD_ROOT}%{_datadir}/applications/%{name}.desktop
%find_lang %{name}
@@ -106,11 +88,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%files -f %{name}.lang
-%defattr(-,root,root,-)
%doc base-installed/examples
%{_bindir}/eekboard-server
%{_bindir}/eekboard
-%{_bindir}/eekxml
+%{_libexecdir}/eekboard-setup
%{_datadir}/dbus-1/services/eekboard-server.service
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/*/apps/eekboard.png
@@ -119,30 +100,46 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{_datadir}/glib-2.0/schemas/*
%files libs
-%defattr(-,root,root,-)
%doc AUTHORS COPYING README
%{_libdir}/libeek*.so.*
%{_libdir}/girepository-1.0/Eek*.typelib
%files devel
-%defattr(-,root,root,-)
# LGPLv2+
%{_libdir}/libeek*.so
%{_includedir}/eek-0.90/
%{_includedir}/eekboard-0.90/
%{_datadir}/gir-1.0/Eek*.gir
%{_datadir}/vala/vapi/eek*.vapi
+%{_datadir}/vala/vapi/eek*.deps
%{_libdir}/pkgconfig/eek*.pc
# GFDL
%{_datadir}/gtk-doc/html/*
-%files python
-%defattr(-,root,root,-)
-%doc python-installed/examples
-%{python_sitelib}/eekboard/
-
%changelog
+* Tue Apr 17 2012 Daiki Ueno <dueno(a)redhat.com> - 1.0.7-2
+- remove unnecessary BR: dbus-glib-devel
+- add eekboard-fix-crash.patch
+
+* Fri Apr 13 2012 Daiki Ueno <dueno(a)redhat.com> - 1.0.7-1
+- new upstream release
+- drop unnecessary %%defattr(-,root,root,-) from %%files
+
+* Sat Mar 31 2012 Daiki Ueno <dueno(a)redhat.com> - 1.0.6-2
+- add provides/obsoletes for -python subpackage (fixes #808634)
+
+* Fri Mar 30 2012 Daiki Ueno <dueno(a)redhat.com> - 1.0.6-1
+- new upstream release
+- drop IBus dependency
+- drop Python binding
+
+* Tue Mar 6 2012 Takao Fujiwara <tfujiwar(a)redhat.com> - 1.0.5-4
+- Rebuild for ibus 1.4.99.20120304
+
+* Fri Jan 13 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 1.0.5-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
* Tue Dec 6 2011 Daiki Ueno <dueno(a)redhat.com> - 1.0.5-2
- drop gir-repository-devel from conditional BR
diff --git a/sources b/sources
index 28e2707..9899bee 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-17ed7891724e07af2acf4b71c2145e2e eekboard-1.0.5.tar.gz
+905baf1e5f49fbdfd7ddce898927c821 eekboard-1.0.7.tar.gz
11 years, 11 months
[Fedora-i18n-bugs] [ibus-m17n/f16] Update to 1.3.4-1.
by Daiki Ueno
commit 06bce5874cacbe6623ac0914e7e755278cda64e9
Author: Daiki Ueno <ueno(a)unixuser.org>
Date: Fri May 11 16:29:51 2012 +0900
Update to 1.3.4-1.
.gitignore | 1 +
ibus-m17n-blacklist-engines.patch | 31 +-
ibus-m17n-custom-setup-element.patch | 49 --
ibus-m17n-default-xml-override.patch | 621 -----------------------
ibus-m17n-hide-title-status.patch | 31 +-
ibus-m17n-iok.patch | 102 ----
ibus-m17n-setup-refactor.patch | 843 -------------------------------
ibus-m17n-virtkbd.patch | 921 +++++++++++++---------------------
ibus-m17n-xkb-options.patch | 54 +-
ibus-m17n-xx-icon-symbol.patch | 390 --------------
ibus-m17n.spec | 70 ++--
sources | 2 +-
12 files changed, 447 insertions(+), 2668 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 59fba23..4ccc028 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@ ibus-m17n-1.3.0.tar.gz
/ibus-m17n-1.3.1.tar.gz
/ibus-m17n-1.3.2.tar.gz
/ibus-m17n-1.3.3.tar.gz
+/ibus-m17n-1.3.4.tar.gz
diff --git a/ibus-m17n-blacklist-engines.patch b/ibus-m17n-blacklist-engines.patch
index cfa3a92..80c5425 100644
--- a/ibus-m17n-blacklist-engines.patch
+++ b/ibus-m17n-blacklist-engines.patch
@@ -1,19 +1,19 @@
-From 4a2f3279fb4fbeb8be66ff7bf40cce57e616d45b Mon Sep 17 00:00:00 2001
+From 5978feeb0d96d633417318daf29c3d4974e17b2d Mon Sep 17 00:00:00 2001
From: Daiki Ueno <ueno(a)unixuser.org>
Date: Tue, 25 Oct 2011 14:26:41 +0900
-Subject: [PATCH] Blacklist some engines useless under ibus environment.
+Subject: [PATCH 3/4] Blacklist some engines useless under ibus environment.
---
- src/default.xml.in.in | 32 ++++++++++++++++++++++++++++++++
- 1 files changed, 32 insertions(+), 0 deletions(-)
+ src/default.xml.in.in | 26 ++++++++++++++++++++++++++
+ 1 files changed, 26 insertions(+), 0 deletions(-)
-Index: ibus-m17n-1.3.3/src/default.xml.in.in
-===================================================================
---- ibus-m17n-1.3.3.orig/src/default.xml.in.in
-+++ ibus-m17n-1.3.3/src/default.xml.in.in
-@@ -14,6 +14,38 @@
- @IBUS_HOTKEYS_XML@
- <virtual-keyboard>us</virtual-keyboard>
+diff --git a/src/default.xml.in.in b/src/default.xml.in.in
+index beae494..fda4f30 100644
+--- a/src/default.xml.in.in
++++ b/src/default.xml.in.in
+@@ -12,6 +12,32 @@
+ <preedit-highlight>FALSE</preedit-highlight>
+ <symbol></symbol>
</engine>
+ <!-- Blacklist some engines -->
+ <!-- kbd engines are duplicate of xkb engines -->
@@ -21,12 +21,6 @@ Index: ibus-m17n-1.3.3/src/default.xml.in.in
+ <name>m17n:*:kbd</name>
+ <rank>-1</rank>
+ </engine>
-+ <!-- zh:pinyin is considered as a toy, since it does not
-+ support Han characters -->
-+ <engine>
-+ <name>m17n:zh:pinyin</name>
-+ <rank>-1</rank>
-+ </engine>
+ <!-- zh:py is superseded by ibus-pinyin etc -->
+ <engine>
+ <name>m17n:zh:py</name>
@@ -50,3 +44,6 @@ Index: ibus-m17n-1.3.3/src/default.xml.in.in
<!-- Indic engines should be selected by default:
https://bugzilla.redhat.com/show_bug.cgi?id=640896 -->
<engine>
+--
+1.7.7.6
+
diff --git a/ibus-m17n-hide-title-status.patch b/ibus-m17n-hide-title-status.patch
index 0d52c54..6326eba 100644
--- a/ibus-m17n-hide-title-status.patch
+++ b/ibus-m17n-hide-title-status.patch
@@ -1,25 +1,25 @@
-From d4a1cb9c6bd852da73ba6520fc5c14edbe84ec14 Mon Sep 17 00:00:00 2001
+From 02022c17212357afb5cec727edd8f095aa40d98d Mon Sep 17 00:00:00 2001
From: Daiki Ueno <ueno(a)unixuser.org>
Date: Thu, 29 Sep 2011 10:17:28 +0900
-Subject: [PATCH] Hide status from the panel if status == title.
+Subject: [PATCH 2/4] Hide status from the panel if status == title.
---
src/engine.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
-diff --git a/src/engine.c b/src/engine.c
-index f23d982..a0dcc70 100644
---- a/src/engine.c
-+++ b/src/engine.c
-@@ -43,6 +43,7 @@ struct _IBusM17NEngineClass {
- gboolean virtual_keyboard_enabled;
- gboolean use_iok;
+Index: ibus-m17n-1.3.4/src/engine.c
+===================================================================
+--- ibus-m17n-1.3.4.orig/src/engine.c
++++ ibus-m17n-1.3.4/src/engine.c
+@@ -36,6 +36,7 @@ struct _IBusM17NEngineClass {
+ IBusPreeditFocusMode preedit_focus_mode;
+ gint lookup_table_orientation;
+ gchar *title;
MInputMethod *im;
};
-@@ -256,6 +257,10 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass)
+@@ -245,6 +246,10 @@ ibus_m17n_engine_class_init (IBusM17NEng
}
engine_name = g_strdup_printf ("m17n:%s:%s", lang, name);
klass->config_section = g_strdup_printf ("engine/M17N/%s/%s", lang, name);
@@ -27,10 +27,10 @@ index f23d982..a0dcc70 100644
+ if (l && mplist_key (l) == Mtext) {
+ klass->title = ibus_m17n_mtext_to_utf8 (mplist_value (l));
+ }
- /* whether to use iok - maybe good to move this to default.xml */
- klass->use_iok = g_strcmp0 (name, "inscript") == 0 ||
- g_strcmp0 (name, "inscript2") == 0;
-@@ -994,8 +999,9 @@ ibus_m17n_engine_callback (MInputContext *context,
+ g_free (lang);
+ g_free (name);
+
+@@ -903,8 +908,9 @@ ibus_m17n_engine_callback (MInputContext
else if (command == Minput_status_draw) {
gchar *status;
status = ibus_m17n_mtext_to_utf8 (m17n->context->status);
@@ -41,6 +41,3 @@ index f23d982..a0dcc70 100644
IBusText *text;
text = ibus_text_new_from_string (status);
ibus_property_set_label (m17n->status_prop, text);
---
-1.7.6.4
-
diff --git a/ibus-m17n-virtkbd.patch b/ibus-m17n-virtkbd.patch
index 2ceb043..1a88d2a 100644
--- a/ibus-m17n-virtkbd.patch
+++ b/ibus-m17n-virtkbd.patch
@@ -1,27 +1,21 @@
-From 49d2f16638aaa9160b87936cb89fea92186e5171 Mon Sep 17 00:00:00 2001
+From 98ae1c6dbd279e17ef3c20493a37c959f1b1e61f Mon Sep 17 00:00:00 2001
From: Daiki Ueno <ueno(a)unixuser.org>
-Date: Wed, 31 Aug 2011 18:28:48 +0900
-Subject: [PATCH 5/6] Support virtual keyboard.
+Date: Fri, 30 Mar 2012 12:36:08 +0900
+Subject: [PATCH 4/4] Add virtual keyboard support.
---
- configure.ac | 17 +++
- src/Makefile.am | 7 ++
- src/default.xml.in.in | 111 ++++++++++++++++++++
- src/engine.c | 66 ++++++++++++
- src/ibus-m17n-preferences.ui | 16 +++
- src/m17nutil.c | 59 +++++++++++-
- src/m17nutil.h | 11 ++
- src/setup.c | 26 +++++
- src/virtkbd.c | 233 ++++++++++++++++++++++++++++++++++++++++++
- src/virtkbd.h | 31 ++++++
- 10 files changed, 576 insertions(+), 1 deletions(-)
- create mode 100644 src/virtkbd.c
- create mode 100644 src/virtkbd.h
+ configure.ac | 17 +++
+ src/Makefile.am | 5 +
+ src/default.xml.in.in | 111 +++++++++++++++++++
+ src/engine.c | 289 +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/m17nutil.c | 10 ++-
+ src/m17nutil.h | 3 +
+ 6 files changed, 434 insertions(+), 1 deletions(-)
-diff --git a/configure.ac b/configure.ac
-index 23102c4..13e42f8 100644
---- a/configure.ac
-+++ b/configure.ac
+Index: ibus-m17n-1.3.4/configure.ac
+===================================================================
+--- ibus-m17n-1.3.4.orig/configure.ac
++++ ibus-m17n-1.3.4/configure.ac
@@ -88,6 +88,23 @@ fi
AM_CONDITIONAL([HAVE_GTK],[test x$with_gtk != xno])
@@ -46,42 +40,39 @@ index 23102c4..13e42f8 100644
# check if minput_list, which is available in m17n-lib 1.6.2+ (CVS)
save_CFLAGS="$CFLAGS"
save_LIBS="$LIBS"
-diff --git a/src/Makefile.am b/src/Makefile.am
-index e354149..eac6629 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -64,11 +64,18 @@ ibus_engine_m17n_SOURCES = \
- main.c \
+Index: ibus-m17n-1.3.4/src/Makefile.am
+===================================================================
+--- ibus-m17n-1.3.4.orig/src/Makefile.am
++++ ibus-m17n-1.3.4/src/Makefile.am
+@@ -65,10 +65,15 @@ ibus_engine_m17n_SOURCES = \
engine.c \
engine.h \
-+ virtkbd.c \
-+ virtkbd.h \
-+ $(NULL)
+ $(NULL)
+ibus_engine_m17n_CFLAGS = \
+ @EEKBOARD_CFLAGS@ \
+ $(AM_CFLAGS) \
- $(NULL)
++ $(NULL)
ibus_engine_m17n_LDADD = \
- libm17ncommon.a \
+ libm17ncommon.la \
@IBUS_LIBS@ \
@M17N_LIBS@ \
+ @EEKBOARD_LIBS@ \
$(NULL)
if HAVE_GTK
-diff --git a/src/default.xml.in.in b/src/default.xml.in.in
-index b1c77c5..dfcd978 100644
---- a/src/default.xml.in.in
-+++ b/src/default.xml.in.in
-@@ -12,6 +12,7 @@
+Index: ibus-m17n-1.3.4/src/default.xml.in.in
+===================================================================
+--- ibus-m17n-1.3.4.orig/src/default.xml.in.in
++++ ibus-m17n-1.3.4/src/default.xml.in.in
+@@ -11,6 +11,7 @@
+ <rank>0</rank>
<preedit-highlight>FALSE</preedit-highlight>
<symbol></symbol>
- @IBUS_HOTKEYS_XML@
+ <virtual-keyboard>us</virtual-keyboard>
</engine>
- <!-- Indic engines should be selected by default:
- https://bugzilla.redhat.com/show_bug.cgi?id=640896 -->
-@@ -410,4 +411,114 @@
+ <!-- Blacklist some engines -->
+ <!-- kbd engines are duplicate of xkb engines -->
+@@ -440,4 +441,114 @@
<name>m17n:zh:tonepy*</name>
<symbol>调</symbol>
</engine>
@@ -196,23 +187,24 @@ index b1c77c5..dfcd978 100644
+ <virtual-keyboard>te-inscript,us</virtual-keyboard>
+ </engine>
</engines>
-diff --git a/src/engine.c b/src/engine.c
-index dcff0c7..1e6bd1b 100644
---- a/src/engine.c
-+++ b/src/engine.c
-@@ -7,6 +7,7 @@
+Index: ibus-m17n-1.3.4/src/engine.c
+===================================================================
+--- ibus-m17n-1.3.4.orig/src/engine.c
++++ ibus-m17n-1.3.4/src/engine.c
+@@ -7,6 +7,9 @@
#include <m17n.h>
#include <string.h>
#include "m17nutil.h"
-+#include "virtkbd.h"
++#ifdef HAVE_EEKBOARD
++#include <eekboard/eekboard-client.h>
++#endif /* HAVE_EEKBOARD */
#include "engine.h"
typedef struct _IBusM17NEngine IBusM17NEngine;
-@@ -18,10 +19,13 @@ struct _IBusM17NEngine {
+@@ -18,10 +21,12 @@ struct _IBusM17NEngine {
/* members */
MInputContext *context;
IBusLookupTable *table;
-+ IBusM17NVirtualKeyboard *virtkbd;
+
IBusProperty *status_prop;
#ifdef HAVE_SETUP
@@ -222,39 +214,229 @@ index dcff0c7..1e6bd1b 100644
IBusPropList *prop_list;
};
-@@ -34,6 +38,8 @@ struct _IBusM17NEngineClass {
- guint preedit_background;
+@@ -35,9 +40,16 @@ struct _IBusM17NEngineClass {
gint preedit_underline;
+ IBusPreeditFocusMode preedit_focus_mode;
gint lookup_table_orientation;
+ gchar *virtual_keyboard;
-+ gboolean virtual_keyboard_enabled;
+ gchar *title;
MInputMethod *im;
++
++#ifdef HAVE_EEKBOARD
++ EekboardContext *econtext;
++ GSList *keyboards;
++ GSList *keyboards_head;
++#endif /* HAVE_EEKBOARD */
};
-@@ -256,6 +262,7 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass)
- klass->preedit_background = INVALID_COLOR;
- klass->preedit_underline = IBUS_ATTR_UNDERLINE_NONE;
- klass->lookup_table_orientation = IBUS_ORIENTATION_SYSTEM;
-+ klass->virtual_keyboard_enabled = FALSE;
- engine_config = ibus_m17n_get_engine_config (engine_name);
- g_free (engine_name);
-@@ -290,6 +297,14 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass)
- &klass->lookup_table_orientation))
- klass->lookup_table_orientation = IBUS_ORIENTATION_SYSTEM;
+ /* functions prototype */
+@@ -101,13 +113,184 @@ static IBusEngineClass *parent_class = N
+
+ static IBusConfig *config = NULL;
-+ if (!ibus_m17n_config_get_boolean (config,
-+ klass->config_section,
-+ "virtual_keyboard_enabled",
-+ &klass->virtual_keyboard_enabled))
-+ klass->virtual_keyboard_enabled = FALSE;
++#ifdef HAVE_EEKBOARD
++static EekboardClient *eekboard = NULL;
+
-+ klass->virtual_keyboard = engine_config->virtual_keyboard;
++static void
++client_destroyed_cb (EekboardClient *client,
++ gpointer user_data)
++{
++ if (eekboard) {
++ g_object_unref (eekboard);
++ eekboard = NULL;
++ }
++}
++
++static void
++context_destroyed_cb (EekboardContext *context,
++ IBusM17NEngineClass *klass)
++{
++ if (klass->econtext) {
++ g_object_unref (klass->econtext);
++ klass->econtext = NULL;
++ }
++}
++
++static EekboardContext *
++create_context (IBusM17NEngineClass *klass)
++{
++ EekboardContext *context = eekboard_client_create_context (eekboard,
++ "ibus-m17n",
++ NULL);
++ g_signal_connect (context, "destroyed",
++ G_CALLBACK (context_destroyed_cb), klass);
++
++ g_slist_free (klass->keyboards);
++ klass->keyboards = NULL;
++
++ gchar **keyboards = g_strsplit (klass->virtual_keyboard, ",", -1);
++ gchar **p;
++
++ for (p = keyboards; *p; p++) {
++ guint keyboard = eekboard_context_add_keyboard (context,
++ g_strstrip (*p),
++ NULL);
++ klass->keyboards = g_slist_prepend (klass->keyboards,
++ GUINT_TO_POINTER (keyboard));
++ }
++ g_strfreev (keyboards);
++
++ klass->keyboards = g_slist_reverse (klass->keyboards);
++ klass->keyboards_head = klass->keyboards;
++
++ eekboard_context_set_keyboard (context,
++ GPOINTER_TO_UINT (klass->keyboards_head->data),
++ NULL);
++ return context;
++}
++
++static void
++key_activated_cb (EekboardContext *context,
++ guint keycode,
++ EekSymbol *symbol,
++ guint modifiers,
++ IBusM17NEngine *m17n)
++{
++ IBusM17NEngineClass *klass = (IBusM17NEngineClass *) G_OBJECT_GET_CLASS (m17n);
++ IBusEngine *engine = IBUS_ENGINE (m17n);
++
++ if (EEK_IS_TEXT (symbol)) {
++ const gchar *string;
++ IBusText *text;
++
++ string = eek_text_get_text (EEK_TEXT (symbol));
++ text = ibus_text_new_from_static_string (string);
++ ibus_engine_commit_text (engine, text);
++ } else if (EEK_IS_KEYSYM (symbol)) {
++ guint keyval = eek_keysym_get_xkeysym (EEK_KEYSYM (symbol));
++ ibus_engine_forward_key_event (engine,
++ keyval,
++ 0,
++ modifiers);
++ ibus_engine_forward_key_event (engine,
++ keyval,
++ 0,
++ modifiers | IBUS_RELEASE_MASK);
++ } else if (g_strcmp0 (eek_symbol_get_name (symbol),
++ "cycle-keyboard") == 0) {
++ klass->keyboards_head = g_slist_next (klass->keyboards_head);
++ if (klass->keyboards_head == NULL)
++ klass->keyboards_head = klass->keyboards;
++ eekboard_context_set_keyboard (klass->econtext,
++ GPOINTER_TO_UINT (klass->keyboards_head->data),
++ NULL);
++ }
++}
++
++static void
++init_eekboard ()
++{
++ GDBusConnection *connection;
++ GError *error;
++
++ error = NULL;
++ connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
++ if (connection == NULL) {
++ g_printerr ("Can't connect to the session bus: %s\n",
++ error->message);
++ g_error_free (error);
++ return;
++ }
++
++ eek_init ();
++
++ eekboard = eekboard_client_new (connection, NULL);
++ g_object_unref (connection);
++
++ g_signal_connect (eekboard, "destroyed",
++ G_CALLBACK (client_destroyed_cb), NULL);
++}
++#endif /* HAVE_EEKBOARD */
++
++static GType ibus_m17n_virtual_keyboard_implementation_type = 0;
++
++typedef enum {
++ IBUS_M17N_VIRTUAL_KEYBOARD_IMPLEMENTATION_EEKBOARD,
++ IBUS_M17N_VIRTUAL_KEYBOARD_IMPLEMENTATION_IOK
++} IBusM17NVirtualKeyboardImplementation;
++
++#ifdef HAVE_EEKBOARD
++static IBusM17NVirtualKeyboardImplementation virtual_keyboard_implementation =
++ IBUS_M17N_VIRTUAL_KEYBOARD_IMPLEMENTATION_EEKBOARD;
++#else
++static IBusM17NVirtualKeyboardImplementation virtual_keyboard_implementation =
++ IBUS_M17N_VIRTUAL_KEYBOARD_IMPLEMENTATION_IOK;
++#endif
++
+ void
+ ibus_m17n_init (IBusBus *bus)
+ {
++ static const GEnumValue evalues[] = {
++ { IBUS_M17N_VIRTUAL_KEYBOARD_IMPLEMENTATION_EEKBOARD,
++ "IBUS_M17N_VIRTUAL_KEYBOARD_IMPLEMENTATION_EEKBOARD",
++ "eekboard" },
++ { IBUS_M17N_VIRTUAL_KEYBOARD_IMPLEMENTATION_IOK,
++ "IBUS_M17N_VIRTUAL_KEYBOARD_IMPLEMENTATION_IOK",
++ "iok" }
++ };
++
++ GVariant *values;
++
+ config = ibus_bus_get_config (bus);
+ if (config)
+ g_object_ref_sink (config);
+ ibus_m17n_init_common ();
++
++ ibus_m17n_virtual_keyboard_implementation_type =
++ g_enum_register_static ("IBusM17NVirtualKeyboardImplementation",
++ evalues);
++ values = ibus_config_get_values (config, "engine/M17N");
++ if (values != NULL) {
++ GVariant *value =
++ g_variant_lookup_value (values,
++ "virtual_keyboard_implementation",
++ G_VARIANT_TYPE_STRING);
++ if (value != NULL) {
++ GEnumClass *eclass = G_ENUM_CLASS (g_type_class_peek (ibus_m17n_virtual_keyboard_implementation_type));
++ GEnumValue *evalue = g_enum_get_value_by_nick (eclass, g_variant_get_string (value, NULL));
++ if (evalue != NULL) {
++ virtual_keyboard_implementation = evalue->value;
++ }
++ }
++ }
+
++ if (virtual_keyboard_implementation == IBUS_M17N_VIRTUAL_KEYBOARD_IMPLEMENTATION_EEKBOARD) {
++#ifdef HAVE_EEKBOARD
++ init_eekboard ();
++#else
++ g_warning ("eekboard is not supported");
++#endif /* HAVE_EEKBOARD */
++ }
+ }
+
+ static gboolean
+@@ -268,6 +451,7 @@ ibus_m17n_engine_class_init (IBusM17NEng
+ IBUS_ENGINE_PREEDIT_COMMIT :
+ IBUS_ENGINE_PREEDIT_CLEAR;
+ klass->lookup_table_orientation = IBUS_ORIENTATION_SYSTEM;
++ klass->virtual_keyboard = engine_config->virtual_keyboard;
+
ibus_m17n_engine_config_free (engine_config);
- g_signal_connect (config, "value-changed",
-@@ -346,6 +361,7 @@ ibus_m17n_engine_init (IBusM17NEngine *m17n)
+@@ -317,6 +501,11 @@ ibus_m17n_engine_class_init (IBusM17NEng
+ klass);
+
+ klass->im = NULL;
++
++#if HAVE_EEKBOARD
++ if (eekboard)
++ klass->econtext = create_context (klass);
++#endif /* HAVE_EEKBOARD */
+ }
+
+ static void
+@@ -354,6 +543,7 @@ ibus_m17n_engine_init (IBusM17NEngine *m
{
IBusText* label;
IBusText* tooltip;
@@ -262,12 +444,12 @@ index dcff0c7..1e6bd1b 100644
m17n->prop_list = ibus_prop_list_new ();
g_object_ref_sink (m17n->prop_list);
-@@ -378,6 +394,24 @@ ibus_m17n_engine_init (IBusM17NEngine *m17n)
+@@ -386,6 +576,36 @@ ibus_m17n_engine_init (IBusM17NEngine *m
ibus_prop_list_append (m17n->prop_list, m17n->setup_prop);
#endif /* HAVE_SETUP */
-+ label = ibus_text_new_from_string ("On-screen Keyboard");
-+ tooltip = ibus_text_new_from_string ("Show on-screen keyboard");
++ label = ibus_text_new_from_string ("Screen Keyboard");
++ tooltip = ibus_text_new_from_string ("Show screen keyboard");
+ m17n->virtkbd_prop = ibus_property_new ("virtual-keyboard",
+ PROP_TYPE_NORMAL,
+ label,
@@ -280,14 +462,26 @@ index dcff0c7..1e6bd1b 100644
+ g_object_ref_sink (m17n->virtkbd_prop);
+ ibus_prop_list_append (m17n->prop_list, m17n->virtkbd_prop);
+
-+ if (klass->virtual_keyboard_enabled &&
-+ klass->virtual_keyboard != NULL)
++#ifdef HAVE_EEKBOARD
++ if (eekboard != NULL)
+ ibus_property_set_visible (m17n->virtkbd_prop, TRUE);
++ else
++#endif /* HAVE_EEKBOARD */
++ {
++ gchar *lang = NULL, *name = NULL;
++ if (ibus_m17n_scan_class_name (G_OBJECT_CLASS_NAME (klass),
++ &lang,
++ &name) &&
++ g_str_has_prefix (name, "inscript"))
++ ibus_property_set_visible (m17n->virtkbd_prop, TRUE);
++ g_free (lang);
++ g_free (name);
++ }
+
m17n->table = ibus_lookup_table_new (9, 0, TRUE, TRUE);
g_object_ref_sink (m17n->table);
m17n->context = NULL;
-@@ -463,6 +497,11 @@ ibus_m17n_engine_destroy (IBusM17NEngine *m17n)
+@@ -471,6 +691,11 @@ ibus_m17n_engine_destroy (IBusM17NEngine
}
#endif /* HAVE_SETUP */
@@ -299,119 +493,122 @@ index dcff0c7..1e6bd1b 100644
if (m17n->table) {
g_object_unref (m17n->table);
m17n->table = NULL;
-@@ -473,6 +512,11 @@ ibus_m17n_engine_destroy (IBusM17NEngine *m17n)
- m17n->context = NULL;
- }
-
-+ if (m17n->virtkbd) {
-+ g_object_unref (m17n->virtkbd);
-+ m17n->virtkbd = NULL;
-+ }
-+
- IBUS_OBJECT_CLASS (parent_class)->destroy ((IBusObject *)m17n);
- }
-
-@@ -705,6 +749,9 @@ ibus_m17n_engine_enable (IBusEngine *engine)
+@@ -716,6 +941,14 @@ ibus_m17n_engine_enable (IBusEngine *eng
+ /* Issue a dummy ibus_engine_get_surrounding_text() call to tell
input context that we will use surrounding-text. */
ibus_engine_get_surrounding_text (engine, NULL, NULL, NULL);
- #endif /* HAVE_IBUS_ENGINE_GET_SURROUNDING_TEXT */
+
-+ if (m17n->virtkbd)
-+ ibus_m17n_virtual_keyboard_enable (m17n->virtkbd);
++#ifdef HAVE_EEKBOARD
++ if (eekboard) {
++ IBusM17NEngineClass *klass = (IBusM17NEngineClass *) G_OBJECT_GET_CLASS (m17n);
++ if (klass->econtext)
++ eekboard_client_push_context (eekboard, klass->econtext, NULL);
++ }
++#endif /* HAVE_EEKBOARD */
}
static void
-@@ -714,6 +761,9 @@ ibus_m17n_engine_disable (IBusEngine *engine)
+@@ -725,6 +958,14 @@ ibus_m17n_engine_disable (IBusEngine *en
ibus_m17n_engine_focus_out (engine);
parent_class->disable (engine);
+
-+ if (m17n->virtkbd)
-+ ibus_m17n_virtual_keyboard_disable (m17n->virtkbd);
++#ifdef HAVE_EEKBOARD
++ if (eekboard) {
++ IBusM17NEngineClass *klass = (IBusM17NEngineClass *) G_OBJECT_GET_CLASS (m17n);
++ if (klass->econtext)
++ eekboard_client_pop_context (eekboard, NULL);
++ }
++#endif /* HAVE_EEKBOARD */
}
static void
-@@ -776,6 +826,22 @@ ibus_m17n_engine_property_activate (IBusEngine *engine,
+@@ -772,6 +1013,7 @@ ibus_m17n_engine_property_activate (IBus
+ guint prop_state)
+ {
+ IBusM17NEngine *m17n = (IBusM17NEngine *) engine;
++ IBusM17NEngineClass *klass = (IBusM17NEngineClass *) G_OBJECT_GET_CLASS (m17n);
+
+ #ifdef HAVE_SETUP
+ if (g_strcmp0 (prop_name, "setup") == 0) {
+@@ -787,6 +1029,53 @@ ibus_m17n_engine_property_activate (IBus
}
#endif /* HAVE_SETUP */
-+#ifdef HAVE_EEKBOARD
+ if (g_strcmp0 (prop_name, "virtual-keyboard") == 0) {
-+ /* virtual keyboard is not initialized until a user activates
-+ the "virtual-keyboard" prop for the first time */
-+ if (m17n->virtkbd == NULL) {
-+ IBusM17NEngineClass *klass =
-+ (IBusM17NEngineClass *) G_OBJECT_GET_CLASS (m17n);
-+
-+ m17n->virtkbd =
-+ ibus_m17n_virtual_keyboard_new ((IBusEngine *)m17n,
-+ klass->virtual_keyboard);
++#ifdef HAVE_EEKBOARD
++ if (eekboard) {
++ if (klass->econtext == NULL) {
++ klass->econtext = create_context (klass);
++ eekboard_client_push_context (eekboard, klass->econtext, NULL);
++ }
++ g_signal_handlers_disconnect_by_func (klass->econtext,
++ G_CALLBACK (key_activated_cb),
++ m17n);
++ g_signal_connect (klass->econtext, "key-activated",
++ G_CALLBACK (key_activated_cb), m17n);
++ eekboard_context_show_keyboard (klass->econtext, NULL);
++ } else
++#endif /* HAVE_EEKBOARD */
++ {
++ gchar *lang = NULL, *name = NULL;
++
++ if (ibus_m17n_scan_class_name (G_OBJECT_CLASS_NAME (klass),
++ &lang,
++ &name) &&
++ g_str_has_prefix (name, "inscript")) {
++ gchar *argv[4];
++ GError *error;
++
++ argv[0] = "iok";
++ argv[1] = "-n";
++ argv[2] = lang;
++ argv[3] = NULL;
++ error = NULL;
++ if (!g_spawn_async (NULL,
++ argv,
++ NULL,
++ G_SPAWN_SEARCH_PATH,
++ NULL,
++ NULL,
++ NULL,
++ &error)) {
++ g_warning ("can't spawn iok: %s", error->message);
++ g_error_free (error);
++ }
++ }
++ g_free (lang);
++ g_free (name);
+ }
-+ ibus_m17n_virtual_keyboard_toggle_display (m17n->virtkbd);
+ }
-+#endif /* HAVE_EEKBOARD */
+
parent_class->property_activate (engine, prop_name, prop_state);
}
-diff --git a/src/ibus-m17n-preferences.ui b/src/ibus-m17n-preferences.ui
-index a46ab49..bca034d 100644
---- a/src/ibus-m17n-preferences.ui
-+++ b/src/ibus-m17n-preferences.ui
-@@ -192,6 +192,7 @@
- <child>
- <object class="GtkTable" id="table2">
- <property name="visible">True</property>
-+ <property name="n_rows">2</property>
- <property name="n_columns">2</property>
- <child>
- <object class="GtkLabel" id="label9">
-@@ -210,6 +211,21 @@
- <property name="right_attach">2</property>
- </packing>
- </child>
-+ <child>
-+ <object class="GtkCheckButton" id="checkbutton_virtkbd">
-+ <property name="label" translatable="yes">Enable Virtual Keyboard</property>
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="receives_default">False</property>
-+ <property name="draw_indicator">True</property>
-+ </object>
-+ <packing>
-+ <property name="left_attach">0</property>
-+ <property name="right_attach">2</property>
-+ <property name="top_attach">1</property>
-+ <property name="bottom_attach">2</property>
-+ </packing>
-+ </child>
- </object>
- </child>
- </object>
-diff --git a/src/m17nutil.c b/src/m17nutil.c
-index 94a6891..2143e54 100644
---- a/src/m17nutil.c
-+++ b/src/m17nutil.c
+Index: ibus-m17n-1.3.4/src/m17nutil.c
+===================================================================
+--- ibus-m17n-1.3.4.orig/src/m17nutil.c
++++ ibus-m17n-1.3.4/src/m17nutil.c
@@ -18,7 +18,8 @@ typedef enum {
- ENGINE_CONFIG_LAYOUT_MASK = 1 << 1,
- ENGINE_CONFIG_HOTKEYS_MASK = 1 << 2,
- ENGINE_CONFIG_SYMBOL_MASK = 1 << 3,
+ ENGINE_CONFIG_SYMBOL_MASK = 1 << 1,
+ ENGINE_CONFIG_LONGNAME_MASK = 1 << 2,
+ ENGINE_CONFIG_LAYOUT_MASK = 1 << 3,
- ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK = 1 << 4
+ ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK = 1 << 4,
+ ENGINE_CONFIG_VIRTUAL_KEYBOARD_MASK = 1 << 5
} EngineConfigMask;
struct _EngineConfigNode {
-@@ -285,6 +286,8 @@ ibus_m17n_get_engine_config (const gchar *engine_name)
- config->symbol = cnode->config.symbol;
+@@ -276,6 +277,8 @@ ibus_m17n_get_engine_config (const gchar
+ config->longname = cnode->config.longname;
if (cnode->mask & ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK)
config->preedit_highlight = cnode->config.preedit_highlight;
+ if (cnode->mask & ENGINE_CONFIG_VIRTUAL_KEYBOARD_MASK)
+ config->virtual_keyboard = cnode->config.virtual_keyboard;
+ if (cnode->mask & ENGINE_CONFIG_LAYOUT_MASK)
+ config->layout = cnode->config.layout;
}
- }
- return config;
-@@ -340,6 +343,11 @@ ibus_m17n_engine_config_parse_xml_node (EngineConfigNode *cnode,
+@@ -333,6 +336,11 @@ ibus_m17n_engine_config_parse_xml_node (
cnode->mask |= ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK;
continue;
}
@@ -423,63 +620,10 @@ index 94a6891..2143e54 100644
g_warning ("<engine> element contains invalid element <%s>",
sub_node->name);
}
-@@ -494,3 +502,52 @@ ibus_m17n_config_get_int (IBusConfig *config,
- return FALSE;
- #endif /* !IBUS_CHECK_VERSION(1,3,99) */
- }
-+
-+void
-+ibus_m17n_config_set_boolean (IBusConfig *config,
-+ const gchar *section,
-+ const gchar *name,
-+ gboolean value)
-+{
-+#if IBUS_CHECK_VERSION(1,3,99)
-+ ibus_config_set_value (config, section, name, g_variant_new_boolean (value));
-+#else
-+ GValue v = { 0 };
-+
-+ g_value_init (&v, G_TYPE_BOOLEAN);
-+ g_value_set_boolean (&v, value);
-+ ibus_config_set_value (config, section, name, &v);
-+#endif /* !IBUS_CHECK_VERSION(1,3,99) */
-+}
-+
-+gboolean
-+ibus_m17n_config_get_boolean (IBusConfig *config,
-+ const gchar *section,
-+ const gchar *name,
-+ gboolean *result)
-+{
-+#if IBUS_CHECK_VERSION(1,3,99)
-+ GVariant *value = NULL;
-+
-+ g_return_val_if_fail (result != NULL, FALSE);
-+
-+ value = ibus_config_get_value (config, section, name);
-+ if (value) {
-+ *result = g_variant_get_boolean (value);
-+ g_variant_unref (value);
-+ return TRUE;
-+ }
-+ return FALSE;
-+#else
-+ GValue value = { 0 };
-+
-+ g_return_val_if_fail (result != NULL, FALSE);
-+
-+ if (ibus_config_get_value (config, section, name, &value)) {
-+ *result = g_value_get_boolean (&value);
-+ g_value_unset (&value);
-+ return TRUE;
-+ }
-+ return FALSE;
-+#endif /* !IBUS_CHECK_VERSION(1,3,99) */
-+}
-diff --git a/src/m17nutil.h b/src/m17nutil.h
-index 21b1bb9..9c3fca8 100644
---- a/src/m17nutil.h
-+++ b/src/m17nutil.h
+Index: ibus-m17n-1.3.4/src/m17nutil.h
+===================================================================
+--- ibus-m17n-1.3.4.orig/src/m17nutil.h
++++ ibus-m17n-1.3.4/src/m17nutil.h
@@ -25,6 +25,9 @@ struct _IBusM17NEngineConfig {
/* whether to highlight preedit */
@@ -490,360 +634,3 @@ index 21b1bb9..9c3fca8 100644
};
typedef struct _IBusM17NEngineConfig IBusM17NEngineConfig;
-@@ -56,4 +59,12 @@ gboolean ibus_m17n_config_get_int (IBusConfig *config,
- const gchar *section,
- const gchar *name,
- gint *result);
-+void ibus_m17n_config_set_boolean (IBusConfig *config,
-+ const gchar *section,
-+ const gchar *name,
-+ gboolean value);
-+gboolean ibus_m17n_config_get_boolean (IBusConfig *config,
-+ const gchar *section,
-+ const gchar *name,
-+ gboolean *result);
- #endif
-diff --git a/src/setup.c b/src/setup.c
-index 30386df..1c534d6 100644
---- a/src/setup.c
-+++ b/src/setup.c
-@@ -25,6 +25,7 @@ struct _SetupDialog {
- GtkWidget *colorbutton_foreground;
- GtkWidget *checkbutton_background;
- GtkWidget *colorbutton_background;
-+ GtkWidget *checkbutton_virtkbd;
- GtkWidget *treeview;
- GtkListStore *store;
-
-@@ -322,6 +323,15 @@ setup_dialog_load_config (SetupDialog *dialog)
- gtk_combo_box_set_active (GTK_COMBO_BOX(dialog->combobox_orientation),
- index);
-
-+ if (!ibus_m17n_config_get_boolean (dialog->config,
-+ dialog->section,
-+ "virtual_keyboard_enabled",
-+ &bvalue))
-+ bvalue = FALSE;
-+
-+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(dialog->checkbutton_virtkbd),
-+ bvalue);
-+
- /* Advanced -> m17n-lib configuration */
- dialog->store = gtk_list_store_new (NUM_COLS,
- G_TYPE_STRING,
-@@ -404,6 +414,17 @@ save_choice (SetupDialog *dialog,
- ibus_m17n_config_set_int (dialog->config, dialog->section, name, active);
- }
-
-+static void
-+save_toggle (SetupDialog *dialog,
-+ GtkToggleButton *togglebutton,
-+ const gchar *name)
-+{
-+ ibus_m17n_config_set_boolean (dialog->config,
-+ dialog->section,
-+ name,
-+ gtk_toggle_button_get_active (togglebutton));
-+}
-+
- static gboolean
- save_m17n_options (SetupDialog *dialog)
- {
-@@ -486,6 +507,9 @@ setup_dialog_save_config (SetupDialog *dialog)
- save_choice (dialog,
- GTK_COMBO_BOX(dialog->combobox_orientation),
- "lookup_table_orientation");
-+ save_toggle (dialog,
-+ GTK_TOGGLE_BUTTON(dialog->checkbutton_virtkbd),
-+ "virtual_keyboard_enabled");
- save_m17n_options (dialog);
- }
-
-@@ -528,6 +552,8 @@ setup_dialog_new (IBusConfig *config,
- dialog->combobox_underline = GTK_WIDGET(object);
- object = gtk_builder_get_object (builder, "combobox_orientation");
- dialog->combobox_orientation = GTK_WIDGET(object);
-+ object = gtk_builder_get_object (builder, "checkbutton_virtkbd");
-+ dialog->checkbutton_virtkbd = GTK_WIDGET(object);
- object = gtk_builder_get_object (builder, "treeview_mim_config");
- dialog->treeview = GTK_WIDGET(object);
-
-diff --git a/src/virtkbd.c b/src/virtkbd.c
-new file mode 100644
-index 0000000..9baf971
---- /dev/null
-+++ b/src/virtkbd.c
-@@ -0,0 +1,233 @@
-+/* vim:set et sts=4: */
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#ifdef HAVE_EEKBOARD
-+#include <eekboard/eekboard-client.h>
-+#endif /* HAVE_EEKBOARD */
-+
-+#include "virtkbd.h"
-+
-+struct _IBusM17NVirtualKeyboard {
-+ GObject parent;
-+ IBusEngine *engine;
-+ gchar *keyboard_type;
-+ GSList *keyboards;
-+
-+#ifdef HAVE_EEKBOARD
-+ EekboardClient *client;
-+ EekboardContext *context;
-+#endif /* HAVE_EEKBOARD */
-+};
-+
-+struct _IBusM17NVirtualKeyboardClass {
-+ GObjectClass parent_class;
-+};
-+
-+typedef struct _IBusM17NVirtualKeyboardClass IBusM17NVirtualKeyboardClass;
-+
-+#ifdef HAVE_EEKBOARD
-+#define _EEK_INIT() eek_init ()
-+#else
-+#define _EEK_INIT()
-+#endif /* HAVE_EEKBOARD */
-+
-+G_DEFINE_TYPE_WITH_CODE (IBusM17NVirtualKeyboard, ibus_m17n_virtual_keyboard,
-+ G_TYPE_OBJECT, _EEK_INIT());
-+
-+static void
-+ibus_m17n_virtual_keyboard_dispose (GObject *object)
-+{
-+ IBusM17NVirtualKeyboard *virtkbd = IBUS_M17N_VIRTUAL_KEYBOARD (object);
-+
-+ if (virtkbd->engine) {
-+ g_object_unref (virtkbd->engine);
-+ virtkbd->engine = NULL;
-+ }
-+ if (virtkbd->keyboards) {
-+ GSList *next = virtkbd->keyboards->next;
-+ /* virtkbd->keyboards is a ring; break it before free */
-+ virtkbd->keyboards->next = NULL;
-+ g_slist_free (next);
-+ }
-+
-+#ifdef HAVE_EEKBOARD
-+ if (virtkbd->context) {
-+ g_object_unref (virtkbd->context);
-+ virtkbd->context = NULL;
-+ }
-+ if (virtkbd->client) {
-+ g_object_unref (virtkbd->client);
-+ virtkbd->client = NULL;
-+ }
-+#endif /* HAVE_EEKBOARD */
-+
-+ G_OBJECT_CLASS (ibus_m17n_virtual_keyboard_parent_class)->dispose (object);
-+}
-+
-+static void
-+ibus_m17n_virtual_keyboard_finalize (GObject *object)
-+{
-+ IBusM17NVirtualKeyboard *virtkbd = IBUS_M17N_VIRTUAL_KEYBOARD (object);
-+
-+ g_free (virtkbd->keyboard_type);
-+
-+ G_OBJECT_CLASS (ibus_m17n_virtual_keyboard_parent_class)->finalize (object);
-+}
-+
-+static void
-+ibus_m17n_virtual_keyboard_class_init (IBusM17NVirtualKeyboardClass *klass)
-+{
-+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-+ gobject_class->dispose = ibus_m17n_virtual_keyboard_dispose;
-+ gobject_class->finalize = ibus_m17n_virtual_keyboard_finalize;
-+}
-+
-+static void
-+ibus_m17n_virtual_keyboard_init (IBusM17NVirtualKeyboard *self)
-+{
-+}
-+
-+#ifdef HAVE_EEKBOARD
-+static void
-+destroyed_cb (EekboardClient *client,
-+ IBusM17NVirtualKeyboard *virtkbd)
-+{
-+ if (virtkbd->context) {
-+ g_object_unref (virtkbd->context);
-+ virtkbd->context = NULL;
-+ }
-+ if (virtkbd->client) {
-+ g_object_unref (virtkbd->client);
-+ virtkbd->client = NULL;
-+ }
-+}
-+
-+static void
-+key_pressed_cb (EekboardContext *context,
-+ gchar *keyname,
-+ EekSymbol *symbol,
-+ guint modifiers,
-+ IBusM17NVirtualKeyboard *virtkbd)
-+{
-+ if (EEK_IS_TEXT (symbol)) {
-+ const gchar *string;
-+ IBusText *text;
-+
-+ string = eek_text_get_text (EEK_TEXT (symbol));
-+ text = ibus_text_new_from_static_string (string);
-+ ibus_engine_commit_text (virtkbd->engine, text);
-+ } else if (EEK_IS_KEYSYM (symbol)) {
-+ guint keyval = eek_keysym_get_xkeysym (EEK_KEYSYM (symbol));
-+ ibus_engine_forward_key_event (virtkbd->engine,
-+ keyval,
-+ 0,
-+ modifiers);
-+ ibus_engine_forward_key_event (virtkbd->engine,
-+ keyval,
-+ 0,
-+ modifiers | IBUS_RELEASE_MASK);
-+ } else if (g_strcmp0 (eek_symbol_get_name (symbol),
-+ "cycle-keyboard") == 0) {
-+ virtkbd->keyboards = g_slist_next (virtkbd->keyboards);
-+ eekboard_context_set_keyboard (virtkbd->context,
-+ GPOINTER_TO_UINT (virtkbd->keyboards->data),
-+ NULL);
-+ }
-+}
-+
-+static void
-+init_client (IBusM17NVirtualKeyboard *virtkbd)
-+{
-+ GDBusConnection *connection;
-+ GError *error;
-+ gchar **strv, **p;
-+
-+ error = NULL;
-+ connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
-+ if (connection == NULL) {
-+ g_printerr ("Can't connect to the session bus: %s\n",
-+ error->message);
-+ return;
-+ }
-+
-+ virtkbd->client = eekboard_client_new (connection, NULL);
-+ g_object_unref (connection);
-+ g_signal_connect (virtkbd->client, "destroyed",
-+ G_CALLBACK (destroyed_cb), virtkbd);
-+
-+ virtkbd->context = eekboard_client_create_context (virtkbd->client,
-+ "ibus-m17n",
-+ NULL);
-+ g_signal_connect (virtkbd->context, "key-pressed",
-+ G_CALLBACK (key_pressed_cb), virtkbd);
-+
-+ strv = g_strsplit (virtkbd->keyboard_type, ",", -1);
-+ for (p = strv; *p; p++) {
-+ guint keyboard;
-+
-+ keyboard = eekboard_context_add_keyboard (virtkbd->context,
-+ g_strstrip (*p),
-+ NULL);
-+ virtkbd->keyboards = g_slist_prepend (virtkbd->keyboards,
-+ GUINT_TO_POINTER (keyboard));
-+ }
-+ virtkbd->keyboards = g_slist_reverse (virtkbd->keyboards);
-+ g_strfreev (strv);
-+
-+ /* make a cycle */
-+ g_slist_last (virtkbd->keyboards)->next = virtkbd->keyboards;
-+
-+ eekboard_context_set_keyboard (virtkbd->context,
-+ GPOINTER_TO_UINT (virtkbd->keyboards->data),
-+ NULL);
-+}
-+#endif /* HAVE_EEKBOARD */
-+
-+void
-+ibus_m17n_virtual_keyboard_toggle_display (IBusM17NVirtualKeyboard *virtkbd)
-+{
-+#ifdef HAVE_EEKBOARD
-+ if (virtkbd->client == NULL)
-+ ibus_m17n_virtual_keyboard_enable (virtkbd);
-+
-+ if (virtkbd->client != NULL) {
-+ if (eekboard_context_is_visible (virtkbd->context))
-+ eekboard_context_hide_keyboard (virtkbd->context, NULL);
-+ else
-+ eekboard_context_show_keyboard (virtkbd->context, NULL);
-+ }
-+#endif /* HAVE_EEKBOARD */
-+}
-+
-+void
-+ibus_m17n_virtual_keyboard_enable (IBusM17NVirtualKeyboard *virtkbd)
-+{
-+#ifdef HAVE_EEKBOARD
-+ if (virtkbd->client == NULL)
-+ init_client (virtkbd);
-+
-+ if (virtkbd->client != NULL)
-+ eekboard_client_push_context (virtkbd->client, virtkbd->context, NULL);
-+#endif /* HAVE_EEKBOARD */
-+}
-+
-+void
-+ibus_m17n_virtual_keyboard_disable (IBusM17NVirtualKeyboard *virtkbd)
-+{
-+#ifdef HAVE_EEKBOARD
-+ if (virtkbd->client != NULL)
-+ eekboard_client_pop_context (virtkbd->client, NULL);
-+#endif /* HAVE_EEKBOARD */
-+}
-+
-+IBusM17NVirtualKeyboard *
-+ibus_m17n_virtual_keyboard_new (IBusEngine *engine,
-+ const gchar *keyboard_type)
-+{
-+ IBusM17NVirtualKeyboard *virtkbd = g_object_new (IBUS_M17N_TYPE_VIRTUAL_KEYBOARD, NULL);
-+ virtkbd->engine = g_object_ref (engine);
-+ virtkbd->keyboard_type = g_strdup (keyboard_type);
-+ return virtkbd;
-+}
-diff --git a/src/virtkbd.h b/src/virtkbd.h
-new file mode 100644
-index 0000000..c28953a
---- /dev/null
-+++ b/src/virtkbd.h
-@@ -0,0 +1,31 @@
-+#ifndef __VIRTKBD_H__
-+#define __VIRTKBD_H__ 1
-+
-+#include <ibus.h>
-+
-+G_BEGIN_DECLS
-+
-+#define IBUS_M17N_TYPE_VIRTUAL_KEYBOARD (ibus_m17n_virtual_keyboard_get_type())
-+#define IBUS_M17N_VIRTUAL_KEYBOARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), IBUS_M17N_TYPE_VIRTUAL_KEYBOARD, IBusM17NVirtualKeyboard))
-+#define IBUS_M17N_VIRTUAL_KEYBOARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), IBUS_M17N_TYPE_VIRTUAL_KEYBOARD, IBusM17NVirtualKeyboardClass))
-+#define IBUS_M17N_IS_VIRTUAL_KEYBOARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IBUS_M17N_TYPE_VIRTUAL_KEYBOARD))
-+#define IBUS_M17N_IS_VIRTUAL_KEYBOARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), IBUS_M17N_TYPE_VIRTUAL_KEYBOARD))
-+#define IBUS_M17N_VIRTUAL_KEYBOARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), IBUS_M17N_TYPE_VIRTUAL_KEYBOARD, IBusM17NVirtualKeyboardClass))
-+
-+typedef struct _IBusM17NVirtualKeyboard IBusM17NVirtualKeyboard;
-+
-+GType ibus_m17n_virtual_keyboard_get_type
-+ (void);
-+IBusM17NVirtualKeyboard *ibus_m17n_virtual_keyboard_new
-+ (IBusEngine *engine,
-+ const gchar *keyboard_type);
-+void ibus_m17n_virtual_keyboard_toggle_display
-+ (IBusM17NVirtualKeyboard *virtkbd);
-+void ibus_m17n_virtual_keyboard_enable
-+ (IBusM17NVirtualKeyboard *virtkbd);
-+void ibus_m17n_virtual_keyboard_disable
-+ (IBusM17NVirtualKeyboard *virtkbd);
-+
-+G_END_DECLS
-+
-+#endif /* __VIRTKBD_H__ */
---
-1.7.6.2
-
diff --git a/ibus-m17n-xkb-options.patch b/ibus-m17n-xkb-options.patch
index b8f5dd7..a4179ed 100644
--- a/ibus-m17n-xkb-options.patch
+++ b/ibus-m17n-xkb-options.patch
@@ -1,7 +1,7 @@
-From 0cc2abaab50e6668e525da093ef12ed0277d5c21 Mon Sep 17 00:00:00 2001
+From ab9d608fdb6054b4b135f891ad5fa1fa7ce27c7b Mon Sep 17 00:00:00 2001
From: Daiki Ueno <ueno(a)unixuser.org>
Date: Mon, 8 Aug 2011 09:59:28 +0900
-Subject: [PATCH 3/6] Set XKB layout option via default.xml.
+Subject: [PATCH 1/4] Set XKB layout option via default.xml.
---
src/default.xml.in.in | 9 +++++++++
@@ -10,10 +10,10 @@ Subject: [PATCH 3/6] Set XKB layout option via default.xml.
3 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/src/default.xml.in.in b/src/default.xml.in.in
-index dc93fd3..785ab05 100644
+index 9f5a01e..beae494 100644
--- a/src/default.xml.in.in
+++ b/src/default.xml.in.in
-@@ -157,6 +157,15 @@
+@@ -158,6 +158,15 @@
<name>m17n:si:samanala</name>
<rank>0</rank>
</engine>
@@ -30,39 +30,39 @@ index dc93fd3..785ab05 100644
<engine>
<name>m17n:zh:cangjie</name>
diff --git a/src/m17nutil.c b/src/m17nutil.c
-index b06f71d..201c8b4 100644
+index 51026b2..0b46531 100644
--- a/src/m17nutil.c
+++ b/src/m17nutil.c
-@@ -15,7 +15,8 @@ static MConverter *utf8_converter = NULL;
-
- typedef enum {
+@@ -17,7 +17,8 @@ typedef enum {
ENGINE_CONFIG_RANK_MASK = 1 << 0,
-- ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK = 1 << 1
-+ ENGINE_CONFIG_LAYOUT_MASK = 1 << 1,
-+ ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK = 1 << 2
+ ENGINE_CONFIG_SYMBOL_MASK = 1 << 1,
+ ENGINE_CONFIG_LONGNAME_MASK = 1 << 2,
+- ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK = 1 << 3
++ ENGINE_CONFIG_LAYOUT_MASK = 1 << 3,
++ ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK = 1 << 4
} EngineConfigMask;
struct _EngineConfigNode {
-@@ -130,7 +131,7 @@ ibus_m17n_engine_new (MSymbol lang,
+@@ -133,7 +134,7 @@ ibus_m17n_engine_new (MSymbol lang,
"language", msymbol_name (lang),
"license", "GPL",
"icon", engine_icon ? engine_icon : "",
- "layout", "us",
+ "layout", config->layout ? config->layout : "us",
"rank", config->rank,
- NULL);
- #else
-@@ -272,6 +273,8 @@ ibus_m17n_get_engine_config (const gchar *engine_name)
- if (g_pattern_match_simple (cnode->name, engine_name)) {
- if (cnode->mask & ENGINE_CONFIG_RANK_MASK)
- config->rank = cnode->config.rank;
-+ if (cnode->mask & ENGINE_CONFIG_LAYOUT_MASK)
-+ config->layout = cnode->config.layout;
+ "symbol", config->symbol ? config->symbol : "",
+ "setup", engine_setup,
+@@ -275,6 +276,8 @@ ibus_m17n_get_engine_config (const gchar *engine_name)
+ config->longname = cnode->config.longname;
if (cnode->mask & ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK)
config->preedit_highlight = cnode->config.preedit_highlight;
++ if (cnode->mask & ENGINE_CONFIG_LAYOUT_MASK)
++ config->layout = cnode->config.layout;
}
-@@ -304,6 +307,12 @@ ibus_m17n_engine_config_parse_xml_node (EngineConfigNode *cnode,
- cnode->mask |= ENGINE_CONFIG_RANK_MASK;
+ }
+ return config;
+@@ -315,6 +318,12 @@ ibus_m17n_engine_config_parse_xml_node (EngineConfigNode *cnode,
+ cnode->mask |= ENGINE_CONFIG_LONGNAME_MASK;
continue;
}
+ if (g_strcmp0 (sub_node->name , "layout") == 0) {
@@ -75,12 +75,12 @@ index b06f71d..201c8b4 100644
if (g_ascii_strcasecmp ("TRUE", sub_node->text) == 0)
cnode->config.preedit_highlight = TRUE;
diff --git a/src/m17nutil.h b/src/m17nutil.h
-index 313e7bc..c7b283e 100644
+index d790cf8..93faad4 100644
--- a/src/m17nutil.h
+++ b/src/m17nutil.h
-@@ -14,6 +14,9 @@ struct _IBusM17NEngineConfig {
- /* engine rank */
- gint rank;
+@@ -20,6 +20,9 @@ struct _IBusM17NEngineConfig {
+ /* overridding longname shown on panel */
+ gchar *longname;
+ /* keyboard layout */
+ gchar *layout;
@@ -89,5 +89,5 @@ index 313e7bc..c7b283e 100644
gboolean preedit_highlight;
};
--
-1.7.6.2
+1.7.7.6
diff --git a/ibus-m17n.spec b/ibus-m17n.spec
index d29791a..8f8302f 100644
--- a/ibus-m17n.spec
+++ b/ibus-m17n.spec
@@ -1,45 +1,36 @@
-%if (0%{?fedora} > 14)
+%if (0%{?fedora} > 14 || 0%{?rhel} > 6)
%global require_ibus_version 1.3.99.20110817
-%global require_eekboard_version 1.0.3
+%global require_eekboard_version 1.0.6
%else
%global require_ibus_version 1.3.0
%global require_eekboard_version 0.0.6
%endif
%global have_bridge_hotkey 0
-%if (0%{?fedora} > 14)
+%if (0%{?fedora} > 14 || 0%{?rhel} > 6)
%global _with_gtk --with-gtk=3.0
%else
%global _with_gtk --with-gtk=2.0
%endif
-%if %have_bridge_hotkey
-%global _with_hotkeys --with-hotkeys
-%endif
-
-%if (0%{?fedora} > 16)
+%if (0%{?fedora} > 16 || 0%{?rhel} > 6)
%global _enable_eekboard --enable-eekboard
%endif
Name: ibus-m17n
-Version: 1.3.3
-Release: 7%{?dist}
+Version: 1.3.4
+Release: 1%{?dist}
Summary: The M17N engine for IBus platform
License: GPLv2+
Group: System Environment/Libraries
URL: http://code.google.com/p/ibus/
Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
-#Patch0: ibus-m17n-HEAD.patch
-Patch1: ibus-m17n-default-xml-override.patch
-Patch2: ibus-m17n-setup-refactor.patch
-Patch3: ibus-m17n-xkb-options.patch
-Patch4: ibus-m17n-xx-icon-symbol.patch
-Patch5: ibus-m17n-virtkbd.patch
-Patch6: ibus-m17n-iok.patch
-Patch7: ibus-m17n-hide-title-status.patch
-Patch8: ibus-m17n-blacklist-engines.patch
-Patch9: ibus-m17n-custom-setup-element.patch
+# Patch0: ibus-m17n-HEAD.patch
+Patch1: ibus-m17n-xkb-options.patch
+Patch2: ibus-m17n-hide-title-status.patch
+Patch3: ibus-m17n-blacklist-engines.patch
+Patch4: ibus-m17n-virtkbd.patch
# The following BR is for autogen and not necessary when packging
# released tarballs.
@@ -48,12 +39,11 @@ BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: gnome-common
BuildRequires: m17n-lib-devel
-%if (0%{?fedora} > 14)
+%if (0%{?fedora} > 14 || 0%{?rhel} > 6)
BuildRequires: gtk3-devel
%else
BuildRequires: gtk2-devel
%endif
-BuildRequires: libxklavier-devel
BuildRequires: ibus-devel >= %{require_ibus_version}
BuildRequires: eekboard-devel >= %{require_eekboard_version}
@@ -68,18 +58,13 @@ the input table maps from m17n-db.
%prep
%setup -q
+
#patch0 -p1 -b .HEAD
-%patch1 -p1 -b .default-xml-override
-%patch2 -p1 -b .setup-refactor
-%patch3 -p1 -b .xkb-options
-# do not apply patch to m4/.gitignore
-sed -i 's!^[-+][-+][-+] .*/m4/\.gitignore!#\0!' %PATCH4
-%patch4 -p1 -b .xx-icon-symbol
-%patch5 -p1 -b .virtkbd
-%patch6 -p1 -b .iok
-%patch7 -p1 -b .hide-title-status
-%patch8 -p1 -b .blacklist-engines
-%patch9 -p1 -b .custom-setup-element
+%patch1 -p1 -b .xkb-options
+%patch2 -p1 -b .hide-title-status
+%patch3 -p1 -b .blacklist-engines
+%patch4 -p1 -b .virtkbd
+
NOCONFIGURE=1 ./autogen.sh
%build
@@ -93,7 +78,6 @@ make DESTDIR=${RPM_BUILD_ROOT} install
%find_lang %{name}
%files -f %{name}.lang
-%defattr(-,root,root,-)
%doc AUTHORS COPYING README
%{_datadir}/ibus-m17n
%{_libexecdir}/ibus-engine-m17n
@@ -101,6 +85,24 @@ make DESTDIR=${RPM_BUILD_ROOT} install
%{_datadir}/ibus/component/*
%changelog
+* Fri May 11 2012 Daiki Ueno <dueno(a)redhat.com> - 1.3.4-1
+- New upstream release.
+
+* Tue Apr 3 2012 Daiki Ueno <dueno(a)redhat.com> - 1.3.3-12
+- Check %%{rhel} version in addition to %%{fedora}
+- Remove unnecessary %%defattr(-,root,root,-) from %%files
+- Drop libxklavier-devel from BR
+
+* Fri Mar 30 2012 Daiki Ueno <dueno(a)redhat.com> - 1.3.3-11
+- Revive m17n:zh:pinyin with a different label ("hanyu pinyin (m17n)")
+- Rebase ibus-m17n-virtkbd.patch
+
+* Tue Mar 6 2012 Takao Fujiwara <tfujiwar(a)redhat.com> - 1.3.3-9
+- Rebuild for ibus 1.4.99.20120304
+
+* Fri Jan 13 2012 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> - 1.3.3-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
* Tue Dec 6 2011 Daiki Ueno <dueno(a)redhat.com> - 1.3.3-7
- Add ibus-m17n-custom-setup-element.patch
- Fix bug 760427 - engine preferences button in ibus-setup doesn't
diff --git a/sources b/sources
index 8af2da5..b371e33 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-8fa050df5b2d25095d0e2df51946b0de ibus-m17n-1.3.3.tar.gz
+6f644b73c5943e3c7fb2e02b9e259804 ibus-m17n-1.3.4.tar.gz
11 years, 11 months
[Fedora-i18n-bugs] [ibus-m17n/f17] Update to 1.3.4-1.
by Daiki Ueno
commit ad64f2e42d665db09dde53df2c100f53927ff47d
Author: Daiki Ueno <ueno(a)unixuser.org>
Date: Fri May 11 15:45:56 2012 +0900
Update to 1.3.4-1.
.gitignore | 1 +
ibus-m17n-HEAD.patch | 2860 -------------------------------------
ibus-m17n-hide-title-status.patch | 19 +-
ibus-m17n-virtkbd.patch | 83 +-
ibus-m17n.spec | 11 +-
sources | 2 +-
6 files changed, 57 insertions(+), 2919 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 59fba23..4ccc028 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@ ibus-m17n-1.3.0.tar.gz
/ibus-m17n-1.3.1.tar.gz
/ibus-m17n-1.3.2.tar.gz
/ibus-m17n-1.3.3.tar.gz
+/ibus-m17n-1.3.4.tar.gz
diff --git a/ibus-m17n-hide-title-status.patch b/ibus-m17n-hide-title-status.patch
index 7d24576..6326eba 100644
--- a/ibus-m17n-hide-title-status.patch
+++ b/ibus-m17n-hide-title-status.patch
@@ -7,19 +7,19 @@ Subject: [PATCH 2/4] Hide status from the panel if status == title.
src/engine.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
-diff --git a/src/engine.c b/src/engine.c
-index 4c7411c..efbce66 100644
---- a/src/engine.c
-+++ b/src/engine.c
-@@ -35,6 +35,7 @@ struct _IBusM17NEngineClass {
- gint preedit_underline;
+Index: ibus-m17n-1.3.4/src/engine.c
+===================================================================
+--- ibus-m17n-1.3.4.orig/src/engine.c
++++ ibus-m17n-1.3.4/src/engine.c
+@@ -36,6 +36,7 @@ struct _IBusM17NEngineClass {
+ IBusPreeditFocusMode preedit_focus_mode;
gint lookup_table_orientation;
+ gchar *title;
MInputMethod *im;
};
-@@ -244,6 +245,10 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass)
+@@ -245,6 +246,10 @@ ibus_m17n_engine_class_init (IBusM17NEng
}
engine_name = g_strdup_printf ("m17n:%s:%s", lang, name);
klass->config_section = g_strdup_printf ("engine/M17N/%s/%s", lang, name);
@@ -30,7 +30,7 @@ index 4c7411c..efbce66 100644
g_free (lang);
g_free (name);
-@@ -895,8 +900,9 @@ ibus_m17n_engine_callback (MInputContext *context,
+@@ -903,8 +908,9 @@ ibus_m17n_engine_callback (MInputContext
else if (command == Minput_status_draw) {
gchar *status;
status = ibus_m17n_mtext_to_utf8 (m17n->context->status);
@@ -41,6 +41,3 @@ index 4c7411c..efbce66 100644
IBusText *text;
text = ibus_text_new_from_string (status);
ibus_property_set_label (m17n->status_prop, text);
---
-1.7.7.6
-
diff --git a/ibus-m17n-virtkbd.patch b/ibus-m17n-virtkbd.patch
index 8c02494..1a88d2a 100644
--- a/ibus-m17n-virtkbd.patch
+++ b/ibus-m17n-virtkbd.patch
@@ -12,10 +12,10 @@ Subject: [PATCH 4/4] Add virtual keyboard support.
src/m17nutil.h | 3 +
6 files changed, 434 insertions(+), 1 deletions(-)
-diff --git a/configure.ac b/configure.ac
-index be9728d..3daf917 100644
---- a/configure.ac
-+++ b/configure.ac
+Index: ibus-m17n-1.3.4/configure.ac
+===================================================================
+--- ibus-m17n-1.3.4.orig/configure.ac
++++ ibus-m17n-1.3.4/configure.ac
@@ -88,6 +88,23 @@ fi
AM_CONDITIONAL([HAVE_GTK],[test x$with_gtk != xno])
@@ -40,10 +40,10 @@ index be9728d..3daf917 100644
# check if minput_list, which is available in m17n-lib 1.6.2+ (CVS)
save_CFLAGS="$CFLAGS"
save_LIBS="$LIBS"
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 39d6523..93e7dfd 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
+Index: ibus-m17n-1.3.4/src/Makefile.am
+===================================================================
+--- ibus-m17n-1.3.4.orig/src/Makefile.am
++++ ibus-m17n-1.3.4/src/Makefile.am
@@ -65,10 +65,15 @@ ibus_engine_m17n_SOURCES = \
engine.c \
engine.h \
@@ -60,10 +60,10 @@ index 39d6523..93e7dfd 100644
$(NULL)
if HAVE_GTK
-diff --git a/src/default.xml.in.in b/src/default.xml.in.in
-index fda4f30..cbc29af 100644
---- a/src/default.xml.in.in
-+++ b/src/default.xml.in.in
+Index: ibus-m17n-1.3.4/src/default.xml.in.in
+===================================================================
+--- ibus-m17n-1.3.4.orig/src/default.xml.in.in
++++ ibus-m17n-1.3.4/src/default.xml.in.in
@@ -11,6 +11,7 @@
<rank>0</rank>
<preedit-highlight>FALSE</preedit-highlight>
@@ -187,10 +187,10 @@ index fda4f30..cbc29af 100644
+ <virtual-keyboard>te-inscript,us</virtual-keyboard>
+ </engine>
</engines>
-diff --git a/src/engine.c b/src/engine.c
-index efbce66..cd18e76 100644
---- a/src/engine.c
-+++ b/src/engine.c
+Index: ibus-m17n-1.3.4/src/engine.c
+===================================================================
+--- ibus-m17n-1.3.4.orig/src/engine.c
++++ ibus-m17n-1.3.4/src/engine.c
@@ -7,6 +7,9 @@
#include <m17n.h>
#include <string.h>
@@ -214,9 +214,9 @@ index efbce66..cd18e76 100644
IBusPropList *prop_list;
};
-@@ -34,9 +39,16 @@ struct _IBusM17NEngineClass {
- guint preedit_background;
+@@ -35,9 +40,16 @@ struct _IBusM17NEngineClass {
gint preedit_underline;
+ IBusPreeditFocusMode preedit_focus_mode;
gint lookup_table_orientation;
+ gchar *virtual_keyboard;
@@ -231,7 +231,7 @@ index efbce66..cd18e76 100644
};
/* functions prototype */
-@@ -100,13 +112,184 @@ static IBusEngineClass *parent_class = NULL;
+@@ -101,13 +113,184 @@ static IBusEngineClass *parent_class = N
static IBusConfig *config = NULL;
@@ -416,15 +416,15 @@ index efbce66..cd18e76 100644
}
static gboolean
-@@ -264,6 +447,7 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass)
- INVALID_COLOR;
- klass->preedit_underline = IBUS_ATTR_UNDERLINE_NONE;
+@@ -268,6 +451,7 @@ ibus_m17n_engine_class_init (IBusM17NEng
+ IBUS_ENGINE_PREEDIT_COMMIT :
+ IBUS_ENGINE_PREEDIT_CLEAR;
klass->lookup_table_orientation = IBUS_ORIENTATION_SYSTEM;
+ klass->virtual_keyboard = engine_config->virtual_keyboard;
ibus_m17n_engine_config_free (engine_config);
-@@ -313,6 +497,11 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass)
+@@ -317,6 +501,11 @@ ibus_m17n_engine_class_init (IBusM17NEng
klass);
klass->im = NULL;
@@ -436,7 +436,7 @@ index efbce66..cd18e76 100644
}
static void
-@@ -350,6 +539,7 @@ ibus_m17n_engine_init (IBusM17NEngine *m17n)
+@@ -354,6 +543,7 @@ ibus_m17n_engine_init (IBusM17NEngine *m
{
IBusText* label;
IBusText* tooltip;
@@ -444,7 +444,7 @@ index efbce66..cd18e76 100644
m17n->prop_list = ibus_prop_list_new ();
g_object_ref_sink (m17n->prop_list);
-@@ -382,6 +572,36 @@ ibus_m17n_engine_init (IBusM17NEngine *m17n)
+@@ -386,6 +576,36 @@ ibus_m17n_engine_init (IBusM17NEngine *m
ibus_prop_list_append (m17n->prop_list, m17n->setup_prop);
#endif /* HAVE_SETUP */
@@ -481,7 +481,7 @@ index efbce66..cd18e76 100644
m17n->table = ibus_lookup_table_new (9, 0, TRUE, TRUE);
g_object_ref_sink (m17n->table);
m17n->context = NULL;
-@@ -467,6 +687,11 @@ ibus_m17n_engine_destroy (IBusM17NEngine *m17n)
+@@ -471,6 +691,11 @@ ibus_m17n_engine_destroy (IBusM17NEngine
}
#endif /* HAVE_SETUP */
@@ -493,7 +493,7 @@ index efbce66..cd18e76 100644
if (m17n->table) {
g_object_unref (m17n->table);
m17n->table = NULL;
-@@ -708,6 +933,14 @@ ibus_m17n_engine_enable (IBusEngine *engine)
+@@ -716,6 +941,14 @@ ibus_m17n_engine_enable (IBusEngine *eng
/* Issue a dummy ibus_engine_get_surrounding_text() call to tell
input context that we will use surrounding-text. */
ibus_engine_get_surrounding_text (engine, NULL, NULL, NULL);
@@ -508,7 +508,7 @@ index efbce66..cd18e76 100644
}
static void
-@@ -717,6 +950,14 @@ ibus_m17n_engine_disable (IBusEngine *engine)
+@@ -725,6 +958,14 @@ ibus_m17n_engine_disable (IBusEngine *en
ibus_m17n_engine_focus_out (engine);
parent_class->disable (engine);
@@ -523,7 +523,7 @@ index efbce66..cd18e76 100644
}
static void
-@@ -764,6 +1005,7 @@ ibus_m17n_engine_property_activate (IBusEngine *engine,
+@@ -772,6 +1013,7 @@ ibus_m17n_engine_property_activate (IBus
guint prop_state)
{
IBusM17NEngine *m17n = (IBusM17NEngine *) engine;
@@ -531,7 +531,7 @@ index efbce66..cd18e76 100644
#ifdef HAVE_SETUP
if (g_strcmp0 (prop_name, "setup") == 0) {
-@@ -779,6 +1021,53 @@ ibus_m17n_engine_property_activate (IBusEngine *engine,
+@@ -787,6 +1029,53 @@ ibus_m17n_engine_property_activate (IBus
}
#endif /* HAVE_SETUP */
@@ -585,10 +585,10 @@ index efbce66..cd18e76 100644
parent_class->property_activate (engine, prop_name, prop_state);
}
-diff --git a/src/m17nutil.c b/src/m17nutil.c
-index 0b46531..adf7044 100644
---- a/src/m17nutil.c
-+++ b/src/m17nutil.c
+Index: ibus-m17n-1.3.4/src/m17nutil.c
+===================================================================
+--- ibus-m17n-1.3.4.orig/src/m17nutil.c
++++ ibus-m17n-1.3.4/src/m17nutil.c
@@ -18,7 +18,8 @@ typedef enum {
ENGINE_CONFIG_SYMBOL_MASK = 1 << 1,
ENGINE_CONFIG_LONGNAME_MASK = 1 << 2,
@@ -599,7 +599,7 @@ index 0b46531..adf7044 100644
} EngineConfigMask;
struct _EngineConfigNode {
-@@ -276,6 +277,8 @@ ibus_m17n_get_engine_config (const gchar *engine_name)
+@@ -276,6 +277,8 @@ ibus_m17n_get_engine_config (const gchar
config->longname = cnode->config.longname;
if (cnode->mask & ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK)
config->preedit_highlight = cnode->config.preedit_highlight;
@@ -608,7 +608,7 @@ index 0b46531..adf7044 100644
if (cnode->mask & ENGINE_CONFIG_LAYOUT_MASK)
config->layout = cnode->config.layout;
}
-@@ -333,6 +336,11 @@ ibus_m17n_engine_config_parse_xml_node (EngineConfigNode *cnode,
+@@ -333,6 +336,11 @@ ibus_m17n_engine_config_parse_xml_node (
cnode->mask |= ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK;
continue;
}
@@ -620,10 +620,10 @@ index 0b46531..adf7044 100644
g_warning ("<engine> element contains invalid element <%s>",
sub_node->name);
}
-diff --git a/src/m17nutil.h b/src/m17nutil.h
-index 93faad4..3c2944a 100644
---- a/src/m17nutil.h
-+++ b/src/m17nutil.h
+Index: ibus-m17n-1.3.4/src/m17nutil.h
+===================================================================
+--- ibus-m17n-1.3.4.orig/src/m17nutil.h
++++ ibus-m17n-1.3.4/src/m17nutil.h
@@ -25,6 +25,9 @@ struct _IBusM17NEngineConfig {
/* whether to highlight preedit */
@@ -634,6 +634,3 @@ index 93faad4..3c2944a 100644
};
typedef struct _IBusM17NEngineConfig IBusM17NEngineConfig;
---
-1.7.7.6
-
diff --git a/ibus-m17n.spec b/ibus-m17n.spec
index b342399..8f8302f 100644
--- a/ibus-m17n.spec
+++ b/ibus-m17n.spec
@@ -18,15 +18,15 @@
%endif
Name: ibus-m17n
-Version: 1.3.3
-Release: 12%{?dist}
+Version: 1.3.4
+Release: 1%{?dist}
Summary: The M17N engine for IBus platform
License: GPLv2+
Group: System Environment/Libraries
URL: http://code.google.com/p/ibus/
Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz
-Patch0: ibus-m17n-HEAD.patch
+# Patch0: ibus-m17n-HEAD.patch
Patch1: ibus-m17n-xkb-options.patch
Patch2: ibus-m17n-hide-title-status.patch
Patch3: ibus-m17n-blacklist-engines.patch
@@ -59,7 +59,7 @@ the input table maps from m17n-db.
%prep
%setup -q
-%patch0 -p1 -b .HEAD
+#patch0 -p1 -b .HEAD
%patch1 -p1 -b .xkb-options
%patch2 -p1 -b .hide-title-status
%patch3 -p1 -b .blacklist-engines
@@ -85,6 +85,9 @@ make DESTDIR=${RPM_BUILD_ROOT} install
%{_datadir}/ibus/component/*
%changelog
+* Fri May 11 2012 Daiki Ueno <dueno(a)redhat.com> - 1.3.4-1
+- New upstream release.
+
* Tue Apr 3 2012 Daiki Ueno <dueno(a)redhat.com> - 1.3.3-12
- Check %%{rhel} version in addition to %%{fedora}
- Remove unnecessary %%defattr(-,root,root,-) from %%files
diff --git a/sources b/sources
index 8af2da5..b371e33 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-8fa050df5b2d25095d0e2df51946b0de ibus-m17n-1.3.3.tar.gz
+6f644b73c5943e3c7fb2e02b9e259804 ibus-m17n-1.3.4.tar.gz
11 years, 11 months