From ca071639f6775e42e6fc7d394424fe8936734764 Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 25 Sep 2018 18:59:16 +0200 Subject: initial commit --- main.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 main.c (limited to 'main.c') diff --git a/main.c b/main.c new file mode 100644 index 0000000..482acbe --- /dev/null +++ b/main.c @@ -0,0 +1,53 @@ +#include +#include +#include +#include + + +int main(void) { + union { + XEvent xev; + XRRScreenChangeNotifyEvent xrrev; + } result; + //XRRScreenChangeNotifyEvent xev; + //XWindowAttributes focus_attrs, root_attrs; + + Display *display = XOpenDisplay(NULL); + + Window focus; + int revert_to; + XGetInputFocus(display, &focus, &revert_to); + + printf("focus: %lx\n", focus); + + //Window root = XDefaultRootWindow(display); + + int xrr_event_base; + int xrr_error_base; + // TODO int hasXrandR = + XRRQueryExtension(display, &xrr_event_base, &xrr_error_base); + + // TODO if has RR + XRRSelectInput(display, XDefaultRootWindow(display), RRScreenChangeNotifyMask); + + + for (;;) { + + //XGetWindowAttributes(display, focus, &focus_attrs); + + //printf("a\n"); + + //XWindowEvent(display, root, RRScreenChangeNotifyMask, (XEvent *)&xev); + XNextEvent(display, &result.xev); + + if (result.xev.type == (xrr_event_base + RRScreenChangeNotify)) { + XMoveResizeWindow(display, focus, 0, 0, result.xrrev.width, result.xrrev.height); + } + + //printf("derp\n"); + + //XFlush(display); + } + + //XFlush(display); +} -- cgit v1.2.3