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_close_button(rct_window* w);
|
||||||
static void window_view_clipping_mouseup(rct_window* w, rct_widgetindex widgetIndex);
|
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_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_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);
|
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_close_button,
|
||||||
window_view_clipping_mouseup,
|
window_view_clipping_mouseup,
|
||||||
nullptr,
|
nullptr,
|
||||||
nullptr,
|
window_view_clipping_mousedown,
|
||||||
nullptr,
|
nullptr,
|
||||||
nullptr,
|
nullptr,
|
||||||
window_view_clipping_update,
|
window_view_clipping_update,
|
||||||
|
@ -160,6 +161,7 @@ rct_window * window_view_clipping_open()
|
||||||
(1ULL << WIDX_CLIP_HEIGHT_SLIDER) |
|
(1ULL << WIDX_CLIP_HEIGHT_SLIDER) |
|
||||||
(1ULL << WIDX_CLIP_SELECTOR) |
|
(1ULL << WIDX_CLIP_SELECTOR) |
|
||||||
(1ULL << WIDX_CLIP_CLEAR);
|
(1ULL << WIDX_CLIP_CLEAR);
|
||||||
|
window->hold_down_widgets = (1ULL << WIDX_CLIP_HEIGHT_INCREASE) | (1UL << WIDX_CLIP_HEIGHT_DECREASE);
|
||||||
|
|
||||||
window_init_scroll_widgets(window);
|
window_init_scroll_widgets(window);
|
||||||
|
|
||||||
|
@ -224,20 +226,6 @@ static void window_view_clipping_mouseup(rct_window *w, rct_widgetindex widgetIn
|
||||||
}
|
}
|
||||||
window_invalidate(w);
|
window_invalidate(w);
|
||||||
break;
|
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:
|
case WIDX_CLIP_HEIGHT_VALUE:
|
||||||
// Toggle display of the cut height value in RAW vs UNITS
|
// Toggle display of the cut height value in RAW vs UNITS
|
||||||
if (gClipHeightDisplayType == DISPLAY_TYPE::DISPLAY_RAW)
|
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)
|
static void window_view_clipping_update(rct_window *w)
|
||||||
{
|
{
|
||||||
const rct_widget *const widget = &window_view_clipping_widgets[WIDX_CLIP_HEIGHT_SLIDER];
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (widgetType == WWT_STEPPER)
|
||||||
{
|
{
|
||||||
buttonWidgetIndex = wheel < 0 ? widgetIndex + 1 : widgetIndex + 2;
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (widget_is_disabled(w, buttonWidgetIndex))
|
if (widget_is_disabled(w, buttonWidgetIndex))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue