tKeybindings for scrolling left and right; code by stanio. - surf - customized … | |
git clone git://src.adamsgaard.dk/surf | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 3083ef4031aaf48926497397295b0db639a6a9c1 | |
parent cf75bf2777560d4ded7083517f0c72395052f1f0 | |
Author: Troels Henriksen <[email protected]> | |
Date: Thu, 31 May 2012 11:46:24 +0200 | |
Keybindings for scrolling left and right; code by stanio. | |
Diffstat: | |
M config.def.h | 10 ++++++++-- | |
M surf.c | 38 +++++++++++++++++++++++------… | |
2 files changed, 36 insertions(+), 12 deletions(-) | |
--- | |
diff --git a/config.def.h b/config.def.h | |
t@@ -34,8 +34,14 @@ static Key keys[] = { | |
{ MODKEY|GDK_SHIFT_MASK,GDK_i, zoom, { .i = 0 } }, | |
{ MODKEY, GDK_l, navigate, { .i = +1 } }, | |
{ MODKEY, GDK_h, navigate, { .i = -1 } }, | |
- { MODKEY, GDK_j, scroll, { .i = +1 } }, | |
- { MODKEY, GDK_k, scroll, { .i = -1 } }, | |
+ { MODKEY, GDK_j, scroll_v, { .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 } }, | |
{ MODKEY, GDK_o, source, { 0 } }, | |
{ MODKEY, GDK_g, spawn, SETPROP("_SURF_URI", "_SUR… | |
diff --git a/surf.c b/surf.c | |
t@@ -96,7 +96,9 @@ static GdkFilterReturn processx(GdkXEvent *xevent, GdkEvent … | |
static void progresschange(WebKitWebView *view, GParamSpec *pspec, Client *c); | |
static void reload(Client *c, const Arg *arg); | |
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 setcookie(SoupCookie *c); | |
static void setup(void); | |
t@@ -662,16 +664,32 @@ resize(GtkWidget *w, GtkAllocation *a, Client *c) { | |
} | |
void | |
-scroll(Client *c, const Arg *arg) { | |
- gdouble v; | |
- GtkAdjustment *a; | |
+scroll_h(Client *c, const Arg *arg) { | |
+ scroll(gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(c->scroll)), a… | |
+} | |
+ | |
+void | |
+scroll_v(Client *c, const Arg *arg) { | |
+ scroll(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(c->scroll)), a… | |
+} | |
+ | |
+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_step_increment(a) * arg->i; | |
- v = MAX(v, 0.0); | |
- v = MIN(v, gtk_adjustment_get_upper(a) - gtk_adjustment_get_page_size(… | |
- gtk_adjustment_set_value(a, v); | |
+ 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 = MAX(v, 0.0); | |
+ v = MIN(v, gtk_adjustment_get_upper(a) - gtk_adjustment_get_page_size(a)); | |
+ gtk_adjustment_set_value(a, v); | |
} | |
void |