core

WMUtils core.
git clone git://git.zepp.club/core.git
Log | Files | Refs | README | LICENSE

pfw.c (761B)


      1 /* See LICENSE file for copyright and license details. */
      2 
      3 #include <err.h>
      4 #include <stdio.h>
      5 #include <stdlib.h>
      6 #include <xcb/xcb.h>
      7 #include <xcb/xcb_aux.h>
      8 
      9 #include "util.h"
     10 
     11 static xcb_connection_t *conn;
     12 
     13 static xcb_window_t focus_window(void);
     14 
     15 static xcb_window_t
     16 focus_window(void)
     17 {
     18 	xcb_window_t w = 0;
     19 	xcb_get_input_focus_cookie_t c;
     20 	xcb_get_input_focus_reply_t *r;
     21 
     22 	c = xcb_get_input_focus(conn);
     23 	r = xcb_get_input_focus_reply(conn, c, NULL);
     24 	if (r == NULL)
     25 		errx(1, "xcb_get_input_focus");
     26 
     27 	w = r->focus;
     28 	free(r);
     29 
     30 	if (w == XCB_NONE || w == XCB_INPUT_FOCUS_POINTER_ROOT)
     31 		errx(1, "focus not set");
     32 
     33 	return w;
     34 }
     35 
     36 int
     37 main(int argc, char **argv)
     38 {
     39 	init_xcb(&conn);
     40 
     41 	printf("0x%08x\n", focus_window());
     42 
     43 	kill_xcb(&conn);
     44 	return 0;
     45 }