]> git.sur5r.net Git - i3/i3/blobdiff - include/xcb.h
Handle FocusIn events generated by clients and update decoration accordingly (Thanks...
[i3/i3] / include / xcb.h
index 8b531a3417016325251c388972ff8a8b3662182b..13fafb0b9c72777ce34dd8e941b304c6c07af995 100644 (file)
@@ -3,7 +3,7 @@
  *
  * i3 - an improved dynamic tiling window manager
  *
- * (c) 2009 Michael Stapelberg and contributors
+ * © 2009-2011 Michael Stapelberg and contributors
  *
  * See file LICENSE for license information.
  *
@@ -32,7 +32,8 @@
    while rendering the layout) */
 /** The XCB_CW_EVENT_MASK for the child (= real window) */
 #define CHILD_EVENT_MASK (XCB_EVENT_MASK_PROPERTY_CHANGE | \
-                          XCB_EVENT_MASK_STRUCTURE_NOTIFY)
+                          XCB_EVENT_MASK_STRUCTURE_NOTIFY | \
+                          XCB_EVENT_MASK_FOCUS_CHANGE)
 
 /** The XCB_CW_EVENT_MASK for its frame */
 #define FRAME_EVENT_MASK (XCB_EVENT_MASK_BUTTON_PRESS |          /* …mouse is pressed/released */ \
                           XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY |   /* …subwindows get notifies */ \
                           XCB_EVENT_MASK_ENTER_WINDOW)           /* …user moves cursor inside our window */
 
-
-enum {
-    _NET_SUPPORTED = 0,
-    _NET_SUPPORTING_WM_CHECK,
-    _NET_WM_NAME,
-    _NET_WM_STATE_FULLSCREEN,
-    _NET_WM_STATE,
-    _NET_WM_WINDOW_TYPE,
-    _NET_WM_WINDOW_TYPE_DOCK,
-    _NET_WM_WINDOW_TYPE_DIALOG,
-    _NET_WM_WINDOW_TYPE_UTILITY,
-    _NET_WM_WINDOW_TYPE_TOOLBAR,
-    _NET_WM_WINDOW_TYPE_SPLASH,
-    _NET_WM_DESKTOP,
-    _NET_WM_STRUT_PARTIAL,
-    WM_PROTOCOLS,
-    WM_DELETE_WINDOW,
-    UTF8_STRING,
-    WM_STATE,
-    WM_CLIENT_LEADER,
-    _NET_CURRENT_DESKTOP,
-    _NET_ACTIVE_WINDOW,
-    _NET_WORKAREA,
-    NUM_ATOMS
-};
+#define xmacro(atom) xcb_atom_t A_ ## atom;
+#include "atoms.xmacro"
+#undef xmacro
 
 extern unsigned int xcb_numlock_mask;
 
@@ -138,6 +117,12 @@ void fake_configure_notify(xcb_connection_t *conn, Rect r, xcb_window_t window);
  */
 void fake_absolute_configure_notify(Con *con);
 
+/**
+ * Sends the WM_TAKE_FOCUS ClientMessage to the given window
+ *
+ */
+void send_take_focus(xcb_window_t window);
+
 /**
  * Finds out which modifier mask is the one for numlock, as the user may
  * change this.
@@ -151,15 +136,6 @@ void xcb_get_numlock_mask(xcb_connection_t *conn);
  */
 void xcb_raise_window(xcb_connection_t *conn, xcb_window_t window);
 
-/**
- *
- * Prepares the given Cached_Pixmap for usage (checks whether the size of the
- * object this pixmap is related to (e.g. a window) has changed and re-creates
- * the pixmap if so).
- *
- */
-void cached_pixmap_prepare(xcb_connection_t *conn, struct Cached_Pixmap *pixmap);
-
 /**
  * Calculate the width of the given text (16-bit characters, UCS) with given
  * real length (amount of glyphs) using the given font.