@ -671,6 +671,10 @@ static int lrpad; /* sum of left and right padding for text */
* when moving ( or resizing ) client windows from one monitor to another . This variable is used
* when moving ( or resizing ) client windows from one monitor to another . This variable is used
* internally to ignore such configure requests while movemouse or resizemouse are being used . */
* internally to ignore such configure requests while movemouse or resizemouse are being used . */
static int ignoreconfigurerequests = 0 ;
static int ignoreconfigurerequests = 0 ;
# if WARP_PATCH
static int force_warp = 0 ; // force warp in some situations, e.g. killclient
static int ignore_warp = 0 ; // force skip warp in some situations, e.g. dragmfact, dragcfact
# endif // WARP_PATCH
static int ( * xerrorxlib ) ( Display * , XErrorEvent * ) ;
static int ( * xerrorxlib ) ( Display * , XErrorEvent * ) ;
static unsigned int numlockmask = 0 ;
static unsigned int numlockmask = 0 ;
static void ( * handler [ LASTEvent ] ) ( XEvent * ) = {
static void ( * handler [ LASTEvent ] ) ( XEvent * ) = {
@ -2112,10 +2116,11 @@ killclient(const Arg *arg)
# endif // ISPERMANENT_PATCH
# endif // ISPERMANENT_PATCH
return ;
return ;
# if BAR_SYSTRAY_PATCH
# if BAR_SYSTRAY_PATCH
if ( ! sendevent ( selmon - > sel - > win , wmatom [ WMDelete ] , NoEventMask , wmatom [ WMDelete ] , CurrentTime , 0 , 0 , 0 ) ) {
if ( ! sendevent ( selmon - > sel - > win , wmatom [ WMDelete ] , NoEventMask , wmatom [ WMDelete ] , CurrentTime , 0 , 0 , 0 ) )
# else
# else
if ( ! sendevent ( selmon - > sel , wmatom [ WMDelete ] ) ) {
if ( ! sendevent ( selmon - > sel , wmatom [ WMDelete ] ) )
# endif // BAR_SYSTRAY_PATCH
# endif // BAR_SYSTRAY_PATCH
{
XGrabServer ( dpy ) ;
XGrabServer ( dpy ) ;
XSetErrorHandler ( xerrordummy ) ;
XSetErrorHandler ( xerrordummy ) ;
XSetCloseDownMode ( dpy , DestroyAll ) ;
XSetCloseDownMode ( dpy , DestroyAll ) ;
@ -2123,6 +2128,9 @@ killclient(const Arg *arg)
XSync ( dpy , False ) ;
XSync ( dpy , False ) ;
XSetErrorHandler ( xerror ) ;
XSetErrorHandler ( xerror ) ;
XUngrabServer ( dpy ) ;
XUngrabServer ( dpy ) ;
# if WARP_PATCH
force_warp = 1 ;
# endif // WARP_PATCH
}
}
# if SWAPFOCUS_PATCH && PERTAG_PATCH
# if SWAPFOCUS_PATCH && PERTAG_PATCH
selmon - > pertag - > prevclient [ selmon - > pertag - > curtag ] = NULL ;
selmon - > pertag - > prevclient [ selmon - > pertag - > curtag ] = NULL ;