]> git.sur5r.net Git - i3/i3/blobdiff - include/handlers.h
implement support for WM_TRANSIENT_FOR, expand testcase
[i3/i3] / include / handlers.h
index 5f0586f8786ffbc8a879d2b00ae3b3d9967fe4fb..71e2bc92cf60e2b84c00662fd5634f715f8ac590 100644 (file)
 
 #include <xcb/randr.h>
 
-/**
- * Due to bindings like Mode_switch + <a>, we need to bind some keys in
- * XCB_GRAB_MODE_SYNC.  Therefore, we just replay all key presses.
- *
- */
-int handle_key_release(void *ignored, xcb_connection_t *conn,
-                       xcb_key_release_event_t *event);
+
+void add_ignore_event(const int sequence);
 
 /**
  * There was a key press. We compare this key code with our bindings table and
@@ -37,6 +32,7 @@ int handle_key_press(void *ignored, xcb_connection_t *conn,
 int handle_enter_notify(void *ignored, xcb_connection_t *conn,
                         xcb_enter_notify_event_t *event);
 
+#if 0
 /**
  * When the user moves the mouse but does not change the active window
  * (e.g. when having no windows opened but moving mouse on the root screen
@@ -61,14 +57,14 @@ int handle_mapping_notify(void *ignored, xcb_connection_t *conn,
  */
 int handle_button_press(void *ignored, xcb_connection_t *conn,
                         xcb_button_press_event_t *event);
-
+#endif
 /**
  * A new window appeared on the screen (=was mapped), so let’s manage it.
  *
  */
 int handle_map_request(void *prophs, xcb_connection_t *conn,
                        xcb_map_request_event_t *event);
-
+#if 0
 /**
  * Configuration notifies are only handled because we need to set up ignore
  * for the following enter notify events
@@ -83,6 +79,7 @@ int handle_configure_event(void *prophs, xcb_connection_t *conn, xcb_configure_n
  */
 int handle_screen_change(void *prophs, xcb_connection_t *conn,
                          xcb_generic_event_t *e);
+#endif
 
 /**
  * Configure requests are received when the application wants to resize
@@ -102,6 +99,18 @@ int handle_configure_request(void *prophs, xcb_connection_t *conn,
  */
 int handle_unmap_notify_event(void *data, xcb_connection_t *conn, xcb_unmap_notify_event_t *event);
 
+/**
+ * A destroy notify event is sent when the window is not unmapped, but
+ * immediately destroyed (for example when starting a window and immediately
+ * killing the program which started it).
+ *
+ * We just pass on the event to the unmap notify handler (by copying the
+ * important fields in the event data structure).
+ *
+ */
+int handle_destroy_notify_event(void *data, xcb_connection_t *conn,
+                                xcb_destroy_notify_event_t *event);
+
 /**
  * Called when a window changes its title
  *
@@ -109,17 +118,9 @@ int handle_unmap_notify_event(void *data, xcb_connection_t *conn, xcb_unmap_noti
 int handle_windowname_change(void *data, xcb_connection_t *conn, uint8_t state,
                              xcb_window_t window, xcb_atom_t atom,
                              xcb_get_property_reply_t *prop);
-
 /**
- * We handle legacy window names (titles) which are in COMPOUND_TEXT
- * encoding. However, we just pass them along, so when containing non-ASCII
- * characters, those will be rendering incorrectly. In order to correctly
- * render unicode window titles in i3, an application has to set _NET_WM_NAME,
- * which is in UTF-8 encoding.
- *
- * On every update, a message is put out to the user, so he may improve the
- * situation and update applications which display filenames in their title to
- * correctly use _NET_WM_NAME and therefore support unicode.
+ * Handles legacy window name updates (WM_NAME), see also src/window.c,
+ * window_update_name_legacy().
  *
  */
 int handle_windowname_change_legacy(void *data, xcb_connection_t *conn,
@@ -127,6 +128,7 @@ int handle_windowname_change_legacy(void *data, xcb_connection_t *conn,
                                     xcb_atom_t atom, xcb_get_property_reply_t
                                     *prop);
 
+#if 0
 /**
  * Store the window classes for jumping to them later.
  *
@@ -135,14 +137,13 @@ int handle_windowclass_change(void *data, xcb_connection_t *conn, uint8_t state,
                               xcb_window_t window, xcb_atom_t atom,
                               xcb_get_property_reply_t *prop);
 
-
+#endif
 /**
  * Expose event means we should redraw our windows (= title bar)
  *
  */
 int handle_expose_event(void *data, xcb_connection_t *conn,
                         xcb_expose_event_t *event);
-
 /**
  * Handle client messages (EWMH)
  *
@@ -150,6 +151,7 @@ int handle_expose_event(void *data, xcb_connection_t *conn,
 int handle_client_message(void *data, xcb_connection_t *conn,
                           xcb_client_message_event_t *event);
 
+#if 0
 /**
  * Handles _NET_WM_WINDOW_TYPE changes
  *
@@ -157,6 +159,7 @@ int handle_client_message(void *data, xcb_connection_t *conn,
 int handle_window_type(void *data, xcb_connection_t *conn, uint8_t state,
                        xcb_window_t window, xcb_atom_t atom,
                        xcb_get_property_reply_t *property);
+#endif
 
 /**
  * Handles the size hints set by a window, but currently only the part