[Bf-blender-cvs] [5901c1ca429] blender2.8: UI: fix event handling direction

Campbell Barton noreply at git.blender.org
Fri May 25 15:47:37 CEST 2018


Commit: 5901c1ca4290e24e1deb44933297e61f1af02fcc
Author: Campbell Barton
Date:   Fri May 25 15:46:22 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB5901c1ca4290e24e1deb44933297e61f1af02fcc

UI: fix event handling direction

Correct arrow key direction in popovers,
also de-duplicate menu callback,

===================================================================

M	source/blender/editors/interface/interface_intern.h
M	source/blender/editors/interface/interface_layout.c
M	source/blender/editors/interface/interface_region_popover.c

===================================================================

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)



More information about the Bf-blender-cvs mailing list