[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17713] branches/blender2.5/blender/source /blender: Small fix for repeat-last-operator:

Ton Roosendaal ton at blender.org
Thu Dec 4 10:37:46 CET 2008


Revision: 17713
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17713
Author:   ton
Date:     2008-12-04 10:37:42 +0100 (Thu, 04 Dec 2008)

Log Message:
-----------
Small fix for repeat-last-operator:

- Context in WM wasn't set for regions yet, done now. So repeat works on
  per-region ops too.
- Debug print was printing the wrong repeated op.
  (repeat-op could show menu naming the op to repeat)

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
    branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c

Modified: branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c	2008-12-04 09:33:12 UTC (rev 17712)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c	2008-12-04 09:37:42 UTC (rev 17713)
@@ -1225,7 +1225,7 @@
 	wmOperator *lastop= C->wm->operators.last;
 	
 	if(lastop) {
-		printf("repeat %s\n", op->type->idname);
+		printf("repeat %s\n", lastop->type->idname);
 		lastop->type->exec(C, lastop);
 	}
 	

Modified: branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c	2008-12-04 09:33:12 UTC (rev 17712)
+++ branches/blender2.5/blender/source/blender/windowmanager/intern/wm_event_system.c	2008-12-04 09:37:42 UTC (rev 17713)
@@ -505,6 +505,18 @@
 	return NULL;
 }
 
+static ARegion *region_event_inside(bContext *C, wmEvent *event)
+{
+	ARegion *ar;
+	
+	if(C->screen && C->area)
+		for(ar= C->area->regionbase.first; ar; ar= ar->next)
+			if(BLI_in_rcti(&ar->winrct, event->x, event->y))
+				return ar;
+	return NULL;
+}
+
+
 /* called in main loop */
 /* goes over entire hierarchy:  events -> window -> screen -> area -> region */
 void wm_event_do_handlers(bContext *C)
@@ -523,6 +535,7 @@
 			C->window= win;
 			C->screen= win->screen;
 			C->area= area_event_inside(C, event);
+			C->region= region_event_inside(C, event);
 			
 			/* MVC demands to not draw in event handlers... for now we leave it */
 			wm_window_make_drawable(C, win);





More information about the Bf-blender-cvs mailing list