Revision: 26474
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26474
Author:   blendix
Date:     2010-01-31 17:59:21 +0100 (Sun, 31 Jan 2010)

Log Message:
-----------
Fix snap to grid not taking the current grid resolution into
account in quad split 3d view. Now WM_OP_EXEC/INVOKE_REGION_WIN
context stays in the current region if it is already a region
of type window, so the operator gets executed in the right context.

Modified Paths:
--------------
    trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
    trunk/blender/source/blender/windowmanager/intern/wm_keymap.c

Modified: trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_event_system.c 
2010-01-31 15:06:20 UTC (rev 26473)
+++ trunk/blender/source/blender/windowmanager/intern/wm_event_system.c 
2010-01-31 16:59:21 UTC (rev 26474)
@@ -594,11 +594,12 @@
                        case WM_OP_EXEC_REGION_WIN:
                        case WM_OP_INVOKE_REGION_WIN: 
                        {
-                               /* forces operator to go to the region window, 
for header menus */
+                               /* forces operator to go to the region window, 
for header menus
+                                  but we stay in the same region if we are 
already in one */
                                ARegion *ar= CTX_wm_region(C);
                                ScrArea *area= CTX_wm_area(C);
                                
-                               if(area) {
+                               if(!(ar && ar->regiontype == RGN_TYPE_WINDOW) 
&& area) {
                                        ARegion *ar1= area->regionbase.first;
                                        for(; ar1; ar1= ar1->next)
                                                
if(ar1->regiontype==RGN_TYPE_WINDOW)

Modified: trunk/blender/source/blender/windowmanager/intern/wm_keymap.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_keymap.c       
2010-01-31 15:06:20 UTC (rev 26473)
+++ trunk/blender/source/blender/windowmanager/intern/wm_keymap.c       
2010-01-31 16:59:21 UTC (rev 26474)
@@ -475,10 +475,11 @@
        if(found==NULL) {
                if(ELEM(opcontext, WM_OP_EXEC_REGION_WIN, 
WM_OP_INVOKE_REGION_WIN)) {
                        if(sa) {
-                               ARegion *ar= sa->regionbase.first;
-                               for(; ar; ar= ar->next)
-                                       if(ar->regiontype==RGN_TYPE_WINDOW)
-                                               break;
+                               if(!(ar && ar->regiontype == RGN_TYPE_WINDOW)) {
+                                       for(ar= sa->regionbase.first; ar; ar= 
ar->next)
+                                               
if(ar->regiontype==RGN_TYPE_WINDOW)
+                                                       break;
+                               }
 
                                if(ar)
                                        found= wm_keymap_item_find_handlers(C, 
&ar->handlers, opname, opcontext, properties, hotkey, compare_props, keymap_r);


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

Reply via email to