xwm: Fold weston_wm_activate into weston_wm_window_activate
This commit is contained in:
parent
1b3984c3cc
commit
85ecac0a4e
@ -419,41 +419,35 @@ weston_wm_handle_configure_notify(struct weston_wm *wm, xcb_generic_event_t *eve
|
||||
configure_notify->width, configure_notify->height);
|
||||
}
|
||||
|
||||
static void
|
||||
weston_wm_activate(struct weston_wm *wm,
|
||||
struct weston_wm_window *window, xcb_timestamp_t time)
|
||||
{
|
||||
xcb_client_message_event_t client_message;
|
||||
|
||||
client_message.response_type = XCB_CLIENT_MESSAGE;
|
||||
client_message.format = 32;
|
||||
client_message.window = window->id;
|
||||
client_message.type = wm->atom.wm_protocols;
|
||||
client_message.data.data32[0] = wm->atom.wm_take_focus;
|
||||
client_message.data.data32[1] = XCB_TIME_CURRENT_TIME;
|
||||
|
||||
xcb_send_event(wm->conn, 0, window->id,
|
||||
XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT,
|
||||
(char *) &client_message);
|
||||
|
||||
xcb_set_input_focus (wm->conn,
|
||||
XCB_INPUT_FOCUS_POINTER_ROOT, window->id, time);
|
||||
}
|
||||
|
||||
static void
|
||||
weston_wm_window_activate(struct wl_listener *listener, void *data)
|
||||
{
|
||||
struct weston_surface *surface = data;
|
||||
struct weston_wm_window *window = get_wm_window(surface);
|
||||
struct weston_wm *wm = container_of(listener, struct weston_wm, activate_listener);
|
||||
struct weston_wm *wm =
|
||||
container_of(listener, struct weston_wm, activate_listener);
|
||||
xcb_client_message_event_t client_message;
|
||||
|
||||
if (window)
|
||||
weston_wm_activate(wm, window, XCB_TIME_CURRENT_TIME);
|
||||
else
|
||||
if (window) {
|
||||
client_message.response_type = XCB_CLIENT_MESSAGE;
|
||||
client_message.format = 32;
|
||||
client_message.window = window->id;
|
||||
client_message.type = wm->atom.wm_protocols;
|
||||
client_message.data.data32[0] = wm->atom.wm_take_focus;
|
||||
client_message.data.data32[1] = XCB_TIME_CURRENT_TIME;
|
||||
|
||||
xcb_send_event(wm->conn, 0, window->id,
|
||||
XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT,
|
||||
(char *) &client_message);
|
||||
|
||||
xcb_set_input_focus (wm->conn, XCB_INPUT_FOCUS_POINTER_ROOT,
|
||||
window->id, XCB_TIME_CURRENT_TIME);
|
||||
} else {
|
||||
xcb_set_input_focus (wm->conn,
|
||||
XCB_INPUT_FOCUS_POINTER_ROOT,
|
||||
XCB_NONE,
|
||||
XCB_TIME_CURRENT_TIME);
|
||||
}
|
||||
|
||||
if (wm->focus_window)
|
||||
weston_wm_window_schedule_repaint(wm->focus_window);
|
||||
|
Loading…
x
Reference in New Issue
Block a user