diff options
author | B. Watson <urchlay@slackware.uk> | 2024-02-01 13:10:12 -0500 |
---|---|---|
committer | B. Watson <urchlay@slackware.uk> | 2024-02-01 13:10:12 -0500 |
commit | f53d06bbec6ef3ae051c4af85870a7a88ca11ce2 (patch) | |
tree | 33705d645df8df818c35372a0d8e693969c793f5 /xdeadzone.c | |
parent | 74b0ae43c1eb2b0a263a3d7d09d0f92d4ce98ca5 (diff) | |
download | xdeadzone-f53d06bbec6ef3ae051c4af85870a7a88ca11ce2.tar.gz |
Add -n (normal window) option.
Diffstat (limited to 'xdeadzone.c')
-rw-r--r-- | xdeadzone.c | 29 |
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); |