From 37d6d3ae9828276f20b0479d353f4400e163b479 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Thu, 1 Aug 2024 20:14:37 +0200 Subject: [PATCH] Xnest: directly pass ClearArea request to upstream server Instead of going through mi machinery, just pass the ClearArea request to the upstream window. Signed-off-by: Enrico Weigelt, metux IT consult --- hw/xnest/Screen.c | 1 + hw/xnest/Window.c | 8 ++++++++ hw/xnest/XNWindow.h | 1 + 3 files changed, 10 insertions(+) diff --git a/hw/xnest/Screen.c b/hw/xnest/Screen.c index 781daa4bc..7aa4d715f 100644 --- a/hw/xnest/Screen.c +++ b/hw/xnest/Screen.c @@ -309,6 +309,7 @@ xnestOpenScreen(ScreenPtr pScreen, int argc, char *argv[]) pScreen->WindowExposures = xnestWindowExposures; pScreen->CopyWindow = xnestCopyWindow; pScreen->ClipNotify = xnestClipNotify; + pScreen->ClearToBackground = xnestClearToBackground; /* Pixmap procedures */ diff --git a/hw/xnest/Window.c b/hw/xnest/Window.c index aa3cba954..9a532dfb7 100644 --- a/hw/xnest/Window.c +++ b/hw/xnest/Window.c @@ -525,3 +525,11 @@ xnestShapeWindow(WindowPtr pWin) } } } + +void xnestClearToBackground(WindowPtr pWin, int x, int y, int w, int h, Bool generateExposures) +{ + xcb_clear_area(xnestUpstreamInfo.conn, + generateExposures, + xnestWindow(pWin), + x, y, w, h); +} diff --git a/hw/xnest/XNWindow.h b/hw/xnest/XNWindow.h index 408da7ed4..435fc995f 100644 --- a/hw/xnest/XNWindow.h +++ b/hw/xnest/XNWindow.h @@ -68,5 +68,6 @@ void xnestClipNotify(WindowPtr pWin, int dx, int dy); void xnestWindowExposures(WindowPtr pWin, RegionPtr pRgn); void xnestSetShape(WindowPtr pWin, int kind); void xnestShapeWindow(WindowPtr pWin); +void xnestClearToBackground(WindowPtr pWin, int x, int y, int w, int h, Bool generateExposures); #endif /* XNESTWINDOW_H */