[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34564] trunk/blender/source/blender/ editors/interface/interface_handlers.c: Bugfix #25840

Ton Roosendaal ton at blender.org
Sun Jan 30 14:51:02 CET 2011


Revision: 34564
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34564
Author:   ton
Date:     2011-01-30 13:51:02 +0000 (Sun, 30 Jan 2011)
Log Message:
-----------
Bugfix #25840

UI bug: when a button has an open menu, the menu closed on any 
mouse-over of other buttons in this panel. That's not too bad,
but it didn't check for whether the mouse was already inside the
menu itself (respecting safety region).

The bug showed error on zoomed in UI, using FPS presets, in case
the menu-button was drawing aligned with other buttons. A real
boundary case... :)

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	2011-01-30 13:43:05 UTC (rev 34563)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2011-01-30 13:51:02 UTC (rev 34564)
@@ -5238,8 +5238,15 @@
 		retval= WM_UI_HANDLER_CONTINUE;
 	}
 	else if(data->state == BUTTON_STATE_MENU_OPEN) {
+		/* check for exit because of mouse-over another button */
 		switch(event->type) {
-			case MOUSEMOVE: {
+			case MOUSEMOVE:
+				
+				if(data->menu && data->menu->region)
+					if(ui_mouse_inside_region(data->menu->region, event->x, event->y))
+						break;
+			
+			{
 				uiBut *bt= ui_but_find_mouse_over(ar, event->x, event->y);
 
 				if(bt && bt->active != data) {




More information about the Bf-blender-cvs mailing list