Remove useless xutil_root_window()
This commit is contained in:
parent
da5236d57a
commit
71e9100927
|
@ -852,8 +852,8 @@ main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
if((xqp = xcb_query_pointer_reply(globalconf.connection,
|
if((xqp = xcb_query_pointer_reply(globalconf.connection,
|
||||||
xcb_query_pointer(globalconf.connection,
|
xcb_query_pointer(globalconf.connection,
|
||||||
xutil_root_window(globalconf.connection,
|
xcb_aux_get_screen(globalconf.connection,
|
||||||
globalconf.default_screen)),
|
globalconf.default_screen)->root),
|
||||||
NULL)) != NULL)
|
NULL)) != NULL)
|
||||||
{
|
{
|
||||||
screen = screen_get_bycoord(si, 0, xqp->root_x, xqp->root_y);
|
screen = screen_get_bycoord(si, 0, xqp->root_x, xqp->root_y);
|
||||||
|
|
|
@ -174,8 +174,8 @@ main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
if((xqp = xcb_query_pointer_reply(globalconf.connection,
|
if((xqp = xcb_query_pointer_reply(globalconf.connection,
|
||||||
xcb_query_pointer(globalconf.connection,
|
xcb_query_pointer(globalconf.connection,
|
||||||
xutil_root_window(globalconf.connection,
|
xcb_aux_get_screen(globalconf.connection,
|
||||||
globalconf.default_screen)),
|
globalconf.default_screen)->root),
|
||||||
NULL)) != NULL)
|
NULL)) != NULL)
|
||||||
{
|
{
|
||||||
screen = screen_get_bycoord(si, 0, xqp->root_x, xqp->root_y);
|
screen = screen_get_bycoord(si, 0, xqp->root_x, xqp->root_y);
|
||||||
|
|
|
@ -88,7 +88,7 @@ scan()
|
||||||
|
|
||||||
for(screen = 0; screen < screen_max; screen++)
|
for(screen = 0; screen < screen_max; screen++)
|
||||||
{
|
{
|
||||||
root_wins[screen].id = xutil_root_window(globalconf.connection, screen);
|
root_wins[screen].id = xcb_aux_get_screen(globalconf.connection, screen)->root;
|
||||||
|
|
||||||
/* Get the window tree */
|
/* Get the window tree */
|
||||||
root_wins[screen].tree_cookie = xcb_query_tree_unchecked(globalconf.connection,
|
root_wins[screen].tree_cookie = xcb_query_tree_unchecked(globalconf.connection,
|
||||||
|
@ -356,7 +356,7 @@ main(int argc, char *argv[])
|
||||||
screen_nbr++)
|
screen_nbr++)
|
||||||
/* this causes an error if some other window manager is running */
|
/* this causes an error if some other window manager is running */
|
||||||
xcb_change_window_attributes(conn,
|
xcb_change_window_attributes(conn,
|
||||||
xutil_root_window(conn, screen_nbr),
|
xcb_aux_get_screen(conn, screen_nbr)->root,
|
||||||
XCB_CW_EVENT_MASK, &select_input_val);
|
XCB_CW_EVENT_MASK, &select_input_val);
|
||||||
|
|
||||||
/* need to xcb_flush to validate error handler */
|
/* need to xcb_flush to validate error handler */
|
||||||
|
@ -424,7 +424,7 @@ main(int argc, char *argv[])
|
||||||
screen_nbr++)
|
screen_nbr++)
|
||||||
{
|
{
|
||||||
xcb_change_window_attributes(globalconf.connection,
|
xcb_change_window_attributes(globalconf.connection,
|
||||||
xutil_root_window(globalconf.connection, screen_nbr),
|
xcb_aux_get_screen(globalconf.connection, screen_nbr)->root,
|
||||||
XCB_CW_EVENT_MASK | XCB_CW_CURSOR,
|
XCB_CW_EVENT_MASK | XCB_CW_CURSOR,
|
||||||
change_win_vals);
|
change_win_vals);
|
||||||
ewmh_set_supported_hints(screen_nbr);
|
ewmh_set_supported_hints(screen_nbr);
|
||||||
|
|
4
client.c
4
client.c
|
@ -233,7 +233,7 @@ client_focus(Client *c, int screen, bool raise)
|
||||||
phys_screen = screen_virttophys(screen);
|
phys_screen = screen_virttophys(screen);
|
||||||
xcb_set_input_focus(globalconf.connection,
|
xcb_set_input_focus(globalconf.connection,
|
||||||
XCB_INPUT_FOCUS_POINTER_ROOT,
|
XCB_INPUT_FOCUS_POINTER_ROOT,
|
||||||
xutil_root_window(globalconf.connection, phys_screen),
|
xcb_aux_get_screen(globalconf.connection, phys_screen)->root,
|
||||||
XCB_CURRENT_TIME);
|
XCB_CURRENT_TIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -927,7 +927,7 @@ uicb_client_moveresize(int screen, char *arg)
|
||||||
|
|
||||||
xqp = xcb_query_pointer_reply(globalconf.connection,
|
xqp = xcb_query_pointer_reply(globalconf.connection,
|
||||||
xcb_query_pointer_unchecked(globalconf.connection,
|
xcb_query_pointer_unchecked(globalconf.connection,
|
||||||
xutil_root_window(globalconf.connection, sel->phys_screen)),
|
xcb_aux_get_screen(globalconf.connection, sel->phys_screen)->root),
|
||||||
NULL);
|
NULL);
|
||||||
if(globalconf.screens[sel->screen].resize_hints)
|
if(globalconf.screens[sel->screen].resize_hints)
|
||||||
geometry = client_geometry_hints(sel, geometry);
|
geometry = client_geometry_hints(sel, geometry);
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
#include <xcb/xcb_aux.h>
|
#include <xcb/xcb_aux.h>
|
||||||
|
|
||||||
#include "common/swindow.h"
|
#include "common/swindow.h"
|
||||||
#include "common/util.h"
|
|
||||||
|
|
||||||
/** Create a simple window
|
/** Create a simple window
|
||||||
* \param conn Connection ref
|
* \param conn Connection ref
|
||||||
|
@ -61,17 +60,13 @@ simplewindow_new(xcb_connection_t *conn, int phys_screen, int x, int y,
|
||||||
XCB_EVENT_MASK_BUTTON_PRESS | XCB_EVENT_MASK_EXPOSURE;
|
XCB_EVENT_MASK_BUTTON_PRESS | XCB_EVENT_MASK_EXPOSURE;
|
||||||
|
|
||||||
sw->window = xcb_generate_id(conn);
|
sw->window = xcb_generate_id(conn);
|
||||||
xcb_create_window(conn, s->root_depth, sw->window,
|
xcb_create_window(conn, s->root_depth, sw->window, s->root, x, y, w, h,
|
||||||
xutil_root_window(conn, phys_screen),
|
border_width, XCB_COPY_FROM_PARENT, s->root_visual,
|
||||||
x, y, w, h, border_width,
|
|
||||||
XCB_COPY_FROM_PARENT,
|
|
||||||
s->root_visual,
|
|
||||||
XCB_CW_BACK_PIXMAP | XCB_CW_OVERRIDE_REDIRECT | XCB_CW_EVENT_MASK,
|
XCB_CW_BACK_PIXMAP | XCB_CW_OVERRIDE_REDIRECT | XCB_CW_EVENT_MASK,
|
||||||
create_win_val);
|
create_win_val);
|
||||||
|
|
||||||
sw->drawable = xcb_generate_id(conn);
|
sw->drawable = xcb_generate_id(conn);
|
||||||
xcb_create_pixmap(conn, s->root_depth, sw->drawable,
|
xcb_create_pixmap(conn, s->root_depth, sw->drawable, s->root, w, h);
|
||||||
xutil_root_window(conn, phys_screen), w, h);
|
|
||||||
|
|
||||||
return sw;
|
return sw;
|
||||||
}
|
}
|
||||||
|
@ -119,8 +114,7 @@ simplewindow_resize(SimpleWindow *sw, unsigned int w, unsigned int h)
|
||||||
sw->geometry.height = h;
|
sw->geometry.height = h;
|
||||||
xcb_free_pixmap(sw->connection, sw->drawable);
|
xcb_free_pixmap(sw->connection, sw->drawable);
|
||||||
sw->drawable = xcb_generate_id(sw->connection);
|
sw->drawable = xcb_generate_id(sw->connection);
|
||||||
xcb_create_pixmap(sw->connection, s->root_depth, sw->drawable,
|
xcb_create_pixmap(sw->connection, s->root_depth, sw->drawable, s->root, w, h);
|
||||||
xutil_root_window(sw->connection, sw->phys_screen), w, h);
|
|
||||||
xcb_configure_window(sw->connection, sw->window,
|
xcb_configure_window(sw->connection, sw->window,
|
||||||
XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT,
|
XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT,
|
||||||
resize_win_vals);
|
resize_win_vals);
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
#define _GNU_SOURCE
|
#define _GNU_SOURCE
|
||||||
|
|
||||||
#include <xcb/xcb.h>
|
#include <xcb/xcb.h>
|
||||||
#include <xcb/xcb_aux.h>
|
|
||||||
#include <xcb/xcb_atom.h>
|
#include <xcb/xcb_atom.h>
|
||||||
#include <xcb/xinerama.h>
|
#include <xcb/xinerama.h>
|
||||||
|
|
||||||
|
@ -138,12 +137,6 @@ xutil_get_transient_for_hint(xcb_connection_t *c, xcb_window_t win,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
xcb_window_t
|
|
||||||
xutil_root_window(xcb_connection_t *c, int screen_number)
|
|
||||||
{
|
|
||||||
return xcb_aux_get_screen(c, screen_number)->root;
|
|
||||||
}
|
|
||||||
|
|
||||||
xcb_atom_t
|
xcb_atom_t
|
||||||
xutil_intern_atom(xcb_connection_t *c, const char *property)
|
xutil_intern_atom(xcb_connection_t *c, const char *property)
|
||||||
{
|
{
|
||||||
|
|
|
@ -79,7 +79,6 @@ void xutil_get_lock_mask(xcb_connection_t *, xcb_key_symbols_t *,
|
||||||
|
|
||||||
/* Common function defined in Xlib but not in XCB */
|
/* Common function defined in Xlib but not in XCB */
|
||||||
bool xutil_get_transient_for_hint(xcb_connection_t *, xcb_window_t, xcb_window_t *);
|
bool xutil_get_transient_for_hint(xcb_connection_t *, xcb_window_t, xcb_window_t *);
|
||||||
xcb_window_t xutil_root_window(xcb_connection_t *, int);
|
|
||||||
|
|
||||||
typedef struct _class_hint_t
|
typedef struct _class_hint_t
|
||||||
{
|
{
|
||||||
|
|
14
event.c
14
event.c
|
@ -154,7 +154,7 @@ event_handle_buttonpress(void *data __attribute__ ((unused)),
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
for(screen = 0; screen < xcb_setup_roots_length(xcb_get_setup(connection)); screen++)
|
for(screen = 0; screen < xcb_setup_roots_length(xcb_get_setup(connection)); screen++)
|
||||||
if(xutil_root_window(connection, screen) == ev->event
|
if(xcb_aux_get_screen(connection, screen)->root == ev->event
|
||||||
&& (qr = xcb_query_pointer_reply(connection,
|
&& (qr = xcb_query_pointer_reply(connection,
|
||||||
xcb_query_pointer(connection, ev->event),
|
xcb_query_pointer(connection, ev->event),
|
||||||
NULL)) != NULL)
|
NULL)) != NULL)
|
||||||
|
@ -274,8 +274,8 @@ event_handle_configurenotify(void *data __attribute__ ((unused)),
|
||||||
const xcb_screen_t *screen;
|
const xcb_screen_t *screen;
|
||||||
|
|
||||||
for(screen_nbr = 0; screen_nbr < xcb_setup_roots_length(xcb_get_setup (connection)); screen_nbr++)
|
for(screen_nbr = 0; screen_nbr < xcb_setup_roots_length(xcb_get_setup (connection)); screen_nbr++)
|
||||||
if(ev->window == xutil_root_window(connection, screen_nbr)
|
if((screen = xcb_aux_get_screen(connection, screen_nbr)) != NULL
|
||||||
&& (screen = xcb_aux_get_screen(connection, screen_nbr)) != NULL
|
&& ev->window == screen->root
|
||||||
&& (ev->width != screen->width_in_pixels
|
&& (ev->width != screen->width_in_pixels
|
||||||
|| ev->height != screen->height_in_pixels))
|
|| ev->height != screen->height_in_pixels))
|
||||||
/* it's not that we panic, but restart */
|
/* it's not that we panic, but restart */
|
||||||
|
@ -336,7 +336,7 @@ event_handle_enternotify(void *data __attribute__ ((unused)),
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
for(screen = 0; screen < xcb_setup_roots_length(xcb_get_setup(connection)); screen++)
|
for(screen = 0; screen < xcb_setup_roots_length(xcb_get_setup(connection)); screen++)
|
||||||
if(ev->event == xutil_root_window(connection, screen))
|
if(ev->event == xcb_aux_get_screen(connection, screen)->root)
|
||||||
{
|
{
|
||||||
window_root_grabbuttons(screen);
|
window_root_grabbuttons(screen);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -395,7 +395,7 @@ event_handle_keypress(void *data __attribute__ ((unused)),
|
||||||
for(screen = 0; screen < xcb_setup_roots_length (xcb_get_setup (connection)); screen++)
|
for(screen = 0; screen < xcb_setup_roots_length (xcb_get_setup (connection)); screen++)
|
||||||
if((qpr = xcb_query_pointer_reply(connection,
|
if((qpr = xcb_query_pointer_reply(connection,
|
||||||
xcb_query_pointer(connection,
|
xcb_query_pointer(connection,
|
||||||
xutil_root_window(connection, screen)),
|
xcb_aux_get_screen(connection, screen)->root),
|
||||||
NULL)) != NULL)
|
NULL)) != NULL)
|
||||||
{
|
{
|
||||||
/* if screen is 0, we are on first Zaphod screen or on the
|
/* if screen is 0, we are on first Zaphod screen or on the
|
||||||
|
@ -466,7 +466,7 @@ event_handle_maprequest(void *data __attribute__ ((unused)),
|
||||||
if(globalconf.screens_info->xinerama_is_active
|
if(globalconf.screens_info->xinerama_is_active
|
||||||
&& (qpr = xcb_query_pointer_reply(connection,
|
&& (qpr = xcb_query_pointer_reply(connection,
|
||||||
xcb_query_pointer(connection,
|
xcb_query_pointer(connection,
|
||||||
xutil_root_window(globalconf.connection, screen_nbr)),
|
xcb_aux_get_screen(globalconf.connection, screen_nbr)->root),
|
||||||
NULL)) != NULL)
|
NULL)) != NULL)
|
||||||
screen_nbr = screen_get_bycoord(globalconf.screens_info, screen_nbr, qpr->root_x, qpr->root_y);
|
screen_nbr = screen_get_bycoord(globalconf.screens_info, screen_nbr, qpr->root_x, qpr->root_y);
|
||||||
else
|
else
|
||||||
|
@ -535,7 +535,7 @@ event_handle_unmapnotify(void *data __attribute__ ((unused)),
|
||||||
bool send_event = ((ev->response_type & 0x80) >> 7);
|
bool send_event = ((ev->response_type & 0x80) >> 7);
|
||||||
|
|
||||||
if((c = client_get_bywin(globalconf.clients, ev->window))
|
if((c = client_get_bywin(globalconf.clients, ev->window))
|
||||||
&& ev->event == xutil_root_window(connection, c->phys_screen)
|
&& ev->event == xcb_aux_get_screen(connection, c->phys_screen)->root
|
||||||
&& send_event && window_getstate(c->win) == XCB_WM_NORMAL_STATE)
|
&& send_event && window_getstate(c->win) == XCB_WM_NORMAL_STATE)
|
||||||
client_unmanage(c);
|
client_unmanage(c);
|
||||||
|
|
||||||
|
|
15
ewmh.c
15
ewmh.c
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
#include <xcb/xcb.h>
|
#include <xcb/xcb.h>
|
||||||
#include <xcb/xcb_atom.h>
|
#include <xcb/xcb_atom.h>
|
||||||
|
#include <xcb/xcb_aux.h>
|
||||||
|
|
||||||
#include "ewmh.h"
|
#include "ewmh.h"
|
||||||
#include "tag.h"
|
#include "tag.h"
|
||||||
|
@ -157,7 +158,7 @@ ewmh_set_supported_hints(int phys_screen)
|
||||||
atom[i++] = net_wm_state_below;
|
atom[i++] = net_wm_state_below;
|
||||||
|
|
||||||
xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE,
|
xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE,
|
||||||
xutil_root_window(globalconf.connection, phys_screen),
|
xcb_aux_get_screen(globalconf.connection, phys_screen)->root,
|
||||||
net_supported, ATOM, 32, i, atom);
|
net_supported, ATOM, 32, i, atom);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,7 +179,7 @@ ewmh_update_net_client_list(int phys_screen)
|
||||||
wins[n] = c->win;
|
wins[n] = c->win;
|
||||||
|
|
||||||
xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE,
|
xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE,
|
||||||
xutil_root_window(globalconf.connection, phys_screen),
|
xcb_aux_get_screen(globalconf.connection, phys_screen)->root,
|
||||||
net_client_list, WINDOW, 32, n, wins);
|
net_client_list, WINDOW, 32, n, wins);
|
||||||
|
|
||||||
p_delete(&wins);
|
p_delete(&wins);
|
||||||
|
@ -194,7 +195,7 @@ ewmh_update_net_numbers_of_desktop(int phys_screen)
|
||||||
count++;
|
count++;
|
||||||
|
|
||||||
xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE,
|
xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE,
|
||||||
xutil_root_window(globalconf.connection, phys_screen),
|
xcb_aux_get_screen(globalconf.connection, phys_screen)->root,
|
||||||
net_number_of_desktops, CARDINAL, 32, 1, &count);
|
net_number_of_desktops, CARDINAL, 32, 1, &count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -208,7 +209,7 @@ ewmh_update_net_current_desktop(int phys_screen)
|
||||||
count++;
|
count++;
|
||||||
|
|
||||||
xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE,
|
xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE,
|
||||||
xutil_root_window(globalconf.connection, phys_screen),
|
xcb_aux_get_screen(globalconf.connection, phys_screen)->root,
|
||||||
net_current_desktop, CARDINAL, 32, 1, &count);
|
net_current_desktop, CARDINAL, 32, 1, &count);
|
||||||
|
|
||||||
p_delete(&curtags);
|
p_delete(&curtags);
|
||||||
|
@ -232,7 +233,7 @@ ewmh_update_net_desktop_names(int phys_screen)
|
||||||
}
|
}
|
||||||
|
|
||||||
xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE,
|
xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE,
|
||||||
xutil_root_window(globalconf.connection, phys_screen),
|
xcb_aux_get_screen(globalconf.connection, phys_screen)->root,
|
||||||
net_desktop_names, utf8_string, 8, len, buf);
|
net_desktop_names, utf8_string, 8, len, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -245,7 +246,7 @@ ewmh_update_net_active_window(int phys_screen)
|
||||||
win = sel ? sel->win : XCB_NONE;
|
win = sel ? sel->win : XCB_NONE;
|
||||||
|
|
||||||
xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE,
|
xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE,
|
||||||
xutil_root_window(globalconf.connection, phys_screen),
|
xcb_aux_get_screen(globalconf.connection, phys_screen)->root,
|
||||||
net_active_window, WINDOW, 32, 1, &win);
|
net_active_window, WINDOW, 32, 1, &win);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -362,7 +363,7 @@ ewmh_process_client_message(xcb_client_message_event_t *ev)
|
||||||
screen < xcb_setup_roots_length(xcb_get_setup(globalconf.connection));
|
screen < xcb_setup_roots_length(xcb_get_setup(globalconf.connection));
|
||||||
screen++)
|
screen++)
|
||||||
{
|
{
|
||||||
if(ev->window == xutil_root_window(globalconf.connection, screen))
|
if(ev->window == xcb_aux_get_screen(globalconf.connection, screen)->root)
|
||||||
tag_view_only_byindex(screen, ev->data.data32[0]);
|
tag_view_only_byindex(screen, ev->data.data32[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
5
layout.c
5
layout.c
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
#include <xcb/xcb.h>
|
#include <xcb/xcb.h>
|
||||||
#include <xcb/xcb_atom.h>
|
#include <xcb/xcb_atom.h>
|
||||||
|
#include <xcb/xcb_aux.h>
|
||||||
|
|
||||||
#include "tag.h"
|
#include "tag.h"
|
||||||
#include "focus.h"
|
#include "focus.h"
|
||||||
|
@ -80,8 +81,8 @@ arrange(int screen)
|
||||||
/* check that the mouse is on a window or not */
|
/* check that the mouse is on a window or not */
|
||||||
if((xqp = xcb_query_pointer_reply(globalconf.connection,
|
if((xqp = xcb_query_pointer_reply(globalconf.connection,
|
||||||
xcb_query_pointer_unchecked(globalconf.connection,
|
xcb_query_pointer_unchecked(globalconf.connection,
|
||||||
xutil_root_window(globalconf.connection,
|
xcb_aux_get_screen(globalconf.connection,
|
||||||
phys_screen)),
|
phys_screen)->root),
|
||||||
NULL)) != NULL
|
NULL)) != NULL
|
||||||
&& (xqp->root == XCB_NONE || xqp->child == XCB_NONE || xqp->root == xqp->child))
|
&& (xqp->root == XCB_NONE || xqp->child == XCB_NONE || xqp->root == xqp->child))
|
||||||
{
|
{
|
||||||
|
|
16
mouse.c
16
mouse.c
|
@ -147,20 +147,21 @@ uicb_client_movemouse(int screen, char *arg __attribute__ ((unused)))
|
||||||
xcb_motion_notify_event_t *ev_motion = NULL;
|
xcb_motion_notify_event_t *ev_motion = NULL;
|
||||||
xcb_grab_pointer_reply_t *grab_pointer_r = NULL;
|
xcb_grab_pointer_reply_t *grab_pointer_r = NULL;
|
||||||
xcb_query_pointer_reply_t *query_pointer_r = NULL, *mquery_pointer_r = NULL;
|
xcb_query_pointer_reply_t *query_pointer_r = NULL, *mquery_pointer_r = NULL;
|
||||||
|
xcb_screen_t *s = xcb_aux_get_screen(globalconf.connection, c->phys_screen);
|
||||||
|
|
||||||
if(!c
|
if(!c
|
||||||
|| xcb_grab_pointer_reply(globalconf.connection,
|
|| xcb_grab_pointer_reply(globalconf.connection,
|
||||||
xcb_grab_pointer(globalconf.connection, false,
|
xcb_grab_pointer(globalconf.connection, false,
|
||||||
xutil_root_window(globalconf.connection, c->phys_screen),
|
s->root,
|
||||||
MOUSEMASK, XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_ASYNC,
|
MOUSEMASK, XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_ASYNC,
|
||||||
xutil_root_window(globalconf.connection, c->phys_screen),
|
s->root,
|
||||||
globalconf.cursor[CurMove], XCB_CURRENT_TIME),
|
globalconf.cursor[CurMove], XCB_CURRENT_TIME),
|
||||||
NULL))
|
NULL))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
query_pointer_r = xcb_query_pointer_reply(globalconf.connection,
|
query_pointer_r = xcb_query_pointer_reply(globalconf.connection,
|
||||||
xcb_query_pointer_unchecked(globalconf.connection,
|
xcb_query_pointer_unchecked(globalconf.connection,
|
||||||
xutil_root_window(globalconf.connection, c->phys_screen)),
|
s->root),
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
geometry = c->geometry;
|
geometry = c->geometry;
|
||||||
|
@ -230,7 +231,7 @@ uicb_client_movemouse(int screen, char *arg __attribute__ ((unused)))
|
||||||
{
|
{
|
||||||
mquery_pointer_r = xcb_query_pointer_reply(globalconf.connection,
|
mquery_pointer_r = xcb_query_pointer_reply(globalconf.connection,
|
||||||
xcb_query_pointer_unchecked(globalconf.connection,
|
xcb_query_pointer_unchecked(globalconf.connection,
|
||||||
xutil_root_window(globalconf.connection, c->phys_screen)),
|
s->root),
|
||||||
NULL);
|
NULL);
|
||||||
if((newscreen = screen_get_bycoord(globalconf.screens_info, c->screen,
|
if((newscreen = screen_get_bycoord(globalconf.screens_info, c->screen,
|
||||||
mquery_pointer_r->root_x,
|
mquery_pointer_r->root_x,
|
||||||
|
@ -290,6 +291,7 @@ uicb_client_resizemouse(int screen, char *arg __attribute__ ((unused)))
|
||||||
style_t style;
|
style_t style;
|
||||||
xcb_grab_pointer_cookie_t grab_pointer_c;
|
xcb_grab_pointer_cookie_t grab_pointer_c;
|
||||||
xcb_grab_pointer_reply_t *grab_pointer_r = NULL;
|
xcb_grab_pointer_reply_t *grab_pointer_r = NULL;
|
||||||
|
xcb_screen_t *s = xcb_aux_get_screen(globalconf.connection, c->phys_screen);
|
||||||
|
|
||||||
/* only handle floating and tiled layouts */
|
/* only handle floating and tiled layouts */
|
||||||
if(!c || c->isfixed)
|
if(!c || c->isfixed)
|
||||||
|
@ -335,11 +337,9 @@ uicb_client_resizemouse(int screen, char *arg __attribute__ ((unused)))
|
||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
grab_pointer_c = xcb_grab_pointer(globalconf.connection, false,
|
grab_pointer_c = xcb_grab_pointer(globalconf.connection, false, s->root,
|
||||||
xutil_root_window(globalconf.connection, c->phys_screen),
|
|
||||||
MOUSEMASK, XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_ASYNC,
|
MOUSEMASK, XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_ASYNC,
|
||||||
xutil_root_window(globalconf.connection, c->phys_screen),
|
s->root, globalconf.cursor[CurResize], XCB_CURRENT_TIME);
|
||||||
globalconf.cursor[CurResize], XCB_CURRENT_TIME);
|
|
||||||
|
|
||||||
if(layout->arrange == layout_floating || c->isfloating)
|
if(layout->arrange == layout_floating || c->isfloating)
|
||||||
{
|
{
|
||||||
|
|
|
@ -19,6 +19,9 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <xcb/xcb.h>
|
||||||
|
#include <xcb/xcb_aux.h>
|
||||||
|
|
||||||
#include "placement.h"
|
#include "placement.h"
|
||||||
#include "screen.h"
|
#include "screen.h"
|
||||||
#include "client.h"
|
#include "client.h"
|
||||||
|
@ -133,7 +136,7 @@ placement_under_mouse(Client *c)
|
||||||
|
|
||||||
if((xqp = xcb_query_pointer_reply(globalconf.connection,
|
if((xqp = xcb_query_pointer_reply(globalconf.connection,
|
||||||
xcb_query_pointer(globalconf.connection,
|
xcb_query_pointer(globalconf.connection,
|
||||||
xutil_root_window(globalconf.connection, c->phys_screen)),
|
xcb_aux_get_screen(globalconf.connection, c->phys_screen)->root),
|
||||||
NULL)) != NULL)
|
NULL)) != NULL)
|
||||||
{
|
{
|
||||||
finalgeometry.x = xqp->root_x - c->f_geometry.width / 2;
|
finalgeometry.x = xqp->root_x - c->f_geometry.width / 2;
|
||||||
|
|
7
screen.c
7
screen.c
|
@ -216,21 +216,18 @@ move_client_to_screen(Client *c, int new_screen, bool doresize)
|
||||||
static void
|
static void
|
||||||
move_mouse_pointer_to_screen(int phys_screen)
|
move_mouse_pointer_to_screen(int phys_screen)
|
||||||
{
|
{
|
||||||
xcb_screen_t *s;
|
|
||||||
|
|
||||||
if(globalconf.screens_info->xinerama_is_active)
|
if(globalconf.screens_info->xinerama_is_active)
|
||||||
{
|
{
|
||||||
s = xcb_aux_get_screen(globalconf.connection, globalconf.default_screen);
|
|
||||||
area_t area = screen_get_area(phys_screen, NULL, NULL);
|
area_t area = screen_get_area(phys_screen, NULL, NULL);
|
||||||
xcb_warp_pointer(globalconf.connection,
|
xcb_warp_pointer(globalconf.connection,
|
||||||
XCB_NONE,
|
XCB_NONE,
|
||||||
s->root,
|
xcb_aux_get_screen(globalconf.connection, globalconf.default_screen)->root,
|
||||||
0, 0, 0, 0, area.x, area.y);
|
0, 0, 0, 0, area.x, area.y);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
xcb_warp_pointer(globalconf.connection,
|
xcb_warp_pointer(globalconf.connection,
|
||||||
XCB_NONE,
|
XCB_NONE,
|
||||||
xutil_root_window(globalconf.connection, phys_screen),
|
xcb_aux_get_screen(globalconf.connection, phys_screen)->root,
|
||||||
0, 0, 0, 0, 0, 0);
|
0, 0, 0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -242,8 +242,7 @@ statusbar_init(Statusbar *statusbar)
|
||||||
/* we need a new pixmap this way [ ] to render */
|
/* we need a new pixmap this way [ ] to render */
|
||||||
dw = xcb_generate_id(globalconf.connection);
|
dw = xcb_generate_id(globalconf.connection);
|
||||||
xcb_create_pixmap(globalconf.connection,
|
xcb_create_pixmap(globalconf.connection,
|
||||||
s->root_depth, dw,
|
s->root_depth, dw, s->root,
|
||||||
xutil_root_window(globalconf.connection, phys_screen),
|
|
||||||
statusbar->width, statusbar->height);
|
statusbar->width, statusbar->height);
|
||||||
statusbar->ctx = draw_context_new(globalconf.connection,
|
statusbar->ctx = draw_context_new(globalconf.connection,
|
||||||
phys_screen,
|
phys_screen,
|
||||||
|
|
|
@ -172,7 +172,7 @@ titlebar_draw(Client *c)
|
||||||
dw = xcb_generate_id(globalconf.connection);
|
dw = xcb_generate_id(globalconf.connection);
|
||||||
xcb_create_pixmap(globalconf.connection, s->root_depth,
|
xcb_create_pixmap(globalconf.connection, s->root_depth,
|
||||||
dw,
|
dw,
|
||||||
xutil_root_window(globalconf.connection, c->titlebar.sw->phys_screen),
|
s->root,
|
||||||
c->titlebar.sw->geometry.height,
|
c->titlebar.sw->geometry.height,
|
||||||
c->titlebar.sw->geometry.width);
|
c->titlebar.sw->geometry.width);
|
||||||
ctx = draw_context_new(globalconf.connection, c->titlebar.sw->phys_screen,
|
ctx = draw_context_new(globalconf.connection, c->titlebar.sw->phys_screen,
|
||||||
|
|
31
window.c
31
window.c
|
@ -23,6 +23,7 @@
|
||||||
#include <xcb/xcb_atom.h>
|
#include <xcb/xcb_atom.h>
|
||||||
#include <xcb/shape.h>
|
#include <xcb/shape.h>
|
||||||
#include <xcb/xcb_keysyms.h>
|
#include <xcb/xcb_keysyms.h>
|
||||||
|
#include <xcb/xcb_aux.h>
|
||||||
|
|
||||||
#include "structs.h"
|
#include "structs.h"
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
|
@ -140,7 +141,8 @@ window_grabbuttons(xcb_window_t win, int phys_screen)
|
||||||
}
|
}
|
||||||
|
|
||||||
xcb_ungrab_button(globalconf.connection, XCB_BUTTON_INDEX_ANY,
|
xcb_ungrab_button(globalconf.connection, XCB_BUTTON_INDEX_ANY,
|
||||||
xutil_root_window(globalconf.connection, phys_screen), ANY_MODIFIER);
|
xcb_aux_get_screen(globalconf.connection, phys_screen)->root,
|
||||||
|
ANY_MODIFIER);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Grab buttons on root window
|
/** Grab buttons on root window
|
||||||
|
@ -150,23 +152,20 @@ void
|
||||||
window_root_grabbuttons(int phys_screen)
|
window_root_grabbuttons(int phys_screen)
|
||||||
{
|
{
|
||||||
Button *b;
|
Button *b;
|
||||||
|
xcb_screen_t *s = xcb_aux_get_screen(globalconf.connection, phys_screen);
|
||||||
|
|
||||||
for(b = globalconf.buttons.root; b; b = b->next)
|
for(b = globalconf.buttons.root; b; b = b->next)
|
||||||
{
|
{
|
||||||
xcb_grab_button(globalconf.connection, false,
|
xcb_grab_button(globalconf.connection, false, s->root, BUTTONMASK,
|
||||||
xutil_root_window(globalconf.connection, phys_screen), BUTTONMASK,
|
|
||||||
XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_SYNC, XCB_NONE, XCB_NONE,
|
XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_SYNC, XCB_NONE, XCB_NONE,
|
||||||
b->button, b->mod);
|
b->button, b->mod);
|
||||||
xcb_grab_button(globalconf.connection, false,
|
xcb_grab_button(globalconf.connection, false, s->root, BUTTONMASK,
|
||||||
xutil_root_window(globalconf.connection, phys_screen), BUTTONMASK,
|
|
||||||
XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_SYNC, XCB_NONE, XCB_NONE,
|
XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_SYNC, XCB_NONE, XCB_NONE,
|
||||||
b->button, b->mod | XCB_MOD_MASK_LOCK);
|
b->button, b->mod | XCB_MOD_MASK_LOCK);
|
||||||
xcb_grab_button(globalconf.connection, false,
|
xcb_grab_button(globalconf.connection, false, s->root, BUTTONMASK,
|
||||||
xutil_root_window(globalconf.connection, phys_screen), BUTTONMASK,
|
|
||||||
XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_SYNC, XCB_NONE, XCB_NONE,
|
XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_SYNC, XCB_NONE, XCB_NONE,
|
||||||
b->button, b->mod | globalconf.numlockmask);
|
b->button, b->mod | globalconf.numlockmask);
|
||||||
xcb_grab_button(globalconf.connection, false,
|
xcb_grab_button(globalconf.connection, false, s->root, BUTTONMASK,
|
||||||
xutil_root_window(globalconf.connection, phys_screen), BUTTONMASK,
|
|
||||||
XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_SYNC, XCB_NONE, XCB_NONE,
|
XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_SYNC, XCB_NONE, XCB_NONE,
|
||||||
b->button, b->mod | globalconf.numlockmask | XCB_MOD_MASK_LOCK);
|
b->button, b->mod | globalconf.numlockmask | XCB_MOD_MASK_LOCK);
|
||||||
}
|
}
|
||||||
|
@ -178,22 +177,22 @@ window_root_grabbuttons(int phys_screen)
|
||||||
void
|
void
|
||||||
window_root_grabkeys(int phys_screen)
|
window_root_grabkeys(int phys_screen)
|
||||||
{
|
{
|
||||||
|
xcb_screen_t *s = xcb_aux_get_screen(globalconf.connection, phys_screen);
|
||||||
Key *k;
|
Key *k;
|
||||||
xcb_keycode_t kc;
|
xcb_keycode_t kc;
|
||||||
|
|
||||||
xcb_ungrab_key(globalconf.connection, ANY_KEY,
|
xcb_ungrab_key(globalconf.connection, ANY_KEY, s->root, ANY_MODIFIER);
|
||||||
xutil_root_window(globalconf.connection, phys_screen), ANY_MODIFIER);
|
|
||||||
|
|
||||||
for(k = globalconf.keys; k; k = k->next)
|
for(k = globalconf.keys; k; k = k->next)
|
||||||
if((kc = k->keycode) || (k->keysym && (kc = xcb_key_symbols_get_keycode(globalconf.keysyms, k->keysym))))
|
if((kc = k->keycode) || (k->keysym && (kc = xcb_key_symbols_get_keycode(globalconf.keysyms, k->keysym))))
|
||||||
{
|
{
|
||||||
xcb_grab_key(globalconf.connection, true, xutil_root_window(globalconf.connection, phys_screen),
|
xcb_grab_key(globalconf.connection, true, s->root,
|
||||||
k->mod, kc, XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_ASYNC);
|
k->mod, kc, XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_ASYNC);
|
||||||
xcb_grab_key(globalconf.connection, true, xutil_root_window(globalconf.connection, phys_screen),
|
xcb_grab_key(globalconf.connection, true, s->root,
|
||||||
k->mod | XCB_MOD_MASK_LOCK, kc, XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_ASYNC);
|
k->mod | XCB_MOD_MASK_LOCK, kc, XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_ASYNC);
|
||||||
xcb_grab_key(globalconf.connection, true, xutil_root_window(globalconf.connection, phys_screen),
|
xcb_grab_key(globalconf.connection, true, s->root,
|
||||||
k->mod | globalconf.numlockmask, kc, XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_ASYNC);
|
k->mod | globalconf.numlockmask, kc, XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_ASYNC);
|
||||||
xcb_grab_key(globalconf.connection, true, xutil_root_window(globalconf.connection, phys_screen),
|
xcb_grab_key(globalconf.connection, true, s->root,
|
||||||
k->mod | globalconf.numlockmask | XCB_MOD_MASK_LOCK, kc, XCB_GRAB_MODE_ASYNC,
|
k->mod | globalconf.numlockmask | XCB_MOD_MASK_LOCK, kc, XCB_GRAB_MODE_ASYNC,
|
||||||
XCB_GRAB_MODE_ASYNC);
|
XCB_GRAB_MODE_ASYNC);
|
||||||
}
|
}
|
||||||
|
@ -211,7 +210,7 @@ window_setshape(xcb_window_t win, int phys_screen)
|
||||||
{
|
{
|
||||||
xcb_shape_combine(globalconf.connection, XCB_SHAPE_SO_SET,
|
xcb_shape_combine(globalconf.connection, XCB_SHAPE_SO_SET,
|
||||||
XCB_SHAPE_SK_BOUNDING, XCB_SHAPE_SK_BOUNDING,
|
XCB_SHAPE_SK_BOUNDING, XCB_SHAPE_SK_BOUNDING,
|
||||||
xutil_root_window(globalconf.connection, phys_screen),
|
xcb_aux_get_screen(globalconf.connection, phys_screen)->root,
|
||||||
0, 0, win);
|
0, 0, win);
|
||||||
|
|
||||||
p_delete(&r);
|
p_delete(&r);
|
||||||
|
|
Loading…
Reference in New Issue