[Bf-blender-cvs] [0bbff8a7113] master: Cleanup: move scroll step into own function
Campbell Barton
noreply at git.blender.org
Thu Mar 21 01:59:07 CET 2019
Commit: 0bbff8a711380be1bfdce4640e3c7584e014612e
Author: Campbell Barton
Date: Thu Mar 21 11:58:03 2019 +1100
Branches: master
https://developer.blender.org/rB0bbff8a711380be1bfdce4640e3c7584e014612e
Cleanup: move scroll step into own function
===================================================================
M source/blender/editors/interface/interface_handlers.c
===================================================================
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index d07dba851da..a50029a120f 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -8691,6 +8691,31 @@ static bool ui_menu_scroll_to_y(ARegion *ar, uiBlock *block, int y)
return false;
}
+static bool ui_menu_scroll_step(ARegion *ar, uiBlock *block, const int scroll_dir)
+{
+ int my;
+ if (scroll_dir == 1) {
+ if ((block->flag & UI_BLOCK_CLIPTOP) == 0) {
+ return false;
+ }
+ my = block->rect.ymax + UI_UNIT_Y;
+ }
+ else if (scroll_dir == -1) {
+ if ((block->flag & UI_BLOCK_CLIPBOTTOM) == 0) {
+ return false;
+ }
+ my = block->rect.ymin - UI_UNIT_Y;
+ }
+ else {
+ BLI_assert(0);
+ }
+
+ if (!ui_menu_scroll_to_y(ar, block, my)) {
+ return false;
+ }
+ return true;
+}
+
/**
* Special function to handle nested menus.
* let the parent menu get the event.
@@ -8929,23 +8954,12 @@ static int ui_handle_menu_event(
/* pass */
}
else if (!ui_block_is_menu(block)) {
- int my_scroll = INT_MAX;
- if (event->type == WHEELUPMOUSE) {
- if (block->flag & UI_BLOCK_CLIPTOP) {
- my_scroll = block->rect.ymax + (UI_UNIT_Y * 1.5);
- }
- }
- else if (event->type == WHEELDOWNMOUSE) {
- if (block->flag & UI_BLOCK_CLIPBOTTOM) {
- my_scroll = block->rect.ymin - (UI_UNIT_Y * 1.5);
- }
- }
- if (my_scroll != INT_MAX) {
+ const int scroll_dir = (event->type == WHEELUPMOUSE) ? 1 : -1;
+ if (ui_menu_scroll_step(ar, block, scroll_dir)) {
if (but) {
but->active->cancel = true;
button_activate_exit(C, but, but->active, false, false);
}
- ui_menu_scroll_to_y(ar, block, my_scroll);
WM_event_add_mousemove(C);
}
break;
More information about the Bf-blender-cvs
mailing list