[vte] widget: Make mouse scroll handler return bool
- From: Christian Persch <chpe src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vte] widget: Make mouse scroll handler return bool
- Date: Fri, 1 May 2020 21:11:35 +0000 (UTC)
commit 87943812161c45c1c33967cbfcbed487347b7c0f
Author: Christian Persch <chpe src gnome org>
Date: Fri May 1 23:08:42 2020 +0200
widget: Make mouse scroll handler return bool
This will be used in https://gitlab.gnome.org/GNOME/vte/-/issues/234
src/vte.cc | 14 ++++++++++----
src/vteinternal.hh | 2 +-
src/widget.hh | 2 +-
3 files changed, 12 insertions(+), 6 deletions(-)
---
diff --git a/src/vte.cc b/src/vte.cc
index c7a75db9..e8825f5b 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -9332,7 +9332,7 @@ vte_cairo_get_clip_region (cairo_t *cr)
return region;
}
-void
+bool
Terminal::widget_mouse_scroll(MouseEvent const& event)
{
gdouble v;
@@ -9372,7 +9372,7 @@ Terminal::widget_mouse_scroll(MouseEvent const& event)
if (m_mouse_tracking_mode != MouseTrackingMode::eNONE) {
cnt = m_mouse_smooth_scroll_delta;
if (cnt == 0)
- return;
+ return true;
m_mouse_smooth_scroll_delta -= cnt;
_vte_debug_print(VTE_DEBUG_EVENTS,
"Scroll application by %d lines, smooth scroll delta set back to %f\n",
@@ -9388,7 +9388,7 @@ Terminal::widget_mouse_scroll(MouseEvent const& event)
false /* not drag */,
false /* not release */);
}
- return;
+ return true;
}
v = MAX (1., ceil (gtk_adjustment_get_page_increment (m_vadjustment.get()) / 10.));
@@ -9402,7 +9402,7 @@ Terminal::widget_mouse_scroll(MouseEvent const& event)
cnt = v * m_mouse_smooth_scroll_delta;
if (cnt == 0)
- return;
+ return true;
m_mouse_smooth_scroll_delta -= cnt / v;
_vte_debug_print(VTE_DEBUG_EVENTS,
"Scroll by %d lines, smooth scroll delta set back to %f\n",
@@ -9424,12 +9424,18 @@ Terminal::widget_mouse_scroll(MouseEvent const& event)
send_child({normal, normal_length});
}
g_free (normal);
+
+ return true;
} else {
/* Perform a history scroll. */
double dcnt = m_screen->scroll_delta + v * m_mouse_smooth_scroll_delta;
queue_adjustment_value_changed_clamped(dcnt);
m_mouse_smooth_scroll_delta = 0;
+
+ return true;
}
+
+ return true;
}
bool
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index 58a78bf1..99582653 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -1142,7 +1142,7 @@ public:
bool widget_mouse_release(MouseEvent const& event);
void widget_mouse_enter(MouseEvent const& event);
void widget_mouse_leave(MouseEvent const& event);
- void widget_mouse_scroll(MouseEvent const& event);
+ bool widget_mouse_scroll(MouseEvent const& event);
void widget_draw(cairo_t *cr);
void widget_get_preferred_width(int *minimum_width,
int *natural_width);
diff --git a/src/widget.hh b/src/widget.hh
index 19ecef1a..8e7d1c73 100644
--- a/src/widget.hh
+++ b/src/widget.hh
@@ -80,7 +80,7 @@ public:
bool button_release(GdkEventButton *event) noexcept { return
m_terminal->widget_mouse_release(*mouse_event_from_gdk(reinterpret_cast<GdkEvent*>(event))); }
void enter(GdkEventCrossing *event) noexcept {
m_terminal->widget_mouse_enter(*mouse_event_from_gdk(reinterpret_cast<GdkEvent*>(event))); }
void leave(GdkEventCrossing *event) noexcept {
m_terminal->widget_mouse_leave(*mouse_event_from_gdk(reinterpret_cast<GdkEvent*>(event))); }
- void scroll(GdkEventScroll *event) noexcept {
m_terminal->widget_mouse_scroll(*mouse_event_from_gdk(reinterpret_cast<GdkEvent*>(event))); }
+ bool scroll(GdkEventScroll *event) noexcept { return
m_terminal->widget_mouse_scroll(*mouse_event_from_gdk(reinterpret_cast<GdkEvent*>(event))); }
bool motion_notify(GdkEventMotion *event) noexcept { return
m_terminal->widget_mouse_motion(*mouse_event_from_gdk(reinterpret_cast<GdkEvent*>(event))); }
void grab_focus() noexcept { gtk_widget_grab_focus(gtk()); }
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]