On 5/2/07, David Chisnall <[EMAIL PROTECTED]> wrote:
>
> On 2 May 2007, at 05:55, Yen-Ju Chen wrote:
>
> >   Another thing I notice is that Jabber like to resize itself.
> >   Unfortunately, the GNUstep UI is different from Cocoa UI.
> >   While it is optimized for Cocoa, it actually breaks on GNUstep.
> >   So I really think for practical purpose, it may be easier to let
> > users
> >   do the resizing.
>
> Hypothesis:  This is caused by the window receiving a resize message
> while it is in the middle of resizing (which happens a lot during
> initial roster loading).
>
> The way GNUstep currently does the resizing is to schedule a load of
> periodic events.  It doesn't seem to do it in another thread (that I
> can see), so it seems like it ought to block during the resize.  The
> use of periodic events seems slightly odd, since using usleep here
> would have a lower overhead and not interfere with other parts of the
> system.
>
> Since I'm calling the resize method from the same thread both times,
> this should work.  I am a little confused that it doesn't, to be
> honest.  I'd be interested to see what happens if you modify
> NSWindow.m to remove
>
>        [NSEvent startPeriodicEventsAfterDelay: 0 withPeriod: 0.02];
>
> and
>
>        [NSEvent stopPeriodicEvents];
>
>
> and replace
>
>            NSEvent *theEvent = [NSApp nextEventMatchingMask:
> NSPeriodicMask
>                                       untilDate: [NSDate distantFuture]
>                                       inMode: NSEventTrackingRunLoopMode
>                                       dequeue: YES];
>
>            if ([theEvent type] == NSPeriodic)
>
> with:
>
>           usleep(20000);
>
> and add:
>
> #include <unistd.h>
>
> At the top of the file.
>
> This should get rid of the NSInternalConsistencyError, and if it does
> then it would probably be cleaner, and worth submitting upstream
> (unless GNUstep has some pathological objection to using usleep, but
> since it's POSIX, and GNUstep is pretty POSIX-dependent in general I
> don't see what this would be).

  I turn off the animation on GNUstep for now.
  Maybe you can submit this patch to GNUstep.
  By the way, you mentioned the color is off after my changes.
  I have no idea I broke it. :P
  I have to reboot to test either side.
  So it may break thing from time to time.

  Yen-Ju

>
> _______________________________________________
> Etoile-dev mailing list
> [email protected]
> https://mail.gna.org/listinfo/etoile-dev
>

_______________________________________________
Etoile-dev mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-dev

Reply via email to