diff options
| author | Peng Huang <shawn.p.huang@gmail.com> | 2010-05-24 08:48:00 +0800 |
|---|---|---|
| committer | Peng Huang <shawn.p.huang@gmail.com> | 2010-05-24 08:49:36 +0800 |
| commit | e034dcfa68d6652d0a85d7a476db3faf97a70076 (patch) | |
| tree | a9ae7b387eaf18f83f75f3181471b034e7ee63de /src | |
| parent | 19bb8989b043c292ab22523733bac2ef127f80d2 (diff) | |
| download | ibus-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.cc | 6 | ||||
| -rw-r--r-- | src/PinyinEngine.cc | 6 | ||||
| -rw-r--r-- | src/Util.h | 17 |
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; } @@ -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) { |
