summaryrefslogtreecommitdiff
path: root/community/fcitx/add-a-context-variable-to-disable-punc.patch
diff options
context:
space:
mode:
Diffstat (limited to 'community/fcitx/add-a-context-variable-to-disable-punc.patch')
-rw-r--r--community/fcitx/add-a-context-variable-to-disable-punc.patch59
1 files changed, 59 insertions, 0 deletions
diff --git a/community/fcitx/add-a-context-variable-to-disable-punc.patch b/community/fcitx/add-a-context-variable-to-disable-punc.patch
new file mode 100644
index 000000000..c0bdd9049
--- /dev/null
+++ b/community/fcitx/add-a-context-variable-to-disable-punc.patch
@@ -0,0 +1,59 @@
+From: Xuetian Weng <wengxt@gmail.com>
+Date: Tue, 11 Mar 2014 00:13:43 +0800
+Subject: add a context variable to disable punc
+
+---
+ src/lib/fcitx/context.h | 2 ++
+ src/module/punc/punc.c | 12 ++++++++++++
+ 2 files changed, 14 insertions(+)
+
+diff --git a/src/lib/fcitx/context.h b/src/lib/fcitx/context.h
+index 32115af..05f0f91 100644
+--- a/src/lib/fcitx/context.h
++++ b/src/lib/fcitx/context.h
+@@ -70,6 +70,8 @@ extern "C" {
+ #define CONTEXT_DISABLE_AUTO_FIRST_CANDIDATE_HIGHTLIGHT "CONTEXT_DISABLE_AUTO_FIRST_CANDIDATE_HIGHTLIGHT"
+ /** disable auto first candidate highlight */
+ #define CONTEXT_DISABLE_FULLWIDTH "CONTEXT_DISABLE_FULLWIDTH"
++ /** disable punc module */
++ #define CONTEXT_DISABLE_PUNC "CONTEXT_DISABLE_PUNC"
+
+ /**
+ * @brief register a new global context variable
+diff --git a/src/module/punc/punc.c b/src/module/punc/punc.c
+index be6dec3..3327f9c 100644
+--- a/src/module/punc/punc.c
++++ b/src/module/punc/punc.c
+@@ -154,6 +154,8 @@ void* PuncCreate(FcitxInstance* instance)
+ PuncWhichCopy, PuncWhichFree,
+ puncState);
+
++ FcitxInstanceRegisterWatchableContext(instance, CONTEXT_DISABLE_PUNC, FCT_Boolean, FCF_ResetOnInputMethodChange);
++
+ FcitxPuncAddFunctions(instance);
+ return puncState;
+ }
+@@ -250,6 +252,11 @@ boolean PuncPreFilter(void* arg, FcitxKeySym sym, unsigned int state,
+ {
+ FCITX_UNUSED(retVal);
+ FcitxPuncState *puncState = (FcitxPuncState*)arg;
++ boolean disablePunc = FcitxInstanceGetContextBoolean(
++ puncState->owner, CONTEXT_DISABLE_PUNC);
++ if (disablePunc)
++ return false;
++
+ if (FcitxHotkeyIsHotKeySimple(sym, state) &&
+ !FcitxHotkeyIsHotKeyDigit(sym, state) && !IsHotKeyPunc(sym, state))
+ puncState->bLastIsNumber = false;
+@@ -269,6 +276,11 @@ boolean ProcessPunc(void* arg, FcitxKeySym sym, unsigned int state, INPUT_RETURN
+ if (*retVal != IRV_TO_PROCESS)
+ return false;
+
++ boolean disablePunc = FcitxInstanceGetContextBoolean(
++ puncState->owner, CONTEXT_DISABLE_PUNC);
++ if (disablePunc)
++ return false;
++
+ FcitxCandidateWordList *candList = FcitxInputStateGetCandidateList(input);
+ if (FcitxCandidateWordGetListSize(candList) != 0) {
+ if (FcitxCandidateWordGetHasGoneToNextPage(candList) &&