diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-04-11 12:33:19 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-04-11 12:33:19 +0400 |
commit | acac5b8402e93ff45ada9b353fcb6b3d931cb764 (patch) | |
tree | 7b2f8cf090ead678083291f7fa3470b76438bf4c /source/blender/editors/interface/interface_handlers.c | |
parent | 075a655cc6956a1e215206d75a9c0621d4af4bf8 (diff) |
fix for crash in own recent commit. searchbox's need their own keynav state since they won't always be in a uiPopupBlockHandle.
Diffstat (limited to 'source/blender/editors/interface/interface_handlers.c')
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 6f94d64c717..cce20cfd41a 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -183,6 +183,9 @@ typedef struct uiHandleButtonData { /* search box (watch uiFreeActiveButtons) */ ARegion *searchbox; +#ifdef USE_KEYNAV_LIMIT + struct uiKeyNavLock searchbox_keynav_state; +#endif /* post activate */ uiButtonActivateType posttype; @@ -2132,7 +2135,7 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle case MOUSEPAN: if (data->searchbox) { #ifdef USE_KEYNAV_LIMIT - if ((event->type == MOUSEMOVE) && ui_mouse_motion_keynav_test(&block->handle->keynav_state, event)) { + if ((event->type == MOUSEMOVE) && ui_mouse_motion_keynav_test(&data->searchbox_keynav_state, event)) { /* pass */ } else { @@ -2216,7 +2219,7 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle case DOWNARROWKEY: if (data->searchbox) { #ifdef USE_KEYNAV_LIMIT - ui_mouse_motion_keynav_init(&block->handle->keynav_state, event); + ui_mouse_motion_keynav_init(&data->searchbox_keynav_state, event); #endif ui_searchbox_event(C, data->searchbox, but, event); break; @@ -2231,7 +2234,7 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle case UPARROWKEY: if (data->searchbox) { #ifdef USE_KEYNAV_LIMIT - ui_mouse_motion_keynav_init(&block->handle->keynav_state, event); + ui_mouse_motion_keynav_init(&data->searchbox_keynav_state, event); #endif ui_searchbox_event(C, data->searchbox, but, event); break; |