Usermode/AxWin4 - (minor) Log and fail when wrong window ID is returned from server
[tpg/acess2.git] / Usermode / Libraries / libaxwin4.so_src / wm.cpp
index fdfa32c..7ce61e4 100644 (file)
@@ -97,6 +97,18 @@ extern "C" void AxWin4_SetTitle(tAxWin4_Window *Window, const char *Title)
        ::AxWin::SendMessage(message);
 }
 
+extern "C" void AxWin4_DamageRect(tAxWin4_Window *Window, unsigned int X, unsigned int Y, unsigned int W, unsigned int H)
+{
+       CSerialiser     message;
+       message.WriteU8(IPCMSG_DAMAGERECT);
+       message.WriteU16(Window->m_id);
+       message.WriteU16(X);
+       message.WriteU16(Y);
+       message.WriteU16(W);
+       message.WriteU16(H);
+       ::AxWin::SendMessage(message);
+}
+
 extern "C" void *AxWin4_GetWindowBuffer(tAxWin4_Window *Window)
 {
        if( Window->m_fd == -1 )
@@ -106,8 +118,11 @@ extern "C" void *AxWin4_GetWindowBuffer(tAxWin4_Window *Window)
                req.WriteU16(Window->m_id);
                
                CDeserialiser   response = GetSyncReply(req, IPCMSG_GETWINBUF);
-               if( response.ReadU16() != Window->m_id ) {
-                       
+               unsigned int rspwin = response.ReadU16();
+               if( rspwin != Window->m_id )
+               {
+                       _SysDebug("AxWin4_GetWindowBuffer: GETWINBUF reply for different window (%u != %u)", rspwin, Window->m_id);
+                       return NULL;
                }
                
                uint64_t handle = response.ReadU64();

UCC git Repository :: git.ucc.asn.au