[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50091] trunk/blender/source/blender/ editors/interface/interface_handlers.c: alt+wheel scrolling over the render slots works again ( this didnt support scrolling when new interfaces would replace the old ones ).

Campbell Barton ideasman42 at gmail.com
Tue Aug 21 17:45:17 CEST 2012


Revision: 50091
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50091
Author:   campbellbarton
Date:     2012-08-21 15:45:17 +0000 (Tue, 21 Aug 2012)
Log Message:
-----------
alt+wheel scrolling over the render slots works again (this didnt support scrolling when new interfaces would replace the old ones).

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	2012-08-21 15:16:53 UTC (rev 50090)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2012-08-21 15:45:17 UTC (rev 50091)
@@ -2945,9 +2945,11 @@
 			return WM_UI_HANDLER_BREAK;
 		}
 		else if (ELEM3(but->type, MENU, ICONROW, ICONTEXTROW)) {
-			
-			if (event->type == WHEELDOWNMOUSE && event->alt) {
-				data->value = ui_step_name_menu(but, -1);
+			if (ELEM(event->type, WHEELDOWNMOUSE, WHEELUPMOUSE) && event->alt) {
+				const int direction = (event->type == WHEELDOWNMOUSE) ? -1 : 1;
+
+				data->value = ui_step_name_menu(but, direction);
+
 				button_activate_state(C, but, BUTTON_STATE_EXIT);
 				ui_apply_button(C, but->block, but, data, 1);
 
@@ -2961,17 +2963,16 @@
 				data->postbut = but;
 				data->posttype = BUTTON_ACTIVATE_OVER;
 
-				return WM_UI_HANDLER_BREAK;
-			}
-			else if (event->type == WHEELUPMOUSE && event->alt) {
-				data->value = ui_step_name_menu(but, 1);
-				button_activate_state(C, but, BUTTON_STATE_EXIT);
-				ui_apply_button(C, but->block, but, data, 1);
+				/* without this, a new interface that draws as result of the menu change
+				 * won't register that the mouse is over it, eg:
+				 * Alt+MouseWheel over the render slots, without this,
+				 * the slot menu fails to switch a second time.
+				 *
+				 * Theactive state of the button could be maintained some other way
+				 * and remove this mousemove event.
+				 */
+				WM_event_add_mousemove(C);
 
-				/* why this is needed described above */
-				data->postbut = but;
-				data->posttype = BUTTON_ACTIVATE_OVER;
-
 				return WM_UI_HANDLER_BREAK;
 			}
 		}




More information about the Bf-blender-cvs mailing list