UI: Text cursor behavior for Apple Devices #107522

Merged
Harley Acheson merged 1 commits from Harley/blender:MacArrows into main 2023-05-24 22:25:50 +02:00
1 changed files with 28 additions and 27 deletions

View File

@ -3754,21 +3754,22 @@ static void ui_do_but_textedit(
}
break;
case EVT_RIGHTARROWKEY:
ui_textedit_move(but,
data,
STRCUR_DIR_NEXT,
event->modifier & KM_SHIFT,
(event->modifier & KM_CTRL) ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE);
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);
case EVT_LEFTARROWKEY: {
eStrCursorJumpDirection direction = (event->type == EVT_RIGHTARROWKEY) ? STRCUR_DIR_NEXT :
STRCUR_DIR_PREV;
#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
ui_textedit_move(but, data, direction, event->modifier & KM_SHIFT, jump);
retval = WM_UI_HANDLER_BREAK;
break;
}
case WHEELDOWNMOUSE:
case EVT_DOWNARROWKEY:
if (data->searchbox) {
@ -3809,22 +3810,22 @@ static void ui_do_but_textedit(
retval = WM_UI_HANDLER_BREAK;
break;
case EVT_DELKEY:
changed = ui_textedit_delete(but,
data,
STRCUR_DIR_NEXT,
(event->modifier & KM_CTRL) ? STRCUR_JUMP_DELIM :
STRCUR_JUMP_NONE);
retval = WM_UI_HANDLER_BREAK;
break;
case EVT_BACKSPACEKEY:
changed = ui_textedit_delete(but,
data,
STRCUR_DIR_PREV,
(event->modifier & KM_CTRL) ? STRCUR_JUMP_DELIM :
STRCUR_JUMP_NONE);
case EVT_BACKSPACEKEY: {
eStrCursorJumpDirection direction = (event->type == EVT_DELKEY) ? STRCUR_DIR_NEXT :
STRCUR_DIR_PREV;
#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, data, direction, jump);
retval = WM_UI_HANDLER_BREAK;
break;
}
case EVT_AKEY: