2013-07-30 04:44:02 +00:00
|
|
|
From 9ef836117508d9c0c938f57a5ffa5ffca7eb2e7b Mon Sep 17 00:00:00 2001
|
|
|
|
From: Peng Wu <alexepico@gmail.com>
|
|
|
|
Date: Fri, 26 Jul 2013 13:03:44 +0800
|
2013-10-14 03:30:09 +00:00
|
|
|
Subject: [PATCH 1/4] Update the symbol of the ibus indicator
|
2013-07-30 04:44:02 +00:00
|
|
|
|
|
|
|
---
|
|
|
|
src/PYPinyinProperties.cc | 14 +++++++++++++-
|
|
|
|
src/PYProperty.h | 10 ++++++++++
|
|
|
|
2 files changed, 23 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
diff --git a/src/PYPinyinProperties.cc b/src/PYPinyinProperties.cc
|
|
|
|
index 0a77163..66205de 100644
|
|
|
|
--- a/src/PYPinyinProperties.cc
|
|
|
|
+++ b/src/PYPinyinProperties.cc
|
|
|
|
@@ -26,6 +26,7 @@
|
|
|
|
namespace PY {
|
|
|
|
|
|
|
|
#define _(text) (dgettext (GETTEXT_PACKAGE, text))
|
|
|
|
+#define N_(text) text
|
|
|
|
|
|
|
|
PinyinProperties::PinyinProperties (Config & config)
|
|
|
|
: m_config (config),
|
|
|
|
@@ -33,7 +34,7 @@ PinyinProperties::PinyinProperties (Config & config)
|
|
|
|
m_mode_full (m_config.initFull ()),
|
|
|
|
m_mode_full_punct (m_config.initFullPunct ()),
|
|
|
|
m_mode_simp (m_config.initSimpChinese ()),
|
|
|
|
- m_prop_chinese ("mode.chinese",
|
|
|
|
+ m_prop_chinese ("InputMode",
|
|
|
|
PROP_TYPE_NORMAL,
|
|
|
|
StaticText (m_mode_chinese ?
|
|
|
|
_("Chinese") :
|
|
|
|
@@ -83,6 +84,11 @@ PinyinProperties::PinyinProperties (Config & config)
|
|
|
|
"ibus-setup",
|
|
|
|
StaticText (_("Preferences")))
|
|
|
|
{
|
|
|
|
+ if (m_mode_chinese)
|
|
|
|
+ m_prop_chinese.setSymbol(N_("中"));
|
|
|
|
+ else
|
|
|
|
+ m_prop_chinese.setSymbol(N_("英"));
|
|
|
|
+
|
|
|
|
m_props.append (m_prop_chinese);
|
|
|
|
m_props.append (m_prop_full);
|
|
|
|
m_props.append (m_prop_full_punct);
|
|
|
|
@@ -98,6 +104,12 @@ PinyinProperties::toggleModeChinese (void)
|
|
|
|
m_prop_chinese.setLabel (m_mode_chinese ?
|
|
|
|
_("Chinese") :
|
|
|
|
_("English"));
|
|
|
|
+
|
|
|
|
+ if (m_mode_chinese)
|
|
|
|
+ m_prop_chinese.setSymbol(N_("中"));
|
|
|
|
+ else
|
|
|
|
+ m_prop_chinese.setSymbol(N_("英"));
|
|
|
|
+
|
|
|
|
m_prop_chinese.setIcon (m_mode_chinese ?
|
|
|
|
PKGDATADIR"/icons/chinese.svg" :
|
|
|
|
PKGDATADIR"/icons/english.svg");
|
|
|
|
diff --git a/src/PYProperty.h b/src/PYProperty.h
|
|
|
|
index 70c0808..13b9340 100644
|
|
|
|
--- a/src/PYProperty.h
|
|
|
|
+++ b/src/PYProperty.h
|
|
|
|
@@ -55,6 +55,16 @@ public:
|
|
|
|
ibus_property_set_icon (get<IBusProperty> (), icon);
|
|
|
|
}
|
|
|
|
|
|
|
|
+ void setSymbol (IBusText *text)
|
|
|
|
+ {
|
|
|
|
+ ibus_property_set_symbol (get<IBusProperty> (), text);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ void setSymbol (const gchar *text)
|
|
|
|
+ {
|
|
|
|
+ setSymbol (Text (text));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
void setSensitive (gboolean sensitive)
|
|
|
|
{
|
|
|
|
ibus_property_set_sensitive (get<IBusProperty> (), sensitive);
|
|
|
|
--
|
|
|
|
1.8.3.1
|
|
|
|
|
2013-08-01 02:35:18 +00:00
|
|
|
|
|
|
|
From c42d0a870697e95301deabe0bcb770a68649c81d Mon Sep 17 00:00:00 2001
|
|
|
|
From: Peng Wu <alexepico@gmail.com>
|
|
|
|
Date: Wed, 31 Jul 2013 10:53:14 +0800
|
2013-10-14 03:30:09 +00:00
|
|
|
Subject: [PATCH 2/4] fixes lua 5.2 compile
|
2013-08-01 02:35:18 +00:00
|
|
|
|
|
|
|
---
|
|
|
|
lua/lua-plugin-init.c | 8 ++++++++
|
|
|
|
lua/lua-plugin.c | 9 +++++++++
|
|
|
|
2 files changed, 17 insertions(+)
|
|
|
|
|
|
|
|
diff --git a/lua/lua-plugin-init.c b/lua/lua-plugin-init.c
|
|
|
|
index b607b2a..8e95286 100644
|
|
|
|
--- a/lua/lua-plugin-init.c
|
|
|
|
+++ b/lua/lua-plugin-init.c
|
|
|
|
@@ -26,6 +26,14 @@
|
|
|
|
|
|
|
|
#include "lua-plugin.h"
|
|
|
|
|
|
|
|
+#if LUA_VERSION_NUM >= 502
|
|
|
|
+/* ugly hack for lua 5.2 */
|
|
|
|
+
|
|
|
|
+#define lua_objlen lua_rawlen
|
|
|
|
+
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+
|
|
|
|
static const luaL_Reg lualibs[] = {
|
|
|
|
{"", luaopen_base},
|
|
|
|
{LUA_TABLIBNAME, luaopen_table},
|
|
|
|
diff --git a/lua/lua-plugin.c b/lua/lua-plugin.c
|
|
|
|
index 9fd36fb..5ccb837 100644
|
|
|
|
--- a/lua/lua-plugin.c
|
|
|
|
+++ b/lua/lua-plugin.c
|
|
|
|
@@ -25,6 +25,15 @@
|
|
|
|
|
|
|
|
#include "lua-plugin.h"
|
|
|
|
|
|
|
|
+#if LUA_VERSION_NUM >= 502
|
|
|
|
+/* ugly hack for lua 5.2 */
|
|
|
|
+
|
|
|
|
+#define lua_open luaL_newstate
|
|
|
|
+
|
|
|
|
+#define lua_objlen lua_rawlen
|
|
|
|
+
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
#define IBUS_ENGINE_PLUGIN_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), IBUS_TYPE_ENGINE_PLUGIN, IBusEnginePluginPrivate))
|
|
|
|
|
|
|
|
struct _IBusEnginePluginPrivate{
|
|
|
|
--
|
|
|
|
1.8.3.1
|
|
|
|
|
2013-10-14 03:30:09 +00:00
|
|
|
|
|
|
|
From cf8ab7d8e76ed70c182c7588cfe1ebbce8e5174b Mon Sep 17 00:00:00 2001
|
|
|
|
From: Peng Wu <alexepico@gmail.com>
|
|
|
|
Date: Tue, 8 Oct 2013 10:45:35 +0800
|
|
|
|
Subject: [PATCH 3/4] remove pyxdg depends
|
|
|
|
|
|
|
|
---
|
|
|
|
setup/main2.py | 3 +--
|
|
|
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/setup/main2.py b/setup/main2.py
|
|
|
|
index 2d7d412..f7dfcce 100644
|
|
|
|
--- a/setup/main2.py
|
|
|
|
+++ b/setup/main2.py
|
|
|
|
@@ -30,7 +30,6 @@ import sys
|
|
|
|
from gi.repository import GLib
|
|
|
|
from gi.repository import Gtk
|
|
|
|
from gi.repository import IBus
|
|
|
|
-from xdg import BaseDirectory
|
|
|
|
|
|
|
|
import config
|
|
|
|
from dicttreeview import DictionaryTreeView
|
|
|
|
@@ -373,7 +372,7 @@ class PreferencesDialog:
|
|
|
|
|
|
|
|
def __edit_lua_cb(self, widget):
|
|
|
|
import shutil
|
|
|
|
- path = os.path.join(BaseDirectory.xdg_config_home, "ibus", "libpinyin")
|
|
|
|
+ path = os.path.join(GLib.get_user_config_dir(), "ibus", "libpinyin")
|
|
|
|
os.path.exists(path) or os.makedirs(path)
|
|
|
|
path = os.path.join(path, "user.lua")
|
|
|
|
if not os.path.exists(path):
|
|
|
|
--
|
|
|
|
1.8.3.1
|
|
|
|
|
|
|
|
|
|
|
|
From 69f50424ba5be49c4b31543df7bd7970361d4753 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Peng Wu <alexepico@gmail.com>
|
|
|
|
Date: Thu, 10 Oct 2013 15:48:29 +0800
|
|
|
|
Subject: [PATCH 4/4] support setContentType method
|
|
|
|
|
|
|
|
---
|
|
|
|
src/PYEngine.cc | 21 +++++++++++++++++++++
|
|
|
|
src/PYEngine.h | 3 +++
|
|
|
|
src/PYPBopomofoEngine.cc | 22 ++++++++++++++++++++++
|
|
|
|
src/PYPBopomofoEngine.h | 7 +++++++
|
|
|
|
src/PYPPinyinEngine.cc | 22 ++++++++++++++++++++++
|
|
|
|
src/PYPPinyinEngine.h | 7 +++++++
|
|
|
|
6 files changed, 82 insertions(+)
|
|
|
|
|
|
|
|
diff --git a/src/PYEngine.cc b/src/PYEngine.cc
|
|
|
|
index 870c3ab..487ad6e 100644
|
|
|
|
--- a/src/PYEngine.cc
|
|
|
|
+++ b/src/PYEngine.cc
|
|
|
|
@@ -67,6 +67,12 @@ static gboolean ibus_pinyin_engine_process_key_event
|
|
|
|
guint modifiers);
|
|
|
|
static void ibus_pinyin_engine_focus_in (IBusEngine *engine);
|
|
|
|
static void ibus_pinyin_engine_focus_out (IBusEngine *engine);
|
|
|
|
+#if IBUS_CHECK_VERSION (1, 5, 4)
|
|
|
|
+static void ibus_pinyin_engine_set_content_type
|
|
|
|
+ (IBusEngine *engine,
|
|
|
|
+ guint purpose,
|
|
|
|
+ guint hints);
|
|
|
|
+#endif
|
|
|
|
static void ibus_pinyin_engine_reset (IBusEngine *engine);
|
|
|
|
static void ibus_pinyin_engine_enable (IBusEngine *engine);
|
|
|
|
static void ibus_pinyin_engine_disable (IBusEngine *engine);
|
|
|
|
@@ -123,6 +129,10 @@ ibus_pinyin_engine_class_init (IBusPinyinEngineClass *klass)
|
|
|
|
engine_class->focus_in = ibus_pinyin_engine_focus_in;
|
|
|
|
engine_class->focus_out = ibus_pinyin_engine_focus_out;
|
|
|
|
|
|
|
|
+#if IBUS_CHECK_VERSION (1, 5, 4)
|
|
|
|
+ engine_class->set_content_type = ibus_pinyin_engine_set_content_type;
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
engine_class->page_up = ibus_pinyin_engine_page_up;
|
|
|
|
engine_class->page_down = ibus_pinyin_engine_page_down;
|
|
|
|
|
|
|
|
@@ -189,6 +199,17 @@ ibus_pinyin_engine_process_key_event (IBusEngine *engine,
|
|
|
|
return pinyin->engine->processKeyEvent (keyval, keycode, modifiers);
|
|
|
|
}
|
|
|
|
|
|
|
|
+#if IBUS_CHECK_VERSION (1, 5, 4)
|
|
|
|
+static void
|
|
|
|
+ibus_pinyin_engine_set_content_type (IBusEngine *engine,
|
|
|
|
+ guint purpose,
|
|
|
|
+ guint hints)
|
|
|
|
+{
|
|
|
|
+ IBusPinyinEngine *pinyin = (IBusPinyinEngine *) engine;
|
|
|
|
+ return pinyin->engine->setContentType (purpose, hints);
|
|
|
|
+}
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
static void
|
|
|
|
ibus_pinyin_engine_property_activate (IBusEngine *engine,
|
|
|
|
const gchar *prop_name,
|
|
|
|
diff --git a/src/PYEngine.h b/src/PYEngine.h
|
|
|
|
index c5b0d9d..0866146 100644
|
|
|
|
--- a/src/PYEngine.h
|
|
|
|
+++ b/src/PYEngine.h
|
|
|
|
@@ -44,6 +44,9 @@ public:
|
|
|
|
virtual gboolean processKeyEvent (guint keyval, guint keycode, guint modifiers) = 0;
|
|
|
|
virtual void focusIn (void) = 0;
|
|
|
|
virtual void focusOut (void) = 0;
|
|
|
|
+#if IBUS_CHECK_VERSION (1, 5, 4)
|
|
|
|
+ virtual void setContentType (guint purpose, guint hints) = 0;
|
|
|
|
+#endif
|
|
|
|
virtual void reset (void) = 0;
|
|
|
|
virtual void enable (void) = 0;
|
|
|
|
virtual void disable (void) = 0;
|
|
|
|
diff --git a/src/PYPBopomofoEngine.cc b/src/PYPBopomofoEngine.cc
|
|
|
|
index 9be5ad2..9d2666f 100644
|
|
|
|
--- a/src/PYPBopomofoEngine.cc
|
|
|
|
+++ b/src/PYPBopomofoEngine.cc
|
|
|
|
@@ -40,6 +40,10 @@ LibPinyinBopomofoEngine::LibPinyinBopomofoEngine (IBusEngine *engine)
|
|
|
|
{
|
|
|
|
gint i;
|
|
|
|
|
|
|
|
+#if IBUS_CHECK_VERSION (1, 5, 4)
|
|
|
|
+ m_input_purpose = IBUS_INPUT_PURPOSE_FREE_FORM;
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
/* create editors */
|
|
|
|
m_editors[MODE_INIT].reset (new LibPinyinBopomofoEditor (m_props, LibPinyinBopomofoConfig::instance ()));
|
|
|
|
m_editors[MODE_PUNCT].reset (new PunctEditor (m_props, LibPinyinBopomofoConfig::instance ()));
|
|
|
|
@@ -64,6 +68,11 @@ LibPinyinBopomofoEngine::processKeyEvent (guint keyval, guint keycode, guint mod
|
|
|
|
{
|
|
|
|
gboolean retval = FALSE;
|
|
|
|
|
|
|
|
+#if IBUS_CHECK_VERSION (1, 5, 4)
|
|
|
|
+ if (IBUS_INPUT_PURPOSE_PASSWORD == m_input_purpose)
|
|
|
|
+ return retval;
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
/* check Shift or Ctrl + Release hotkey,
|
|
|
|
* and then ignore other Release key event */
|
|
|
|
if (modifiers & IBUS_RELEASE_MASK) {
|
|
|
|
@@ -140,9 +149,22 @@ LibPinyinBopomofoEngine::focusIn (void)
|
|
|
|
void
|
|
|
|
LibPinyinBopomofoEngine::focusOut (void)
|
|
|
|
{
|
|
|
|
+
|
|
|
|
+#if IBUS_CHECK_VERSION (1, 5, 4)
|
|
|
|
+ m_input_purpose = IBUS_INPUT_PURPOSE_FREE_FORM;
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
reset ();
|
|
|
|
}
|
|
|
|
|
|
|
|
+#if IBUS_CHECK_VERSION(1, 5, 4)
|
|
|
|
+void
|
|
|
|
+LibPinyinBopomofoEngine::setContentType (guint purpose, guint hints)
|
|
|
|
+{
|
|
|
|
+ m_input_purpose = (IBusInputPurpose) purpose;
|
|
|
|
+}
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
void
|
|
|
|
LibPinyinBopomofoEngine::reset (void)
|
|
|
|
{
|
|
|
|
diff --git a/src/PYPBopomofoEngine.h b/src/PYPBopomofoEngine.h
|
|
|
|
index fc64842..85d1ff6 100644
|
|
|
|
--- a/src/PYPBopomofoEngine.h
|
|
|
|
+++ b/src/PYPBopomofoEngine.h
|
|
|
|
@@ -37,6 +37,9 @@ public:
|
|
|
|
gboolean processKeyEvent (guint keyval, guint keycode, guint modifiers);
|
|
|
|
void focusIn (void);
|
|
|
|
void focusOut (void);
|
|
|
|
+#if IBUS_CHECK_VERSION (1, 5, 4)
|
|
|
|
+ void setContentType (guint purpose, guint hints);
|
|
|
|
+#endif
|
|
|
|
void reset (void);
|
|
|
|
void enable (void);
|
|
|
|
void disable (void);
|
|
|
|
@@ -60,6 +63,10 @@ private:
|
|
|
|
private:
|
|
|
|
PinyinProperties m_props;
|
|
|
|
|
|
|
|
+#if IBUS_CHECK_VERSION (1, 5, 4)
|
|
|
|
+ IBusInputPurpose m_input_purpose;
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
guint m_prev_pressed_key;
|
|
|
|
|
|
|
|
enum {
|
|
|
|
diff --git a/src/PYPPinyinEngine.cc b/src/PYPPinyinEngine.cc
|
|
|
|
index ce74be1..d28dc6f 100644
|
|
|
|
--- a/src/PYPPinyinEngine.cc
|
|
|
|
+++ b/src/PYPPinyinEngine.cc
|
|
|
|
@@ -50,6 +50,10 @@ LibPinyinPinyinEngine::LibPinyinPinyinEngine (IBusEngine *engine)
|
|
|
|
{
|
|
|
|
gint i;
|
|
|
|
|
|
|
|
+#if IBUS_CHECK_VERSION (1, 5, 4)
|
|
|
|
+ m_input_purpose = IBUS_INPUT_PURPOSE_FREE_FORM;
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
m_double_pinyin = LibPinyinPinyinConfig::instance ().doublePinyin ();
|
|
|
|
|
|
|
|
if (m_double_pinyin)
|
|
|
|
@@ -100,6 +104,11 @@ LibPinyinPinyinEngine::processKeyEvent (guint keyval, guint keycode, guint modif
|
|
|
|
{
|
|
|
|
gboolean retval = FALSE;
|
|
|
|
|
|
|
|
+#if IBUS_CHECK_VERSION (1, 5, 4)
|
|
|
|
+ if (IBUS_INPUT_PURPOSE_PASSWORD == m_input_purpose)
|
|
|
|
+ return retval;
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
/* check Shift or Ctrl + Release hotkey,
|
|
|
|
* and then ignore other Release key event */
|
|
|
|
if (modifiers & IBUS_RELEASE_MASK) {
|
|
|
|
@@ -222,9 +231,22 @@ LibPinyinPinyinEngine::focusIn (void)
|
|
|
|
void
|
|
|
|
LibPinyinPinyinEngine::focusOut (void)
|
|
|
|
{
|
|
|
|
+
|
|
|
|
+#if IBUS_CHECK_VERSION (1, 5, 4)
|
|
|
|
+ m_input_purpose = IBUS_INPUT_PURPOSE_FREE_FORM;
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
reset ();
|
|
|
|
}
|
|
|
|
|
|
|
|
+#if IBUS_CHECK_VERSION(1, 5, 4)
|
|
|
|
+void
|
|
|
|
+LibPinyinPinyinEngine::setContentType (guint purpose, guint hints)
|
|
|
|
+{
|
|
|
|
+ m_input_purpose = (IBusInputPurpose) purpose;
|
|
|
|
+}
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
void
|
|
|
|
LibPinyinPinyinEngine::reset (void)
|
|
|
|
{
|
|
|
|
diff --git a/src/PYPPinyinEngine.h b/src/PYPPinyinEngine.h
|
|
|
|
index a7e0e12..9954569 100644
|
|
|
|
--- a/src/PYPPinyinEngine.h
|
|
|
|
+++ b/src/PYPPinyinEngine.h
|
|
|
|
@@ -35,6 +35,9 @@ public:
|
|
|
|
gboolean processKeyEvent (guint keyval, guint keycode, guint modifiers);
|
|
|
|
void focusIn (void);
|
|
|
|
void focusOut (void);
|
|
|
|
+#if IBUS_CHECK_VERSION (1, 5, 4)
|
|
|
|
+ void setContentType (guint purpose, guint hints);
|
|
|
|
+#endif
|
|
|
|
void reset (void);
|
|
|
|
void enable (void);
|
|
|
|
void disable (void);
|
|
|
|
@@ -56,6 +59,10 @@ private:
|
|
|
|
private:
|
|
|
|
PinyinProperties m_props;
|
|
|
|
|
|
|
|
+#if IBUS_CHECK_VERSION (1, 5, 4)
|
|
|
|
+ IBusInputPurpose m_input_purpose;
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
guint m_prev_pressed_key;
|
|
|
|
|
|
|
|
enum {
|
|
|
|
--
|
|
|
|
1.8.3.1
|
|
|
|
|