if (modifiers != 0 && modifiers != IBUS_CONTROL_MASK)
return TRUE;
-
/* process some cursor control keys */
if (modifiers == 0) {
switch (keyval) {
case IBUS_Shift_L:
- if (Config::shiftSelectCandidate ()) {
- selectCandidateInPage (1);
- }
- break;
+ if (!Config::shiftSelectCandidate ())
+ return FALSE;
+ selectCandidateInPage (1);
+ return TRUE;
case IBUS_Shift_R:
- if (Config::shiftSelectCandidate ()) {
- selectCandidateInPage (2);
- }
- break;
+ if (!Config::shiftSelectCandidate ())
+ return FALSE;
+ selectCandidateInPage (2);
+ return TRUE;
case IBUS_Return:
case IBUS_KP_Enter:
commit ();
- break;
+ return TRUE;
case IBUS_BackSpace:
if (m_phrase_editor.unselectCandidates ()) {
else {
removeCharBefore ();
}
- break;
+ return TRUE;
case IBUS_Delete:
case IBUS_KP_Delete:
removeCharAfter ();
- break;
+ return TRUE;
case IBUS_Left:
case IBUS_KP_Left:
else {
moveCursorLeft ();
}
- break;
+ return TRUE;
case IBUS_Right:
case IBUS_KP_Right:
else {
moveCursorRight ();
}
- break;
+ return TRUE;
case IBUS_Home:
case IBUS_KP_Home:
else {
moveCursorToBegin ();
}
- break;
+ return TRUE;
case IBUS_End:
case IBUS_KP_End:
else {
moveCursorToEnd ();
}
- break;
+ return TRUE;
case IBUS_Up:
case IBUS_KP_Up:
- cursorUp (); break;
+ cursorUp ();
+ return TRUE;
case IBUS_Down:
case IBUS_KP_Down:
- cursorDown (); break;
+ cursorDown ();
+ return TRUE;
case IBUS_Page_Up:
case IBUS_KP_Page_Up:
- pageUp (); break;
+ pageUp ();
+ return TRUE;
case IBUS_Page_Down:
case IBUS_KP_Page_Down:
case IBUS_Tab:
- pageDown (); break;
+ pageDown ();
+ return TRUE;
case IBUS_Escape:
- reset (); break;
+ reset ();
+ return TRUE;
default:
- break;
+ return TRUE;
}
}
else {
else {
removeWordBefore ();
}
- break;
+ return TRUE;
case IBUS_Delete:
case IBUS_KP_Delete:
removeWordAfter ();
- break;
+ return TRUE;
case IBUS_Left:
case IBUS_KP_Left:
else {
moveCursorLeftByWord ();
}
- break;
+ return TRUE;
case IBUS_Right:
case IBUS_KP_Right:
else {
moveCursorToEnd ();
}
- break;
+ return TRUE;
default:
- break;
+ return TRUE;
};
}
return TRUE;
* and no other key event between the press and release ket event*/
if (m_prev_pressed_key == keyval) {
if (keyval == IBUS_Shift_L || keyval == IBUS_Shift_R) {
+ if (!m_editors[MODE_INIT]->text ().empty ())
+ m_editors[MODE_INIT]->reset ();
m_props.toggleModeChinese ();
}
}