Update to 1.3.4-8
This commit is contained in:
parent
6bcffbeaaa
commit
c0bad35d7d
1928
ibus-m17n-HEAD.patch
Normal file
1928
ibus-m17n-HEAD.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,49 +0,0 @@
|
||||
From 5978feeb0d96d633417318daf29c3d4974e17b2d Mon Sep 17 00:00:00 2001
|
||||
From: Daiki Ueno <ueno@unixuser.org>
|
||||
Date: Tue, 25 Oct 2011 14:26:41 +0900
|
||||
Subject: [PATCH 3/4] Blacklist some engines useless under ibus environment.
|
||||
|
||||
---
|
||||
src/default.xml.in.in | 26 ++++++++++++++++++++++++++
|
||||
1 files changed, 26 insertions(+), 0 deletions(-)
|
||||
|
||||
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 -->
|
||||
+ <engine>
|
||||
+ <name>m17n:*:kbd</name>
|
||||
+ <rank>-1</rank>
|
||||
+ </engine>
|
||||
+ <!-- zh:py is superseded by ibus-pinyin etc -->
|
||||
+ <engine>
|
||||
+ <name>m17n:zh:py</name>
|
||||
+ <rank>-1</rank>
|
||||
+ </engine>
|
||||
+ <!-- ja:anthy is superseded by ibus-anthy -->
|
||||
+ <engine>
|
||||
+ <name>m17n:ja:anthy</name>
|
||||
+ <rank>-1</rank>
|
||||
+ </engine>
|
||||
+ <!-- ko:han2 is superseded by ibus-hangul -->
|
||||
+ <engine>
|
||||
+ <name>m17n:ko:han2</name>
|
||||
+ <rank>-1</rank>
|
||||
+ </engine>
|
||||
+ <!-- ko:romaja is superseded by ibus-hangul -->
|
||||
+ <engine>
|
||||
+ <name>m17n:ko:romaja</name>
|
||||
+ <rank>-1</rank>
|
||||
+ </engine>
|
||||
<!-- Indic engines should be selected by default:
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=640896 -->
|
||||
<engine>
|
||||
--
|
||||
1.7.7.6
|
||||
|
@ -1,113 +0,0 @@
|
||||
From 87ae4c79779f6e543ae5b75a595e2db04bfc7de2 Mon Sep 17 00:00:00 2001
|
||||
From: Daiki Ueno <ueno@unixuser.org>
|
||||
Date: Fri, 28 Sep 2012 11:44:47 +0900
|
||||
Subject: [PATCH] Add a .desktop file for ibus-setup-m17n.
|
||||
|
||||
BUG=https://bugzilla.gnome.org/show_bug.cgi?id=684935
|
||||
|
||||
Review URL: https://codereview.appspot.com/6572062
|
||||
---
|
||||
configure.ac | 1 +
|
||||
po/POTFILES.in | 2 ++
|
||||
po/POTFILES.skip | 1 +
|
||||
src/Makefile.am | 16 ++++++++++++++++
|
||||
src/ibus-setup-m17n.desktop.in.in | 7 +++++++
|
||||
src/setup.c | 5 +++++
|
||||
6 files changed, 32 insertions(+)
|
||||
create mode 100644 po/POTFILES.skip
|
||||
create mode 100644 src/ibus-setup-m17n.desktop.in.in
|
||||
|
||||
Index: ibus-m17n-1.3.4/configure.ac
|
||||
===================================================================
|
||||
--- ibus-m17n-1.3.4.orig/configure.ac
|
||||
+++ ibus-m17n-1.3.4/configure.ac
|
||||
@@ -48,6 +48,7 @@ AM_PROG_CC_C_O
|
||||
AC_PROG_CXX
|
||||
AC_ISC_POSIX
|
||||
AC_HEADER_STDC
|
||||
+IT_PROG_INTLTOOL([0.35.0])
|
||||
AM_PROG_LIBTOOL
|
||||
|
||||
# check ibus
|
||||
Index: ibus-m17n-1.3.4/po/POTFILES.in
|
||||
===================================================================
|
||||
--- ibus-m17n-1.3.4.orig/po/POTFILES.in
|
||||
+++ ibus-m17n-1.3.4/po/POTFILES.in
|
||||
@@ -1,3 +1,5 @@
|
||||
src/engine.c
|
||||
src/m17nutil.c
|
||||
src/main.c
|
||||
+[type: gettext/glade]src/ibus-m17n-preferences.ui
|
||||
+src/ibus-setup-m17n.desktop.in.in
|
||||
Index: ibus-m17n-1.3.4/po/POTFILES.skip
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ ibus-m17n-1.3.4/po/POTFILES.skip
|
||||
@@ -0,0 +1 @@
|
||||
+src/ibus-setup-m17n.desktop.in
|
||||
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
|
||||
@@ -110,6 +110,7 @@ componentdir = @datadir@/ibus/component
|
||||
EXTRA_DIST = \
|
||||
m17n.xml.in.in \
|
||||
default.xml.in \
|
||||
+ $(desktop_in_in_files) \
|
||||
$(NULL)
|
||||
|
||||
DISTCLEANFILES = \
|
||||
@@ -120,6 +121,8 @@ DISTCLEANFILES = \
|
||||
CLEANFILES = \
|
||||
m17n.xml \
|
||||
default.xml \
|
||||
+ $(desktop_DATA) \
|
||||
+ $(desktop_in_files) \
|
||||
$(NULL)
|
||||
|
||||
m17n.xml: m17n.xml.in
|
||||
@@ -138,3 +141,16 @@ SUFFIXES = .xml.in .xml
|
||||
|
||||
test: ibus-engine-m17n
|
||||
$(builddir)/ibus-engine-m17n
|
||||
+
|
||||
+desktop_in_in_files = ibus-setup-m17n.desktop.in.in
|
||||
+desktop_in_files = $(desktop_in_in_files:.in.in=.in)
|
||||
+
|
||||
+$(desktop_in_files): %.desktop.in: %.desktop.in.in Makefile
|
||||
+ $(AM_V_GEN) sed \
|
||||
+ -e "s|\@libexecdir\@|$(libexecdir)|" \
|
||||
+ $< > $@.tmp && mv $@.tmp $@
|
||||
+
|
||||
+desktopdir=$(datadir)/applications
|
||||
+desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
|
||||
+
|
||||
+@INTLTOOL_DESKTOP_RULE@
|
||||
Index: ibus-m17n-1.3.4/src/ibus-setup-m17n.desktop.in.in
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ ibus-m17n-1.3.4/src/ibus-setup-m17n.desktop.in.in
|
||||
@@ -0,0 +1,7 @@
|
||||
+[Desktop Entry]
|
||||
+_Name=IBus M17N Setup
|
||||
+_Comment=Set up IBus M17N engine
|
||||
+Exec=@libexecdir@/ibus-setup-m17n
|
||||
+NoDisplay=true
|
||||
+Type=Application
|
||||
+StartupNotify=true
|
||||
Index: ibus-m17n-1.3.4/src/setup.c
|
||||
===================================================================
|
||||
--- ibus-m17n-1.3.4.orig/src/setup.c
|
||||
+++ ibus-m17n-1.3.4/src/setup.c
|
||||
@@ -611,6 +611,11 @@ main (gint argc, gchar **argv)
|
||||
g_option_context_free (context);
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
+
|
||||
+ if (!opt_name) {
|
||||
+ opt_name = (gchar *) g_getenv ("IBUS_ENGINE_NAME");
|
||||
+ }
|
||||
+
|
||||
if (!opt_name) {
|
||||
fprintf (stderr, "can't determine IBus engine name; use --name\n");
|
||||
exit (1);
|
@ -1,25 +0,0 @@
|
||||
From 9897c12c22619a7cc2a78e81df344c325c690a9e Mon Sep 17 00:00:00 2001
|
||||
From: Daiki Ueno <ueno@unixuser.org>
|
||||
Date: Thu, 2 Aug 2012 17:55:07 +0900
|
||||
Subject: [PATCH] setup: fix storing MText values
|
||||
|
||||
---
|
||||
src/setup.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/setup.c b/src/setup.c
|
||||
index cc5cb09..aa109bf 100644
|
||||
--- a/src/setup.c
|
||||
+++ b/src/setup.c
|
||||
@@ -73,7 +73,7 @@ parse_m17n_value (MPlist *plist, gchar *text)
|
||||
if (mplist_key (plist) == Mtext) {
|
||||
MText *mtext;
|
||||
|
||||
- mtext = mtext_from_data (text, strlen (text), MTEXT_FORMAT_UTF_8);
|
||||
+ mtext = mconv_decode_buffer (Mcoding_utf_8, text, strlen (text));
|
||||
value = mplist ();
|
||||
mplist_add (value, Mtext, mtext);
|
||||
return value;
|
||||
--
|
||||
1.7.11.2
|
||||
|
@ -11,15 +11,15 @@ 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;
|
||||
@@ -38,6 +38,7 @@ struct _IBusM17NEngineClass {
|
||||
gint lookup_table_orientation;
|
||||
gboolean use_us_layout;
|
||||
|
||||
+ gchar *title;
|
||||
MInputMethod *im;
|
||||
};
|
||||
|
||||
@@ -245,6 +246,10 @@ ibus_m17n_engine_class_init (IBusM17NEng
|
||||
@@ -233,6 +234,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: ibus-m17n-1.3.4/src/engine.c
|
||||
g_free (lang);
|
||||
g_free (name);
|
||||
|
||||
@@ -903,8 +908,9 @@ ibus_m17n_engine_callback (MInputContext
|
||||
@@ -924,8 +929,9 @@ ibus_m17n_engine_callback (MInputContext
|
||||
else if (command == Minput_status_draw) {
|
||||
gchar *status;
|
||||
status = ibus_m17n_mtext_to_utf8 (m17n->context->status);
|
||||
|
@ -1,170 +0,0 @@
|
||||
From 3f8feaf9ab19f28f4bb7a121b34a844596a01472 Mon Sep 17 00:00:00 2001
|
||||
From: Daiki Ueno <ueno@unixuser.org>
|
||||
Date: Wed, 26 Sep 2012 10:03:00 +0900
|
||||
Subject: [PATCH] Pass user-supplied CFLAGS to configure.
|
||||
|
||||
Also fix several compiler warnings.
|
||||
|
||||
BUG=none
|
||||
|
||||
Review URL: https://codereview.appspot.com/6564047
|
||||
---
|
||||
autogen.sh | 4 ++--
|
||||
src/engine.c | 22 +++-------------------
|
||||
src/m17nutil.c | 15 +++++++--------
|
||||
src/setup.c | 17 +++++++++--------
|
||||
4 files changed, 21 insertions(+), 37 deletions(-)
|
||||
|
||||
Index: ibus-m17n-1.3.4/autogen.sh
|
||||
===================================================================
|
||||
--- ibus-m17n-1.3.4.orig/autogen.sh
|
||||
+++ ibus-m17n-1.3.4/autogen.sh
|
||||
@@ -18,8 +18,8 @@ which gnome-autogen.sh || {
|
||||
exit 1
|
||||
}
|
||||
|
||||
-export CFLAGS="-g -O0"
|
||||
-export CXXFLAGS="$CFLAGS"
|
||||
+export CFLAGS=${CFLAGS-"-Wall"}
|
||||
+export CXXFLAGS=${CXXFLAGS-"$CFLAGS"}
|
||||
|
||||
ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I m4"
|
||||
REQUIRED_AUTOMAKE_VERSION=1.10
|
||||
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
|
||||
@@ -77,14 +77,6 @@ static void ibus_m17n_engine_focus_out
|
||||
static void ibus_m17n_engine_reset (IBusEngine *engine);
|
||||
static void ibus_m17n_engine_enable (IBusEngine *engine);
|
||||
static void ibus_m17n_engine_disable (IBusEngine *engine);
|
||||
-static void ibus_engine_set_cursor_location (IBusEngine *engine,
|
||||
- gint x,
|
||||
- gint y,
|
||||
- gint w,
|
||||
- gint h);
|
||||
-static void ibus_m17n_engine_set_capabilities
|
||||
- (IBusEngine *engine,
|
||||
- guint caps);
|
||||
static void ibus_m17n_engine_page_up (IBusEngine *engine);
|
||||
static void ibus_m17n_engine_page_down (IBusEngine *engine);
|
||||
static void ibus_m17n_engine_cursor_up (IBusEngine *engine);
|
||||
@@ -93,12 +85,6 @@ static void ibus_m17n_engine_property_ac
|
||||
(IBusEngine *engine,
|
||||
const gchar *prop_name,
|
||||
guint prop_state);
|
||||
-static void ibus_m17n_engine_property_show
|
||||
- (IBusEngine *engine,
|
||||
- const gchar *prop_name);
|
||||
-static void ibus_m17n_engine_property_hide
|
||||
- (IBusEngine *engine,
|
||||
- const gchar *prop_name);
|
||||
|
||||
static void ibus_m17n_engine_commit_string
|
||||
(IBusM17NEngine *m17n,
|
||||
@@ -1247,7 +1233,9 @@ ibus_m17n_engine_callback (MInputContext
|
||||
&anchor_pos);
|
||||
nchars = ibus_text_get_length (text);
|
||||
nbytes = g_utf8_offset_to_pointer (text->text, nchars) - text->text;
|
||||
- mt = mconv_decode_buffer (Mcoding_utf_8, text->text, nbytes);
|
||||
+ mt = mconv_decode_buffer (Mcoding_utf_8,
|
||||
+ (const unsigned char *) text->text,
|
||||
+ nbytes);
|
||||
g_object_unref (text);
|
||||
|
||||
len = (long) mplist_value (m17n->context->plist);
|
||||
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
|
||||
@@ -55,7 +55,9 @@ ibus_m17n_mtext_to_utf8 (MText *text)
|
||||
bufsize = (mtext_len (text) + 1) * 6;
|
||||
buf = (gchar *) g_malloc (bufsize);
|
||||
|
||||
- mconv_rebind_buffer (utf8_converter, buf, bufsize);
|
||||
+ mconv_rebind_buffer (utf8_converter,
|
||||
+ (const unsigned char *) buf,
|
||||
+ bufsize);
|
||||
mconv_encode (utf8_converter, text);
|
||||
|
||||
buf [utf8_converter->nbytes] = 0;
|
||||
@@ -78,7 +80,9 @@ ibus_m17n_mtext_to_ucs4 (MText *text, gl
|
||||
bufsize = (mtext_len (text) + 1) * 6;
|
||||
buf = (gchar *) g_malloc (bufsize);
|
||||
|
||||
- mconv_rebind_buffer (utf8_converter, buf, bufsize);
|
||||
+ mconv_rebind_buffer (utf8_converter,
|
||||
+ (const unsigned char *) buf,
|
||||
+ bufsize);
|
||||
if (mconv_encode (utf8_converter, text) < 0) {
|
||||
g_free (buf);
|
||||
return NULL;
|
||||
@@ -204,17 +208,12 @@ ibus_m17n_list_engines (void)
|
||||
if (l) {
|
||||
/* check candidates encoding */
|
||||
MPlist *sl;
|
||||
- MSymbol varname;
|
||||
- MText *vardesc;
|
||||
- MSymbol varunknown;
|
||||
MSymbol varcharset;
|
||||
|
||||
sl = mplist_value (l);
|
||||
- varname = mplist_value (sl);
|
||||
+ /* L = (VAR-NAME DESCRIPTION 'nil' VALUE) */
|
||||
sl = mplist_next (sl);
|
||||
- vardesc = mplist_value (sl);
|
||||
sl = mplist_next (sl);
|
||||
- varunknown = mplist_value (sl);
|
||||
sl = mplist_next (sl);
|
||||
varcharset = mplist_value (sl);
|
||||
|
||||
Index: ibus-m17n-1.3.4/src/setup.c
|
||||
===================================================================
|
||||
--- ibus-m17n-1.3.4.orig/src/setup.c
|
||||
+++ ibus-m17n-1.3.4/src/setup.c
|
||||
@@ -73,7 +73,9 @@ parse_m17n_value (MPlist *plist, gchar *
|
||||
if (mplist_key (plist) == Mtext) {
|
||||
MText *mtext;
|
||||
|
||||
- mtext = mconv_decode_buffer (Mcoding_utf_8, text, strlen (text));
|
||||
+ mtext = mconv_decode_buffer (Mcoding_utf_8,
|
||||
+ (const unsigned char *) text,
|
||||
+ strlen (text));
|
||||
value = mplist ();
|
||||
mplist_add (value, Mtext, mtext);
|
||||
return value;
|
||||
@@ -372,10 +374,10 @@ setup_dialog_load_config (SetupDialog *d
|
||||
static gchar *
|
||||
_gdk_color_to_string (GdkColor *color)
|
||||
{
|
||||
- g_strdup_printf ("#%02X%02X%02X",
|
||||
- (color->red & 0xFF00) >> 8,
|
||||
- (color->green & 0xFF00) >> 8,
|
||||
- (color->blue & 0xFF00) >> 8);
|
||||
+ return g_strdup_printf ("#%02X%02X%02X",
|
||||
+ (color->red & 0xFF00) >> 8,
|
||||
+ (color->green & 0xFF00) >> 8,
|
||||
+ (color->blue & 0xFF00) >> 8);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -428,7 +430,7 @@ save_m17n_options (SetupDialog *dialog)
|
||||
gboolean retval = TRUE;
|
||||
|
||||
if (!gtk_tree_model_get_iter_first (model, &iter))
|
||||
- return;
|
||||
+ return FALSE;
|
||||
|
||||
do {
|
||||
gtk_tree_model_get (model, &iter,
|
||||
@@ -567,9 +569,8 @@ start (const gchar *engine_name)
|
||||
{
|
||||
IBusBus *bus;
|
||||
IBusConfig *config;
|
||||
- gchar **strv, *section;
|
||||
+ gchar **strv;
|
||||
SetupDialog *dialog;
|
||||
- GObject *object;
|
||||
|
||||
ibus_init ();
|
||||
ibus_m17n_init_common ();
|
@ -1,16 +0,0 @@
|
||||
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
|
||||
@@ -231,6 +231,11 @@
|
||||
<name>m17n:ja:anthy</name>
|
||||
<preedit-highlight>TRUE</preedit-highlight>
|
||||
</engine>
|
||||
+ <!-- Don't touch the layout for transliteration maps. -->
|
||||
+ <engine>
|
||||
+ <name>m17n:*:translit</name>
|
||||
+ <layout>default</layout>
|
||||
+ </engine>
|
||||
<!-- Set IME symbols. -->
|
||||
<engine>
|
||||
<name>m17n:as:*</name>
|
@ -1,637 +0,0 @@
|
||||
From 98ae1c6dbd279e17ef3c20493a37c959f1b1e61f Mon Sep 17 00:00:00 2001
|
||||
From: Daiki Ueno <ueno@unixuser.org>
|
||||
Date: Fri, 30 Mar 2012 12:36:08 +0900
|
||||
Subject: [PATCH 4/4] Add virtual keyboard support.
|
||||
|
||||
---
|
||||
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(-)
|
||||
|
||||
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])
|
||||
|
||||
+dnl check eekboard for virtual keyboard
|
||||
+AC_MSG_CHECKING([whether you enable eekboard])
|
||||
+AC_ARG_ENABLE(eekboard,
|
||||
+ AS_HELP_STRING([--enable-eekboard=no/yes],
|
||||
+ [Enable eekboard default=yes]),
|
||||
+ enable_eekboard=$enableval,
|
||||
+ enable_eekboard=yes)
|
||||
+
|
||||
+if test x$enable_eekboard = xyes; then
|
||||
+ PKG_CHECK_MODULES([EEKBOARD], [eekboard-0.90], , enable_xtest=no)
|
||||
+ if test x$enable_eekboard = xyes; then
|
||||
+ AC_DEFINE([HAVE_EEKBOARD], [1], [Define if eekboard is found])
|
||||
+ fi
|
||||
+fi
|
||||
+AM_CONDITIONAL(ENABLE_EEKBOARD, [test x$enable_eekboard = xyes])
|
||||
+AC_MSG_RESULT($enable_eekboard)
|
||||
+
|
||||
# check if minput_list, which is available in m17n-lib 1.6.2+ (CVS)
|
||||
save_CFLAGS="$CFLAGS"
|
||||
save_LIBS="$LIBS"
|
||||
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 \
|
||||
$(NULL)
|
||||
+ibus_engine_m17n_CFLAGS = \
|
||||
+ @EEKBOARD_CFLAGS@ \
|
||||
+ $(AM_CFLAGS) \
|
||||
+ $(NULL)
|
||||
ibus_engine_m17n_LDADD = \
|
||||
libm17ncommon.la \
|
||||
@IBUS_LIBS@ \
|
||||
@M17N_LIBS@ \
|
||||
+ @EEKBOARD_LIBS@ \
|
||||
$(NULL)
|
||||
|
||||
if HAVE_GTK
|
||||
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>
|
||||
+ <virtual-keyboard>us</virtual-keyboard>
|
||||
</engine>
|
||||
<!-- Blacklist some engines -->
|
||||
<!-- kbd engines are duplicate of xkb engines -->
|
||||
@@ -440,4 +441,114 @@
|
||||
<name>m17n:zh:tonepy*</name>
|
||||
<symbol>调</symbol>
|
||||
</engine>
|
||||
+
|
||||
+ <!-- Virtual keyboard. -->
|
||||
+ <engine>
|
||||
+ <name>m17n:ar:kbd</name>
|
||||
+ <virtual-keyboard>ar,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:be:kbd</name>
|
||||
+ <virtual-keyboard>be,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:fa:kbd</name>
|
||||
+ <virtual-keyboard>fa,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:he:kbd</name>
|
||||
+ <virtual-keyboard>he,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:kk:kbd</name>
|
||||
+ <virtual-keyboard>kk,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:ks:kbd</name>
|
||||
+ <virtual-keyboard>ks,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:my:kbd</name>
|
||||
+ <virtual-keyboard>my,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:ru:kbd</name>
|
||||
+ <virtual-keyboard>ru,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:ua:kbd</name>
|
||||
+ <virtual-keyboard>ua,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:ug:kbd</name>
|
||||
+ <virtual-keyboard>ug,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:be:kbd</name>
|
||||
+ <virtual-keyboard>be,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:th:*</name>
|
||||
+ <virtual-keyboard>th,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:zh:bopomofo</name>
|
||||
+ <virtual-keyboard>zh-bopomofo,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:as:inscript</name>
|
||||
+ <virtual-keyboard>as-inscript,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:bn:inscript</name>
|
||||
+ <virtual-keyboard>bn-inscript,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:gu:inscript</name>
|
||||
+ <virtual-keyboard>gu-inscript,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:hi:inscript</name>
|
||||
+ <virtual-keyboard>hi-inscript,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:kn:inscript</name>
|
||||
+ <virtual-keyboard>kn-inscript,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:ks:inscript</name>
|
||||
+ <virtual-keyboard>kn-inscript,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:mai:inscript</name>
|
||||
+ <virtual-keyboard>mai-inscript,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:ml:inscript</name>
|
||||
+ <virtual-keyboard>ml-inscript,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:mr:inscript</name>
|
||||
+ <virtual-keyboard>mr-inscript,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:or:inscript</name>
|
||||
+ <virtual-keyboard>or-inscript,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:pa:inscript</name>
|
||||
+ <virtual-keyboard>pa-inscript,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:sd:inscript</name>
|
||||
+ <virtual-keyboard>sd-inscript,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:ta:inscript</name>
|
||||
+ <virtual-keyboard>ta-inscript,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
+ <engine>
|
||||
+ <name>m17n:te:inscript</name>
|
||||
+ <virtual-keyboard>te-inscript,us</virtual-keyboard>
|
||||
+ </engine>
|
||||
</engines>
|
||||
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"
|
||||
+#ifdef HAVE_EEKBOARD
|
||||
+#include <eekboard/eekboard-client.h>
|
||||
+#endif /* HAVE_EEKBOARD */
|
||||
#include "engine.h"
|
||||
|
||||
typedef struct _IBusM17NEngine IBusM17NEngine;
|
||||
@@ -18,10 +21,12 @@ struct _IBusM17NEngine {
|
||||
/* members */
|
||||
MInputContext *context;
|
||||
IBusLookupTable *table;
|
||||
+
|
||||
IBusProperty *status_prop;
|
||||
#ifdef HAVE_SETUP
|
||||
IBusProperty *setup_prop;
|
||||
#endif /* HAVE_SETUP */
|
||||
+ IBusProperty *virtkbd_prop;
|
||||
IBusPropList *prop_list;
|
||||
};
|
||||
|
||||
@@ -35,9 +40,16 @@ struct _IBusM17NEngineClass {
|
||||
gint preedit_underline;
|
||||
IBusPreeditFocusMode preedit_focus_mode;
|
||||
gint lookup_table_orientation;
|
||||
+ gchar *virtual_keyboard;
|
||||
|
||||
gchar *title;
|
||||
MInputMethod *im;
|
||||
+
|
||||
+#ifdef HAVE_EEKBOARD
|
||||
+ EekboardContext *econtext;
|
||||
+ GSList *keyboards;
|
||||
+ GSList *keyboards_head;
|
||||
+#endif /* HAVE_EEKBOARD */
|
||||
};
|
||||
|
||||
/* functions prototype */
|
||||
@@ -101,13 +113,185 @@ static IBusEngineClass *parent_class = N
|
||||
|
||||
static IBusConfig *config = NULL;
|
||||
|
||||
+#ifdef HAVE_EEKBOARD
|
||||
+static EekboardClient *eekboard = NULL;
|
||||
+
|
||||
+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);
|
||||
+ g_type_class_ref (ibus_m17n_virtual_keyboard_implementation_type);
|
||||
+ 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_ref (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 +452,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);
|
||||
|
||||
@@ -317,6 +502,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 +544,7 @@ ibus_m17n_engine_init (IBusM17NEngine *m
|
||||
{
|
||||
IBusText* label;
|
||||
IBusText* tooltip;
|
||||
+ IBusM17NEngineClass *klass = (IBusM17NEngineClass *) G_OBJECT_GET_CLASS (m17n);
|
||||
|
||||
m17n->prop_list = ibus_prop_list_new ();
|
||||
g_object_ref_sink (m17n->prop_list);
|
||||
@@ -386,6 +577,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 ("Screen Keyboard");
|
||||
+ tooltip = ibus_text_new_from_string ("Show screen keyboard");
|
||||
+ m17n->virtkbd_prop = ibus_property_new ("virtual-keyboard",
|
||||
+ PROP_TYPE_NORMAL,
|
||||
+ label,
|
||||
+ "input-keyboard",
|
||||
+ tooltip,
|
||||
+ TRUE,
|
||||
+ FALSE,
|
||||
+ PROP_STATE_UNCHECKED,
|
||||
+ NULL);
|
||||
+ g_object_ref_sink (m17n->virtkbd_prop);
|
||||
+ ibus_prop_list_append (m17n->prop_list, m17n->virtkbd_prop);
|
||||
+
|
||||
+#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;
|
||||
@@ -471,6 +692,11 @@ ibus_m17n_engine_destroy (IBusM17NEngine
|
||||
}
|
||||
#endif /* HAVE_SETUP */
|
||||
|
||||
+ if (m17n->virtkbd_prop) {
|
||||
+ g_object_unref (m17n->virtkbd_prop);
|
||||
+ m17n->virtkbd_prop = NULL;
|
||||
+ }
|
||||
+
|
||||
if (m17n->table) {
|
||||
g_object_unref (m17n->table);
|
||||
m17n->table = NULL;
|
||||
@@ -716,6 +942,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);
|
||||
+
|
||||
+#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
|
||||
@@ -725,6 +959,14 @@ ibus_m17n_engine_disable (IBusEngine *en
|
||||
|
||||
ibus_m17n_engine_focus_out (engine);
|
||||
parent_class->disable (engine);
|
||||
+
|
||||
+#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
|
||||
@@ -772,6 +1014,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 +1030,53 @@ ibus_m17n_engine_property_activate (IBus
|
||||
}
|
||||
#endif /* HAVE_SETUP */
|
||||
|
||||
+ if (g_strcmp0 (prop_name, "virtual-keyboard") == 0) {
|
||||
+#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);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
parent_class->property_activate (engine, prop_name, prop_state);
|
||||
}
|
||||
|
||||
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,
|
||||
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 {
|
||||
@@ -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;
|
||||
}
|
||||
@@ -333,6 +336,11 @@ ibus_m17n_engine_config_parse_xml_node (
|
||||
cnode->mask |= ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK;
|
||||
continue;
|
||||
}
|
||||
+ if (g_strcmp0 (sub_node->name , "virtual-keyboard") == 0) {
|
||||
+ cnode->config.virtual_keyboard = g_strdup (sub_node->text);
|
||||
+ cnode->mask |= ENGINE_CONFIG_VIRTUAL_KEYBOARD_MASK;
|
||||
+ continue;
|
||||
+ }
|
||||
g_warning ("<engine> element contains invalid element <%s>",
|
||||
sub_node->name);
|
||||
}
|
||||
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 */
|
||||
gboolean preedit_highlight;
|
||||
+
|
||||
+ /* virtual keyboard type */
|
||||
+ gchar *virtual_keyboard;
|
||||
};
|
||||
|
||||
typedef struct _IBusM17NEngineConfig IBusM17NEngineConfig;
|
@ -1,19 +1,8 @@
|
||||
From ab9d608fdb6054b4b135f891ad5fa1fa7ce27c7b Mon Sep 17 00:00:00 2001
|
||||
From: Daiki Ueno <ueno@unixuser.org>
|
||||
Date: Mon, 8 Aug 2011 09:59:28 +0900
|
||||
Subject: [PATCH 1/4] Set XKB layout option via default.xml.
|
||||
|
||||
---
|
||||
src/default.xml.in.in | 9 +++++++++
|
||||
src/m17nutil.c | 13 +++++++++++--
|
||||
src/m17nutil.h | 3 +++
|
||||
3 files changed, 23 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/default.xml.in.in b/src/default.xml.in.in
|
||||
index 9f5a01e..beae494 100644
|
||||
--- a/src/default.xml.in.in
|
||||
+++ b/src/default.xml.in.in
|
||||
@@ -158,6 +158,15 @@
|
||||
Index: ibus-m17n-1.3.4/src/default.xml
|
||||
===================================================================
|
||||
--- ibus-m17n-1.3.4.orig/src/default.xml
|
||||
+++ ibus-m17n-1.3.4/src/default.xml
|
||||
@@ -184,6 +184,15 @@
|
||||
<name>m17n:si:samanala</name>
|
||||
<rank>0</rank>
|
||||
</engine>
|
||||
@ -29,10 +18,10 @@ index 9f5a01e..beae494 100644
|
||||
<!-- Some CJK engines use preedit. -->
|
||||
<engine>
|
||||
<name>m17n:zh:cangjie</name>
|
||||
diff --git a/src/m17nutil.c b/src/m17nutil.c
|
||||
index 51026b2..0b46531 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
|
||||
@@ -17,7 +17,8 @@ typedef enum {
|
||||
ENGINE_CONFIG_RANK_MASK = 1 << 0,
|
||||
ENGINE_CONFIG_SYMBOL_MASK = 1 << 1,
|
||||
@ -43,25 +32,25 @@ index 51026b2..0b46531 100644
|
||||
} EngineConfigMask;
|
||||
|
||||
struct _EngineConfigNode {
|
||||
@@ -133,7 +134,7 @@ ibus_m17n_engine_new (MSymbol lang,
|
||||
@@ -137,7 +138,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",
|
||||
- "layout", "default",
|
||||
+ "layout", config->layout ? config->layout : "default",
|
||||
"rank", config->rank,
|
||||
"symbol", config->symbol ? config->symbol : "",
|
||||
"setup", engine_setup,
|
||||
@@ -275,6 +276,8 @@ ibus_m17n_get_engine_config (const gchar *engine_name)
|
||||
@@ -272,6 +273,8 @@ ibus_m17n_get_engine_config (const gchar
|
||||
config->symbol = cnode->config.symbol;
|
||||
if (cnode->mask & ENGINE_CONFIG_LONGNAME_MASK)
|
||||
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;
|
||||
if (cnode->mask & ENGINE_CONFIG_PREEDIT_HIGHLIGHT_MASK)
|
||||
config->preedit_highlight = cnode->config.preedit_highlight;
|
||||
}
|
||||
}
|
||||
return config;
|
||||
@@ -315,6 +318,12 @@ ibus_m17n_engine_config_parse_xml_node (EngineConfigNode *cnode,
|
||||
@@ -314,6 +317,12 @@ ibus_m17n_engine_config_parse_xml_node (
|
||||
cnode->mask |= ENGINE_CONFIG_LONGNAME_MASK;
|
||||
continue;
|
||||
}
|
||||
@ -74,10 +63,10 @@ index 51026b2..0b46531 100644
|
||||
if (g_strcmp0 (sub_node->name , "preedit-highlight") == 0) {
|
||||
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 d790cf8..93faad4 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
|
||||
@@ -20,6 +20,9 @@ struct _IBusM17NEngineConfig {
|
||||
/* overridding longname shown on panel */
|
||||
gchar *longname;
|
||||
@ -88,6 +77,3 @@ index d790cf8..93faad4 100644
|
||||
/* whether to highlight preedit */
|
||||
gboolean preedit_highlight;
|
||||
};
|
||||
--
|
||||
1.7.7.6
|
||||
|
||||
|
@ -1,40 +1,19 @@
|
||||
%if (0%{?fedora} > 14 || 0%{?rhel} > 6)
|
||||
%global require_ibus_version 1.3.99.20110817
|
||||
%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 || 0%{?rhel} > 6)
|
||||
%global _with_gtk --with-gtk=3.0
|
||||
%else
|
||||
%global _with_gtk --with-gtk=2.0
|
||||
%endif
|
||||
|
||||
%if (0%{?fedora} > 16 || 0%{?rhel} > 6)
|
||||
%global _enable_eekboard --enable-eekboard
|
||||
%endif
|
||||
|
||||
%global require_ibus_version 1.4.0
|
||||
Name: ibus-m17n
|
||||
Version: 1.3.4
|
||||
Release: 7%{?dist}
|
||||
Release: 8%{?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
|
||||
# Fedora specific patches (not upstreamable):
|
||||
# Enable lv3:ralt_switch option for some Indic engines in default.xml.
|
||||
Patch1: ibus-m17n-xkb-options.patch
|
||||
# Don't make the status button clickable (maybe obsolete).
|
||||
Patch2: ibus-m17n-hide-title-status.patch
|
||||
Patch3: ibus-m17n-blacklist-engines.patch
|
||||
Patch4: ibus-m17n-virtkbd.patch
|
||||
Patch5: ibus-m17n-fix-mtext-config.patch
|
||||
Patch6: ibus-m17n-translit-layout.patch
|
||||
Patch7: ibus-m17n-honor-user-cflags.patch
|
||||
Patch8: ibus-m17n-desktop-file.patch
|
||||
|
||||
# The following BR is for autogen and not necessary when packging
|
||||
# released tarballs.
|
||||
@ -44,19 +23,12 @@ BuildRequires: libtool
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: gnome-common
|
||||
BuildRequires: m17n-lib-devel
|
||||
%if (0%{?fedora} > 14 || 0%{?rhel} > 6)
|
||||
BuildRequires: gtk3-devel
|
||||
%else
|
||||
BuildRequires: gtk2-devel
|
||||
%endif
|
||||
BuildRequires: ibus-devel >= %{require_ibus_version}
|
||||
BuildRequires: eekboard-devel >= %{require_eekboard_version}
|
||||
BuildRequires: desktop-file-utils
|
||||
|
||||
Requires: ibus >= %{require_ibus_version}
|
||||
Requires: m17n-lib
|
||||
Requires: eekboard-service >= %{require_eekboard_version}
|
||||
Requires: iok
|
||||
|
||||
%description
|
||||
M17N engine for IBus input platform. It allows input of many languages using
|
||||
@ -65,20 +37,14 @@ 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
|
||||
%patch4 -p1 -b .virtkbd
|
||||
%patch5 -p1 -b .fix-mtext-config
|
||||
%patch6 -p1 -b .translit-layout
|
||||
%patch7 -p1 -b .honor-user-cflags
|
||||
%patch8 -p1 -b .desktop-file
|
||||
|
||||
NOCONFIGURE=1 ./autogen.sh
|
||||
|
||||
%build
|
||||
%configure --disable-static %{?_with_gtk} %{?_with_hotkeys} %{?_enable_eekboard}
|
||||
%configure --disable-static --with-gtk=3.0
|
||||
# make -C po update-gmo
|
||||
make %{?_smp_mflags}
|
||||
|
||||
@ -98,6 +64,12 @@ desktop-file-validate ${RPM_BUILD_ROOT}%{_datadir}/applications/ibus-setup-m17n.
|
||||
%{_datadir}/applications/ibus-setup-m17n.desktop
|
||||
|
||||
%changelog
|
||||
* Fri Apr 26 2013 Daiki Ueno <deno@redhat.com> - 1.3.4-8
|
||||
- Update ibus-m17n-HEAD.patch to the latest upstream master
|
||||
- Remove unnecessary and not upstreamable patches
|
||||
- Use gtk3 always
|
||||
- Fix bug 912592 - ibus-m17n should use default keyboard in most cases
|
||||
|
||||
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.4-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user