st

fork of suckless's simple terminal
Index Commits Files Refs README LICENSE
commit 0e232a41150d67539df05e60c7e829f0bfb431d0
parent 3ce96aea8af566c88ed1e076d270b4d1abcf6e96
Author: Christoph Lohmann <20h@r-36.net>
Date:   Sat, 19 Jan 2013 09:13:52 +0100

Dbe is not required anymore.

Diffstat:
Mst.c | 22+++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/st.c b/st.c
@@ -203,7 +203,7 @@ typedef struct {
     Display *dpy;
     Colourmap cmap;
     Window win;
-    XdbeBackBuffer buf;
+    Drawable buf;
     Atom xembed, wmdeletewin;
     XIM xim;
     XIC xic;
@@ -414,6 +414,8 @@ static char *opt_embed = NULL;
 static char *opt_class = NULL;
 static char *opt_font = NULL;
 
+bool usedbe = False;
+
 static char *usedfont = NULL;
 static int usedfontsize = 0;
 
@@ -2500,7 +2502,8 @@ xinit(void) {
         | ButtonMotionMask | ButtonPressMask | ButtonReleaseMask;
     attrs.colormap = xw.cmap;
 
-    parent = opt_embed ? strtol(opt_embed, NULL, 0) : XRootWindow(xw.dpy, xw.scr);
+    parent = opt_embed ? strtol(opt_embed, NULL, 0) : \
+            XRootWindow(xw.dpy, xw.scr);
     xw.win = XCreateWindow(xw.dpy, parent, xw.fx, xw.fy,
             xw.w, xw.h, 0, XDefaultDepth(xw.dpy, xw.scr), InputOutput,
             xw.vis,
@@ -2509,12 +2512,16 @@ xinit(void) {
             &attrs);
 
     /* double buffering */
-    if(!XdbeQueryExtension(xw.dpy, &major, &minor))
-        die("Xdbe extension is not present\n");
-    xw.buf = XdbeAllocateBackBufferName(xw.dpy, xw.win, XdbeBackground);
+    if(XdbeQueryExtension(xw.dpy, &major, &minor)) {
+        xw.buf = XdbeAllocateBackBufferName(xw.dpy, xw.win,
+                XdbeBackground);
+        usedbe = True;
+    } else {
+        xw.buf = xw.win;
+    }
 
     /* Xft rendering context */
-    xw.draw = XftDrawCreate(xw.dpy, xw.buf, xw.vis, xw.cmap);
+    xw.draw = XftDrawCreate(xw.dpy, xw.win, xw.vis, xw.cmap);
 
     /* input methods */
     if((xw.xim =  XOpenIM(xw.dpy, NULL, NULL, NULL)) == NULL) {
@@ -2822,7 +2829,8 @@ draw(void) {
     XdbeSwapInfo swpinfo[1] = {{xw.win, XdbeCopied}};
 
     drawregion(0, 0, term.col, term.row);
-    XdbeSwapBuffers(xw.dpy, swpinfo, 1);
+    if(usedbe)
+        XdbeSwapBuffers(xw.dpy, swpinfo, 1);
 }
 
 void