commit 257207046fb0724e15d91b1b3013f432edc60fa7
parent d93851ebd4288956c2b40259ce6e0fe7a3c65a10
Author: Anselm R. Garbe <garbeam@wmii.de>
Date: Tue, 14 Mar 2006 13:32:08 +0100
added wmiiwarp
Diffstat:
2 files changed, 53 insertions(+), 1 deletion(-)
diff --git a/cmd/Makefile b/cmd/Makefile
@@ -6,7 +6,7 @@ include ../config.mk
CFLAGS += -I../liblitz -I../libixp -I../libcext
LDFLAGS += -L../liblitz -llitz -L../libixp -lixp -L../libcext -lcext
-SRC = wmiimenu.c wmiipsel.c wmiir.c
+SRC = wmiimenu.c wmiipsel.c wmiir.c wmiiwarp.c
OBJ = ${SRC:.c=.o}
all: ${OBJ}
diff --git a/cmd/wmiiwarp.c b/cmd/wmiiwarp.c
@@ -0,0 +1,52 @@
+/*
+ * (C)opyright MMIV-MMV Anselm R. Garbe <garbeam at gmail dot com>
+ * See LICENSE file for license details.
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <cext.h>
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/Xatom.h>
+
+static char version[] = "wmiiwarp - " VERSION ", (C)opyright MMIV-MMV Anselm R. Garbe\n";
+
+static void
+usage()
+{
+ fprintf(stderr, "%s", "usage: wmiiwarp <x> <y> [-v]\n");
+ exit(1);
+}
+
+int
+main(int argc, char **argv)
+{
+ Display *dpy;
+ const char *err;
+ int x, y;
+
+ /* command line args */
+ if((argc == 2) && !strncmp(argv[1], "-v", 2)) {
+ fprintf(stdout, "%s", version);
+ exit(0);
+ }
+ else if(argc != 3)
+ usage();
+ if(!(dpy = XOpenDisplay(0))) {
+ fprintf(stderr, "%s", "wmiiwarp: cannot open display\n");
+ exit(1);
+ }
+ x = cext_strtonum(argv[1], 0, DisplayWidth(dpy, DefaultScreen(dpy)), &err);
+ if(err)
+ usage();
+ y = cext_strtonum(argv[2], 0, DisplayWidth(dpy, DefaultScreen(dpy)), &err);
+ if(err)
+ usage();
+ XWarpPointer(dpy, None, RootWindow(dpy, DefaultScreen(dpy)), 0, 0, 0, 0, x, y);
+ XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
+ XCloseDisplay(dpy);
+ return 0;
+}