Bumped to 1.3.99.20110817

Added XIM and ISO 14755 Ctrl+Shift+u
This commit is contained in:
Takao Fujiwara 2011-09-01 15:27:02 +09:00
parent e68340ebb6
commit e0a5e11fee
9 changed files with 6412 additions and 2054 deletions

1
.gitignore vendored
View File

@ -14,3 +14,4 @@ ibus-1.3.6.tar.gz
/ibus_master_da.po /ibus_master_da.po
/ibus-gjs-3.0.2.20110823.tar.gz /ibus-gjs-3.0.2.20110823.tar.gz
/ibus-gjs-3.1.4.20110823.tar.gz /ibus-gjs-3.1.4.20110823.tar.gz
/ibus-1.3.99.20110817.tar.gz

View File

@ -1,6 +1,6 @@
From 7f81445b3e6613d14f64253506a309095a37c8d7 Mon Sep 17 00:00:00 2001 From fd80539e980f464192aed22c71e83ff3a6ec61b3 Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com> From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Mon, 20 Jun 2011 19:04:42 +0900 Date: Thu, 1 Sep 2011 14:38:13 +0900
Subject: [PATCH] Reload preload engines until users customize the list. Subject: [PATCH] Reload preload engines until users customize the list.
The idea is, if users don't customize the preload_engines with ibus-setup, The idea is, if users don't customize the preload_engines with ibus-setup,
@ -17,19 +17,19 @@ on ibus-setup, ibus-setup sets 'preload_engine_mode' as
IBUS_PRELOAD_ENGINE_MODE_USER and users can customize the value IBUS_PRELOAD_ENGINE_MODE_USER and users can customize the value
'preload_engines'. 'preload_engines'.
--- ---
bus/ibusimpl.c | 402 +++++++++++++++++++++++++++++++++++++++----------- bus/ibusimpl.c | 412 +++++++++++++++++++++++++++++++++++++++-----------
data/ibus.schemas.in | 13 ++ data/ibus.schemas.in | 15 ++-
ibus/common.py | 6 + ibus/common.py | 6 +
setup/main.py | 70 ++++++++- setup/main.py | 70 ++++++++-
setup/setup.ui | 21 +++- setup/setup.ui | 21 +++-
src/ibustypes.h | 10 ++ src/ibustypes.h | 10 ++
6 files changed, 427 insertions(+), 95 deletions(-) 6 files changed, 438 insertions(+), 96 deletions(-)
diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c
index a7ae52b..bb4b8ae 100644 index 1942504..3fce912 100644
--- a/bus/ibusimpl.c --- a/bus/ibusimpl.c
+++ b/bus/ibusimpl.c +++ b/bus/ibusimpl.c
@@ -144,6 +144,9 @@ static void bus_ibus_impl_set_previous_engine @@ -142,6 +142,9 @@ static void bus_ibus_impl_set_previous_engine
static void bus_ibus_impl_set_preload_engines static void bus_ibus_impl_set_preload_engines
(BusIBusImpl *ibus, (BusIBusImpl *ibus,
GVariant *value); GVariant *value);
@ -39,7 +39,7 @@ index a7ae52b..bb4b8ae 100644
static void bus_ibus_impl_set_use_sys_layout static void bus_ibus_impl_set_use_sys_layout
(BusIBusImpl *ibus, (BusIBusImpl *ibus,
GVariant *value); GVariant *value);
@@ -285,6 +288,259 @@ _panel_destroy_cb (BusPanelProxy *panel, @@ -283,6 +286,269 @@ _panel_destroy_cb (BusPanelProxy *panel,
} }
static void static void
@ -86,6 +86,16 @@ index a7ae52b..bb4b8ae 100644
+ +
+ variant = ibus_config_get_value (ibus->config, "general", + variant = ibus_config_get_value (ibus->config, "general",
+ "preload_engines"); + "preload_engines");
+ if (variant != NULL && g_variant_classify (variant) == G_VARIANT_CLASS_ARRAY) {
+ GVariantIter iter;
+ const gchar *engine_name = NULL;
+ g_variant_iter_init (&iter, variant);
+ g_variant_iter_loop (&iter, "&s", &engine_name);
+ if (g_strcmp0 (engine_name, "ibus_null_engine") == 0) {
+ g_variant_unref (variant);
+ variant = NULL;
+ }
+ }
+ if (variant == NULL) { + if (variant == NULL) {
+ /* Set LANG_RELATIVE mode for the initial login */ + /* Set LANG_RELATIVE mode for the initial login */
+ preload_engine_mode = IBUS_PRELOAD_ENGINE_MODE_LANG_RELATIVE; + preload_engine_mode = IBUS_PRELOAD_ENGINE_MODE_LANG_RELATIVE;
@ -299,7 +309,7 @@ index a7ae52b..bb4b8ae 100644
bus_ibus_impl_set_hotkey (BusIBusImpl *ibus, bus_ibus_impl_set_hotkey (BusIBusImpl *ibus,
GQuark hotkey, GQuark hotkey,
GVariant *value) GVariant *value)
@@ -394,35 +650,50 @@ static void @@ -392,35 +658,50 @@ static void
bus_ibus_impl_set_preload_engines (BusIBusImpl *ibus, bus_ibus_impl_set_preload_engines (BusIBusImpl *ibus,
GVariant *value) GVariant *value)
{ {
@ -372,7 +382,7 @@ index a7ae52b..bb4b8ae 100644
} }
/** /**
@@ -503,89 +774,47 @@ bus_ibus_impl_set_use_global_engine (BusIBusImpl *ibus, @@ -501,89 +782,47 @@ bus_ibus_impl_set_use_global_engine (BusIBusImpl *ibus,
} }
} }
@ -484,7 +494,7 @@ index a7ae52b..bb4b8ae 100644
#endif #endif
} }
@@ -601,6 +830,7 @@ const static struct { @@ -599,6 +838,7 @@ const static struct {
{ "general/hotkey", "next_engine_in_menu", bus_ibus_impl_set_next_engine_in_menu }, { "general/hotkey", "next_engine_in_menu", bus_ibus_impl_set_next_engine_in_menu },
{ "general/hotkey", "previous_engine", bus_ibus_impl_set_previous_engine }, { "general/hotkey", "previous_engine", bus_ibus_impl_set_previous_engine },
{ "general", "preload_engines", bus_ibus_impl_set_preload_engines }, { "general", "preload_engines", bus_ibus_impl_set_preload_engines },
@ -493,10 +503,19 @@ index a7ae52b..bb4b8ae 100644
{ "general", "use_global_engine", bus_ibus_impl_set_use_global_engine }, { "general", "use_global_engine", bus_ibus_impl_set_use_global_engine },
{ "general", "embed_preedit_text", bus_ibus_impl_set_embed_preedit_text }, { "general", "embed_preedit_text", bus_ibus_impl_set_embed_preedit_text },
diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in diff --git a/data/ibus.schemas.in b/data/ibus.schemas.in
index 7ca4899..d4334e1 100644 index 8979515..fef1810 100644
--- a/data/ibus.schemas.in --- a/data/ibus.schemas.in
+++ b/data/ibus.schemas.in +++ b/data/ibus.schemas.in
@@ -13,6 +13,19 @@ @@ -6,7 +6,7 @@
<applyto>/desktop/ibus/general/preload_engines</applyto>
<owner>ibus</owner>
<type>list</type>
- <default>[]</default>
+ <default>[ibus_null_engine]</default>
<list_type>string</list_type>
<locale name="C">
<short>Preload engines</short>
@@ -14,6 +14,19 @@
</locale> </locale>
</schema> </schema>
<schema> <schema>
@ -700,7 +719,7 @@ index f1e6d0b..562c091 100644
</child> </child>
</object> </object>
diff --git a/src/ibustypes.h b/src/ibustypes.h diff --git a/src/ibustypes.h b/src/ibustypes.h
index 6a31847..14b44fc 100644 index 8146719..6151cd0 100644
--- a/src/ibustypes.h --- a/src/ibustypes.h
+++ b/src/ibustypes.h +++ b/src/ibustypes.h
@@ -186,6 +186,16 @@ typedef enum { @@ -186,6 +186,16 @@ typedef enum {
@ -721,5 +740,5 @@ index 6a31847..14b44fc 100644
* @x: x coordinate. * @x: x coordinate.
* @y: y coordinate. * @y: y coordinate.
-- --
1.7.4.4 1.7.5.4

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -921,7 +921,7 @@ diff --git a/configure.ac b/configure.ac
index 4c20ae7..21d35c3 100644 index 4c20ae7..21d35c3 100644
--- a/configure.ac --- a/configure.ac
+++ b/configure.ac +++ b/configure.ac
@@ -456,6 +456,34 @@ else @@ -462,6 +462,34 @@ else
enable_surrounding_text="no (disabled, use --enable-surrounding-text to enable)" enable_surrounding_text="no (disabled, use --enable-surrounding-text to enable)"
fi fi
@ -956,15 +956,15 @@ index 4c20ae7..21d35c3 100644
# check iso-codes # check iso-codes
PKG_CHECK_MODULES(ISOCODES, [ PKG_CHECK_MODULES(ISOCODES, [
iso-codes iso-codes
@@ -482,6 +510,7 @@ bus/Makefile @@ -488,6 +516,7 @@ bus/Makefile
util/Makefile util/Makefile
util/IMdkit/Makefile util/IMdkit/Makefile
data/Makefile data/Makefile
+data/ibus.schemas.in +data/ibus.schemas.in
data/icons/Makefile data/icons/Makefile
data/keymaps/Makefile data/keymaps/Makefile
docs/Makefile data/dconf/Makefile
@@ -534,5 +563,7 @@ Build options: @@ -540,5 +569,7 @@ Build options:
No snooper regexes "$NO_SNOOPER_APPS" No snooper regexes "$NO_SNOOPER_APPS"
Panel icon "$IBUS_ICON_KEYBOARD" Panel icon "$IBUS_ICON_KEYBOARD"
Enable surrounding-text $enable_surrounding_text Enable surrounding-text $enable_surrounding_text
@ -976,8 +976,8 @@ diff --git a/data/Makefile.am b/data/Makefile.am
index 99be41c..824da76 100644 index 99be41c..824da76 100644
--- a/data/Makefile.am --- a/data/Makefile.am
+++ b/data/Makefile.am +++ b/data/Makefile.am
@@ -26,7 +26,8 @@ SUBDIRS = \ @@ -30,7 +30,8 @@ SUBDIRS += dconf
$(NULL) endif
schemasdir = $(GCONF_SCHEMA_FILE_DIR) schemasdir = $(GCONF_SCHEMA_FILE_DIR)
-schemas_in_files = ibus.schemas.in -schemas_in_files = ibus.schemas.in
@ -986,7 +986,7 @@ index 99be41c..824da76 100644
schemas_DATA = $(schemas_in_files:.schemas.in=.schemas) schemas_DATA = $(schemas_in_files:.schemas.in=.schemas)
@INTLTOOL_SCHEMAS_RULE@ @INTLTOOL_SCHEMAS_RULE@
@@ -41,11 +42,12 @@ if GCONF_SCHEMAS_INSTALL @@ -45,11 +46,12 @@ if GCONF_SCHEMAS_INSTALL
endif endif
EXTRA_DIST = \ EXTRA_DIST = \
@ -1780,15 +1780,7 @@ diff --git a/xkb/ibus-engine-xkb-main.c b/xkb/ibus-engine-xkb-main.c
index 0fb0f0c..4787bf2 100644 index 0fb0f0c..4787bf2 100644
--- a/xkb/ibus-engine-xkb-main.c --- a/xkb/ibus-engine-xkb-main.c
+++ b/xkb/ibus-engine-xkb-main.c +++ b/xkb/ibus-engine-xkb-main.c
@@ -25,6 +25,7 @@ @@ -290,6 +290,9 @@ print_component ()
#endif
#include <ibus.h>
+#include <glib/gi18n-lib.h>
#include <stdlib.h>
#ifdef ENABLE_NLS
@@ -290,6 +291,9 @@ print_component ()
const gchar *desc; const gchar *desc;
gchar *output; gchar *output;
GString *str; GString *str;
@ -1798,7 +1790,7 @@ index 0fb0f0c..4787bf2 100644
#ifdef XKBLAYOUTCONFIG_FILE #ifdef XKBLAYOUTCONFIG_FILE
layout_config = ibus_xkb_layout_config_new (XKBLAYOUTCONFIG_FILE); layout_config = ibus_xkb_layout_config_new (XKBLAYOUTCONFIG_FILE);
@@ -302,6 +306,19 @@ print_component () @@ -302,6 +305,19 @@ print_component ()
layout_desc = (GHashTable *) ibus_xkb_config_registry_get_layout_desc (config_registry); layout_desc = (GHashTable *) ibus_xkb_config_registry_get_layout_desc (config_registry);
variant_desc = (GHashTable *) ibus_xkb_config_registry_get_variant_desc (config_registry); variant_desc = (GHashTable *) ibus_xkb_config_registry_get_variant_desc (config_registry);
component = ibus_xkb_component_new (); component = ibus_xkb_component_new ();
@ -1818,15 +1810,6 @@ index 0fb0f0c..4787bf2 100644
for (keys = g_hash_table_get_keys (layout_list); keys; keys = keys->next) { for (keys = g_hash_table_get_keys (layout_list); keys; keys = keys->next) {
if (keys->data == NULL) { if (keys->data == NULL) {
continue; continue;
@@ -390,6 +407,8 @@ main (int argc, char **argv)
#ifdef ENABLE_NLS
setlocale (LC_ALL, "");
+ bindtextdomain (GETTEXT_PACKAGE, IBUS_LOCALEDIR);
+ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
#endif
g_type_init ();
diff --git a/xkb/xkbxml.c b/xkb/xkbxml.c diff --git a/xkb/xkbxml.c b/xkb/xkbxml.c
index d59a929..86bcf8f 100644 index d59a929..86bcf8f 100644
--- a/xkb/xkbxml.c --- a/xkb/xkbxml.c

View File

@ -1,261 +0,0 @@
From 85d6a6d5d7e5673ac3bbc285589da18c48b562ae Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Sun, 14 Aug 2011 08:44:35 +0900
Subject: [PATCH] Add create-engine signal in IBusFactory for non-C
applications.
---
bus/inputcontext.c | 5 ++
src/ibusfactory.c | 107 ++++++++++++++++++++++++++++++++++++++++-------
src/ibusfactory.h | 7 +++-
src/ibusmarshalers.list | 1 +
src/ibusservice.h | 5 +-
5 files changed, 105 insertions(+), 20 deletions(-)
diff --git a/bus/inputcontext.c b/bus/inputcontext.c
index 47ac9d5..4e8cdc5 100644
--- a/bus/inputcontext.c
+++ b/bus/inputcontext.c
@@ -2285,6 +2285,11 @@ new_engine_cb (GObject *obj,
"Opertation was cancelled");
}
else {
+ if (data->context->engine != NULL) {
+ /* Send a Disabled signal. */
+ bus_input_context_unset_engine (data->context);
+ bus_input_context_disable (data->context);
+ }
bus_input_context_set_engine (data->context, engine);
g_object_unref (engine);
bus_input_context_enable (data->context);
diff --git a/src/ibusfactory.c b/src/ibusfactory.c
index 11d9a6d..f28f074 100644
--- a/src/ibusfactory.c
+++ b/src/ibusfactory.c
@@ -21,6 +21,7 @@
*/
#include "ibusfactory.h"
#include "ibusengine.h"
+#include "ibusmarshalers.h"
#include "ibusshare.h"
#include "ibusinternal.h"
@@ -28,6 +29,7 @@
(G_TYPE_INSTANCE_GET_PRIVATE ((o), IBUS_TYPE_FACTORY, IBusFactoryPrivate))
enum {
+ CREATE_ENGINE,
LAST_SIGNAL,
};
@@ -42,6 +44,8 @@ struct _IBusFactoryPrivate {
GHashTable *engine_table;
};
+static guint factory_signals[LAST_SIGNAL] = { 0 };
+
/* functions prototype */
static void ibus_factory_destroy (IBusFactory *factory);
static void ibus_factory_set_property (IBusFactory *engine,
@@ -95,6 +99,47 @@ static const gchar introspection_xml[] =
" </interface>"
"</node>";
+static IBusEngine *
+_ibus_factory_create_engine (IBusFactory *factory,
+ const gchar *engine_name)
+{
+ GType engine_type;
+ gchar *object_path = NULL;
+ IBusEngine *engine = NULL;
+
+ engine_type = (GType) g_hash_table_lookup (factory->priv->engine_table,
+ engine_name);
+
+ g_return_val_if_fail (engine_type != G_TYPE_INVALID, NULL);
+
+ object_path = g_strdup_printf ("/org/freedesktop/IBus/Engine/%d",
+ ++factory->priv->id);
+ engine = ibus_engine_new_type (engine_type,
+ engine_name,
+ object_path,
+ ibus_service_get_connection ((IBusService *)factory));
+ g_free (object_path);
+
+ return engine;
+}
+
+static gboolean
+_ibus_factory_create_engine_accumulator (GSignalInvocationHint *ihint,
+ GValue *return_accu,
+ const GValue *handler_return,
+ gpointer dummy)
+{
+ gboolean retval = TRUE;
+ GObject *object = g_value_get_object (handler_return);
+
+ if (object != NULL) {
+ g_value_copy (handler_return, return_accu);
+ retval = FALSE;
+ }
+
+ return retval;
+}
+
static void
ibus_factory_class_init (IBusFactoryClass *class)
{
@@ -109,10 +154,34 @@ ibus_factory_class_init (IBusFactoryClass *class)
IBUS_SERVICE_CLASS (class)->service_method_call = ibus_factory_service_method_call;
IBUS_SERVICE_CLASS (class)->service_get_property = ibus_factory_service_get_property;
IBUS_SERVICE_CLASS (class)->service_set_property = ibus_factory_service_set_property;
+ class->create_engine = _ibus_factory_create_engine;
ibus_service_class_add_interfaces (IBUS_SERVICE_CLASS (class), introspection_xml);
g_type_class_add_private (class, sizeof (IBusFactoryPrivate));
+
+ /**
+ * IBusFactory::create-engine:
+ * @factory: the factory which received the signal
+ * @engine_name: the engine_name which received the signal
+ * @returns: (transfer none): An IBusEngine
+ *
+ * The ::create-engine signal is a signal to create IBusEngine
+ * with @engine_name, which gets emitted when IBusFactory
+ * received CreateEngine dbus method. The callback functions
+ * will be called until a callback returns a non-null object
+ * of IBusEngine. */
+ factory_signals[CREATE_ENGINE] =
+ g_signal_new (I_("create-engine"),
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (IBusFactoryClass, create_engine),
+ _ibus_factory_create_engine_accumulator,
+ NULL,
+ _ibus_marshal_OBJECT__STRING,
+ IBUS_TYPE_ENGINE,
+ 1,
+ G_TYPE_STRING);
}
static void
@@ -190,25 +259,23 @@ ibus_factory_service_method_call (IBusService *service,
if (g_strcmp0 (method_name, "CreateEngine") == 0) {
gchar *engine_name = NULL;
+ IBusEngine *engine = NULL;
+
g_variant_get (parameters, "(&s)", &engine_name);
- GType engine_type = (GType )g_hash_table_lookup (factory->priv->engine_table, engine_name);
+ g_signal_emit (factory, factory_signals[CREATE_ENGINE],
+ 0, engine_name, &engine);
+
+ if (engine != NULL) {
+ gchar *object_path = NULL;
+ GValue value = { 0, };
+
+ g_value_init (&value, G_TYPE_STRING);
+ g_object_get_property (G_OBJECT (engine), "object-path", &value);
+ object_path = g_value_dup_string (&value);
+ g_value_unset (&value);
- if (engine_type == G_TYPE_INVALID) {
- gchar *error_message = g_strdup_printf ("Can not fond engine %s", engine_name);
- g_dbus_method_invocation_return_error (invocation,
- G_DBUS_ERROR,
- G_DBUS_ERROR_FAILED,
- error_message);
- g_free (error_message);
- }
- else {
- gchar *object_path = g_strdup_printf ("/org/freedesktop/IBus/Engine/%d",
- ++factory->priv->id);
- IBusEngine *engine = ibus_engine_new_type (engine_type,
- engine_name,
- object_path,
- ibus_service_get_connection ((IBusService *)factory));
g_assert (engine != NULL);
+ g_assert (object_path != NULL);
g_object_ref_sink (engine);
factory->priv->engine_list = g_list_append (factory->priv->engine_list, engine);
g_signal_connect (engine,
@@ -219,6 +286,14 @@ ibus_factory_service_method_call (IBusService *service,
g_variant_new ("(o)", object_path));
g_free (object_path);
}
+ else {
+ gchar *error_message = g_strdup_printf ("Can not fond engine %s", engine_name);
+ g_dbus_method_invocation_return_error (invocation,
+ G_DBUS_ERROR,
+ G_DBUS_ERROR_FAILED,
+ error_message);
+ g_free (error_message);
+ }
return;
}
diff --git a/src/ibusfactory.h b/src/ibusfactory.h
index 47c06e0..03d1dea 100644
--- a/src/ibusfactory.h
+++ b/src/ibusfactory.h
@@ -42,6 +42,7 @@
#include "ibusservice.h"
#include "ibusserializable.h"
+#include "ibusengine.h"
G_BEGIN_DECLS
@@ -127,10 +128,14 @@ struct _IBusFactoryClass {
IBusServiceClass parent;
/* signals */
+ IBusEngine *
+ (* create_engine)
+ (IBusFactory *factory,
+ const gchar *engine_name);
/*< private >*/
/* padding */
- gpointer pdummy[8];
+ gpointer pdummy[7];
};
/**
diff --git a/src/ibusmarshalers.list b/src/ibusmarshalers.list
index c073c6e..82b4aea 100644
--- a/src/ibusmarshalers.list
+++ b/src/ibusmarshalers.list
@@ -23,3 +23,4 @@ VOID:STRING,STRING,VARIANT
VOID:STRING,STRING,STRING
VOID:UINT
VOID:UINT,POINTER
+OBJECT:STRING
diff --git a/src/ibusservice.h b/src/ibusservice.h
index 7a3fea7..94f9bb7 100644
--- a/src/ibusservice.h
+++ b/src/ibusservice.h
@@ -135,9 +135,9 @@ IBusService *ibus_service_new (GDBusConnection *connection,
const gchar *ibus_service_get_object_path (IBusService *service);
/**
- * ibus_service_get_connections:
+ * ibus_service_get_connection:
* @service: An IBusService.
- * @returns: (transfer all) (element-type GDBusConnection): A newly allocated list of connections.
+ * @returns: (transfer none): A #GDBusConnection of an #IBusService instance.
*
* Returns a connections.
*/
@@ -190,7 +190,6 @@ gboolean ibus_service_emit_signal (IBusService *service,
* ibus_service_class_add_interfaces:
* @klass: An IBusServiceClass.
* @xml_data: The introspection xml data.
- * @error: Error.
*
* Set the interface introspection information with the service class.
*/
--
1.7.5.4

View File

@ -1,255 +0,0 @@
From cf1fa1bc72d6d7ad71e928df1c3aa938069cfd9e Mon Sep 17 00:00:00 2001
From: fujiwarat <takao.fujiwara1@gmail.com>
Date: Wed, 29 Jun 2011 16:50:51 +0900
Subject: [PATCH] Add symbol property in IBusEngineDesc.
---
ibus/enginedesc.py | 15 +++++++++------
src/ibusenginedesc.c | 40 ++++++++++++++++++++++++++++++++++++++++
src/ibusenginedesc.h | 10 ++++++++++
3 files changed, 59 insertions(+), 6 deletions(-)
diff --git a/ibus/enginedesc.py b/ibus/enginedesc.py
index e8a8982..3ca7f24 100644
--- a/ibus/enginedesc.py
+++ b/ibus/enginedesc.py
@@ -31,7 +31,7 @@ from serializable import *
class EngineDesc(Serializable):
__gtype_name__ = "PYIBusEngineDesc"
__NAME__ = "IBusEngineDesc"
- def __init__(self, name="", longname="", description="", language="", license="", author="", icon="", layout="", hotkeys="", rank=0):
+ def __init__(self, name="", longname="", description="", language="", license="", author="", icon="", layout="", hotkeys="", rank=0, symbol=""):
super(EngineDesc, self).__init__()
self.__name = name
self.__longname = longname
@@ -43,6 +43,7 @@ class EngineDesc(Serializable):
self.__layout = layout
self.__rank = rank
self.__hotkeys = hotkeys
+ self.__symbol = symbol
def get_name(self):
return self.__name
@@ -74,6 +75,9 @@ class EngineDesc(Serializable):
def get_hotkeys(self):
return self.__hotkeys
+ def get_symbol(self):
+ return self.__symbol
+
name = property(get_name)
longname = property(get_longname)
description = property(get_description)
@@ -84,6 +88,7 @@ class EngineDesc(Serializable):
layout = property(get_layout)
rank = property(get_rank)
hotkeys = property(get_hotkeys)
+ symbol = property(get_symbol)
def serialize(self, struct):
super(EngineDesc, self).serialize(struct)
@@ -97,8 +102,7 @@ class EngineDesc(Serializable):
struct.append(dbus.String(self.__layout))
struct.append(dbus.UInt32(self.__rank))
struct.append(dbus.String(self.__hotkeys))
- # New properties of EngineDesc will use dict for serialize
- struct.append(dbus.Array({}, signature=None))
+ struct.append(dbus.String(self.__symbol))
def deserialize(self, struct):
super(EngineDesc, self).deserialize(struct)
@@ -112,11 +116,10 @@ class EngineDesc(Serializable):
self.__layout = struct.pop(0)
self.__rank = struct.pop(0)
self.__hotkeys = struct.pop(0)
- # New properties of EngineDesc will use dict for serialize
- #value = struct.pop(0)
+ self.__symbol = struct.pop(0)
def test():
- engine = EngineDesc("Hello", "", "", "", "", "", "", "", "")
+ engine = EngineDesc("Hello", "", "", "", "", "", "", "", "", 0, "")
value = serialize_object(engine)
engine = deserialize_object(value)
diff --git a/src/ibusenginedesc.c b/src/ibusenginedesc.c
index ca5ef60..fa3a768 100644
--- a/src/ibusenginedesc.c
+++ b/src/ibusenginedesc.c
@@ -39,6 +39,7 @@ enum {
PROP_LAYOUT,
PROP_RANK,
PROP_HOTKEYS,
+ PROP_SYMBOL,
};
@@ -54,6 +55,7 @@ struct _IBusEngineDescPrivate {
gchar *layout;
guint rank;
gchar *hotkeys;
+ gchar *symbol;
};
#define IBUS_ENGINE_DESC_GET_PRIVATE(o) \
@@ -232,6 +234,19 @@ ibus_engine_desc_class_init (IBusEngineDescClass *class)
"The hotkeys of engine description",
"",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ /**
+ * IBusEngineDesc:symbol:
+ *
+ * The symbol chars of engine description instead of icon image
+ */
+ g_object_class_install_property (gobject_class,
+ PROP_SYMBOL,
+ g_param_spec_string ("symbol",
+ "description symbol",
+ "The icon symbol chars of engine description",
+ "",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
}
static void
@@ -249,6 +264,7 @@ ibus_engine_desc_init (IBusEngineDesc *desc)
desc->priv->layout = NULL;
desc->priv->rank = 0;
desc->priv->hotkeys = NULL;
+ desc->priv->symbol = NULL;
}
static void
@@ -263,6 +279,7 @@ ibus_engine_desc_destroy (IBusEngineDesc *desc)
g_free (desc->priv->icon);
g_free (desc->priv->layout);
g_free (desc->priv->hotkeys);
+ g_free (desc->priv->symbol);
IBUS_OBJECT_CLASS (ibus_engine_desc_parent_class)->destroy (IBUS_OBJECT (desc));
}
@@ -313,6 +330,10 @@ ibus_engine_desc_set_property (IBusEngineDesc *desc,
g_assert (desc->priv->hotkeys == NULL);
desc->priv->hotkeys = g_value_dup_string (value);
break;
+ case PROP_SYMBOL:
+ g_assert (desc->priv->symbol == NULL);
+ desc->priv->symbol = g_value_dup_string (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (desc, prop_id, pspec);
}
@@ -355,6 +376,9 @@ ibus_engine_desc_get_property (IBusEngineDesc *desc,
case PROP_HOTKEYS:
g_value_set_string (value, ibus_engine_desc_get_hotkeys (desc));
break;
+ case PROP_SYMBOL:
+ g_value_set_string (value, ibus_engine_desc_get_symbol (desc));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (desc, prop_id, pspec);
}
@@ -371,6 +395,10 @@ ibus_engine_desc_serialize (IBusEngineDesc *desc,
/* End dict iter */
#define NOTNULL(s) ((s) != NULL ? (s) : "")
+ /* If you will add a new property, you can append it at the end and
+ * you should not change the serialized order of name, longname,
+ * description, ... because the order is also used in other applications
+ * likes ibus-qt. */
g_variant_builder_add (builder, "s", NOTNULL (desc->priv->name));
g_variant_builder_add (builder, "s", NOTNULL (desc->priv->longname));
g_variant_builder_add (builder, "s", NOTNULL (desc->priv->description));
@@ -381,7 +409,9 @@ ibus_engine_desc_serialize (IBusEngineDesc *desc,
g_variant_builder_add (builder, "s", NOTNULL (desc->priv->layout));
g_variant_builder_add (builder, "u", desc->priv->rank);
g_variant_builder_add (builder, "s", NOTNULL (desc->priv->hotkeys));
+ g_variant_builder_add (builder, "s", NOTNULL (desc->priv->symbol));
#undef NOTNULL
+
return TRUE;
}
@@ -394,6 +424,10 @@ ibus_engine_desc_deserialize (IBusEngineDesc *desc,
retval = IBUS_SERIALIZABLE_CLASS (ibus_engine_desc_parent_class)->deserialize ((IBusSerializable *)desc, variant);
g_return_val_if_fail (retval, 0);
+ /* If you will add a new property, you can append it at the end and
+ * you should not change the serialized order of name, longname,
+ * description, ... because the order is also used in other applications
+ * likes ibus-qt. */
g_variant_get_child (variant, retval++, "s", &desc->priv->name);
g_variant_get_child (variant, retval++, "s", &desc->priv->longname);
g_variant_get_child (variant, retval++, "s", &desc->priv->description);
@@ -404,6 +438,7 @@ ibus_engine_desc_deserialize (IBusEngineDesc *desc,
g_variant_get_child (variant, retval++, "s", &desc->priv->layout);
g_variant_get_child (variant, retval++, "u", &desc->priv->rank);
g_variant_get_child (variant, retval++, "s", &desc->priv->hotkeys);
+ g_variant_get_child (variant, retval++, "s", &desc->priv->symbol);
return retval;
}
@@ -428,6 +463,7 @@ ibus_engine_desc_copy (IBusEngineDesc *dest,
dest->priv->layout = g_strdup (src->priv->layout);
dest->priv->rank = src->priv->rank;
dest->priv->hotkeys = g_strdup (src->priv->hotkeys);
+ dest->priv->symbol = g_strdup (src->priv->symbol);
return TRUE;
}
@@ -465,6 +501,7 @@ ibus_engine_desc_output (IBusEngineDesc *desc,
OUTPUT_ENTRY_1(icon);
OUTPUT_ENTRY_1(layout);
OUTPUT_ENTRY_1(hotkeys);
+ OUTPUT_ENTRY_1(symbol);
g_string_append_indent (output, indent + 1);
g_string_append_printf (output, "<rank>%u</rank>\n", desc->priv->rank);
#undef OUTPUT_ENTRY
@@ -498,6 +535,7 @@ ibus_engine_desc_parse_xml_node (IBusEngineDesc *desc,
PARSE_ENTRY_1(icon);
PARSE_ENTRY_1(layout);
PARSE_ENTRY_1(hotkeys);
+ PARSE_ENTRY_1(symbol);
#undef PARSE_ENTRY
#undef PARSE_ENTRY_1
if (g_strcmp0 (sub_node->name , "rank") == 0) {
@@ -526,6 +564,7 @@ IBUS_ENGINE_DESC_GET_PROPERTY (icon, const gchar *)
IBUS_ENGINE_DESC_GET_PROPERTY (layout, const gchar *)
IBUS_ENGINE_DESC_GET_PROPERTY (rank, guint)
IBUS_ENGINE_DESC_GET_PROPERTY (hotkeys, const gchar *)
+IBUS_ENGINE_DESC_GET_PROPERTY (symbol, const gchar *)
#undef IBUS_ENGINE_DESC_GET_PROPERTY
IBusEngineDesc *
@@ -573,6 +612,7 @@ ibus_engine_desc_new_varargs (const gchar *first_property_name, ...)
g_assert (desc->priv->icon);
g_assert (desc->priv->layout);
g_assert (desc->priv->hotkeys);
+ g_assert (desc->priv->symbol);
return desc;
}
diff --git a/src/ibusenginedesc.h b/src/ibusenginedesc.h
index 9718b15..76a7adc 100644
--- a/src/ibusenginedesc.h
+++ b/src/ibusenginedesc.h
@@ -249,6 +249,16 @@ guint ibus_engine_desc_get_rank (IBusEngineDesc *info);
const gchar *ibus_engine_desc_get_hotkeys (IBusEngineDesc *info);
/**
+ * ibus_engine_desc_get_symbol:
+ * @info: An IBusEngineDesc
+ * @returns: symbol property in IBusEngineDesc
+ *
+ * Return the symbol property in IBusEngineDesc. It should not be freed.
+ */
+const gchar *ibus_engine_desc_get_symbol
+ (IBusEngineDesc *info);
+
+/**
* ibus_engine_desc_output:
* @info: An IBusEngineDesc
* @output: XML-formatted Input method engine description.
--
1.7.5.4

View File

@ -21,8 +21,8 @@
%define gnome_icon_theme_legacy_version 2.91.6 %define gnome_icon_theme_legacy_version 2.91.6
Name: ibus Name: ibus
Version: 1.3.99.20110419 Version: 1.3.99.20110817
Release: 18%{?dist} Release: 1%{?dist}
Summary: Intelligent Input Bus for Linux OS Summary: Intelligent Input Bus for Linux OS
License: LGPLv2+ License: LGPLv2+
Group: System Environment/Libraries Group: System Environment/Libraries
@ -32,14 +32,11 @@ Source1: xinput-ibus
%if %have_gjsfile %if %have_gjsfile
Source2: http://fujiwara.fedorapeople.org/ibus/gnome-shell/ibus-gjs-%{ibus_gjs_version}.tar.gz Source2: http://fujiwara.fedorapeople.org/ibus/gnome-shell/ibus-gjs-%{ibus_gjs_version}.tar.gz
%endif %endif
Source3: https://www.transifex.net/projects/p/ibus/resource/master/l/da/download/ibus_master_da.po
Patch0: ibus-HEAD.patch Patch0: ibus-HEAD.patch
Patch1: ibus-530711-preload-sys.patch Patch1: ibus-530711-preload-sys.patch
Patch2: ibus-xx-icon-symbol.patch Patch2: ibus-541492-xkb.patch
Patch3: ibus-xx-factory-signal.patch Patch3: ibus-xx-bridge-hotkey.patch
Patch4: ibus-541492-xkb.patch Patch4: ibus-xx-setup-frequent-lang.patch
Patch5: ibus-xx-bridge-hotkey.patch
Patch6: ibus-xx-setup-frequent-lang.patch
# Workaround for oxygen-gtk icon theme until bug 699103 is fixed. # Workaround for oxygen-gtk icon theme until bug 699103 is fixed.
Patch91: ibus-711632-fedora-fallback-icon.patch Patch91: ibus-711632-fedora-fallback-icon.patch
@ -173,18 +170,15 @@ The ibus-devel-docs package contains developer documentation for ibus
%if %have_gjsfile %if %have_gjsfile
zcat %SOURCE2 | tar xf - zcat %SOURCE2 | tar xf -
%endif %endif
cp %SOURCE3 po/da.po
%patch0 -p1 %patch0 -p1
cp client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c cp client/gtk2/ibusimcontext.c client/gtk3/ibusimcontext.c
%patch1 -p1 -b .preload-sys %patch1 -p1 -b .preload-sys
%patch2 -p1 -b .icon-symbol
%patch3 -p1 -b .factory
%if %have_libxkbfile %if %have_libxkbfile
%patch4 -p1 -b .xkb %patch2 -p1 -b .xkb
%endif %endif
mv data/ibus.schemas.in data/ibus.schemas.in.in mv data/ibus.schemas.in data/ibus.schemas.in.in
%patch5 -p1 -b .bridge-key %patch3 -p1 -b .bridge-key
%patch6 -p1 -b .setup-frequent-lang %patch4 -p1 -b .setup-frequent-lang
%patch91 -p1 -b .fallback-icon %patch91 -p1 -b .fallback-icon
@ -371,13 +365,12 @@ fi
%{_datadir}/gtk-doc/html/* %{_datadir}/gtk-doc/html/*
%changelog %changelog
* Tue Aug 23 2011 Takao Fujiwara <tfujiwar@redhat.com> - 1.3.99.20110419-18 * Thu Sep 01 2011 Takao Fujiwara <tfujiwar@redhat.com> - 1.3.99.20110817-1
- Fixed Bug 700472 Use a symbol icon instead of an image icon.
- Updated ibus-HEAD.patch for upstream. - Updated ibus-HEAD.patch for upstream.
- Removed ibus-435880-surrounding-text.patch as upstream. - Removed ibus-435880-surrounding-text.patch as upstream.
- Added ibus-711632-fedora-fallback-icon.patch - Added ibus-711632-fedora-fallback-icon.patch
Fixed SEGV with no icon in oxygen-gtk icon theme. Fixed SEGV with no icon in oxygen-gtk icon theme.
- Added ibus-xx-icon-symbol.patch
Fixed Bug 700472 Use a symbol icon instead of an image icon.
- Added ibus-xx-bridge-hotkey.patch - Added ibus-xx-bridge-hotkey.patch
Triaged Bug 707370 SetEngine timeout Triaged Bug 707370 SetEngine timeout
Fixed Bug 731610 Keep IM state when text input focus changes Fixed Bug 731610 Keep IM state when text input focus changes

View File

@ -1,4 +1,3 @@
d4f2729fecb92ae6b41f26c770b1a772 ibus-1.3.99.20110419.tar.gz 52614e55e966b7c7101a19b276c51f10 ibus-1.3.99.20110817.tar.gz
c4df79742fb0de4d2794c6800a493d20 ibus-gjs-3.0.2.20110823.tar.gz c4df79742fb0de4d2794c6800a493d20 ibus-gjs-3.0.2.20110823.tar.gz
e97be8e1d0b22531b5000d4a6349dbbe ibus-gjs-3.1.4.20110823.tar.gz e97be8e1d0b22531b5000d4a6349dbbe ibus-gjs-3.1.4.20110823.tar.gz
698c90edf0f037488e1aa969804e891f ibus_master_da.po