WIP: UI: Text cursor behavior for Apple Devices #106724

Closed
Austin Berenyi wants to merge 3 commits from (deleted):ui-macos-text-field-behavior into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
1 changed files with 34 additions and 6 deletions
Showing only changes of commit abdc9cb3c9 - Show all commits

View File

@ -3738,19 +3738,45 @@ static void ui_do_but_textedit(
}
break;
case EVT_RIGHTARROWKEY:
ui_textedit_move(but,
#if defined(__APPLE__)
if (event->modifier == KM_OSKEY || event->modifier == (KM_OSKEY + KM_SHIFT))
#else
if (event->modifier == KM_CTRL)
#endif
{
/*Allows for standard macOS cursor behavior for this key command*/
if (event->type == EVT_RIGHTARROWKEY) {
ui_textedit_move(but, data, STRCUR_DIR_NEXT, event->modifier & KM_SHIFT,
((event->modifier & KM_ALT) || (event->modifier & KM_CTRL)) ? STRCUR_JUMP_DELIM : STRCUR_JUMP_ALL);
}
}
else
ui_textedit_move(but,
data,
STRCUR_DIR_NEXT,
event->modifier & KM_SHIFT,
(event->modifier & KM_CTRL) ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE);
((event->modifier & KM_ALT) || (event->modifier & KM_CTRL)) ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE);
retval = WM_UI_HANDLER_BREAK;
break;
case EVT_LEFTARROWKEY:
ui_textedit_move(but,
#if defined(__APPLE__)
if (event->modifier == KM_OSKEY || event->modifier == (KM_OSKEY + KM_SHIFT))
#else
if (event->modifier == KM_CTRL)
#endif
{
/*Allows for standard macOS cursor behavior for this key command*/
if (event->type == EVT_LEFTARROWKEY) {
ui_textedit_move(but, data, STRCUR_DIR_PREV, event->modifier & KM_SHIFT,
((event->modifier & KM_ALT) || (event->modifier & KM_CTRL)) ? STRCUR_JUMP_DELIM : STRCUR_JUMP_ALL);
}
}
else
ui_textedit_move(but,
data,
STRCUR_DIR_PREV,
event->modifier & KM_SHIFT,
(event->modifier & KM_CTRL) ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE);
((event->modifier & KM_ALT) || (event->modifier & KM_CTRL)) ? STRCUR_JUMP_DELIM : STRCUR_JUMP_NONE);
retval = WM_UI_HANDLER_BREAK;
break;
case WHEELDOWNMOUSE:
@ -3796,7 +3822,8 @@ static void ui_do_but_textedit(
changed = ui_textedit_delete(but,
data,
STRCUR_DIR_NEXT,
(event->modifier & KM_CTRL) ? STRCUR_JUMP_DELIM :
/*Allows for standard macOS cursor behavior for this key command*/
((event->modifier & KM_ALT) || (event->modifier & KM_CTRL)) ? STRCUR_JUMP_DELIM :
STRCUR_JUMP_NONE);
retval = WM_UI_HANDLER_BREAK;
break;
@ -3805,7 +3832,8 @@ static void ui_do_but_textedit(
changed = ui_textedit_delete(but,
data,
STRCUR_DIR_PREV,
(event->modifier & KM_CTRL) ? STRCUR_JUMP_DELIM :
/*Allows for standard macOS cursor behavior for this key command*/
((event->modifier & KM_ALT) || (event->modifier & KM_CTRL)) ? STRCUR_JUMP_DELIM :
STRCUR_JUMP_NONE);
retval = WM_UI_HANDLER_BREAK;
break;