Introduction
Introduction Statistics Contact Development Disclaimer Help
st-visualbell-20180101-1f24bde.diff - sites - public wiki contents of suckless.…
git clone git://git.suckless.org/sites
Log
Files
Refs
---
st-visualbell-20180101-1f24bde.diff (1508B)
---
1 diff --git a/st.c b/st.c
2 index 7c7ddff..2dc10c2 100644
3 --- a/st.c
4 +++ b/st.c
5 @@ -218,6 +218,7 @@ char *opt_line = NULL;
6 char *opt_name = NULL;
7 char *opt_title = NULL;
8 int oldbutton = 3; /* button event on startup: 3 = release */
9 +int bellon = 0;
10
11 static CSIEscape csiescseq;
12 static STREscape strescseq;
13 @@ -2187,8 +2188,7 @@ tcontrolcode(uchar ascii)
14 } else {
15 if (!(win.state & WIN_FOCUSED))
16 xseturgency(1);
17 - if (bellvolume)
18 - xbell(bellvolume);
19 + xbell(bellvolume);
20 }
21 break;
22 case '\033': /* ESC */
23 diff --git a/st.h b/st.h
24 index 44d4938..24a6eb6 100644
25 --- a/st.h
26 +++ b/st.h
27 @@ -231,6 +231,7 @@ extern char *opt_line;
28 extern char *opt_name;
29 extern char *opt_title;
30 extern int oldbutton;
31 +extern int bellon;
32
33 extern char *usedfont;
34 extern double usedfontsize;
35 diff --git a/x.c b/x.c
36 index c484dfc..0b59d0e 100644
37 --- a/x.c
38 +++ b/x.c
39 @@ -1484,7 +1484,17 @@ xseturgency(int add)
40 void
41 xbell(int vol)
42 {
43 - XkbBell(xw.dpy, xw.win, vol, (Atom)NULL);
44 + if (vol)
45 + XkbBell(xw.dpy, xw.win, vol, (Atom)NULL);
46 +
47 + /* visual bell*/
48 + if (!bellon) {
49 + bellon = 1;
50 + MODBIT(term.mode, !IS_SET(MODE_REVERSE), MODE_REVERSE);
51 + redraw();
52 + XFlush(xw.dpy);
53 + MODBIT(term.mode, !IS_SET(MODE_REVERSE), MODE_REVERSE);
54 + }
55 }
56
57 unsigned long
58 @@ -1676,7 +1686,12 @@ run(void)
59 (handler[ev.type])(&ev);
60 }
61
62 - draw();
63 + if (bellon) {
64 + bellon = 0;
65 + redraw();
66 + }
67 + else draw();
68 +
69 XFlush(xw.dpy);
70
71 if (xev && !FD_ISSET(xfd, &rfd))
72 --
73 2.15.1
74
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.