[Bf-blender-cvs] [d60804b] pie-menus: Fixes:
Antony Riakiotakis
noreply at git.blender.org
Wed Jul 30 19:02:03 CEST 2014
Commit: d60804b72d9e8ddcda414a89de576abfb191c2e5
Author: Antony Riakiotakis
Date: Wed Jul 30 19:01:48 2014 +0200
Branches: pie-menus
https://developer.blender.org/rBd60804b72d9e8ddcda414a89de576abfb191c2e5
Fixes:
* Space sticky did not call search menu
* Cancelling and confirming with no active button would respawn the pie
menu immediately in drag style interaction
* Area now covers the whole screen, collision with pie buttons is done
always.
===================================================================
M source/blender/editors/interface/interface_handlers.c
M source/blender/editors/interface/interface_regions.c
===================================================================
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index be2eb90..bb5872f 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -8560,7 +8560,15 @@ static int ui_pie_menu_apply(bContext *C, uiPopupBlockHandle *menu, uiBut *but,
}
}
else {
- menu->menuretval = UI_RETURN_CANCEL;
+ uiBlock *block = menu->region->uiblocks.first;
+
+ if (!(click_style || force_close)) {
+ block->pie_data.flags |= UI_PIE_FINISHED;
+ }
+ else
+ menu->menuretval = UI_RETURN_CANCEL;
+
+ ED_region_tag_redraw(menu->region);
}
return retval;
@@ -8676,12 +8684,12 @@ static int ui_handler_pie(bContext *C, const wmEvent *event, uiPopupBlockHandle
if (block->pie_data.flags & UI_PIE_FINISHED) {
if ((event->type == block->pie_data.event && event->val == KM_RELEASE) ||
- event->type == RIGHTMOUSE ||
- event->type == ESCKEY)
+ ((event->type == RIGHTMOUSE || event->type == ESCKEY) && (event->val == KM_PRESS)))
{
menu->menuretval = UI_RETURN_OK;
}
+ ED_region_tag_redraw(ar);
return WM_UI_HANDLER_BREAK;
}
@@ -8728,7 +8736,13 @@ static int ui_handler_pie(bContext *C, const wmEvent *event, uiPopupBlockHandle
case ESCKEY:
case RIGHTMOUSE:
- menu->menuretval = UI_RETURN_CANCEL;
+ if (!is_click_style) {
+ block->pie_data.flags |= UI_PIE_FINISHED;
+ menu->menuretval = 0;
+ ED_region_tag_redraw(ar);
+ }
+ else
+ menu->menuretval = UI_RETURN_CANCEL;
break;
case AKEY:
diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c
index 00f7b7a..fe0644b 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -1740,19 +1740,10 @@ uiBlock *ui_popup_block_refresh(
block->pie_data.flags |= UI_PIE_INITIAL_DIRECTION;
}
- ar->winrct.xmin = block->rect.xmin - width;
- ar->winrct.xmax = block->rect.xmax + width;
- ar->winrct.ymin = block->rect.ymin - width;
- ar->winrct.ymax = block->rect.ymax + width;
-
- ui_block_translate(block, -ar->winrct.xmin, -ar->winrct.ymin);
-
- /* spawned coordinates still in window space, convert to screen */
- block->pie_data.pie_center_spawned[0] -= ar->winrct.xmin;
- block->pie_data.pie_center_spawned[1] -= ar->winrct.ymin;
- block->pie_data.pie_center_init[0] -= ar->winrct.xmin;
- block->pie_data.pie_center_init[1] -= ar->winrct.ymin;
-
+ ar->winrct.xmin = 0;
+ ar->winrct.xmax = winx;
+ ar->winrct.ymin = 0;
+ ar->winrct.ymax = winy;
ui_block_calculate_pie_segment(block, block->pie_data.pie_center_init[0], block->pie_data.pie_center_init[1]);
More information about the Bf-blender-cvs
mailing list