summaryrefslogtreecommitdiffstats
path: root/unix/x0vncserver/Geometry.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'unix/x0vncserver/Geometry.cxx')
-rw-r--r--unix/x0vncserver/Geometry.cxx12
1 files changed, 8 insertions, 4 deletions
diff --git a/unix/x0vncserver/Geometry.cxx b/unix/x0vncserver/Geometry.cxx
index 728c1136..94e2df68 100644
--- a/unix/x0vncserver/Geometry.cxx
+++ b/unix/x0vncserver/Geometry.cxx
@@ -60,16 +60,20 @@ Geometry::Geometry(int fullWidth, int fullHeight)
width(), height(), offsetLeft(), offsetTop());
// Handle the VideoArea parameter, save the result in m_videoRect.
+ // Note that we log absolute coordinates but save relative ones.
param = m_videoAreaParam.getData();
bool videoAreaSpecified = (strlen(param) > 0);
if (videoAreaSpecified) {
- m_videoRect = parseString(param);
- if (isVideoAreaSet()) {
+ Rect absVideoRect = parseString(param);
+ if (!absVideoRect.is_empty()) {
vlog.info("Video area set to %dx%d+%d+%d",
- m_videoRect.width(), m_videoRect.height(),
- m_videoRect.tl.x, m_videoRect.tl.y);
+ absVideoRect.width(), absVideoRect.height(),
+ absVideoRect.tl.x, absVideoRect.tl.y);
+ Point base(-offsetLeft(), -offsetTop());
+ m_videoRect = absVideoRect.translate(base);
} else {
vlog.info("Video area was not set");
+ m_videoRect.clear();
}
}
delete[] param;