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 <fredkie...@gmx.de>
+
+       * Source/x11/XGServerWindow.m (-_checkStyle:): Ignore invalid
+       border information.
+
 2016-08-02  Fred Kiefer <fredkie...@gmx.de>
 
        * 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
Gnustep-cvs@gna.org
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to