aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw/nxagent/Handlers.c
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent/Handlers.c')
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Handlers.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Handlers.c b/nx-X11/programs/Xserver/hw/nxagent/Handlers.c
index dc9770c75..3abc3575f 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Handlers.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Handlers.c
@@ -33,6 +33,7 @@
#include "Millis.h"
#include "NXlib.h"
+#include "Shadow.h"
/*
* Set here the required log level.
@@ -705,6 +706,7 @@ void nxagentShadowBlockHandler(pointer data, struct timeval **timeout, pointer m
int changed;
int suspended = 0;
int result;
+ int width_, height_;
#ifdef BLOCKS
fprintf(stderr, "[Begin block]\n");
@@ -754,6 +756,19 @@ void nxagentShadowBlockHandler(pointer data, struct timeval **timeout, pointer m
changed = 0;
+ NXShadowGetScreenSize(&width_, &height_);
+
+ if (width_ != nxagentShadowWidth || height_ != nxagentShadowHeight)
+ {
+ /*
+ * The master session has been resized.
+ */
+
+ NXShadowSetScreenSize(&nxagentShadowWidth, &nxagentShadowHeight);
+
+ nxagentShadowAdaptToRatio();
+ }
+
nxagentShadowPoll(nxagentShadowPixmapPtr, nxagentShadowGCPtr, nxagentShadowDepth, nxagentShadowWidth,
nxagentShadowHeight, nxagentShadowBuffer, &changed, &suspended);