Lines Matching refs:xwl_window
145 static struct xwl_window *
158 xwl_window_set_allow_commits(struct xwl_window *xwl_window, Bool allow, in xwl_window_set_allow_commits() argument
161 xwl_window->allow_commits = allow; in xwl_window_set_allow_commits()
163 xwl_window->window->drawable.id, allow, debug_msg); in xwl_window_set_allow_commits()
167 xwl_window_set_allow_commits_from_property(struct xwl_window *xwl_window, in xwl_window_set_allow_commits_from_property() argument
173 if (prop->propertyName != xwl_window->xwl_screen->allow_commits_prop) in xwl_window_set_allow_commits_from_property()
178 xwl_window_set_allow_commits(xwl_window, TRUE, "WM fault"); in xwl_window_set_allow_commits_from_property()
189 xwl_window_set_allow_commits(xwl_window, !!propdata[0], "from property"); in xwl_window_set_allow_commits_from_property()
193 xwl_window_property_allow_commits(struct xwl_window *xwl_window, in xwl_window_property_allow_commits() argument
198 xwl_window_set_allow_commits_from_property(xwl_window, propstate->prop); in xwl_window_property_allow_commits()
202 xwl_window_set_allow_commits(xwl_window, TRUE, "property deleted"); in xwl_window_property_allow_commits()
217 struct xwl_window *xwl_window; in xwl_property_callback() local
222 xwl_window = xwl_window_get(rec->win); in xwl_property_callback()
223 if (!xwl_window) in xwl_property_callback()
229 xwl_window_property_allow_commits(xwl_window, rec); in xwl_property_callback()
261 struct xwl_window *
264 struct xwl_window *xwl_window; in xwl_window_from_window() local
267 xwl_window = xwl_window_get(window); in xwl_window_from_window()
268 if (xwl_window) in xwl_window_from_window()
269 return xwl_window; in xwl_window_from_window()
298 struct xwl_window *xwl_window; in xwl_cursor_warped_to() local
307 xwl_window = xwl_window_from_window(window); in xwl_cursor_warped_to()
308 if (!xwl_window && xwl_seat->focus_window) { in xwl_cursor_warped_to()
320 xwl_window = xwl_seat->focus_window; in xwl_cursor_warped_to()
323 xwl_window = xwl_seat->focus_window; in xwl_cursor_warped_to()
327 if (!xwl_window) in xwl_cursor_warped_to()
330 xwl_seat_emulate_pointer_warp(xwl_seat, xwl_window, sprite, x, y); in xwl_cursor_warped_to()
340 struct xwl_window *xwl_window; in xwl_cursor_confined_to() local
354 xwl_window = xwl_window_from_window(window); in xwl_cursor_confined_to()
355 if (!xwl_window && xwl_seat->focus_window) { in xwl_cursor_confined_to()
361 xwl_window = xwl_seat->focus_window; in xwl_cursor_confined_to()
364 if (!xwl_window) in xwl_cursor_confined_to()
367 xwl_seat_confine_pointer(xwl_seat, xwl_window); in xwl_cursor_confined_to()
374 struct xwl_window *xwl_window = xwl_window_get(window); in damage_report() local
377 if (!xwl_window) in damage_report()
380 xwl_screen = xwl_window->xwl_screen; in damage_report()
383 if (xwl_window->present_flipped) { in damage_report()
388 xorg_list_del(&xwl_window->link_damage); in damage_report()
389 xwl_window->present_flipped = FALSE; in damage_report()
394 xorg_list_add(&xwl_window->link_damage, &xwl_screen->damage_window_list); in damage_report()
481 xwl_window_init_allow_commits(struct xwl_window *xwl_window) in xwl_window_init_allow_commits() argument
486 ret = dixLookupProperty(&prop, xwl_window->window, in xwl_window_init_allow_commits()
487 xwl_window->xwl_screen->allow_commits_prop, in xwl_window_init_allow_commits()
490 xwl_window_set_allow_commits_from_property(xwl_window, prop); in xwl_window_init_allow_commits()
492 xwl_window_set_allow_commits(xwl_window, TRUE, "no property"); in xwl_window_init_allow_commits()
496 send_surface_id_event(struct xwl_window *xwl_window) in send_surface_id_event() argument
508 e.u.clientMessage.window = xwl_window->window->drawable.id; in send_surface_id_event()
511 wl_proxy_get_id((struct wl_proxy *) xwl_window->surface); in send_surface_id_event()
518 DeliverEventsToWindow(dev, xwl_window->xwl_screen->screen->root, in send_surface_id_event()
527 struct xwl_window *xwl_window; in ensure_surface_for_window() local
544 xwl_window = calloc(1, sizeof *xwl_window); in ensure_surface_for_window()
545 if (xwl_window == NULL) in ensure_surface_for_window()
548 xwl_window->xwl_screen = xwl_screen; in ensure_surface_for_window()
549 xwl_window->window = window; in ensure_surface_for_window()
550 xwl_window->surface = wl_compositor_create_surface(xwl_screen->compositor); in ensure_surface_for_window()
551 if (xwl_window->surface == NULL) { in ensure_surface_for_window()
557 xwl_window->shell_surface = in ensure_surface_for_window()
558 wl_shell_get_shell_surface(xwl_screen->shell, xwl_window->surface); in ensure_surface_for_window()
559 if (xwl_window->shell_surface == NULL) { in ensure_surface_for_window()
564 wl_shell_surface_add_listener(xwl_window->shell_surface, in ensure_surface_for_window()
565 &shell_surface_listener, xwl_window); in ensure_surface_for_window()
567 wl_shell_surface_set_toplevel(xwl_window->shell_surface); in ensure_surface_for_window()
577 wl_surface_set_opaque_region(xwl_window->surface, region); in ensure_surface_for_window()
583 send_surface_id_event(xwl_window); in ensure_surface_for_window()
585 wl_surface_set_user_data(xwl_window->surface, xwl_window); in ensure_surface_for_window()
589 dixSetPrivate(&window->devPrivates, &xwl_window_private_key, xwl_window); in ensure_surface_for_window()
590 xorg_list_init(&xwl_window->link_damage); in ensure_surface_for_window()
593 xorg_list_init(&xwl_window->frame_callback_list); in ensure_surface_for_window()
596 xwl_window_init_allow_commits(xwl_window); in ensure_surface_for_window()
601 if (xwl_window->shell_surface) in ensure_surface_for_window()
602 wl_shell_surface_destroy(xwl_window->shell_surface); in ensure_surface_for_window()
603 wl_surface_destroy(xwl_window->surface); in ensure_surface_for_window()
605 free(xwl_window); in ensure_surface_for_window()
650 struct xwl_window *xwl_window; in xwl_unrealize_window() local
680 xwl_window = xwl_window_get(window); in xwl_unrealize_window()
681 if (!xwl_window) in xwl_unrealize_window()
684 wl_surface_destroy(xwl_window->surface); in xwl_unrealize_window()
685 xorg_list_del(&xwl_window->link_damage); in xwl_unrealize_window()
688 if (xwl_window->frame_callback) in xwl_unrealize_window()
689 wl_callback_destroy(xwl_window->frame_callback); in xwl_unrealize_window()
696 &xwl_window->frame_callback_list, in xwl_unrealize_window()
703 free(xwl_window); in xwl_unrealize_window()
740 struct xwl_window *xwl_window = data; in frame_callback() local
742 wl_callback_destroy (xwl_window->frame_callback); in frame_callback()
743 xwl_window->frame_callback = NULL; in frame_callback()
746 if (xwl_window->xwl_screen->present) { in frame_callback()
750 &xwl_window->frame_callback_list, in frame_callback()
763 xwl_window_create_frame_callback(struct xwl_window *xwl_window) in xwl_window_create_frame_callback() argument
765 xwl_window->frame_callback = wl_surface_frame(xwl_window->surface); in xwl_window_create_frame_callback()
766 wl_callback_add_listener(xwl_window->frame_callback, &frame_listener, in xwl_window_create_frame_callback()
767 xwl_window); in xwl_window_create_frame_callback()
796 xwl_window_post_damage(struct xwl_window *xwl_window) in xwl_window_post_damage() argument
798 struct xwl_screen *xwl_screen = xwl_window->xwl_screen; in xwl_window_post_damage()
805 assert(!xwl_window->frame_callback); in xwl_window_post_damage()
807 region = DamageRegion(window_get_damage(xwl_window->window)); in xwl_window_post_damage()
808 pixmap = (*xwl_screen->screen->GetWindowPixmap) (xwl_window->window); in xwl_window_post_damage()
820 xwl_glamor_post_damage(xwl_window, pixmap, region); in xwl_window_post_damage()
823 wl_surface_attach(xwl_window->surface, buffer, 0, 0); in xwl_window_post_damage()
831 wl_surface_damage(xwl_window->surface, box->x1, box->y1, in xwl_window_post_damage()
836 wl_surface_damage(xwl_window->surface, box->x1, box->y1, in xwl_window_post_damage()
840 xwl_window_create_frame_callback(xwl_window); in xwl_window_post_damage()
841 DamageEmpty(window_get_damage(xwl_window->window)); in xwl_window_post_damage()
847 struct xwl_window *xwl_window, *next_xwl_window; in xwl_screen_post_damage() local
852 xorg_list_for_each_entry_safe(xwl_window, next_xwl_window, in xwl_screen_post_damage()
856 if (xwl_window->frame_callback) in xwl_screen_post_damage()
859 if (!xwl_window->allow_commits) in xwl_screen_post_damage()
863 if (xwl_screen->glamor && !xwl_glamor_allow_commits(xwl_window)) in xwl_screen_post_damage()
867 xwl_window_post_damage(xwl_window); in xwl_screen_post_damage()
868 xorg_list_del(&xwl_window->link_damage); in xwl_screen_post_damage()
869 xorg_list_append(&xwl_window->link_damage, &commit_window_list); in xwl_screen_post_damage()
882 xorg_list_for_each_entry_safe(xwl_window, next_xwl_window, in xwl_screen_post_damage()
884 wl_surface_commit(xwl_window->surface); in xwl_screen_post_damage()
885 xorg_list_del(&xwl_window->link_damage); in xwl_screen_post_damage()