summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2012-02-06 14:38:23 +0100
committerTor Andersson <tor.andersson@artifex.com>2012-02-06 14:38:23 +0100
commit499c0e9b6d7a7ea537b90b33af2b3d655102a597 (patch)
tree4b08fb2101f173003cfb10305dc23ccd2289b0f0 /apps
parent2c700c95c42671ef124ca85bf616115ae9f99259 (diff)
downloadmupdf-499c0e9b6d7a7ea537b90b33af2b3d655102a597.tar.xz
Fix 692841: Look at ConfigureNotify events while waiting for MapNotify.
We used to discard all events until we got a MapNotify, but some window managers send the ConfigureNotify before the window is mapped.
Diffstat (limited to 'apps')
-rw-r--r--apps/x11_main.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/apps/x11_main.c b/apps/x11_main.c
index 6815037a..f9b1dee1 100644
--- a/apps/x11_main.c
+++ b/apps/x11_main.c
@@ -254,7 +254,7 @@ void winhelp(pdfapp_t *app)
void winresize(pdfapp_t *app, int w, int h)
{
XWindowChanges values;
- int mask;
+ int mask, width, height;
mask = CWWidth | CWHeight;
values.width = w;
@@ -268,6 +268,8 @@ void winresize(pdfapp_t *app, int w, int h)
{
gapp.winw = w;
gapp.winh = h;
+ width = -1;
+ height = -1;
XMapWindow(xdpy, xwin);
XFlush(xdpy);
@@ -275,6 +277,11 @@ void winresize(pdfapp_t *app, int w, int h)
while (1)
{
XNextEvent(xdpy, &xevt);
+ if (xevt.type == ConfigureNotify)
+ {
+ width = xevt.xconfigure.width;
+ height = xevt.xconfigure.height;
+ }
if (xevt.type == MapNotify)
break;
}
@@ -283,6 +290,13 @@ void winresize(pdfapp_t *app, int w, int h)
XFillRectangle(xdpy, xwin, xgc, 0, 0, gapp.image->w, gapp.image->h);
XFlush(xdpy);
+ if (width != reqw || height != reqh)
+ {
+ gapp.shrinkwrap = 0;
+ dirty = 1;
+ pdfapp_onresize(&gapp, width, height);
+ }
+
mapped = 1;
}
}