diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-06-07 18:05:49 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-06-07 18:06:01 +0300 |
commit | d274c64d22da51473839d87618ba0dc0a0f1fa42 (patch) | |
tree | 623183dd0c0f10e3920a637840dae62d094502b0 /source/blender/editors/interface/interface_region_menu_pie.c | |
parent | df4525d1d9d5250b8d0bdc6370f2736c2607b044 (diff) |
WM: add support for drag events
This allows for a single key to be mapped to both release and drag,
useful for pie menus to share a key with a different action.
Diffstat (limited to 'source/blender/editors/interface/interface_region_menu_pie.c')
-rw-r--r-- | source/blender/editors/interface/interface_region_menu_pie.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/source/blender/editors/interface/interface_region_menu_pie.c b/source/blender/editors/interface/interface_region_menu_pie.c index 37a603d967f..41001d65d82 100644 --- a/source/blender/editors/interface/interface_region_menu_pie.c +++ b/source/blender/editors/interface/interface_region_menu_pie.c @@ -150,8 +150,16 @@ uiPieMenu *UI_pie_menu_begin(struct bContext *C, const char *title, int icon, co } pie->layout = UI_block_layout(pie->block_radial, UI_LAYOUT_VERTICAL, UI_LAYOUT_PIEMENU, 0, 0, 200, 0, 0, style); - pie->mx = event->x; - pie->my = event->y; + + /* Open from where we started dragging. */ + if (event->val == KM_CLICK_DRAG) { + pie->mx = event->prevclickx; + pie->my = event->prevclicky; + } + else { + pie->mx = event->x; + pie->my = event->y; + } /* create title button */ if (title[0]) { |