58 lines
2.0 KiB
Diff
58 lines
2.0 KiB
Diff
From 0f1ded057dbf875e69a0d72418d95610db8fa6a3 Mon Sep 17 00:00:00 2001
|
|
From: Pierre Ossman <ossman@cendio.se>
|
|
Date: Mon, 30 Dec 2019 10:50:52 +0100
|
|
Subject: [PATCH] Provide correct dimensions for XShm setup
|
|
|
|
Since 53f913a we initialize the underlying PixelBuffer with 0x0
|
|
dimensions, which means we need to keep more explicit track of what
|
|
we are trying to allocate in the setup methods.
|
|
---
|
|
vncviewer/PlatformPixelBuffer.cxx | 6 +++---
|
|
vncviewer/PlatformPixelBuffer.h | 2 +-
|
|
2 files changed, 4 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/vncviewer/PlatformPixelBuffer.cxx b/vncviewer/PlatformPixelBuffer.cxx
|
|
index 61f7b743b..59e51d596 100644
|
|
--- a/vncviewer/PlatformPixelBuffer.cxx
|
|
+++ b/vncviewer/PlatformPixelBuffer.cxx
|
|
@@ -43,7 +43,7 @@ PlatformPixelBuffer::PlatformPixelBuffer(int width, int height) :
|
|
#endif
|
|
{
|
|
#if !defined(WIN32) && !defined(__APPLE__)
|
|
- if (!setupShm()) {
|
|
+ if (!setupShm(width, height)) {
|
|
xim = XCreateImage(fl_display, CopyFromParent, 32,
|
|
ZPixmap, 0, 0, width, height, 32, 0);
|
|
if (!xim)
|
|
@@ -136,7 +136,7 @@ static int XShmAttachErrorHandler(Display *dpy, XErrorEvent *error)
|
|
return 0;
|
|
}
|
|
|
|
-bool PlatformPixelBuffer::setupShm()
|
|
+bool PlatformPixelBuffer::setupShm(int width, int height)
|
|
{
|
|
int major, minor;
|
|
Bool pixmaps;
|
|
@@ -153,7 +153,7 @@ bool PlatformPixelBuffer::setupShm()
|
|
shminfo = new XShmSegmentInfo;
|
|
|
|
xim = XShmCreateImage(fl_display, CopyFromParent, 32,
|
|
- ZPixmap, 0, shminfo, width(), height());
|
|
+ ZPixmap, 0, shminfo, width, height);
|
|
if (!xim)
|
|
goto free_shminfo;
|
|
|
|
diff --git a/vncviewer/PlatformPixelBuffer.h b/vncviewer/PlatformPixelBuffer.h
|
|
index f9038cd9c..ec439f64f 100644
|
|
--- a/vncviewer/PlatformPixelBuffer.h
|
|
+++ b/vncviewer/PlatformPixelBuffer.h
|
|
@@ -53,7 +53,7 @@ class PlatformPixelBuffer: public rfb::FullFramePixelBuffer, public Surface {
|
|
|
|
#if !defined(WIN32) && !defined(__APPLE__)
|
|
protected:
|
|
- bool setupShm();
|
|
+ bool setupShm(int width, int height);
|
|
|
|
protected:
|
|
XShmSegmentInfo *shminfo;
|