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