[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35449] trunk/blender/source/blender: Bugfix #26437

Ton Roosendaal ton at blender.org
Thu Mar 10 12:11:27 CET 2011


Revision: 35449
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35449
Author:   ton
Date:     2011-03-10 11:11:26 +0000 (Thu, 10 Mar 2011)
Log Message:
-----------
Bugfix #26437

- Tooltip-hanging fix made the 'active' button be removed when mouse
  enters another subwindow. Caused by commit of a week ago.

- Reverted the eventsystem change that sets 'active subwindow' before
  it calls modal handlers. This made editors become active on using
  menus, buttons, or other modal ops.

  Side effect is that for transform operators called via toolbar, the
  overlay-extra draw with helplines now gets skipped. Will check on
  good ways for it.

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

Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2011-03-10 08:51:41 UTC (rev 35448)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2011-03-10 11:11:26 UTC (rev 35449)
@@ -4608,7 +4608,8 @@
 				uiHandleButtonData *data= but->active;
 				
 				if(data->menu==NULL && data->searchbox==NULL)
-					ui_button_active_free(C, but);
+					if(data->state == BUTTON_STATE_HIGHLIGHT)
+						ui_button_active_free(C, but);
 			}
 		}
 	}

Modified: trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2011-03-10 08:51:41 UTC (rev 35448)
+++ trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2011-03-10 11:11:26 UTC (rev 35449)
@@ -1738,14 +1738,6 @@
 			CTX_wm_area_set(C, area_event_inside(C, event->x, event->y));
 			CTX_wm_region_set(C, region_event_inside(C, event->x, event->y));
 			
-			/* XXX to solve, here screen handlers? */
-			if(event->type==MOUSEMOVE) {
-				/* state variables in screen, cursors, also used in wm_draw.c */
-				ED_screen_set_subwinactive(C, event);	
-				/* for regions having custom cursors */
-				wm_paintcursor_test(C, event);
-			}
-			
 			/* MVC demands to not draw in event handlers... but we need to leave it for ogl selecting etc */
 			wm_window_make_drawable(C, win);
 			
@@ -1767,6 +1759,14 @@
 				ARegion *ar;
 				int doit= 0;
 	
+				/* Note: setting subwin active should be done here, after modal handlers have been done */
+				if(event->type==MOUSEMOVE) {
+					/* state variables in screen, cursors. Also used in wm_draw.c, fails for modal handlers though */
+					ED_screen_set_subwinactive(C, event);	
+					/* for regions having custom cursors */
+					wm_paintcursor_test(C, event);
+				}
+				
 				for(sa= win->screen->areabase.first; sa; sa= sa->next) {
 					if(wm_event_inside_i(event, &sa->totrct)) {
 						CTX_wm_area_set(C, sa);




More information about the Bf-blender-cvs mailing list