diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-05-25 16:46:22 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-05-25 16:47:12 +0300 |
commit | 5901c1ca4290e24e1deb44933297e61f1af02fcc (patch) | |
tree | 2c56def820145c60cfea5013b8825cacdcde873b /source/blender/editors/interface | |
parent | dd22080b9ad4182c0ae10bfb2808021d0fa7d7ac (diff) |
UI: fix event handling direction
Correct arrow key direction in popovers,
also de-duplicate menu callback,
Diffstat (limited to 'source/blender/editors/interface')
-rw-r--r-- | source/blender/editors/interface/interface_intern.h | 2 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_layout.c | 5 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_region_popover.c | 9 |
3 files changed, 9 insertions, 7 deletions
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index b851d1d8c5b..c7cf03a44dd 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -794,6 +794,8 @@ void ui_resources_free(void); void ui_layout_add_but(uiLayout *layout, uiBut *but); void ui_but_add_search(uiBut *but, PointerRNA *ptr, PropertyRNA *prop, PointerRNA *searchptr, PropertyRNA *searchprop); void ui_layout_list_set_labels_active(uiLayout *layout); +/* menu callback */ +void ui_item_paneltype_func(struct bContext *C, struct uiLayout *layout, void *arg_pt); /* interface_align.c */ bool ui_but_can_align(const uiBut *but) ATTR_WARN_UNUSED_RESULT; diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index 24e2d94538c..ad8dd3644ae 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -1848,10 +1848,13 @@ static void ui_item_menutype_func(bContext *C, uiLayout *layout, void *arg_mt) layout->root->block->flag ^= UI_BLOCK_IS_FLIP; } -static void ui_item_paneltype_func(bContext *C, uiLayout *layout, void *arg_pt) +void ui_item_paneltype_func(bContext *C, uiLayout *layout, void *arg_pt) { PanelType *pt = (PanelType *)arg_pt; UI_paneltype_draw(C, pt, layout); + + /* panels are created flipped (from event handling pov) */ + layout->root->block->flag ^= UI_BLOCK_IS_FLIP; } static uiBut *ui_item_menu( diff --git a/source/blender/editors/interface/interface_region_popover.c b/source/blender/editors/interface/interface_region_popover.c index 1f9326ac204..c87d8861675 100644 --- a/source/blender/editors/interface/interface_region_popover.c +++ b/source/blender/editors/interface/interface_region_popover.c @@ -265,12 +265,6 @@ uiPopupBlockHandle *ui_popover_panel_create( /** \name Standard Popover Panels * \{ */ -static void ui_item_paneltype_func(bContext *C, uiLayout *layout, void *arg_pt) -{ - PanelType *pt = (PanelType *)arg_pt; - UI_paneltype_draw(C, pt, layout); -} - int UI_popover_panel_invoke( bContext *C, int space_id, int region_id, const char *idname, bool keep_open, ReportList *reports) @@ -367,6 +361,9 @@ void UI_popover_end(bContext *C, uiPopover *pup, wmKeyMap *keymap) * The begin/end stype of calling popups doesn't allow to 'can_refresh' to be set. * For now close this style of popvers when accessed. */ UI_block_flag_disable(pup->block, UI_BLOCK_KEEP_OPEN); + + /* panels are created flipped (from event handling pov) */ + pup->block->flag ^= UI_BLOCK_IS_FLIP; } uiLayout *UI_popover_layout(uiPopover *pup) |