Thank you, I'll try it.
But yeah, it's really missing by default, and it doesn't seems to be
too much code lines.


Le 08:38:15 le 24 mai 2012 , sta...@cs.tu-berlin.de a écrit :
> * Thuban <thu...@singularity.fr> [2012-05-24 07:53]:
> > I was wondering if there is any way to have a keybind to scroll left or
> > right, just like you can scroll up and down with C-k and C-j?
> 
> sure. Here an example:
> ----- config.h -----
>     { 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 } },
> ----- -------- -----
> 
> 
> ------ surf.c ------
> void
> scroll_h(Client *c, const Arg *arg) {
>  scroll(gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(c->scroll)), 
> arg);
> }
> 
> 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;
> 
>  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);
> }
> ----- -------- -----
> 
> --s_
> 

-- 
 ,--.   Xavier Cartron                           ,   /(
: /` )  M1 MEFPC                        o     **}=\\,\(,,  
| `-'   Debian user                    <0--       (___(_\\
 \_     jabber : thu...@jabber.fr      / >        ,)   ,/ ``==>

Reply via email to