scroll by one line in textlist
to scroll by only one line, hold CONTROL key and scroll with mouse wheel
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user