Commit d62de525 authored by Cedric Roux's avatar Cedric Roux

scroll by one line in textlist

to scroll by only one line, hold CONTROL key and scroll with
mouse wheel
parent b07efe7a
......@@ -34,11 +34,14 @@ static void scroll(void *private, gui *g,
int number_of_lines;
int new_line;
int inc;
int *d = notification_data;
int key_modifiers = *d;
textlist_state(g, w, &visible_lines, &start_line, &number_of_lines);
inc = 10;
if (inc > visible_lines - 2) inc = visible_lines - 2;
if (inc < 1) inc = 1;
if (key_modifiers & KEY_CONTROL) inc = 1;
if (!strcmp(notification, "scrollup")) inc = -inc;
new_line = start_line + inc;
......
......@@ -83,8 +83,8 @@ int new_color(gui *gui, char *color);
/* notifications */
/* known notifications:
* - textlist:
* - scrollup { void *: NULL }
* - scrolldown { void *: NULL }
* - scrollup { int: key_modifiers }
* - scrolldown { int: key_modifiers }
* - click { int [2]: line, button }
* - label:
* - click { int: button } (if enabled)
......
......@@ -54,11 +54,11 @@ static void button(gui *_g, widget *_this, int x, int y,
x -= this->common.x;
/* scroll up */
if (button == 4 && up == 0) {
gui_notify(g, "scrollup", _this, NULL);
gui_notify(g, "scrollup", _this, &key_modifiers);
}
/* scroll down */
if (button == 5 && up == 0) {
gui_notify(g, "scrolldown", _this, NULL);
gui_notify(g, "scrolldown", _this, &key_modifiers);
}
/* button 1/2/3 click */
if (button >= 1 && button <= 3 && up == 0) {
......
......@@ -89,6 +89,8 @@ static void scroll(void *private, gui *g,
int number_of_lines;
int new_line;
int inc;
int *d = notification_data;
int key_modifiers = *d;
if (pthread_mutex_lock(&this->lock)) abort();
......@@ -96,6 +98,7 @@ static void scroll(void *private, gui *g,
inc = 10;
if (inc > visible_lines - 2) inc = visible_lines - 2;
if (inc < 1) inc = 1;
if (key_modifiers & KEY_CONTROL) inc = 1;
if (!strcmp(notification, "scrollup")) inc = -inc;
new_line = start_line + inc;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment