aboutsummaryrefslogtreecommitdiff
path: root/xdeadzone.c
diff options
context:
space:
mode:
Diffstat (limited to 'xdeadzone.c')
-rw-r--r--xdeadzone.c29
1 files changed, 17 insertions, 12 deletions
diff --git a/xdeadzone.c b/xdeadzone.c
index b05a2ac..e3446f9 100644
--- a/xdeadzone.c
+++ b/xdeadzone.c
@@ -47,7 +47,7 @@ void usage(const int ret) {
banner();
printf(
"Usage:\n %s "
- "<[-b | -w | -i]> [-nw | -ne | -sw | -se | -abs] <geometry>\n\n"
+ "<-b | -w | -i> <-n> [-nw | -ne | -sw | -se | -abs] [geometry]\n\n"
" <geometry> is WxH for all modes but -abs, or\n WxH[+-]xpos[+-]ypos for -abs\n",
exe_name);
exit(ret);
@@ -75,7 +75,7 @@ int main(int argc, char **argv) {
XWindowAttributes attr;
XSetWindowAttributes setattr;
- int x = -1, y = -1, gflags = -1, visible = 0, black = 0, mode = M_UNSET;
+ int x = -1, y = -1, gflags = -1, visible = 0, black = 0, mode = M_UNSET, normal_window = 0;
unsigned int width, height;
set_exe_name(argv[0]);
@@ -97,6 +97,9 @@ int main(int argc, char **argv) {
black = 0;
} else if(streq(a, "-i")) {
visible = 0;
+ } else if(streq(a, "-n")) {
+ visible = 1;
+ normal_window = 1;
} else if(streq(a, "-abs")) {
check_mode(mode);
mode = M_ABS;
@@ -173,7 +176,7 @@ int main(int argc, char **argv) {
In actual use, the window won't be visible, it'll be in the dead zone,
right?
*/
- setattr.override_redirect = True;
+ setattr.override_redirect = normal_window ? False : True;
if(visible) {
setattr.background_pixel = black ?
BlackPixel(d, DefaultScreen(d)) :
@@ -201,15 +204,17 @@ int main(int argc, char **argv) {
care of that with override_redirect, above.
ref: http://standards.freedesktop.org/wm-spec/wm-spec-latest.html
*/
- dock_atom = XInternAtom(d, "_NET_WM_WINDOW_TYPE_DOCK", False);
- XChangeProperty(d,
- w,
- XInternAtom(d, "_NET_WM_WINDOW_TYPE", False),
- XA_ATOM,
- 32,
- PropModeReplace,
- (unsigned char *) &dock_atom,
- 1);
+ if(!normal_window) {
+ dock_atom = XInternAtom(d, "_NET_WM_WINDOW_TYPE_DOCK", False);
+ XChangeProperty(d,
+ w,
+ XInternAtom(d, "_NET_WM_WINDOW_TYPE", False),
+ XA_ATOM,
+ 32,
+ PropModeReplace,
+ (unsigned char *) &dock_atom,
+ 1);
+ }
XMapWindow(d, w);