Adapt scrolling
In fact, we have a scrolling handle ersatz for now using JavaScript calls as we don't have access anymore to scrollbars. We'll have to manipulate the DOM directly (later).
This commit is contained in:
parent
c4f01cd18b
commit
a53dc90171
13
config.def.h
13
config.def.h
|
@ -100,12 +100,13 @@ static Key keys[] = {
|
|||
{ MODKEY, GDK_KEY_l, navigate, { .i = +1 } },
|
||||
{ MODKEY, GDK_KEY_h, navigate, { .i = -1 } },
|
||||
|
||||
{ MODKEY, GDK_KEY_j, scroll_v, { .i = +1 } },
|
||||
{ MODKEY, GDK_KEY_k, scroll_v, { .i = -1 } },
|
||||
{ MODKEY, GDK_KEY_b, scroll_v, { .i = -10000 } },
|
||||
{ MODKEY, GDK_KEY_space, scroll_v, { .i = +10000 } },
|
||||
{ MODKEY, GDK_KEY_i, scroll_h, { .i = +1 } },
|
||||
{ MODKEY, GDK_KEY_u, scroll_h, { .i = -1 } },
|
||||
/* in page % */
|
||||
{ MODKEY, GDK_KEY_j, scroll_v, { .i = +10 } },
|
||||
{ MODKEY, GDK_KEY_k, scroll_v, { .i = -10 } },
|
||||
{ MODKEY, GDK_KEY_b, scroll_v, { .i = -50 } },
|
||||
{ MODKEY, GDK_KEY_space, scroll_v, { .i = +50 } },
|
||||
{ MODKEY, GDK_KEY_i, scroll_h, { .i = +10 } },
|
||||
{ MODKEY, GDK_KEY_u, scroll_h, { .i = -10 } },
|
||||
|
||||
{ 0, GDK_KEY_F11, togglefullscreen, { 0 } },
|
||||
{ 0, GDK_KEY_Escape, stop, { 0 } },
|
||||
|
|
40
surf.c
40
surf.c
|
@ -167,9 +167,8 @@ static void progresschanged(WebKitWebView *v, GParamSpec *ps, Client *c);
|
|||
static void linkopen(Client *c, const Arg *arg);
|
||||
static void linkopenembed(Client *c, const Arg *arg);
|
||||
static void reload(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 scroll_h(Client *c, const Arg *a);
|
||||
static void scroll_v(Client *c, const Arg *a);
|
||||
static void setatom(Client *c, int a, const char *v);
|
||||
static void setup(void);
|
||||
static void sigchld(int unused);
|
||||
|
@ -1169,40 +1168,17 @@ reload(Client *c, const Arg *arg)
|
|||
}
|
||||
|
||||
void
|
||||
scroll_h(Client *c, const Arg *arg)
|
||||
scroll_h(Client *c, const Arg *a)
|
||||
{
|
||||
scroll(gtk_scrolled_window_get_hadjustment(
|
||||
GTK_SCROLLED_WINDOW(c->scroll)), arg);
|
||||
evalscript(c, "window.scrollBy(%d * (window.innerWidth / 100), 0)",
|
||||
a->i);
|
||||
}
|
||||
|
||||
void
|
||||
scroll_v(Client *c, const Arg *arg)
|
||||
scroll_v(Client *c, const Arg *a)
|
||||
{
|
||||
scroll(gtk_scrolled_window_get_vadjustment(
|
||||
GTK_SCROLLED_WINDOW(c->scroll)), arg);
|
||||
}
|
||||
|
||||
void
|
||||
scroll(GtkAdjustment *a, const Arg *arg)
|
||||
{
|
||||
gdouble 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);
|
||||
evalscript(c, "window.scrollBy(0, %d * (window.innerHeight / 100))",
|
||||
a->i);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in New Issue