summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto E. Vargas Caballero2012-09-16 10:45:36 +0200
committerRoberto E. Vargas Caballero2012-09-16 10:45:36 +0200
commitba1e9daeef0d7e6e52a9889d8f7eb61d74480cf0 (patch)
tree090a001bd194e92f625005a9ea854358ff77085e
parenta62789788c87425fd90209bad15b324f8dee84da (diff)
downloadst-ba1e9daeef0d7e6e52a9889d8f7eb61d74480cf0.tar.gz
st-ba1e9daeef0d7e6e52a9889d8f7eb61d74480cf0.tar.xz
st-ba1e9daeef0d7e6e52a9889d8f7eb61d74480cf0.zip
Call XdbeQueryExtension before of calling any Xdbe function
XdbeQueryExtension() tells to the caller if the Xdbe extension is present in the X server, so it should be called for sanity. But like is said in XdbeQueryExtension(3): No other Xdbe functions may be called before this function. If a client violates this rule, the effects of all subsequent Xdbe calls that it makes are undefined. it is mandatory call this function. --- st.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
-rw-r--r--st.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/st.c b/st.c
index 2e1ac67..b013bca 100644
--- a/st.c
+++ b/st.c
@@ -1970,7 +1970,7 @@ xinit(void) {
XSetWindowAttributes attrs;
Cursor cursor;
Window parent;
- int sw, sh;
+ int sw, sh, major, minor;
if(!(xw.dpy = XOpenDisplay(NULL)))
die("Can't open display\n");
@@ -2021,9 +2021,10 @@ xinit(void) {
CWBackPixel | CWBorderPixel | CWBitGravity | CWEventMask
| CWColormap,
&attrs);
+ if(!XdbeQueryExtension(xw.dpy, &major, &minor))
+ die("Xdbe extension is not present\n");
xw.buf = XdbeAllocateBackBufferName(xw.dpy, xw.win, XdbeCopied);
-
/* input methods */
xw.xim = XOpenIM(xw.dpy, NULL, NULL, NULL);
xw.xic = XCreateIC(xw.xim, XNInputStyle, XIMPreeditNothing