sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

st-visualbell-0.8.1.diff (872B)


      1 diff --git a/x.c b/x.c
      2 index c343ba2..26bb9bb 100644
      3 --- a/x.c
      4 +++ b/x.c
      5 @@ -239,6 +239,7 @@ static char *opt_name  = NULL;
      6  static char *opt_title = NULL;
      7  
      8  static int oldbutton = 3; /* button event on startup: 3 = release */
      9 +static int bellon = 0;    /* visual bell status */
     10  
     11  void
     12  clipcopy(const Arg *dummy)
     13 @@ -1614,6 +1615,15 @@ xbell(void)
     14  		xseturgency(1);
     15  	if (bellvolume)
     16  		XkbBell(xw.dpy, xw.win, bellvolume, (Atom)NULL);
     17 +
     18 +	/* visual bell*/
     19 +	if (!bellon) {
     20 +		bellon = 1;
     21 +		MODBIT(win.mode, !IS_SET(MODE_REVERSE), MODE_REVERSE);
     22 +		redraw();
     23 +		XFlush(xw.dpy);
     24 +		MODBIT(win.mode, !IS_SET(MODE_REVERSE), MODE_REVERSE);
     25 +	}
     26  }
     27  
     28  void
     29 @@ -1840,7 +1850,11 @@ run(void)
     30  					(handler[ev.type])(&ev);
     31  			}
     32  
     33 -			draw();
     34 +			if (bellon) {
     35 +				bellon = 0;
     36 +				redraw();
     37 +			}
     38 +			else draw();
     39  			XFlush(xw.dpy);
     40  
     41  			if (xev && !FD_ISSET(xfd, &rfd))