Author: fredkiefer
Date: Sun Jan 8 22:01:01 2017
New Revision: 40286
URL: http://svn.gna.org/viewcvs/gnustep?rev=40286&view=rev
Log:
* Source/x11/XGServerWindow.m (-_checkStyle:): Ignore invalid
border information.
Modified:
libs/back/trunk/ChangeLog
libs/back/trunk/Source/x11/XGServerWindow.m
Modified: libs/back/trunk/ChangeLog
URL:
http://svn.gna.org/viewcvs/gnustep/libs/back/trunk/ChangeLog?rev=40286&r1=40285&r2=40286&view=diff
==============================================================================
--- libs/back/trunk/ChangeLog (original)
+++ libs/back/trunk/ChangeLog Sun Jan 8 22:01:01 2017
@@ -1,3 +1,8 @@
+2017-01-08 Fred Kiefer <[email protected]>
+
+ * Source/x11/XGServerWindow.m (-_checkStyle:): Ignore invalid
+ border information.
+
2016-08-02 Fred Kiefer <[email protected]>
* Source/opal/OpalFontInfo.m
Modified: libs/back/trunk/Source/x11/XGServerWindow.m
URL:
http://svn.gna.org/viewcvs/gnustep/libs/back/trunk/Source/x11/XGServerWindow.m?rev=40286&r1=40285&r2=40286&view=diff
==============================================================================
--- libs/back/trunk/Source/x11/XGServerWindow.m (original)
+++ libs/back/trunk/Source/x11/XGServerWindow.m Sun Jan 8 22:01:01 2017
@@ -612,16 +612,16 @@
XEvent event;
memset(&event, 0, sizeof(event));
- event.xclient.type = ClientMessage;
- event.xclient.message_type = type;
- event.xclient.format = 32;
- event.xclient.display = dpy;
- event.xclient.window = window;
- event.xclient.data.l[0] = data0;
- event.xclient.data.l[1] = data1;
- event.xclient.data.l[2] = data2;
- event.xclient.data.l[3] = data3;
- XSendEvent(dpy, root, False,
+ event.xclient.type = ClientMessage;
+ event.xclient.message_type = type;
+ event.xclient.format = 32;
+ event.xclient.display = dpy;
+ event.xclient.window = window;
+ event.xclient.data.l[0] = data0;
+ event.xclient.data.l[1] = data1;
+ event.xclient.data.l[2] = data2;
+ event.xclient.data.l[3] = data3;
+ XSendEvent(dpy, root, False,
(SubstructureNotifyMask|SubstructureRedirectMask), &event);
XFlush(dpy);
}
@@ -706,26 +706,26 @@
Bool
_get_next_prop_new_event(Display *display, XEvent *event, char *arg)
{
- XID *data = (XID*)arg;
-
- if (event->type == PropertyNotify &&
+ XID *data = (XID*)arg;
+
+ if (event->type == PropertyNotify &&
event->xproperty.window == data[0] &&
event->xproperty.atom == data[1] &&
event->xproperty.state == PropertyNewValue)
- {
+ {
return True;
- }
- else
- {
+ }
+ else
+ {
return False;
- }
+ }
}
- (BOOL) _tryRequestFrameExtents: (gswindow_device_t *)window
{
static Atom _net_request_frame_extents = None;
- XEvent xEvent;
- XID event_data[2];
+ XEvent xEvent;
+ XID event_data[2];
NSDate *limit;
if (_net_frame_extents == None)
@@ -756,15 +756,15 @@
data3: 0];
limit = [NSDate dateWithTimeIntervalSinceNow: 1.0];
- while ([limit timeIntervalSinceNow] > 0.0)
- {
+ while ([limit timeIntervalSinceNow] > 0.0)
+ {
if (XCheckTypedWindowEvent(dpy, window->ident, DestroyNotify, &xEvent))
- {
+ {
return NO;
}
else if (XCheckIfEvent(dpy, &xEvent, _get_next_prop_new_event,
(char*)(&event_data)))
- {
+ {
return YES;
}
else
@@ -775,8 +775,7 @@
[NSDate dateWithTimeIntervalSinceNow: 0.01]];
IF_NO_GC([pool release]);
}
- }
-
+ }
return NO;
}
@@ -1062,10 +1061,10 @@
{
Window parent = repp;
XWindowAttributes wattr;
- float l;
- float r;
- float t;
- float b;
+ int l;
+ int r;
+ int t;
+ int b;
/* Get the WM offset info which we hope is the same
* for all parented windows with the same style.
@@ -1138,14 +1137,21 @@
b = wattr.height + wattr.border_width * 2;
b -= (window->xframe.size.height + t);
- o->l = l;
- o->r = r;
- o->t = t;
- o->b = b;
- o->known = YES;
- NSDebugLLog(@"Offset",
- @"Style %d lrtb set to %d,%d,%d,%d\n",
- style, (int)o->l, (int)o->r, (int)o->t, (int)o->b);
+ if ((l >= 0) && (r >= 0) && (t >= 0) && (b >= 0))
+ {
+ o->l = (float)l;
+ o->r = (float)r;
+ o->t = (float)t;
+ o->b = (float)b;
+ o->known = YES;
+ NSDebugLLog(@"Offset",
+ @"Style %d lrtb set to %d,%d,%d,%d\n",
+ style, l, r, t, b);
+ }
+ else
+ {
+ NSLog(@"Reparenting resulted in negative border %d, %d, %d, %d",
l, r, t, b);
+ }
}
}
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs