From 2818add58689b2c126662dc2db056a06a5f937ff Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 7 Mar 2011 14:56:19 +0000 Subject: From the OFTL: Arrows-move-cursor is back! It now works for any running modal operator that doesn't handle own arrow keys. Might need to become more restricted though, some modal ops don't need it. Want to investigate that still where conflicts are. --- source/blender/windowmanager/intern/wm_cursors.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'source/blender/windowmanager/intern/wm_cursors.c') diff --git a/source/blender/windowmanager/intern/wm_cursors.c b/source/blender/windowmanager/intern/wm_cursors.c index 5951393a497..32a4648c7f8 100644 --- a/source/blender/windowmanager/intern/wm_cursors.c +++ b/source/blender/windowmanager/intern/wm_cursors.c @@ -47,6 +47,7 @@ #include "BKE_main.h" #include "WM_api.h" +#include "WM_types.h" #include "wm_cursors.h" /* XXX this still is mess from old code */ @@ -211,6 +212,29 @@ void WM_cursor_ungrab(wmWindow *win) } } +/* give it a modal keymap one day? */ +int wm_cursor_arrow_move(wmWindow *win, wmEvent *event) +{ + if(win && event->val==KM_PRESS) { + + if(event->type==UPARROWKEY) { + WM_cursor_warp(win, event->x, event->y+1); + return 1; + } else if(event->type==DOWNARROWKEY) { + WM_cursor_warp(win, event->x, event->y-1); + return 1; + } else if(event->type==LEFTARROWKEY) { + WM_cursor_warp(win, event->x-1, event->y); + return 1; + } else if(event->type==RIGHTARROWKEY) { + WM_cursor_warp(win, event->x+1, event->y); + return 1; + } + } + return 0; +} + + /* afer this you can call restore too */ void WM_timecursor(wmWindow *win, int nr) { -- cgit v1.2.3