Introduction
Introduction Statistics Contact Development Disclaimer Help
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
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.