]> git.sur5r.net Git - i3/i3/commitdiff
Bugfix: use the global root variable, don’t get the first one (Thanks quaec)
authorMichael Stapelberg <michael@stapelberg.de>
Thu, 9 Sep 2010 13:34:13 +0000 (15:34 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Thu, 9 Sep 2010 13:35:48 +0000 (15:35 +0200)
The case of an X11 server having multiple displays is handled correctly by the
code in src/mainx.c. However, due to some functions not being correctly
refactored and still getting the first screen (and also the first root window)
from the XCB connection, i3 was operating on the wrong root window.

src/floating.c
src/handlers.c
src/sighandler.c
src/workspace.c
src/xcb.c

index 7e62eea58ff1e83c37358bffe4bfa17e0c2fec90..93a5b11c47ab5dbf58e46b2012d3872befcb32cb 100644 (file)
@@ -379,7 +379,6 @@ void floating_resize_window(xcb_connection_t *conn, Client *client,
  */
 void drag_pointer(xcb_connection_t *conn, Client *client, xcb_button_press_event_t *event,
                   xcb_window_t confine_to, border_t border, callback_t callback, void *extra) {
-        xcb_window_t root = xcb_setup_roots_iterator(xcb_get_setup(conn)).data->root;
         uint32_t new_x, new_y;
         Rect old_rect;
         if (client != NULL)
index 12e81f71a598822f82f4d6bed821f316c7f504b0..31eeced62f0ea3b8cabaf69490312f4a0dabe555 100644 (file)
@@ -458,8 +458,6 @@ int handle_screen_change(void *prophs, xcb_connection_t *conn,
  *
  */
 int handle_unmap_notify_event(void *data, xcb_connection_t *conn, xcb_unmap_notify_event_t *event) {
-        xcb_window_t root = xcb_setup_roots_iterator(xcb_get_setup(conn)).data->root;
-
         add_ignore_event(event->sequence);
 
         Client *client = table_get(&by_child, event->window);
index 92cbc5cb3abb7e7bfdc5abba914d83ccb4276cbb..d789f30b8148917f0ebe32c65d24d584b95690c9 100644 (file)
@@ -109,7 +109,6 @@ static int sig_handle_key_press(void *ignored, xcb_connection_t *conn, xcb_key_p
  *
  */
 static xcb_window_t open_input_window(xcb_connection_t *conn, Rect screen_rect, uint32_t width, uint32_t height) {
-        xcb_window_t root = xcb_setup_roots_iterator(xcb_get_setup(conn)).data->root;
         xcb_window_t win = xcb_generate_id(conn);
 
         uint32_t mask = 0;
index c950df8f92e27eda7e9ea56140889a6a855f10c3..7406bd5e10b8030c237e17c58377bc8d5b96bbbb 100644 (file)
@@ -112,7 +112,6 @@ bool workspace_is_visible(Workspace *ws) {
  */
 void workspace_show(xcb_connection_t *conn, int workspace) {
         bool need_warp = false;
-        xcb_window_t root = xcb_setup_roots_iterator(xcb_get_setup(conn)).data->root;
         /* t_ws (to workspace) is just a convenience pointer to the workspace we’re switching to */
         Workspace *t_ws = workspace_get(workspace-1);
 
index ee3148ed3b90437fa70a40254b05212f077ec0cd..38b1d5a848fcc36f260f9deb049d6f697beb5a7f 100644 (file)
--- a/src/xcb.c
+++ b/src/xcb.c
@@ -92,7 +92,6 @@ uint32_t get_colorpixel(xcb_connection_t *conn, char *hex) {
  */
 xcb_window_t create_window(xcb_connection_t *conn, Rect dims, uint16_t window_class, int cursor,
                            bool map, uint32_t mask, uint32_t *values) {
-        xcb_window_t root = xcb_setup_roots_iterator(xcb_get_setup(conn)).data->root;
         xcb_window_t result = xcb_generate_id(conn);
         xcb_cursor_t cursor_id = xcb_generate_id(conn);