diff --git a/src/gui/Window.cc b/src/gui/Window.cc index 003a664..f0aa2ac 100644 --- a/src/gui/Window.cc +++ b/src/gui/Window.cc @@ -205,18 +205,18 @@ void Window::handle_event(Jtk_Event & event) break; } break; +#endif - case SDL_MOUSEWHEEL: - if (event.wheel.y > 0) + case JTK_EVENT_BUTTON_PRESS: + if (event.button.button == 4) { m_focused_buffer_pane->scroll_window_up(ScrollMode::WHEEL); } - else + else if (event.button.button == 5) { m_focused_buffer_pane->scroll_window_down(ScrollMode::WHEEL); } break; -#endif } } diff --git a/src/gui/jtk/Jtk_event.cc b/src/gui/jtk/Jtk_event.cc index 966069f..efd39e2 100644 --- a/src/gui/jtk/Jtk_event.cc +++ b/src/gui/jtk/Jtk_event.cc @@ -276,6 +276,16 @@ static bool ProcessXKeyReleaseEvent(XEvent * x_event, Jtk_Event * event) return false; } +/** + * Process an X button press event. + */ +static bool ProcessXButtonPressEvent(XEvent * x_event, Jtk_Event * event) +{ + event->type = JTK_EVENT_BUTTON_PRESS; + event->button.button = x_event->xbutton.button; + return true; +} + /** * Process an X configure event. * @@ -316,7 +326,7 @@ static bool ProcessXEvent(XEvent * x_event, Jtk_Event * event) return ProcessXKeyReleaseEvent(x_event, event); case ButtonPress: - break; + return ProcessXButtonPressEvent(x_event, event); case ButtonRelease: break;