Add support for WM_CLIENT_LEADER, put floating windows mapping to (0x0) to center of leader/workspace
This commit is contained in:
@ -341,6 +341,10 @@ struct Client {
|
||||
/** Holds the WM_CLASS, useful for matching the client in commands */
|
||||
char *window_class;
|
||||
|
||||
/** Holds the xcb_window_t (just an ID) for the leader window (logical
|
||||
* parent for toolwindows and similar floating windows) */
|
||||
xcb_window_t leader;
|
||||
|
||||
/** fullscreen is pretty obvious */
|
||||
bool fullscreen;
|
||||
|
||||
|
@ -154,4 +154,13 @@ int handle_transient_for(void *data, xcb_connection_t *conn, uint8_t state,
|
||||
xcb_window_t window, xcb_atom_t name,
|
||||
xcb_get_property_reply_t *reply);
|
||||
|
||||
/**
|
||||
* Handles changes of the WM_CLIENT_LEADER atom which specifies if this is a
|
||||
* toolwindow (or similar) and to which window it belongs (logical parent).
|
||||
*
|
||||
*/
|
||||
int handle_clientleader_change(void *data, xcb_connection_t *conn,
|
||||
uint8_t state, xcb_window_t window,
|
||||
xcb_atom_t name, xcb_get_property_reply_t *prop);
|
||||
|
||||
#endif
|
||||
|
@ -20,7 +20,7 @@
|
||||
#ifndef _I3_H
|
||||
#define _I3_H
|
||||
|
||||
#define NUM_ATOMS 17
|
||||
#define NUM_ATOMS 18
|
||||
|
||||
extern xcb_connection_t *global_conn;
|
||||
extern char **start_argv;
|
||||
|
@ -60,7 +60,8 @@ enum { _NET_SUPPORTED = 0,
|
||||
WM_PROTOCOLS,
|
||||
WM_DELETE_WINDOW,
|
||||
UTF8_STRING,
|
||||
WM_STATE
|
||||
WM_STATE,
|
||||
WM_CLIENT_LEADER
|
||||
};
|
||||
|
||||
extern unsigned int xcb_numlock_mask;
|
||||
|
Reference in New Issue
Block a user