}
static void
-weston_wm_window_get_input_rect(struct weston_wm_window *window,
- int32_t *x, int32_t *y,
- int32_t *width, int32_t *height)
-{
- if (!window->decorate) {
- weston_wm_window_get_child_position(window, x, y);
- *width = window->width;
- *height = window->height;
- } else {
- frame_input_rect(window->frame, x, y, width, height);
- }
-}
-
-static void
weston_wm_window_send_configure_notify(struct weston_wm_window *window)
{
xcb_configure_notify_event_t configure_notify;
{
struct weston_wm *wm = window->wm;
uint32_t values[3];
- xcb_rectangle_t rect;
int x, y, width, height;
int buttons = FRAME_BUTTON_CLOSE;
&wm->format_rgba,
width, height);
- weston_wm_window_get_input_rect(window, &x, &y, &width, &height);
- rect.x = x;
- rect.y = y;
- rect.width = width;
- rect.height = height;
-
- /* The window frame was created with position and size which include
- * an offset for margins and shadow. Set the input region to ignore
- * shadow. */
- xcb_shape_rectangles(wm->conn,
- XCB_SHAPE_SO_SET,
- XCB_SHAPE_SK_INPUT,
- 0,
- window->frame_id,
- 0,
- 0,
- 1,
- &rect);
-
hash_table_insert(wm->window_hash, window->frame_id, window);
}