gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Two gui ABI changes


From: Fred Kiefer
Subject: Two gui ABI changes
Date: Tue, 24 Mar 2009 09:07:50 +0100
User-agent: Thunderbird 2.0.0.19 (X11/20081227)

Because of the ongoing discussion about ABI stability I would like to
discuss two small changes on this mailing list before I make them.

One is rather a bug fix, in GNUstep the method [NSApplication
nextEventMatchingMask:untilDate:inMode:dequeue:] replaces a nil value
for expiration with distantFuture.

  if (!expiration)
    expiration = [NSDate distantFuture];

The Apple documentation states that this should be handled as
distantPast, in old Apple and the original OpenStep specification the
behaviour was not explicitly stated.
This difference makes it harder to port applications that rely on the
default behaviour between the two systems. In gui I already have adopted
all callers of that method to supply an explicit argument. All GNUstep
applications that don't do so may need some adoption.


The other change is to give up a special behaviour in GNUstep. Apple
documents that calls to [NSView setNeedsDisplay:] (and
setNeedsDisplayInRect:) only work as expected on the main thread.
GNUstep has some code that lets these methods do their work on a
secondary thread as well. I suggest to remove this code and to stick
with the Apple limitation. In exchange we should try to get the actual
drawing code that works in a secondary thread on Apple to function that
way on GNUstep as well.
The main argument for this change is again that it will lead to
applications being developed in a non-portable way and we also avoid a
lot of overhead in these frequently called methods.

Fred




reply via email to

[Prev in Thread] Current Thread [Next in Thread]