freebsd-ports/graphics/xpdf/files/patch-resize
Jung-uk Kim 45ea0014dc Fix window resize bug.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=324172

Approved by:	nork (maintainer)
Obtained from:	Debian
2005-10-31 21:48:59 +00:00

36 lines
1.2 KiB
Text

--- xpdf/XPDFCore.cc 2005-10-10 23:33:08.000000000 +1000
+++ xpdf/XPDFCore.cc 2005-10-10 23:33:44.000000000 +1000
@@ -975,6 +975,9 @@
XPDFCore *core = (XPDFCore *)ptr;
XEvent event;
Widget top;
+ Window rootWin;
+ int x1, y1;
+ Guint w1, h1, bw1, depth1;
Arg args[2];
int n;
Dimension w, h;
@@ -982,15 +985,20 @@
// find the top-most widget which has an associated window, and look
// for a pending ConfigureNotify in the event queue -- if there is
- // one, that means we're still resizing, and we want to skip the
- // current event
+ // one, and it specifies a different width or height, that means
+ // we're still resizing, and we want to skip the current event
for (top = core->parentWidget;
XtParent(top) && XtWindow(XtParent(top));
top = XtParent(top)) ;
if (XCheckTypedWindowEvent(core->display, XtWindow(top),
ConfigureNotify, &event)) {
XPutBackEvent(core->display, &event);
- return;
+ XGetGeometry(core->display, event.xconfigure.window,
+ &rootWin, &x1, &y1, &w1, &h1, &bw1, &depth1);
+ if ((Guint)event.xconfigure.width != w1 ||
+ (Guint)event.xconfigure.height != h1) {
+ return;
+ }
}
n = 0;