WIP: UI: Text cursor behavior for Apple Devices #106724
|
@ -3754,21 +3754,21 @@ static void ui_do_but_textedit(
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EVT_RIGHTARROWKEY:
|
case EVT_RIGHTARROWKEY:
|
||||||
|
case EVT_LEFTARROWKEY: {
|
||||||
|
#ifdef __APPLE__
|
||||||
|
eStrCursorJumpDirection direction = (event->type == EVT_RIGHTARROWKEY) ? STRCUR_DIR_NEXT : STRCUR_DIR_PREV;
|
||||||
|
eStrCursorJumpType jump = (event->modifier & KM_OSKEY) ? STRCUR_JUMP_ALL : ((event->modifier & KM_ALT) ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE);
|
||||||
|
#else
|
||||||
|
eStrCursorJumpType jump = (event->modifier & KM_CTRL) ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE;
|
||||||
|
#endif
|
||||||
ui_textedit_move(but,
|
ui_textedit_move(but,
|
||||||
data,
|
data,
|
||||||
STRCUR_DIR_NEXT,
|
direction,
|
||||||
event->modifier & KM_SHIFT,
|
event->modifier & KM_SHIFT,
|
||||||
(event->modifier & KM_CTRL) ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE);
|
jump);
|
||||||
retval = WM_UI_HANDLER_BREAK;
|
|
||||||
break;
|
|
||||||
case EVT_LEFTARROWKEY:
|
|
||||||
ui_textedit_move(but,
|
|
||||||
data,
|
|
||||||
STRCUR_DIR_PREV,
|
|
||||||
event->modifier & KM_SHIFT,
|
|
||||||
(event->modifier & KM_CTRL) ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE);
|
|
||||||
retval = WM_UI_HANDLER_BREAK;
|
retval = WM_UI_HANDLER_BREAK;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case WHEELDOWNMOUSE:
|
case WHEELDOWNMOUSE:
|
||||||
case EVT_DOWNARROWKEY:
|
case EVT_DOWNARROWKEY:
|
||||||
if (data->searchbox) {
|
if (data->searchbox) {
|
||||||
|
@ -3808,24 +3808,32 @@ static void ui_do_but_textedit(
|
||||||
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
button_activate_state(C, but, BUTTON_STATE_EXIT);
|
||||||
retval = WM_UI_HANDLER_BREAK;
|
retval = WM_UI_HANDLER_BREAK;
|
||||||
break;
|
break;
|
||||||
case EVT_DELKEY:
|
case EVT_DELKEY: {
|
||||||
|
#ifdef __APPLE__
|
||||||
|
eStrCursorJumpType jump = (event->modifier & KM_OSKEY) ? STRCUR_JUMP_ALL : ((event->modifier & KM_ALT) ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE);
|
||||||
|
#else
|
||||||
|
eStrCursorJumpType jump = (event->modifier & KM_CTRL) ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE;
|
||||||
|
#endif
|
||||||
changed = ui_textedit_delete(but,
|
changed = ui_textedit_delete(but,
|
||||||
data,
|
data,
|
||||||
STRCUR_DIR_NEXT,
|
STRCUR_DIR_NEXT,
|
||||||
(event->modifier & KM_CTRL) ? STRCUR_JUMP_DELIM :
|
jump);
|
||||||
STRCUR_JUMP_NONE);
|
|
||||||
retval = WM_UI_HANDLER_BREAK;
|
retval = WM_UI_HANDLER_BREAK;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case EVT_BACKSPACEKEY:
|
case EVT_BACKSPACEKEY: {
|
||||||
|
#ifdef __APPLE__
|
||||||
|
eStrCursorJumpType jump = (event->modifier & KM_OSKEY) ? STRCUR_JUMP_ALL : ((event->modifier & KM_ALT) ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE);
|
||||||
|
#else
|
||||||
|
eStrCursorJumpType jump = (event->modifier & KM_CTRL) ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE;
|
||||||
|
#endif
|
||||||
changed = ui_textedit_delete(but,
|
changed = ui_textedit_delete(but,
|
||||||
data,
|
data,
|
||||||
STRCUR_DIR_PREV,
|
STRCUR_DIR_PREV,
|
||||||
(event->modifier & KM_CTRL) ? STRCUR_JUMP_DELIM :
|
jump);
|
||||||
STRCUR_JUMP_NONE);
|
|
||||||
retval = WM_UI_HANDLER_BREAK;
|
retval = WM_UI_HANDLER_BREAK;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case EVT_AKEY:
|
case EVT_AKEY:
|
||||||
|
|
||||||
/* Ctrl-A: Select all. */
|
/* Ctrl-A: Select all. */
|
||||||
|
|
Loading…
Reference in New Issue