Keybindings for scrolling left and right; code by stanio.
This commit is contained in:
parent
cf75bf2777
commit
3083ef4031
2 changed files with 36 additions and 12 deletions
10
config.def.h
10
config.def.h
|
@ -34,8 +34,14 @@ static Key keys[] = {
|
||||||
{ MODKEY|GDK_SHIFT_MASK,GDK_i, zoom, { .i = 0 } },
|
{ MODKEY|GDK_SHIFT_MASK,GDK_i, zoom, { .i = 0 } },
|
||||||
{ MODKEY, GDK_l, navigate, { .i = +1 } },
|
{ MODKEY, GDK_l, navigate, { .i = +1 } },
|
||||||
{ MODKEY, GDK_h, navigate, { .i = -1 } },
|
{ MODKEY, GDK_h, navigate, { .i = -1 } },
|
||||||
{ MODKEY, GDK_j, scroll, { .i = +1 } },
|
{ MODKEY, GDK_j, scroll_v, { .i = +1 } },
|
||||||
{ MODKEY, GDK_k, scroll, { .i = -1 } },
|
{ MODKEY, GDK_k, scroll_v, { .i = -1 } },
|
||||||
|
{ MODKEY, GDK_g, scroll_v, { .i = -20000 } },
|
||||||
|
{ MODKEY|GDK_SHIFT_MASK,GDK_g, scroll_v, { .i = +20000 } },
|
||||||
|
{ MODKEY, GDK_b, scroll_v, { .i = -10000 } },
|
||||||
|
{ MODKEY, GDK_space, scroll_v, { .i = +10000 } },
|
||||||
|
{ MODKEY, GDK_l, scroll_h, { .i = +1 } },
|
||||||
|
{ MODKEY, GDK_h, scroll_h, { .i = -1 } },
|
||||||
{ 0, GDK_Escape, stop, { 0 } },
|
{ 0, GDK_Escape, stop, { 0 } },
|
||||||
{ MODKEY, GDK_o, source, { 0 } },
|
{ MODKEY, GDK_o, source, { 0 } },
|
||||||
{ MODKEY, GDK_g, spawn, SETPROP("_SURF_URI", "_SURF_GO") },
|
{ MODKEY, GDK_g, spawn, SETPROP("_SURF_URI", "_SURF_GO") },
|
||||||
|
|
28
surf.c
28
surf.c
|
@ -96,7 +96,9 @@ static GdkFilterReturn processx(GdkXEvent *xevent, GdkEvent *event, gpointer d);
|
||||||
static void progresschange(WebKitWebView *view, GParamSpec *pspec, Client *c);
|
static void progresschange(WebKitWebView *view, GParamSpec *pspec, Client *c);
|
||||||
static void reload(Client *c, const Arg *arg);
|
static void reload(Client *c, const Arg *arg);
|
||||||
static void resize(GtkWidget *w, GtkAllocation *a, Client *c);
|
static void resize(GtkWidget *w, GtkAllocation *a, Client *c);
|
||||||
static void scroll(Client *c, const Arg *arg);
|
static void scroll_h(Client *c, const Arg *arg);
|
||||||
|
static void scroll_v(Client *c, const Arg *arg);
|
||||||
|
static void scroll(GtkAdjustment *a, const Arg *arg);
|
||||||
static void setatom(Client *c, int a, const char *v);
|
static void setatom(Client *c, int a, const char *v);
|
||||||
static void setcookie(SoupCookie *c);
|
static void setcookie(SoupCookie *c);
|
||||||
static void setup(void);
|
static void setup(void);
|
||||||
|
@ -662,13 +664,29 @@ resize(GtkWidget *w, GtkAllocation *a, Client *c) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
scroll(Client *c, const Arg *arg) {
|
scroll_h(Client *c, const Arg *arg) {
|
||||||
gdouble v;
|
scroll(gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(c->scroll)), arg);
|
||||||
GtkAdjustment *a;
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
scroll_v(Client *c, const Arg *arg) {
|
||||||
|
scroll(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(c->scroll)), arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
scroll(GtkAdjustment *a, const Arg *arg) {
|
||||||
|
gdouble v;
|
||||||
|
|
||||||
a = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(c->scroll));
|
|
||||||
v = gtk_adjustment_get_value(a);
|
v = gtk_adjustment_get_value(a);
|
||||||
|
switch (arg->i){
|
||||||
|
case +10000:
|
||||||
|
case -10000:
|
||||||
|
v += gtk_adjustment_get_page_increment(a) * (arg->i / 10000); break;
|
||||||
|
case +20000:
|
||||||
|
case -20000:
|
||||||
|
default:
|
||||||
v += gtk_adjustment_get_step_increment(a) * arg->i;
|
v += gtk_adjustment_get_step_increment(a) * arg->i;
|
||||||
|
}
|
||||||
v = MAX(v, 0.0);
|
v = MAX(v, 0.0);
|
||||||
v = MIN(v, gtk_adjustment_get_upper(a) - gtk_adjustment_get_page_size(a));
|
v = MIN(v, gtk_adjustment_get_upper(a) - gtk_adjustment_get_page_size(a));
|
||||||
gtk_adjustment_set_value(a, v);
|
gtk_adjustment_set_value(a, v);
|
||||||
|
|
Loading…
Reference in a new issue