[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23836] trunk/blender/source/blender/ editors/interface/interface_handlers.c: fix for continuous grab where you couldnt properly click the button for incremental changes or editing

Campbell Barton ideasman42 at gmail.com
Wed Oct 14 16:44:21 CEST 2009


Revision: 23836
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23836
Author:   campbellbarton
Date:     2009-10-14 16:44:21 +0200 (Wed, 14 Oct 2009)

Log Message:
-----------
fix for continuous grab where you couldnt properly click the button for incremental changes or editing

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	2009-10-14 14:44:05 UTC (rev 23835)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2009-10-14 14:44:21 UTC (rev 23836)
@@ -2138,15 +2138,15 @@
 
 static int ui_do_but_NUM(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data, wmEvent *event)
 {
-	int mx, my, click= 0;
+	int mx, my;	/* mouse location scaled to fit the UI */
+	int screen_mx, screen_my; /* mouse location kept at screen pixel coords */
+	int click= 0;
 	int retval= WM_UI_HANDLER_CONTINUE;
 	
-	mx= event->x;
-	my= event->y;
+	mx= screen_mx= event->x;
+	my= screen_my= event->y;
 
-	if(!ui_is_a_warp_but(but)) {
-		ui_window_to_block(data->region, block, &mx, &my);
-	}
+	ui_window_to_block(data->region, block, &mx, &my);
 
 	if(data->state == BUTTON_STATE_HIGHLIGHT) {
 		/* XXX hardcoded keymap check.... */
@@ -2164,8 +2164,7 @@
 				retval= WM_UI_HANDLER_BREAK;
 			}
 			else if(event->type == LEFTMOUSE) {
-				data->dragstartx= mx;
-				data->draglastx= mx;
+				data->dragstartx= data->draglastx= ui_is_a_warp_but(but) ? screen_mx:mx;
 				button_activate_state(C, but, BUTTON_STATE_NUM_EDITING);
 				retval= WM_UI_HANDLER_BREAK;
 			}
@@ -2204,7 +2203,7 @@
 			
 			snap= (event->ctrl)? (event->shift)? 2: 1: 0;
 
-			if(ui_numedit_but_NUM(but, data, fac, snap, mx))
+			if(ui_numedit_but_NUM(but, data, fac, snap, (ui_is_a_warp_but(but) ? screen_mx:mx)))
 				ui_numedit_apply(C, block, but, data);
 		}
 		retval= WM_UI_HANDLER_BREAK;





More information about the Bf-blender-cvs mailing list