summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@comhem.se>2007-09-02 01:49:56 +0200
committerMikael Magnusson <mikachu@comhem.se>2008-02-14 11:44:50 +0100
commit092c053e99c06335027934bdc9f0203d8969447f (patch)
treea446a074ef73f4743bddde7076bfbf2a16095f37 /tests
parent5e204525de4f55fb16bf27756e0b1d4f7b08d3d9 (diff)
add an override_redirect InputOnly window utility.
The intent was the following: This is mostly a copy of override.c, it lets you map a small window (1x1 at 0,0 by default) that openbox will treat like the root window, useful for scrolling to change desktops over fullscreen and maximized windows. Since then openbox has learned to ignore other's override redirect windows but I think it might still be useful to have this util.
Diffstat (limited to 'tests')
-rw-r--r--tests/overrideinputonly.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/overrideinputonly.c b/tests/overrideinputonly.c
new file mode 100644
index 00000000..0c13ac34
--- /dev/null
+++ b/tests/overrideinputonly.c
@@ -0,0 +1,58 @@
+/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
+
+ override.c for the Openbox window manager
+ Copyright (c) 2003-2007 Dana Jansens
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ See the COPYING file for a copy of the GNU General Public License.
+*/
+
+#include <stdio.h>
+#include <X11/Xlib.h>
+
+int main (int argc, char *argv[]) {
+ XSetWindowAttributes xswa;
+ unsigned long xswamask;
+ Display *display;
+ Window win;
+ XEvent report;
+ int i,x=0,y=0,h=1,w=1;
+
+ for (i=0; i < argc; i++) {
+ if (!strcmp(argv[i], "-g") || !strcmp(argv[i], "-geometry")) {
+ XParseGeometry(argv[++i], &x, &y, &w, &h);
+ }
+ }
+
+ display = XOpenDisplay(NULL);
+
+ if (display == NULL) {
+ fprintf(stderr, "couldn't connect to X server :0\n");
+ return 0;
+ }
+
+ xswa.override_redirect = True;
+ xswamask = CWOverrideRedirect;
+
+ win = XCreateWindow(display, RootWindow(display, 0),
+ x, y, w, h, 0, 0, InputOnly,
+ CopyFromParent, xswamask, &xswa);
+
+ XMapWindow(display, win);
+ XFlush(display);
+
+ while (1) {
+ XNextEvent(display, &report);
+ }
+
+ return 1;
+}