Got questions, comments, patches, etc.?
Contact Jason Woofenden
gitweb
/
spectrwm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Improve stacking for windows with multiple transients.
[spectrwm.git]
/
lib
/
swm_hack.c
diff --git
a/lib/swm_hack.c
b/lib/swm_hack.c
index
52f2a5c
..
c5f5b5b
100644
(file)
--- a/
lib/swm_hack.c
+++ b/
lib/swm_hack.c
@@
-1,4
+1,3
@@
-/* $scrotwm$ */
/*
* Copyright (c) 2009 Marco Peereboom <marco@peereboom.us>
* Copyright (c) 2009 Ryan McBride <mcbride@countersiege.com>
/*
* Copyright (c) 2009 Marco Peereboom <marco@peereboom.us>
* Copyright (c) 2009 Ryan McBride <mcbride@countersiege.com>
@@
-56,7
+55,9
@@
static void *lib_xtlib = NULL;
static Window root = None;
static int xterm = 0;
static Window root = None;
static int xterm = 0;
-static Display *dpy = NULL;
+static Display *display = NULL;
+
+void set_property(Display *, Window, char *, char *);
/* Find our root window */
static Window
/* Find our root window */
static Window
@@
-107,7
+108,8
@@
set_property(Display *dpy, Window id, char *name, char *val)
if (atom)
if (snprintf(prop, SWM_PROPLEN, "%s", val) < SWM_PROPLEN)
(*xcp)(dpy, id, atom, XA_STRING,
if (atom)
if (snprintf(prop, SWM_PROPLEN, "%s", val) < SWM_PROPLEN)
(*xcp)(dpy, id, atom, XA_STRING,
- 8, PropModeReplace, (unsigned char *)prop, SWM_PROPLEN);
+ 8, PropModeReplace, (unsigned char *)prop,
+ strlen((char *)prop));
}
typedef Window(CWF) (Display * _display, Window _parent, int _x,
}
typedef Window(CWF) (Display * _display, Window _parent, int _x,
@@
-120,7
+122,7
@@
typedef Window(CWF) (Display * _display, Window _parent, int _x,
/* XCreateWindow intercept hack */
Window
/* XCreateWindow intercept hack */
Window
-XCreateWindow(Display * display, Window parent, int x, int y,
+XCreateWindow(Display *dpy, Window parent, int x, int y,
unsigned int width, unsigned int height,
unsigned int border_width,
int depth, unsigned int clss, Visual * visual,
unsigned int width, unsigned int height,
unsigned int border_width,
int depth, unsigned int clss, Visual * visual,
@@
-135,20
+137,20
@@
XCreateWindow(Display * display, Window parent, int x, int y,
lib_xlib = dlopen("libX11.so", RTLD_GLOBAL | RTLD_LAZY);
if (!func) {
func = (CWF *) dlsym(lib_xlib, "XCreateWindow");
lib_xlib = dlopen("libX11.so", RTLD_GLOBAL | RTLD_LAZY);
if (!func) {
func = (CWF *) dlsym(lib_xlib, "XCreateWindow");
- dpy = display;
+ display = dpy;
}
}
- if (parent == DefaultRootWindow(display))
- parent = MyRoot(display);
+ if (parent == DefaultRootWindow(dpy))
+ parent = MyRoot(dpy);
- id = (*func) (display, parent, x, y, width, height, border_width,
+ id = (*func) (dpy, parent, x, y, width, height, border_width,
depth, clss, visual, valuemask, attributes);
if (id) {
if ((env = getenv("_SWM_WS")) != NULL)
depth, clss, visual, valuemask, attributes);
if (id) {
if ((env = getenv("_SWM_WS")) != NULL)
- set_property(display, id, "_SWM_WS", env);
+ set_property(dpy, id, "_SWM_WS", env);
if ((env = getenv("_SWM_PID")) != NULL)
if ((env = getenv("_SWM_PID")) != NULL)
- set_property(display, id, "_SWM_PID", env);
+ set_property(dpy, id, "_SWM_PID", env);
if ((env = getenv("_SWM_XTERM_FONTADJ")) != NULL) {
unsetenv("_SWM_XTERM_FONTADJ");
xterm = 1;
if ((env = getenv("_SWM_XTERM_FONTADJ")) != NULL) {
unsetenv("_SWM_XTERM_FONTADJ");
xterm = 1;
@@
-166,7
+168,7
@@
typedef Window(CSWF) (Display * _display, Window _parent, int _x,
/* XCreateSimpleWindow intercept hack */
Window
/* XCreateSimpleWindow intercept hack */
Window
-XCreateSimpleWindow(Display * display, Window parent, int x, int y,
+XCreateSimpleWindow(Display *dpy, Window parent, int x, int y,
unsigned int width, unsigned int height,
unsigned int border_width,
unsigned long border, unsigned long background)
unsigned int width, unsigned int height,
unsigned int border_width,
unsigned long border, unsigned long background)
@@
-181,17
+183,17
@@
XCreateSimpleWindow(Display * display, Window parent, int x, int y,
if (!func)
func = (CSWF *) dlsym(lib_xlib, "XCreateSimpleWindow");
if (!func)
func = (CSWF *) dlsym(lib_xlib, "XCreateSimpleWindow");
- if (parent == DefaultRootWindow(display))
- parent = MyRoot(display);
+ if (parent == DefaultRootWindow(dpy))
+ parent = MyRoot(dpy);
- id = (*func) (display, parent, x, y, width, height,
+ id = (*func) (dpy, parent, x, y, width, height,
border_width, border, background);
if (id) {
if ((env = getenv("_SWM_WS")) != NULL)
border_width, border, background);
if (id) {
if ((env = getenv("_SWM_WS")) != NULL)
- set_property(display, id, "_SWM_WS", env);
+ set_property(dpy, id, "_SWM_WS", env);
if ((env = getenv("_SWM_PID")) != NULL)
if ((env = getenv("_SWM_PID")) != NULL)
- set_property(display, id, "_SWM_PID", env);
+ set_property(dpy, id, "_SWM_PID", env);
if ((env = getenv("_SWM_XTERM_FONTADJ")) != NULL) {
unsetenv("_SWM_XTERM_FONTADJ");
xterm = 1;
if ((env = getenv("_SWM_XTERM_FONTADJ")) != NULL) {
unsetenv("_SWM_XTERM_FONTADJ");
xterm = 1;
@@
-205,7
+207,7
@@
typedef int (RWF) (Display * _display, Window _window, Window _parent,
/* XReparentWindow intercept hack */
int
/* XReparentWindow intercept hack */
int
-XReparentWindow(Display * display, Window window, Window parent, int x, int y)
+XReparentWindow(Display *dpy, Window window, Window parent, int x, int y)
{
static RWF *func = NULL;
{
static RWF *func = NULL;
@@
-215,10
+217,10
@@
XReparentWindow(Display * display, Window window, Window parent, int x, int y)
if (!func)
func = (RWF *) dlsym(lib_xlib, "XReparentWindow");
if (!func)
func = (RWF *) dlsym(lib_xlib, "XReparentWindow");
- if (parent == DefaultRootWindow(display))
- parent = MyRoot(display);
+ if (parent == DefaultRootWindow(dpy))
+ parent = MyRoot(dpy);
- return (*func) (display, window, parent, x, y);
+ return (*func) (dpy, window, parent, x, y);
}
typedef void (ANEF) (XtAppContext app_context, XEvent *event_return);
}
typedef void (ANEF) (XtAppContext app_context, XEvent *event_return);
@@
-234,16
+236,16
@@
void
XtAppNextEvent(XtAppContext app_context, XEvent *event_return)
{
static ANEF *func = NULL;
XtAppNextEvent(XtAppContext app_context, XEvent *event_return)
{
static ANEF *func = NULL;
- static int kp_add = 0, kp_subtract = 0;
+ static KeyCode kp_add = 0, kp_subtract = 0;
/* find the real Xlib and the real X function */
if (!lib_xtlib)
lib_xtlib = dlopen("libXt.so", RTLD_GLOBAL | RTLD_LAZY);
if (!func) {
func = (ANEF *) dlsym(lib_xtlib, "XtAppNextEvent");
/* find the real Xlib and the real X function */
if (!lib_xtlib)
lib_xtlib = dlopen("libXt.so", RTLD_GLOBAL | RTLD_LAZY);
if (!func) {
func = (ANEF *) dlsym(lib_xtlib, "XtAppNextEvent");
- if (dpy != NULL) {
- kp_add = XKeysymToKeycode(dpy, XK_KP_Add);
- kp_subtract = XKeysymToKeycode(dpy, XK_KP_Subtract);
+ if (display != NULL) {
+ kp_add = XKeysymToKeycode(display, XK_KP_Add);
+ kp_subtract = XKeysymToKeycode(display, XK_KP_Subtract);
}
}
}
}