[Bf-blender-cvs] [c971aac] master: UI: wheel switches tabs over the tab area, or ctrl+wheel anywhere

Campbell Barton noreply at git.blender.org
Mon Feb 17 03:48:09 CET 2014


Commit: c971aac3b1550e081e87903e9f7463ef1ff7e0ea
Author: Campbell Barton
Date:   Mon Feb 17 13:46:07 2014 +1100
https://developer.blender.org/rBc971aac3b1550e081e87903e9f7463ef1ff7e0ea

UI: wheel switches tabs over the tab area, or ctrl+wheel anywhere

===================================================================

M	source/blender/editors/interface/interface_panel.c

===================================================================

diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c
index 1c6ea14..9435ca4 100644
--- a/source/blender/editors/interface/interface_panel.c
+++ b/source/blender/editors/interface/interface_panel.c
@@ -1311,9 +1311,6 @@ static void ui_panel_category_draw_tab(int mode, float minx, float miny, float m
 		mul_v2_fl(vec[a], rad);
 	}
 
-	(void)use_shadow;
-	(void)use_highlight;
-
 	glBegin(mode);
 
 	/* start with corner right-top */
@@ -1644,6 +1641,25 @@ int ui_handler_panel_region(bContext *C, const wmEvent *event, ARegion *ar)
 					retval = WM_UI_HANDLER_BREAK;
 				}
 			}
+			else if (ELEM(event->type, WHEELUPMOUSE, WHEELDOWNMOUSE)) {
+				/* mouse wheel cycle tabs */
+
+				/* first check if the mouse is in the tab region */
+				if (event->ctrl || (event->x < ((PanelCategoryDyn *)ar->panels_category.first)->rect.xmax)) {
+					const char *category = UI_panel_category_active_get(ar, false);
+					if (LIKELY(category)) {
+						PanelCategoryDyn *pc_dyn = UI_panel_category_find(ar, category);
+						if (LIKELY(pc_dyn)) {
+							pc_dyn = (event->type == WHEELDOWNMOUSE) ? pc_dyn->next : pc_dyn->prev;
+							if (pc_dyn) {
+								UI_panel_category_active_set(ar, pc_dyn->idname);
+								ED_region_tag_redraw(ar);
+							}
+						}
+					}
+					retval = WM_UI_HANDLER_BREAK;
+				}
+			}
 		}
 	}




More information about the Bf-blender-cvs mailing list