Fix window resize bug.

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=324172

Approved by:	nork (maintainer)
Obtained from:	Debian
This commit is contained in:
Jung-uk Kim 2005-10-31 21:48:59 +00:00
parent 96fd71e150
commit 45ea0014dc
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=146865
2 changed files with 37 additions and 0 deletions

View file

@ -7,6 +7,7 @@
PORTNAME= xpdf
PORTVERSION= 3.01
PORTREVISION= 1
CATEGORIES= graphics print
MASTER_SITES= ftp://ftp.foolabs.com/pub/xpdf/ \
${MASTER_SITE_TEX_CTAN}

View file

@ -0,0 +1,36 @@
--- 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;