summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPeng Huang <shawn.p.huang@gmail.com>2010-05-24 08:48:00 +0800
committerPeng Huang <shawn.p.huang@gmail.com>2010-05-24 08:49:36 +0800
commite034dcfa68d6652d0a85d7a476db3faf97a70076 (patch)
treea9ae7b387eaf18f83f75f3181471b034e7ee63de /src
parent19bb8989b043c292ab22523733bac2ef127f80d2 (diff)
downloadibus-libpinyin-e034dcfa68d6652d0a85d7a476db3faf97a70076.tar.gz
ibus-libpinyin-e034dcfa68d6652d0a85d7a476db3faf97a70076.tar.xz
ibus-libpinyin-e034dcfa68d6652d0a85d7a476db3faf97a70076.zip
Refine modifiers test code for Ctrl + Shift + F
Diffstat (limited to 'src')
-rw-r--r--src/BopomofoEngine.cc6
-rw-r--r--src/PinyinEngine.cc6
-rw-r--r--src/Util.h17
3 files changed, 21 insertions, 8 deletions
diff --git a/src/BopomofoEngine.cc b/src/BopomofoEngine.cc
index 5a13e69..2d6a41c 100644
--- a/src/BopomofoEngine.cc
+++ b/src/BopomofoEngine.cc
@@ -89,11 +89,9 @@ BopomofoEngine::processKeyEvent (guint keyval, guint keycode, guint modifiers)
}
/* Toggle simp/trad Chinese Mode when hotkey Ctrl + Shift + F pressed */
- if (keyval == IBUS_F &&
- ((modifiers & IBUS_SHIFT_MASK != 0) &&
- (modifiers & IBUS_CONTROL_MASK != 0))) {
+ if (keyval == IBUS_F && SCMSHM_TEST (modifiers, (IBUS_SHIFT_MASK | IBUS_CONTROL_MASK))) {
m_props.toggleModeSimp();
- m_prev_pressed_key = IBUS_VoidSymbol;
+ m_prev_pressed_key = IBUS_F;
return TRUE;
}
diff --git a/src/PinyinEngine.cc b/src/PinyinEngine.cc
index 699dc56..64b6982 100644
--- a/src/PinyinEngine.cc
+++ b/src/PinyinEngine.cc
@@ -91,11 +91,9 @@ PinyinEngine::processKeyEvent (guint keyval, guint keycode, guint modifiers)
}
/* Toggle simp/trad Chinese Mode when hotkey Ctrl + Shift + F pressed */
- if (keyval == IBUS_F &&
- ((modifiers & IBUS_SHIFT_MASK != 0) &&
- (modifiers & IBUS_CONTROL_MASK != 0))) {
+ if (keyval == IBUS_F && SCMSHM_TEST (modifiers, (IBUS_SHIFT_MASK | IBUS_CONTROL_MASK))) {
m_props.toggleModeSimp();
- m_prev_pressed_key = IBUS_VoidSymbol;
+ m_prev_pressed_key = IBUS_F;
return TRUE;
}
diff --git a/src/Util.h b/src/Util.h
index 1c2044a..1a7d6e4 100644
--- a/src/Util.h
+++ b/src/Util.h
@@ -44,9 +44,26 @@ namespace PY {
IBUS_HYPER_MASK | \
IBUS_META_MASK)
+#define SCMSHM_MASK \
+ (IBUS_SHIFT_MASK | \
+ IBUS_CONTROL_MASK | \
+ IBUS_MOD1_MASK | \
+ IBUS_SUPER_MASK | \
+ IBUS_HYPER_MASK | \
+ IBUS_META_MASK)
+
#define CMSHM_FILTER(modifiers) \
(modifiers & (CMSHM_MASK))
+#define SCMSHM_FILTER(modifiers) \
+ (modifiers & (SCMSHM_MASK))
+
+#define CMSHM_TEST(modifiers, mask) \
+ (CMSHM_FILTER (modifiers) == (mask))
+
+#define SCMSHM_TEST(modifiers, mask) \
+ (SCMSHM_FILTER (modifiers) == (mask))
+
class UUID {
public:
UUID (void) {