@ -212,6 +212,7 @@ char stext[256], buf[256];
int screen , sx , sy , sw , sh ;
int screen , sx , sy , sw , sh ;
int ( * xerrorxlib ) ( Display * , XErrorEvent * ) ;
int ( * xerrorxlib ) ( Display * , XErrorEvent * ) ;
int bx , by , bw , bh , blw , bgw , mx , my , mw , mh , mox , moy , mow , moh , tx , ty , tw , th , wx , wy , ww , wh ;
int bx , by , bw , bh , blw , bgw , mx , my , mw , mh , mox , moy , mow , moh , tx , ty , tw , th , wx , wy , ww , wh ;
double mfact ;
unsigned int numlockmask = 0 ;
unsigned int numlockmask = 0 ;
void ( * handler [ LASTEvent ] ) ( XEvent * ) = {
void ( * handler [ LASTEvent ] ) ( XEvent * ) = {
[ ButtonPress ] = buttonpress ,
[ ButtonPress ] = buttonpress ,
@ -805,39 +806,20 @@ gettextprop(Window w, Atom atom, char *text, unsigned int size) {
void
void
grabbuttons ( Client * c , Bool focused ) {
grabbuttons ( Client * c , Bool focused ) {
XUngrabButton ( dpy , AnyButton , AnyModifier , c - > win ) ;
int i , j ;
unsigned int buttons [ ] = { Button1 , Button2 , Button3 } ;
unsigned int modifiers [ ] = { MODKEY , MODKEY | LockMask , MODKEY | numlockmask ,
MODKEY | numlockmask | LockMask } ;
if ( focused ) {
XUngrabButton ( dpy , AnyButton , AnyModifier , c - > win ) ;
XGrabButton ( dpy , Button1 , MODKEY , c - > win , False , BUTTONMASK ,
if ( focused )
GrabModeAsync , GrabModeSync , None , None ) ;
for ( i = 0 ; i < LENGTH ( buttons ) ; i + + )
XGrabButton ( dpy , Button1 , MODKEY | LockMask , c - > win , False , BUTTONMASK ,
for ( j = 0 ; j < LENGTH ( modifiers ) ; j + + )
GrabModeAsync , GrabModeSync , None , None ) ;
XGrabButton ( dpy , buttons [ i ] , modifiers [ j ] , c - > win , False ,
XGrabButton ( dpy , Button1 , MODKEY | numlockmask , c - > win , False , BUTTONMASK ,
BUTTONMASK , GrabModeAsync , GrabModeSync , None , None ) ;
GrabModeAsync , GrabModeSync , None , None ) ;
XGrabButton ( dpy , Button1 , MODKEY | numlockmask | LockMask , c - > win , False , BUTTONMASK ,
GrabModeAsync , GrabModeSync , None , None ) ;
XGrabButton ( dpy , Button2 , MODKEY , c - > win , False , BUTTONMASK ,
GrabModeAsync , GrabModeSync , None , None ) ;
XGrabButton ( dpy , Button2 , MODKEY | LockMask , c - > win , False , BUTTONMASK ,
GrabModeAsync , GrabModeSync , None , None ) ;
XGrabButton ( dpy , Button2 , MODKEY | numlockmask , c - > win , False , BUTTONMASK ,
GrabModeAsync , GrabModeSync , None , None ) ;
XGrabButton ( dpy , Button2 , MODKEY | numlockmask | LockMask , c - > win , False , BUTTONMASK ,
GrabModeAsync , GrabModeSync , None , None ) ;
XGrabButton ( dpy , Button3 , MODKEY , c - > win , False , BUTTONMASK ,
GrabModeAsync , GrabModeSync , None , None ) ;
XGrabButton ( dpy , Button3 , MODKEY | LockMask , c - > win , False , BUTTONMASK ,
GrabModeAsync , GrabModeSync , None , None ) ;
XGrabButton ( dpy , Button3 , MODKEY | numlockmask , c - > win , False , BUTTONMASK ,
GrabModeAsync , GrabModeSync , None , None ) ;
XGrabButton ( dpy , Button3 , MODKEY | numlockmask | LockMask , c - > win , False , BUTTONMASK ,
GrabModeAsync , GrabModeSync , None , None ) ;
}
else
else
XGrabButton ( dpy , AnyButton , AnyModifier , c - > win , False , BUTTONMASK ,
XGrabButton ( dpy , AnyButton , AnyModifier , c - > win , False ,
GrabModeAsync , GrabModeSync , None , None ) ;
BUTTONMASK , GrabModeAsync , GrabModeSync , None , None ) ;
}
}
void
void
@ -1467,20 +1449,19 @@ setlayout(const char *arg) {
void
void
setmfact ( const char * arg ) {
setmfact ( const char * arg ) {
double delta ;
double d ;
if ( ! arg | | lt - > isfloating )
if ( lt - > isfloating )
return ;
return ;
delta = strtod ( arg , NULL ) ;
if ( ! arg )
if ( arg [ 0 ] = = ' - ' | | arg [ 0 ] = = ' + ' ) {
mfact = MFACT ;
if ( mfact + delta < 0.1 | | mfact + delta > 0.9 )
return ;
mfact + = delta ;
}
else {
else {
if ( delta < 0.1 | | delta > 0.9 )
d = strtod ( arg , NULL ) ;
if ( arg [ 0 ] = = ' - ' | | arg [ 0 ] = = ' + ' )
d + = mfact ;
if ( d < 0.1 | | d > 0.9 )
return ;
return ;
mfact = delta ;
mfact = d ;
}
}
setgeom ( geom - > symbol ) ;
setgeom ( geom - > symbol ) ;
}
}
@ -1501,6 +1482,7 @@ setup(void) {
sw = DisplayWidth ( dpy , screen ) ;
sw = DisplayWidth ( dpy , screen ) ;
sh = DisplayHeight ( dpy , screen ) ;
sh = DisplayHeight ( dpy , screen ) ;
bh = dc . font . height + 2 ;
bh = dc . font . height + 2 ;
mfact = MFACT ;
geom = & geoms [ 0 ] ;
geom = & geoms [ 0 ] ;
geom - > apply ( ) ;
geom - > apply ( ) ;