[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55018] tags/blender-2.66a-release/blender /source/blender: svn merge ^/trunk/blender -c54929, also added missing header

Campbell Barton ideasman42 at gmail.com
Mon Mar 4 13:52:02 CET 2013


Revision: 55018
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55018
Author:   campbellbarton
Date:     2013-03-04 12:52:02 +0000 (Mon, 04 Mar 2013)
Log Message:
-----------
svn merge ^/trunk/blender -c54929, also added missing header

Modified Paths:
--------------
    tags/blender-2.66a-release/blender/source/blender/blenkernel/intern/object.c
    tags/blender-2.66a-release/blender/source/blender/editors/interface/interface_handlers.c

Modified: tags/blender-2.66a-release/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- tags/blender-2.66a-release/blender/source/blender/blenkernel/intern/object.c	2013-03-04 12:40:24 UTC (rev 55017)
+++ tags/blender-2.66a-release/blender/source/blender/blenkernel/intern/object.c	2013-03-04 12:52:02 UTC (rev 55018)
@@ -75,6 +75,7 @@
 #include "BKE_colortools.h"
 #include "BKE_deform.h"
 #include "BKE_DerivedMesh.h"
+#include "BKE_depsgraph.h"
 #include "BKE_animsys.h"
 #include "BKE_anim.h"
 #include "BKE_constraint.h"

Modified: tags/blender-2.66a-release/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- tags/blender-2.66a-release/blender/source/blender/editors/interface/interface_handlers.c	2013-03-04 12:40:24 UTC (rev 55017)
+++ tags/blender-2.66a-release/blender/source/blender/editors/interface/interface_handlers.c	2013-03-04 12:52:02 UTC (rev 55018)
@@ -6053,14 +6053,12 @@
 
 static int ui_handle_button_event(bContext *C, const wmEvent *event, uiBut *but)
 {
-	uiHandleButtonData *data;
+	uiHandleButtonData *data = but->active;
+	const uiButtonActivateType state_orig = data->state;
 	uiBlock *block;
 	ARegion *ar;
-	uiBut *postbut;
-	uiButtonActivateType posttype;
 	int retval;
 
-	data = but->active;
 	block = but->block;
 	ar = data->region;
 
@@ -6212,14 +6210,28 @@
 	}
 
 	if (data->state == BUTTON_STATE_EXIT) {
-		postbut = data->postbut;
-		posttype = data->posttype;
+		uiBut *post_but = data->postbut;
+		uiButtonActivateType post_type = data->posttype;
 
-		button_activate_exit(C, data, but, (postbut == NULL), 0);
+		button_activate_exit(C, data, but, (post_but == NULL), false);
 
 		/* for jumping to the next button with tab while text editing */
-		if (postbut)
-			button_activate_init(C, ar, postbut, posttype);
+		if (post_but) {
+			button_activate_init(C, ar, post_but, post_type);
+		}
+		else {
+			/* XXX issue is because WM_event_add_mousemove(C) is a bad hack and not reliable,
+			 *if that gets coded better this bypass can go away too.
+			 *
+			 * This is needed to make sure if a button was active,
+			 * it stays active while the mouse is over it.
+			 * This avoids adding mousemoves, see: [#33466] */
+			if (ELEM(state_orig, BUTTON_ACTIVATE, BUTTON_ACTIVATE_OVER)) {
+				if (ui_but_find_mouse_over(ar, event->x, event->y) == but) {
+					button_activate_init(C, ar, but, state_orig);
+				}
+			}
+		}
 	}
 
 	return retval;




More information about the Bf-blender-cvs mailing list