aboutsummaryrefslogtreecommitdiff
path: root/main.c
blob: 7603a266a6f165662434bc2b8fce8a0b487ffb93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// edit source code from: https://github.com/gvalkov/xrectsel
//#include <stdio.h>
#include <X11/Xlib.h>
#include <unistd.h>

//int main (int argc, char *argv[])
int main (void)
{
    int int_tmp;
    unsigned int uint_tmp;
	Window window_tmp;

	int rootx=0, rooty=0;

	Display * disp = XOpenDisplay(NULL);
    Screen * scr = ScreenOfDisplay(disp, DefaultScreen(disp));
    Window root = RootWindow(disp, XScreenNumberOfScreen(scr));

    XGCValues gcval;
    gcval.foreground = XWhitePixel(disp, 0);
    gcval.function   = GXxor;
    gcval.background = XBlackPixel(disp, 0);
    gcval.plane_mask = gcval.background ^ gcval.foreground;
    gcval.subwindow_mode = IncludeInferiors;
    GC gc = XCreateGC(disp, root,
                      GCFunction|GCForeground|GCBackground|GCSubwindowMode,
                      &gcval);

	XQueryPointer(disp, root, &window_tmp, &window_tmp, &rootx, &rooty, &int_tmp, &int_tmp, &uint_tmp);
	//printf("%d\n", DisplayWidth(disp, DefaultScreen(disp)));
	//printf("%d\n\n", DisplayHeight(disp, DefaultScreen(disp)));
	// XGetGeometry() maybe better, instead of DisplayHeight() and DisplayWidth()
	XDrawLine(disp, root, gc, rootx, 0, rootx, DisplayHeight(disp, DefaultScreen(disp)));
	XDrawLine(disp, root, gc, 0, rooty, DisplayWidth(disp, DefaultScreen(disp)), rooty);
	//XDrawRectangle(disp, root, gc, 1000, 1000, 1000, 1000);
	XFlush(disp);

    XUngrabPointer(disp, CurrentTime);
    XUngrabKeyboard(disp, CurrentTime);
	//XFreeCursor(disp, cursor);
    XFreeGC(disp, gc);
    XSync(disp, True);

    XCloseDisplay(disp);

	return 0;
}