[xserver patch v5 1/5] Add a PreConfigureWindow hook.
Francisco Jerez
currojerez at riseup.net
Tue Feb 9 04:26:42 PST 2010
Executed from the ConfigureWindow request, right before sending
ConfigureNotify to the clients.
This commit breaks the ScreenRec ABI.
Signed-off-by: Francisco Jerez <currojerez at riseup.net>
---
v5: No need to bump the module ABI again.
dix/window.c | 4 ++++
include/scrnintstr.h | 10 ++++++++++
2 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/dix/window.c b/dix/window.c
index caff1cb..d9836e1 100644
--- a/dix/window.c
+++ b/dix/window.c
@@ -2303,6 +2303,10 @@ ConfigureWindow(WindowPtr pWin, Mask mask, XID *vlist, ClientPtr client)
return(Success);
ActuallyDoSomething:
+ if (pWin->drawable.pScreen->PreConfigureWindow)
+ (*pWin->drawable.pScreen->PreConfigureWindow)(pWin, x, y,
+ w, h, bw, pSib);
+
if (SubStrSend(pWin, pParent))
{
memset(&event, 0, sizeof(xEvent));
diff --git a/include/scrnintstr.h b/include/scrnintstr.h
index ab50e7a..467b61c 100644
--- a/include/scrnintstr.h
+++ b/include/scrnintstr.h
@@ -399,6 +399,15 @@ typedef void (* PostChangeSaveUnderProcPtr)(
WindowPtr /*pLayerWin*/,
WindowPtr /*firstChild*/);
+typedef void (* PreConfigureWindowProcPtr)(
+ WindowPtr /*pWin*/,
+ int /*x*/,
+ int /*y*/,
+ int /*w*/,
+ int /*h*/,
+ int /*bw*/,
+ WindowPtr /*pSib*/);
+
typedef void (* MoveWindowProcPtr)(
WindowPtr /*pWin*/,
int /*x*/,
@@ -581,6 +590,7 @@ typedef struct _Screen {
MarkOverlappedWindowsProcPtr MarkOverlappedWindows;
ChangeSaveUnderProcPtr ChangeSaveUnder;
PostChangeSaveUnderProcPtr PostChangeSaveUnder;
+ PreConfigureWindowProcPtr PreConfigureWindow;
MoveWindowProcPtr MoveWindow;
ResizeWindowProcPtr ResizeWindow;
GetLayerWindowProcPtr GetLayerWindow;
--
1.6.4.4
More information about the xorg-devel
mailing list