summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Beier <dontmind@freeshell.org>2009-10-06 18:00:34 +0200
committerJohannes Schindelin <johannes.schindelin@gmx.de>2009-10-06 23:50:02 +0200
commit471bbeeafc9081b642c3c707ef48977b7d39b713 (patch)
tree180f7b6007d24d6717469bb1d2b5628a3b0bca0d
parent21df602d183d37cc8d6e0a6fe43b8060ba821538 (diff)
downloadlibvncserver-beier.zip
libvncserver-beier.tar.gz
x11vnc/screen.c: in -id or -sid mode, resize window to fit into rootwin.beier
this can happen if the user changed the root window size with RandR, for example. Signed-off-by: Christian Beier <dontmind@freeshell.org>
-rw-r--r--x11vnc/screen.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/x11vnc/screen.c b/x11vnc/screen.c
index cf29ae1..f6c175d 100644
--- a/x11vnc/screen.c
+++ b/x11vnc/screen.c
@@ -2366,7 +2366,7 @@ if (0) fprintf(stderr, "DefaultDepth: %d visial_id: %d\n", depth, (int) visual_
again:
if (subwin) {
- int shift = 0;
+ int shift = 0, fit = 0;
int subwin_x, subwin_y;
int disp_x = DisplayWidth(dpy, scr);
int disp_y = DisplayHeight(dpy, scr);
@@ -2377,6 +2377,15 @@ if (0) fprintf(stderr, "DefaultDepth: %d visial_id: %d\n", depth, (int) visual_
XTranslateCoordinates(dpy, window, rootwin, 0, 0, &subwin_x,
&subwin_y, &twin);
+ if (wdpy_x > disp_x ) {
+ fit = 1;
+ dpy_x = wdpy_x = disp_x - 3;
+ }
+ if (wdpy_y > disp_y) {
+ fit = 1;
+ dpy_y = wdpy_y = disp_y - 3;
+ }
+
if (subwin_x + wdpy_x > disp_x) {
shift = 1;
subwin_x = off_x = disp_x - wdpy_x - 3;
@@ -2394,6 +2403,9 @@ if (0) fprintf(stderr, "DefaultDepth: %d visial_id: %d\n", depth, (int) visual_
subwin_y = off_y = 1;
}
+ if (fit) {
+ XResizeWindow(dpy, window, wdpy_x, wdpy_y);
+ }
if (shift) {
XMoveWindow(dpy, window, subwin_x, subwin_y);
}
OpenPOWER on IntegriCloud