xwayland: Call xwl_window_buffer_add_damage_region from damage_report
Before clearing the damage region. Otherwise the damage region from a Present flip may be ignored when replacing the window pixmap. Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1314>
This commit is contained in:
parent
c1c5bf382e
commit
716805e3ad
|
@ -113,7 +113,7 @@ xwl_window_buffer_maybe_dispose(struct xwl_window_buffer *xwl_window_buffer)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
void
|
||||||
xwl_window_buffer_add_damage_region(struct xwl_window *xwl_window)
|
xwl_window_buffer_add_damage_region(struct xwl_window *xwl_window)
|
||||||
{
|
{
|
||||||
RegionPtr region = xwl_window_get_damage_region(xwl_window);
|
RegionPtr region = xwl_window_get_damage_region(xwl_window);
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
|
|
||||||
#include "xwayland-types.h"
|
#include "xwayland-types.h"
|
||||||
|
|
||||||
|
void xwl_window_buffer_add_damage_region(struct xwl_window *xwl_window);
|
||||||
void xwl_window_buffers_init(struct xwl_window *xwl_window);
|
void xwl_window_buffers_init(struct xwl_window *xwl_window);
|
||||||
void xwl_window_buffers_dispose(struct xwl_window *xwl_window);
|
void xwl_window_buffers_dispose(struct xwl_window *xwl_window);
|
||||||
void xwl_window_recycle_pixmap(struct xwl_window *xwl_window);
|
void xwl_window_recycle_pixmap(struct xwl_window *xwl_window);
|
||||||
|
|
|
@ -198,6 +198,7 @@ damage_report(DamagePtr pDamage, RegionPtr pRegion, void *data)
|
||||||
/* This damage is from a Present flip, which already committed a new
|
/* This damage is from a Present flip, which already committed a new
|
||||||
* buffer for the surface, so we don't need to do anything in response
|
* buffer for the surface, so we don't need to do anything in response
|
||||||
*/
|
*/
|
||||||
|
xwl_window_buffer_add_damage_region(xwl_window);
|
||||||
RegionEmpty(DamageRegion(pDamage));
|
RegionEmpty(DamageRegion(pDamage));
|
||||||
xorg_list_del(&xwl_window->link_damage);
|
xorg_list_del(&xwl_window->link_damage);
|
||||||
xwl_window->present_flipped = FALSE;
|
xwl_window->present_flipped = FALSE;
|
||||||
|
|
Loading…
Reference in New Issue