File U_tigervnc-Fix-xorg-xserver-1.19-support.patch of Package tigervnc.13735
From 3fed95eda27dfbeee6535f987f5d14a66f64749b Mon Sep 17 00:00:00 2001
From: Petr Tesarik <ptesarik@suse.com>
Date: Mon, 11 May 2020 16:24:21 +0200
Subject: Fix Add xorg-xserver 1.19 support
References: bsc#1169952, bsc#1165680
Upstream: never, solved differently
SocketServer::processSocketEvent() tells the server there is a
Socket read event. This is even documented properly in
common/network/Socket.h, but not observed by the backport of
upstream commit 3fed95eda27dfbeee6535f987f5d14a66f64749b.
Instead of backporting upstream commit
d408ca514655b4fe6e477680f22c4387b52446a6 and all of its
dependencies, let's add the appropriate logic on top of the
existing APIs.
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
---
unix/xserver/hw/vnc/XserverDesktop.cc | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--- a/unix/xserver/hw/vnc/XserverDesktop.cc
+++ b/unix/xserver/hw/vnc/XserverDesktop.cc
@@ -495,7 +495,11 @@ void XserverDesktop::handleSocketFd(int
return;
}
- fd_server->processSocketEvent(*i);
+ if (xevents & X_NOTIFY_READ)
+ fd_server->processSocketEvent(*i);
+
+ if (xevents & X_NOTIFY_WRITE)
+ (*i)->outStream().flush();
if ((*i)->isShutdown()) {
vlog.debug("%sclient gone, sock %d", is_http ? "http " : "", fd);