summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2025-01-07 11:45:23 +0800
committerPeng Wu <alexepico@gmail.com>2025-01-07 11:45:57 +0800
commitbab868cd3684c98feed4b788654efd5445ea5e80 (patch)
tree04c1abd0078b104e02be6aa33fe385a889558522
parent419f189e2aa0e0b48a201481d2e7f864ae0ca574 (diff)
downloadibus-libpinyin-pageupdown.tar.gz
ibus-libpinyin-pageupdown.tar.xz
ibus-libpinyin-pageupdown.zip
Support square bracket page optionpageupdown
-rw-r--r--src/PYEnglishEditor.cc19
-rw-r--r--src/PYEnglishEditor.h2
-rw-r--r--src/PYExtEditor.cc15
-rw-r--r--src/PYPPinyinEditor.cc12
-rw-r--r--src/PYPPinyinEngine.cc3
-rw-r--r--src/PYPSuggestionEditor.cc12
-rw-r--r--src/PYTableEditor.cc12
7 files changed, 74 insertions, 1 deletions
diff --git a/src/PYEnglishEditor.cc b/src/PYEnglishEditor.cc
index 7e6e52b..9b9aaac 100644
--- a/src/PYEnglishEditor.cc
+++ b/src/PYEnglishEditor.cc
@@ -97,6 +97,12 @@ EnglishEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers)
m_text.insert (m_cursor, keyval);
m_cursor ++;
}
+
+ if (!m_config.squareBracketPage () &&
+ (IBUS_bracketleft == keyval || IBUS_bracketright == keyval)) {
+ m_text.insert (m_cursor, keyval);
+ m_cursor ++;
+ }
}
/* Deal other staff with updateStateFromInput (). */
@@ -140,6 +146,12 @@ EnglishEditor::processPageKey (guint keyval)
return TRUE;
}
break;
+ case IBUS_bracketleft:
+ if (m_config.squareBracketPage ()) {
+ pageUp ();
+ return TRUE;
+ }
+ break;
case IBUS_period:
if (m_config.commaPeriodPage ()) {
pageDown ();
@@ -152,6 +164,13 @@ EnglishEditor::processPageKey (guint keyval)
return TRUE;
}
break;
+ case IBUS_bracketright:
+ if (m_config.squareBracketPage ()) {
+ pageDown ();
+ return TRUE;
+ }
+ break;
+
case IBUS_Up:
case IBUS_KP_Up:
cursorUp ();
diff --git a/src/PYEnglishEditor.h b/src/PYEnglishEditor.h
index 780c8c7..8f00ed2 100644
--- a/src/PYEnglishEditor.h
+++ b/src/PYEnglishEditor.h
@@ -29,7 +29,7 @@ namespace PY {
class EnglishDatabase;
-static const std::string EnglishSymbols = "`~!@*()+[]{}\\|:\"/<>?";
+static const std::string EnglishSymbols = "`~!@*()+{}\\|:\"/<>?";
class EnglishEditor : public Editor {
private:
diff --git a/src/PYExtEditor.cc b/src/PYExtEditor.cc
index 44aecf0..6630b2c 100644
--- a/src/PYExtEditor.cc
+++ b/src/PYExtEditor.cc
@@ -271,6 +271,14 @@ ExtEditor::processPageKey (guint keyval)
return TRUE;
}
break;
+#endif
+ case IBUS_bracketleft:
+ if (m_config.squareBracketPage ()) {
+ pageUp ();
+ return TRUE;
+ }
+ break;
+#if 0
//For "2.5" input.
case IBUS_period:
if (m_config.commaPeriodPage ()) {
@@ -285,6 +293,13 @@ ExtEditor::processPageKey (guint keyval)
return TRUE;
}
break;
+ case IBUS_bracketright:
+ if (m_config.squareBracketPage ()) {
+ pageDown ();
+ return TRUE;
+ }
+ break;
+
case IBUS_Up:
case IBUS_KP_Up:
cursorUp ();
diff --git a/src/PYPPinyinEditor.cc b/src/PYPPinyinEditor.cc
index 99efbe3..f2b2d7e 100644
--- a/src/PYPPinyinEditor.cc
+++ b/src/PYPPinyinEditor.cc
@@ -109,6 +109,12 @@ PinyinEditor::processPunct (guint keyval, guint keycode,
return TRUE;
}
break;
+ case IBUS_bracketleft:
+ if (m_config.squareBracketPage ()) {
+ pageUp ();
+ return TRUE;
+ }
+ break;
case IBUS_period:
if (m_config.commaPeriodPage ()) {
pageDown ();
@@ -121,6 +127,12 @@ PinyinEditor::processPunct (guint keyval, guint keycode,
return TRUE;
}
break;
+ case IBUS_bracketright:
+ if (m_config.squareBracketPage ()) {
+ pageDown ();
+ return TRUE;
+ }
+ break;
}
if (m_config.autoCommit ()) {
diff --git a/src/PYPPinyinEngine.cc b/src/PYPPinyinEngine.cc
index 2ab6140..d6681f5 100644
--- a/src/PYPPinyinEngine.cc
+++ b/src/PYPPinyinEngine.cc
@@ -382,6 +382,9 @@ PinyinEngine::processKeyEvent (guint keyval, guint keycode, guint modifiers)
/* For full pinyin, "'" is used. */
(PinyinConfig::instance ().doublePinyin () &&
IBUS_apostrophe == keyval) ||
+ /* Use square brackets to flip page */
+ (!PinyinConfig::instance ().squareBracketPage () &&
+ (IBUS_bracketleft == keyval || IBUS_bracketright == keyval)) ||
/* For double pinyin, ";" is used. */
(!PinyinConfig::instance ().doublePinyin () &&
IBUS_semicolon == keyval)) &&
diff --git a/src/PYPSuggestionEditor.cc b/src/PYPSuggestionEditor.cc
index 9ce5129..129c093 100644
--- a/src/PYPSuggestionEditor.cc
+++ b/src/PYPSuggestionEditor.cc
@@ -113,6 +113,12 @@ SuggestionEditor::processPageKey (guint keyval)
return TRUE;
}
break;
+ case IBUS_bracketleft:
+ if (m_config.squareBracketPage ()) {
+ pageUp ();
+ return TRUE;
+ }
+ break;
case IBUS_period:
if (m_config.commaPeriodPage ()) {
pageDown ();
@@ -125,6 +131,12 @@ SuggestionEditor::processPageKey (guint keyval)
return TRUE;
}
break;
+ case IBUS_bracketright:
+ if (m_config.squareBracketPage ()) {
+ pageDown ();
+ return TRUE;
+ }
+ break;
case IBUS_Up:
case IBUS_KP_Up:
diff --git a/src/PYTableEditor.cc b/src/PYTableEditor.cc
index ddaab57..4c79983 100644
--- a/src/PYTableEditor.cc
+++ b/src/PYTableEditor.cc
@@ -135,6 +135,12 @@ TableEditor::processPageKey (guint keyval)
return TRUE;
}
break;
+ case IBUS_bracketleft:
+ if (m_config.squareBracketPage ()) {
+ pageUp ();
+ return TRUE;
+ }
+ break;
case IBUS_period:
if (m_config.commaPeriodPage ()) {
pageDown ();
@@ -147,6 +153,12 @@ TableEditor::processPageKey (guint keyval)
return TRUE;
}
break;
+ case IBUS_bracketright:
+ if (m_config.squareBracketPage ()) {
+ pageDown ();
+ return TRUE;
+ }
+ break;
case IBUS_Up:
case IBUS_KP_Up: