st-mine/8/st-visualbell-0.8.1.diff
2019-03-12 13:56:40 +02:00

41 lines
872 B
Diff

diff --git a/x.c b/x.c
index c343ba2..26bb9bb 100644
--- a/x.c
+++ b/x.c
@@ -239,6 +239,7 @@ static char *opt_name = NULL;
static char *opt_title = NULL;
static int oldbutton = 3; /* button event on startup: 3 = release */
+static int bellon = 0; /* visual bell status */
void
clipcopy(const Arg *dummy)
@@ -1614,6 +1615,15 @@ xbell(void)
xseturgency(1);
if (bellvolume)
XkbBell(xw.dpy, xw.win, bellvolume, (Atom)NULL);
+
+ /* visual bell*/
+ if (!bellon) {
+ bellon = 1;
+ MODBIT(win.mode, !IS_SET(MODE_REVERSE), MODE_REVERSE);
+ redraw();
+ XFlush(xw.dpy);
+ MODBIT(win.mode, !IS_SET(MODE_REVERSE), MODE_REVERSE);
+ }
}
void
@@ -1840,7 +1850,11 @@ run(void)
(handler[ev.type])(&ev);
}
- draw();
+ if (bellon) {
+ bellon = 0;
+ redraw();
+ }
+ else draw();
XFlush(xw.dpy);
if (xev && !FD_ISSET(xfd, &rfd))