[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57223] trunk/blender/source/blender/ editors/interface/interface_handlers.c: fix for missing undo push for drag-toggle.

Campbell Barton ideasman42 at gmail.com
Mon Jun 3 21:52:53 CEST 2013


Revision: 57223
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57223
Author:   campbellbarton
Date:     2013-06-03 19:52:53 +0000 (Mon, 03 Jun 2013)
Log Message:
-----------
fix for missing undo push for drag-toggle.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_handlers.c

Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2013-06-03 19:20:45 UTC (rev 57222)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2013-06-03 19:52:53 UTC (rev 57223)
@@ -762,6 +762,7 @@
 	eButType but_type_start;
 
 	bool xy_lock[2];
+	int  xy_init[2];
 	int  xy_last[2];
 } uiDragToggleHandle;
 
@@ -893,6 +894,13 @@
 
 	if (done) {
 		wmWindow *win = CTX_wm_window(C);
+		ARegion *ar = CTX_wm_region(C);
+		uiBut *but = ui_but_find_mouse_over(ar, drag_info->xy_init[0], drag_info->xy_init[1]);
+
+		if (but) {
+			ui_apply_undo(but);
+		}
+
 		WM_event_remove_ui_handler(&win->modalhandlers,
 		                           ui_handler_region_drag_toggle,
 		                           ui_handler_region_drag_toggle_remove,
@@ -952,6 +960,7 @@
 			drag_info->but_cent_start[0] = BLI_rctf_cent_x(&but->rect);
 			drag_info->but_cent_start[1] = BLI_rctf_cent_y(&but->rect);
 			drag_info->but_type_start = but->type;
+			copy_v2_v2_int(drag_info->xy_init, &event->x);
 			copy_v2_v2_int(drag_info->xy_last, &event->x);
 
 			/* needed for toggle drag on popups */




More information about the Bf-blender-cvs mailing list