mirror of
https://github.com/gnustep/libs-back.git
synced 2025-05-30 17:00:52 +00:00
* Source/x11/XGServerWindow.m (-_checkStyle:): Ignore invalid
border information. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@40286 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
84db7e1e78
commit
168e6f1347
2 changed files with 48 additions and 37 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2017-01-08 Fred Kiefer <FredKiefer@gmx.de>
|
||||||
|
|
||||||
|
* Source/x11/XGServerWindow.m (-_checkStyle:): Ignore invalid
|
||||||
|
border information.
|
||||||
|
|
||||||
2016-08-02 Fred Kiefer <FredKiefer@gmx.de>
|
2016-08-02 Fred Kiefer <FredKiefer@gmx.de>
|
||||||
|
|
||||||
* Source/opal/OpalFontInfo.m
|
* Source/opal/OpalFontInfo.m
|
||||||
|
|
|
@ -612,16 +612,16 @@ static void setWindowHintsForStyle (Display *dpy, Window window,
|
||||||
XEvent event;
|
XEvent event;
|
||||||
|
|
||||||
memset(&event, 0, sizeof(event));
|
memset(&event, 0, sizeof(event));
|
||||||
event.xclient.type = ClientMessage;
|
event.xclient.type = ClientMessage;
|
||||||
event.xclient.message_type = type;
|
event.xclient.message_type = type;
|
||||||
event.xclient.format = 32;
|
event.xclient.format = 32;
|
||||||
event.xclient.display = dpy;
|
event.xclient.display = dpy;
|
||||||
event.xclient.window = window;
|
event.xclient.window = window;
|
||||||
event.xclient.data.l[0] = data0;
|
event.xclient.data.l[0] = data0;
|
||||||
event.xclient.data.l[1] = data1;
|
event.xclient.data.l[1] = data1;
|
||||||
event.xclient.data.l[2] = data2;
|
event.xclient.data.l[2] = data2;
|
||||||
event.xclient.data.l[3] = data3;
|
event.xclient.data.l[3] = data3;
|
||||||
XSendEvent(dpy, root, False,
|
XSendEvent(dpy, root, False,
|
||||||
(SubstructureNotifyMask|SubstructureRedirectMask), &event);
|
(SubstructureNotifyMask|SubstructureRedirectMask), &event);
|
||||||
XFlush(dpy);
|
XFlush(dpy);
|
||||||
}
|
}
|
||||||
|
@ -706,26 +706,26 @@ select_input(Display *display, Window w, BOOL ignoreMouse)
|
||||||
Bool
|
Bool
|
||||||
_get_next_prop_new_event(Display *display, XEvent *event, char *arg)
|
_get_next_prop_new_event(Display *display, XEvent *event, char *arg)
|
||||||
{
|
{
|
||||||
XID *data = (XID*)arg;
|
XID *data = (XID*)arg;
|
||||||
|
|
||||||
if (event->type == PropertyNotify &&
|
if (event->type == PropertyNotify &&
|
||||||
event->xproperty.window == data[0] &&
|
event->xproperty.window == data[0] &&
|
||||||
event->xproperty.atom == data[1] &&
|
event->xproperty.atom == data[1] &&
|
||||||
event->xproperty.state == PropertyNewValue)
|
event->xproperty.state == PropertyNewValue)
|
||||||
{
|
{
|
||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL) _tryRequestFrameExtents: (gswindow_device_t *)window
|
- (BOOL) _tryRequestFrameExtents: (gswindow_device_t *)window
|
||||||
{
|
{
|
||||||
static Atom _net_request_frame_extents = None;
|
static Atom _net_request_frame_extents = None;
|
||||||
XEvent xEvent;
|
XEvent xEvent;
|
||||||
XID event_data[2];
|
XID event_data[2];
|
||||||
NSDate *limit;
|
NSDate *limit;
|
||||||
|
|
||||||
if (_net_frame_extents == None)
|
if (_net_frame_extents == None)
|
||||||
|
@ -756,15 +756,15 @@ _get_next_prop_new_event(Display *display, XEvent *event, char *arg)
|
||||||
data3: 0];
|
data3: 0];
|
||||||
|
|
||||||
limit = [NSDate dateWithTimeIntervalSinceNow: 1.0];
|
limit = [NSDate dateWithTimeIntervalSinceNow: 1.0];
|
||||||
while ([limit timeIntervalSinceNow] > 0.0)
|
while ([limit timeIntervalSinceNow] > 0.0)
|
||||||
{
|
{
|
||||||
if (XCheckTypedWindowEvent(dpy, window->ident, DestroyNotify, &xEvent))
|
if (XCheckTypedWindowEvent(dpy, window->ident, DestroyNotify, &xEvent))
|
||||||
{
|
{
|
||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
else if (XCheckIfEvent(dpy, &xEvent, _get_next_prop_new_event,
|
else if (XCheckIfEvent(dpy, &xEvent, _get_next_prop_new_event,
|
||||||
(char*)(&event_data)))
|
(char*)(&event_data)))
|
||||||
{
|
{
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -775,8 +775,7 @@ _get_next_prop_new_event(Display *display, XEvent *event, char *arg)
|
||||||
[NSDate dateWithTimeIntervalSinceNow: 0.01]];
|
[NSDate dateWithTimeIntervalSinceNow: 0.01]];
|
||||||
IF_NO_GC([pool release]);
|
IF_NO_GC([pool release]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
|
@ -1062,10 +1061,10 @@ _get_next_prop_new_event(Display *display, XEvent *event, char *arg)
|
||||||
{
|
{
|
||||||
Window parent = repp;
|
Window parent = repp;
|
||||||
XWindowAttributes wattr;
|
XWindowAttributes wattr;
|
||||||
float l;
|
int l;
|
||||||
float r;
|
int r;
|
||||||
float t;
|
int t;
|
||||||
float b;
|
int b;
|
||||||
|
|
||||||
/* Get the WM offset info which we hope is the same
|
/* Get the WM offset info which we hope is the same
|
||||||
* for all parented windows with the same style.
|
* for all parented windows with the same style.
|
||||||
|
@ -1138,14 +1137,21 @@ _get_next_prop_new_event(Display *display, XEvent *event, char *arg)
|
||||||
b = wattr.height + wattr.border_width * 2;
|
b = wattr.height + wattr.border_width * 2;
|
||||||
b -= (window->xframe.size.height + t);
|
b -= (window->xframe.size.height + t);
|
||||||
|
|
||||||
o->l = l;
|
if ((l >= 0) && (r >= 0) && (t >= 0) && (b >= 0))
|
||||||
o->r = r;
|
{
|
||||||
o->t = t;
|
o->l = (float)l;
|
||||||
o->b = b;
|
o->r = (float)r;
|
||||||
o->known = YES;
|
o->t = (float)t;
|
||||||
NSDebugLLog(@"Offset",
|
o->b = (float)b;
|
||||||
@"Style %d lrtb set to %d,%d,%d,%d\n",
|
o->known = YES;
|
||||||
style, (int)o->l, (int)o->r, (int)o->t, (int)o->b);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue