[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freedesktop-xorg
Subject:    [PATCH 1/2] Always call the flush callback chain when we might send
From:       Kristian Høgsberg <krh () bitplanet ! net>
Date:       2010-07-30 0:44:05
Message-ID: 1280450646-993-1-git-send-email-krh () bitplanet ! net
[Download RAW message or body]

We were missing the callback in a couple of places.  Drivers may use
the flush callback to submit batched up rendering before events (for
example, damage events) are sent out, to ensure that the rendering
has happend when the client receives the event.

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
---
 os/connection.c |    3 +++
 os/io.c         |    4 ++++
 2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/os/connection.c b/os/connection.c
index c143fb6..77910be 100644
--- a/os/connection.c
+++ b/os/connection.c
@@ -1033,6 +1033,9 @@ CloseDownConnection(ClientPtr client)
 {
     OsCommPtr oc = (OsCommPtr)client->osPrivate;
 
+    if (FlushCallback)
+	CallCallbacks(&FlushCallback, NULL);
+
     if (oc->output && oc->output->count)
 	FlushClient(client, oc, (char *)NULL, 0);
 #ifdef XDMCP
diff --git a/os/io.c b/os/io.c
index b5f98b7..e2df2e3 100644
--- a/os/io.c
+++ b/os/io.c
@@ -819,6 +819,10 @@ WriteToClient (ClientPtr who, int count, const void *__buf)
 	  CriticalOutputPending = FALSE;
 	  NewOutputPending = FALSE;
 	}
+
+	if (FlushCallback)
+	    CallCallbacks(&FlushCallback, NULL);
+
 	return FlushClient(who, oc, buf, count);
     }
 
-- 
1.7.2

_______________________________________________
xorg@lists.freedesktop.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.freedesktop.org/mailman/listinfo/xorg
Your subscription address: freedesktop-xorg@progressive-comp.com

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic