diff options
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent/Handlers.c')
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Handlers.c | 15 |
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); |