[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23331] trunk/blender/source/blender: 2.5: Handlers are now evaluated in a different order, fixing some

Brecht Van Lommel brecht at blender.org
Fri Sep 18 14:43:37 CEST 2009


Revision: 23331
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23331
Author:   blendix
Date:     2009-09-18 14:43:36 +0200 (Fri, 18 Sep 2009)

Log Message:
-----------
2.5: Handlers are now evaluated in a different order, fixing some
issues like Shift+R (repeat last) not giving capital R in the text
editor. There is also new modal handler list at the window level,
and the API call will always add it to that one now, since modal
handlers were not used in other levels.

The order used to be:
* window modal + keymap
* area modal + keymap
* region modal + keymap

Now it is:
* window modal
* region keymap
* area keymap
* window keymap

Modified Paths:
--------------
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/editors/animation/anim_markers.c
    trunk/blender/source/blender/editors/animation/anim_ops.c
    trunk/blender/source/blender/editors/armature/editarmature_sketch.c
    trunk/blender/source/blender/editors/armature/poselib.c
    trunk/blender/source/blender/editors/gpencil/gpencil_paint.c
    trunk/blender/source/blender/editors/interface/interface_handlers.c
    trunk/blender/source/blender/editors/interface/interface_panel.c
    trunk/blender/source/blender/editors/interface/interface_regions.c
    trunk/blender/source/blender/editors/interface/view2d_ops.c
    trunk/blender/source/blender/editors/mesh/loopcut.c
    trunk/blender/source/blender/editors/physics/editparticle.c
    trunk/blender/source/blender/editors/screen/screen_ops.c
    trunk/blender/source/blender/editors/sculpt_paint/paint_image.c
    trunk/blender/source/blender/editors/sculpt_paint/paint_vertex.c
    trunk/blender/source/blender/editors/sculpt_paint/sculpt.c
    trunk/blender/source/blender/editors/space_image/image_ops.c
    trunk/blender/source/blender/editors/space_node/node_edit.c
    trunk/blender/source/blender/editors/space_text/text_ops.c
    trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
    trunk/blender/source/blender/editors/transform/transform_ops.c
    trunk/blender/source/blender/editors/uvedit/uvedit_unwrap_ops.c
    trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h
    trunk/blender/source/blender/windowmanager/WM_api.h
    trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
    trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c
    trunk/blender/source/blender/windowmanager/intern/wm_window.c

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2009-09-18 11:25:52 UTC (rev 23330)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2009-09-18 12:43:36 UTC (rev 23331)
@@ -4371,6 +4371,7 @@
 		win->timers.first= win->timers.last= NULL;
 		win->queue.first= win->queue.last= NULL;
 		win->handlers.first= win->handlers.last= NULL;
+		win->modalhandlers.first= win->modalhandlers.last= NULL;
 		win->subwindows.first= win->subwindows.last= NULL;
 		win->gesture.first= win->gesture.last= NULL;
 

Modified: trunk/blender/source/blender/editors/animation/anim_markers.c
===================================================================
--- trunk/blender/source/blender/editors/animation/anim_markers.c	2009-09-18 11:25:52 UTC (rev 23330)
+++ trunk/blender/source/blender/editors/animation/anim_markers.c	2009-09-18 12:43:36 UTC (rev 23331)
@@ -458,7 +458,7 @@
 		mm->event_type= evt->type;
 		
 		/* add temp handler */
-		WM_event_add_modal_handler(C, &CTX_wm_window(C)->handlers, op);
+		WM_event_add_modal_handler(C, op);
 		
 		/* reset frs delta */
 		RNA_int_set(op->ptr, "frames", 0);

Modified: trunk/blender/source/blender/editors/animation/anim_ops.c
===================================================================
--- trunk/blender/source/blender/editors/animation/anim_ops.c	2009-09-18 11:25:52 UTC (rev 23330)
+++ trunk/blender/source/blender/editors/animation/anim_ops.c	2009-09-18 12:43:36 UTC (rev 23331)
@@ -162,7 +162,7 @@
 	change_frame_apply(C, op);
 	
 	/* add temp handler */
-	WM_event_add_modal_handler(C, &CTX_wm_window(C)->handlers, op);
+	WM_event_add_modal_handler(C, op);
 
 	return OPERATOR_RUNNING_MODAL;
 }

Modified: trunk/blender/source/blender/editors/armature/editarmature_sketch.c
===================================================================
--- trunk/blender/source/blender/editors/armature/editarmature_sketch.c	2009-09-18 11:25:52 UTC (rev 23330)
+++ trunk/blender/source/blender/editors/armature/editarmature_sketch.c	2009-09-18 12:43:36 UTC (rev 23331)
@@ -2618,7 +2618,7 @@
 
 	sk_draw_stroke(C, sketch, sketch->active_stroke, dd, snap);
 
-	WM_event_add_modal_handler(C, &CTX_wm_window(C)->handlers, op);
+	WM_event_add_modal_handler(C, op);
 
 	return OPERATOR_RUNNING_MODAL;
 }
@@ -2644,7 +2644,7 @@
 	sk_start_draw_gesture(sketch);
 	sk_draw_stroke(C, sketch, sketch->gesture, dd, snap);
 
-	WM_event_add_modal_handler(C, &CTX_wm_window(C)->handlers, op);
+	WM_event_add_modal_handler(C, op);
 
 	return OPERATOR_RUNNING_MODAL;
 }

Modified: trunk/blender/source/blender/editors/armature/poselib.c
===================================================================
--- trunk/blender/source/blender/editors/armature/poselib.c	2009-09-18 11:25:52 UTC (rev 23330)
+++ trunk/blender/source/blender/editors/armature/poselib.c	2009-09-18 12:43:36 UTC (rev 23331)
@@ -1411,7 +1411,7 @@
 	poselib_preview_apply(C, op);
 	
 	/* add temp handler if we're running as a modal operator */
-	WM_event_add_modal_handler(C, &CTX_wm_window(C)->handlers, op);
+	WM_event_add_modal_handler(C, op);
 
 	return OPERATOR_RUNNING_MODAL;
 }

Modified: trunk/blender/source/blender/editors/gpencil/gpencil_paint.c
===================================================================
--- trunk/blender/source/blender/editors/gpencil/gpencil_paint.c	2009-09-18 11:25:52 UTC (rev 23330)
+++ trunk/blender/source/blender/editors/gpencil/gpencil_paint.c	2009-09-18 12:43:36 UTC (rev 23331)
@@ -1341,7 +1341,7 @@
 	}
 	
 	/* add a modal handler for this operator, so that we can then draw continuous strokes */
-	WM_event_add_modal_handler(C, &CTX_wm_window(C)->handlers, op);
+	WM_event_add_modal_handler(C, op);
 	return OPERATOR_RUNNING_MODAL;
 }
 

Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2009-09-18 11:25:52 UTC (rev 23330)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2009-09-18 12:43:36 UTC (rev 23331)
@@ -3660,11 +3660,11 @@
 	if(!(but->block->handle && but->block->handle->popup)) {
 		if(button_modal_state(state)) {
 			if(!button_modal_state(data->state))
-				WM_event_add_ui_handler(C, &data->window->handlers, ui_handler_region_menu, NULL, data);
+				WM_event_add_ui_handler(C, &data->window->modalhandlers, ui_handler_region_menu, NULL, data);
 		}
 		else {
 			if(button_modal_state(data->state))
-				WM_event_remove_ui_handler(&data->window->handlers, ui_handler_region_menu, NULL, data);
+				WM_event_remove_ui_handler(&data->window->modalhandlers, ui_handler_region_menu, NULL, data);
 		}
 	}
 
@@ -4600,7 +4600,7 @@
 		uiPopupBlockHandle temp= *menu;
 		
 		ui_popup_block_free(C, menu);
-		WM_event_remove_ui_handler(&CTX_wm_window(C)->handlers, ui_handler_popup, ui_handler_remove_popup, menu);
+		WM_event_remove_ui_handler(&CTX_wm_window(C)->modalhandlers, ui_handler_popup, ui_handler_remove_popup, menu);
 
 		if(temp.menuretval == UI_RETURN_OK) {
 			if(temp.popup_func)

Modified: trunk/blender/source/blender/editors/interface/interface_panel.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_panel.c	2009-09-18 11:25:52 UTC (rev 23330)
+++ trunk/blender/source/blender/editors/interface/interface_panel.c	2009-09-18 12:43:36 UTC (rev 23331)
@@ -1400,14 +1400,14 @@
 		MEM_freeN(data);
 		pa->activedata= NULL;
 
-		WM_event_remove_ui_handler(&win->handlers, ui_handler_panel, ui_handler_remove_panel, pa);
+		WM_event_remove_ui_handler(&win->modalhandlers, ui_handler_panel, ui_handler_remove_panel, pa);
 	}
 	else {
 		if(!data) {
 			data= MEM_callocN(sizeof(uiHandlePanelData), "uiHandlePanelData");
 			pa->activedata= data;
 
-			WM_event_add_ui_handler(C, &win->handlers, ui_handler_panel, ui_handler_remove_panel, pa);
+			WM_event_add_ui_handler(C, &win->modalhandlers, ui_handler_panel, ui_handler_remove_panel, pa);
 		}
 
 		if(ELEM(state, PANEL_STATE_ANIMATION, PANEL_STATE_DRAG))

Modified: trunk/blender/source/blender/editors/interface/interface_regions.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_regions.c	2009-09-18 11:25:52 UTC (rev 23330)
+++ trunk/blender/source/blender/editors/interface/interface_regions.c	2009-09-18 12:43:36 UTC (rev 23331)
@@ -2275,7 +2275,7 @@
 	if(!but) {
 		handle->popup= 1;
 
-		UI_add_popup_handlers(C, &window->handlers, handle);
+		UI_add_popup_handlers(C, &window->modalhandlers, handle);
 		WM_event_add_mousemove(C);
 	}
 	
@@ -2332,7 +2332,7 @@
 	menu= ui_popup_block_create(C, NULL, NULL, NULL, ui_block_func_POPUP, pup);
 	menu->popup= 1;
 	
-	UI_add_popup_handlers(C, &window->handlers, menu);
+	UI_add_popup_handlers(C, &window->modalhandlers, menu);
 	WM_event_add_mousemove(C);
 	
 	MEM_freeN(pup);
@@ -2493,7 +2493,7 @@
 	handle->optype= (opname)? WM_operatortype_find(opname, 0): NULL;
 	handle->opcontext= opcontext;
 	
-	UI_add_popup_handlers(C, &window->handlers, handle);
+	UI_add_popup_handlers(C, &window->modalhandlers, handle);
 	WM_event_add_mousemove(C);
 }
 
@@ -2516,7 +2516,7 @@
 	handle->cancel_func= confirm_cancel_operator;
 	handle->opcontext= opcontext;
 	
-	UI_add_popup_handlers(C, &window->handlers, handle);
+	UI_add_popup_handlers(C, &window->modalhandlers, handle);
 	WM_event_add_mousemove(C);
 }
 

Modified: trunk/blender/source/blender/editors/interface/view2d_ops.c
===================================================================
--- trunk/blender/source/blender/editors/interface/view2d_ops.c	2009-09-18 11:25:52 UTC (rev 23330)
+++ trunk/blender/source/blender/editors/interface/view2d_ops.c	2009-09-18 12:43:36 UTC (rev 23331)
@@ -210,7 +210,7 @@
 		WM_cursor_modal(window, BC_NSEW_SCROLLCURSOR);
 	
 	/* add temp handler */
-	WM_event_add_modal_handler(C, &window->handlers, op);
+	WM_event_add_modal_handler(C, op);
 
 	return OPERATOR_RUNNING_MODAL;
 }
@@ -764,7 +764,7 @@
 		WM_cursor_modal(window, BC_NSEW_SCROLLCURSOR);
 	
 	/* add temp handler */
-	WM_event_add_modal_handler(C, &window->handlers, op);
+	WM_event_add_modal_handler(C, op);
 
 	return OPERATOR_RUNNING_MODAL;
 }
@@ -1292,7 +1292,7 @@
 			v2d->scroll_ui |= V2D_SCROLL_V_ACTIVE;
 		
 		/* still ok, so can add */
-		WM_event_add_modal_handler(C, &CTX_wm_window(C)->handlers, op);
+		WM_event_add_modal_handler(C, op);
 		return OPERATOR_RUNNING_MODAL;
 	}
 	else {

Modified: trunk/blender/source/blender/editors/mesh/loopcut.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/loopcut.c	2009-09-18 11:25:52 UTC (rev 23330)
+++ trunk/blender/source/blender/editors/mesh/loopcut.c	2009-09-18 12:43:36 UTC (rev 23331)
@@ -328,7 +328,7 @@
 		return OPERATOR_CANCELLED;
 	
 	/* add a modal handler for this operator - handles loop selection */
-	WM_event_add_modal_handler(C, &CTX_wm_window(C)->handlers, op);
+	WM_event_add_modal_handler(C, op);
 
 	lcd = op->customdata;
 	lcd->vc.mval[0] = evt->mval[0];
@@ -356,7 +356,7 @@
 		return OPERATOR_CANCELLED;
 	
 	/* add a modal handler for this operator - handles loop selection */
-	WM_event_add_modal_handler(C, &CTX_wm_window(C)->handlers, op);
+	WM_event_add_modal_handler(C, op);
 
 	lcd = op->customdata;
 	lcd->vc.mval[0] = evt->mval[0];

Modified: trunk/blender/source/blender/editors/physics/editparticle.c
===================================================================
--- trunk/blender/source/blender/editors/physics/editparticle.c	2009-09-18 11:25:52 UTC (rev 23330)
+++ trunk/blender/source/blender/editors/physics/editparticle.c	2009-09-18 12:43:36 UTC (rev 23331)
@@ -3352,7 +3352,7 @@
 	
 	brush_edit_apply_event(C, op, event);
 
-	WM_event_add_modal_handler(C, &CTX_wm_window(C)->handlers, op);
+	WM_event_add_modal_handler(C, op);
 
 	return OPERATOR_RUNNING_MODAL;
 }

Modified: trunk/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_ops.c	2009-09-18 11:25:52 UTC (rev 23330)
+++ trunk/blender/source/blender/editors/screen/screen_ops.c	2009-09-18 12:43:36 UTC (rev 23331)
@@ -456,7 +456,7 @@
 	}
 	else {
 		/* add modal handler */

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list