Commit: 96af595f63414deb6a9247bb548023db86f923a1
Author: Campbell Barton
Date:   Fri Mar 8 13:35:48 2019 +1100
Branches: master
https://developer.blender.org/rB96af595f63414deb6a9247bb548023db86f923a1

WM: fix double click handling in modal keymaps

Model keymaps wasn't matching double-click events with press
as is done in regular keymap handling.

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

M       source/blender/windowmanager/intern/wm_event_system.c

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

diff --git a/source/blender/windowmanager/intern/wm_event_system.c 
b/source/blender/windowmanager/intern/wm_event_system.c
index 603e563d232..0ac5265fac4 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -1933,6 +1933,8 @@ static bool wm_eventmatch(const wmEvent *winevent, const 
wmKeyMapItem *kmi)
 /* operator exists */
 static void wm_event_modalkeymap(const bContext *C, wmOperator *op, wmEvent 
*event, bool *dbl_click_disabled)
 {
+       wmOperator *op_init = op;
+
        /* support for modal keymap in macros */
        if (op->opm)
                op = op->opm;
@@ -1954,6 +1956,18 @@ static void wm_event_modalkeymap(const bContext *C, 
wmOperator *op, wmEvent *eve
                                }
                        }
                }
+
+               /* If double click isn't handled, re-run this function with 
with press. */
+               if ((event->type != EVT_MODAL_MAP) &&
+                   (event->val == KM_DBL_CLICK))
+               {
+                       event->val = KM_PRESS;
+                       wm_event_modalkeymap(C, op_init, event, NULL);
+                       if (event->type != EVT_MODAL_MAP) {
+                               event->val = KM_DBL_CLICK;
+                       }
+               }
+
        }
        else {
                /* modal keymap checking returns handled events fine, but all 
hardcoded modal

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to