return (beg <= csr && csr <= end);
}
-static void find_cursor(View* view, size_t* csrx, size_t* csry) {
- size_t csr = CSRPOS;
- for (size_t y = 0; y < view->nrows; y++) {
- size_t start = view->rows[y]->off;
- size_t end = view->rows[y]->off + view->rows[y]->len - 1;
- if (start <= csr && csr <= end) {
- size_t pos = start;
- break;
- }
- }
-}
-
static Sel* getsel(View* view) {
return &(view->buffer.selection);
}
}
}
+static void mouse_scroll(WinRegion id, bool pressed, int amount) {
+ if (!pressed)
+ view_scroll(win_view(id), amount);
+}
+
static void mouse_click(int btn, bool pressed, int x, int y) {
size_t row, col;
Focused = (y <= Divider ? TAGS : EDIT);
case MouseLeft: mouse_left(Focused, pressed, row, col); break;
case MouseMiddle: mouse_middle(Focused, pressed, row, col); break;
case MouseRight: mouse_right(Focused, pressed, row, col); break;
- case MouseWheelUp: view_scroll(win_view(Focused), -ScrollBy); break;
- case MouseWheelDn: view_scroll(win_view(Focused), +ScrollBy); break;
+ case MouseWheelUp: mouse_scroll(Focused, pressed, -ScrollBy); break;
+ case MouseWheelDn: mouse_scroll(Focused, pressed, +ScrollBy); break;
}
}