mirror of https://github.com/OpenRCT2/OpenRCT2.git
Move cut-away stepper logic to mousedown handler
This makes scrolling work for the stepper widget, and overrides behaviour for scrolling anywhere else in the window.
This commit is contained in:
parent
15c908e4af
commit
32c4dab6c8
|
@ -84,6 +84,7 @@ static bool _dragging;
|
|||
|
||||
static void window_view_clipping_close_button(rct_window* w);
|
||||
static void window_view_clipping_mouseup(rct_window* w, rct_widgetindex widgetIndex);
|
||||
static void window_view_clipping_mousedown(rct_window*w, rct_widgetindex widgetIndex, rct_widget *widget);
|
||||
static void window_view_clipping_update(rct_window* w);
|
||||
static void window_view_clipping_tool_update(rct_window* w, rct_widgetindex widgetIndex, sint32 x, sint32 y);
|
||||
static void window_view_clipping_tool_down(rct_window* w, rct_widgetindex widgetIndex, sint32 x, sint32 y);
|
||||
|
@ -98,7 +99,7 @@ static rct_window_event_list window_view_clipping_events = {
|
|||
window_view_clipping_close_button,
|
||||
window_view_clipping_mouseup,
|
||||
nullptr,
|
||||
nullptr,
|
||||
window_view_clipping_mousedown,
|
||||
nullptr,
|
||||
nullptr,
|
||||
window_view_clipping_update,
|
||||
|
@ -160,6 +161,7 @@ rct_window * window_view_clipping_open()
|
|||
(1ULL << WIDX_CLIP_HEIGHT_SLIDER) |
|
||||
(1ULL << WIDX_CLIP_SELECTOR) |
|
||||
(1ULL << WIDX_CLIP_CLEAR);
|
||||
window->hold_down_widgets = (1ULL << WIDX_CLIP_HEIGHT_INCREASE) | (1UL << WIDX_CLIP_HEIGHT_DECREASE);
|
||||
|
||||
window_init_scroll_widgets(window);
|
||||
|
||||
|
@ -224,20 +226,6 @@ static void window_view_clipping_mouseup(rct_window *w, rct_widgetindex widgetIn
|
|||
}
|
||||
window_invalidate(w);
|
||||
break;
|
||||
case WIDX_CLIP_HEIGHT_INCREASE:
|
||||
if (gClipHeight < 255)
|
||||
window_view_clipping_set_clipheight(w, gClipHeight + 1);
|
||||
mainWindow = window_get_main();
|
||||
if (mainWindow != nullptr)
|
||||
window_invalidate(mainWindow);
|
||||
break;
|
||||
case WIDX_CLIP_HEIGHT_DECREASE:
|
||||
if (gClipHeight > 0)
|
||||
window_view_clipping_set_clipheight(w, gClipHeight - 1);
|
||||
mainWindow = window_get_main();
|
||||
if (mainWindow != nullptr)
|
||||
window_invalidate(mainWindow);
|
||||
break;
|
||||
case WIDX_CLIP_HEIGHT_VALUE:
|
||||
// Toggle display of the cut height value in RAW vs UNITS
|
||||
if (gClipHeightDisplayType == DISPLAY_TYPE::DISPLAY_RAW)
|
||||
|
@ -276,6 +264,29 @@ static void window_view_clipping_mouseup(rct_window *w, rct_widgetindex widgetIn
|
|||
}
|
||||
}
|
||||
|
||||
static void window_view_clipping_mousedown(rct_window* w, rct_widgetindex widgetIndex, rct_widget* widget)
|
||||
{
|
||||
rct_window* mainWindow = window_get_main();
|
||||
|
||||
switch (widgetIndex)
|
||||
{
|
||||
case WIDX_CLIP_HEIGHT_INCREASE:
|
||||
if (gClipHeight < 255)
|
||||
window_view_clipping_set_clipheight(w, gClipHeight + 1);
|
||||
mainWindow = window_get_main();
|
||||
if (mainWindow != nullptr)
|
||||
window_invalidate(mainWindow);
|
||||
break;
|
||||
case WIDX_CLIP_HEIGHT_DECREASE:
|
||||
if (gClipHeight > 0)
|
||||
window_view_clipping_set_clipheight(w, gClipHeight - 1);
|
||||
mainWindow = window_get_main();
|
||||
if (mainWindow != nullptr)
|
||||
window_invalidate(mainWindow);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void window_view_clipping_update(rct_window *w)
|
||||
{
|
||||
const rct_widget *const widget = &window_view_clipping_widgets[WIDX_CLIP_HEIGHT_SLIDER];
|
||||
|
|
|
@ -303,7 +303,7 @@ static bool window_other_wheel_input(rct_window* w, rct_widgetindex widgetIndex,
|
|||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
else if (widgetType == WWT_STEPPER)
|
||||
{
|
||||
buttonWidgetIndex = wheel < 0 ? widgetIndex + 1 : widgetIndex + 2;
|
||||
|
||||
|
@ -314,6 +314,10 @@ static bool window_other_wheel_input(rct_window* w, rct_widgetindex widgetIndex,
|
|||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (widget_is_disabled(w, buttonWidgetIndex))
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue