diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-10-11 03:37:25 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-10-11 03:37:25 +0400 |
commit | 159cf6e5ddf27f37f0e56d172a16b018d9c037ab (patch) | |
tree | c90d445d242621f42e158bab7c68164a6be21d01 | |
parent | bf4075236fe2aa011d7bab26358e55883ffa0248 (diff) |
bugfix [#24214] F6 "last operator" panel repeatable segmentation fault
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 6d8c368db3f..654a089dafe 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -5526,16 +5526,20 @@ int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu, ((ELEM(event->type, UPARROWKEY, WHEELUPMOUSE)) && (block->direction & UI_RIGHT)) || ((ELEM(event->type, DOWNARROWKEY, WHEELDOWNMOUSE)) && (block->direction & UI_TOP)) ) { - if(ui_but_first(block)->type & BUT) + if((bt= ui_but_first(block)) && (bt->type & BUT)) { bt= ui_but_last(block); - else - bt= ui_but_first(block); + } + else { + /* keep ui_but_first() */ + } } else { - if(ui_but_first(block)->type & BUT) - bt= ui_but_first(block); - else + if((bt= ui_but_first(block)) && (bt->type & BUT)) { + /* keep ui_but_first() */ + } + else { bt= ui_but_last(block); + } } if(bt) |