Executed from the ConfigureWindow request, right before sending
ConfigureNotify to the clients.

This commit breaks the ScreenRec ABI.

Signed-off-by: Francisco Jerez <curroje...@riseup.net>
---
 dix/window.c                   |    4 ++++
 hw/xfree86/common/xf86Module.h |    6 +++---
 include/scrnintstr.h           |   10 ++++++++++
 3 files changed, 17 insertions(+), 3 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/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h
index bbf5786..d61758f 100644
--- a/hw/xfree86/common/xf86Module.h
+++ b/hw/xfree86/common/xf86Module.h
@@ -82,9 +82,9 @@ typedef enum {
  * mask is 0xFFFF0000.
  */
 #define ABI_ANSIC_VERSION      SET_ABI_VERSION(0, 4)
-#define ABI_VIDEODRV_VERSION   SET_ABI_VERSION(7, 0)
-#define ABI_XINPUT_VERSION     SET_ABI_VERSION(9, 0)
-#define ABI_EXTENSION_VERSION  SET_ABI_VERSION(3, 0)
+#define ABI_VIDEODRV_VERSION   SET_ABI_VERSION(8, 0)
+#define ABI_XINPUT_VERSION     SET_ABI_VERSION(10, 0)
+#define ABI_EXTENSION_VERSION  SET_ABI_VERSION(4, 0)
 #define ABI_FONT_VERSION       SET_ABI_VERSION(0, 6)
 
 #define MODINFOSTRING1 0xef23fdc5
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


------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to