On 19.02.2013 09:10, Fred Kiefer wrote:
Am 18.02.2013 um 23:49 schrieb Riccardo Mottola <[email protected]>:
Fred Kiefer wrote:
On 18.02.2013 12:25, Riccardo Mottola wrote:
I think the root of this problem isn't even in gui. A timer gets set up for the
tooltip via the NSTimer method
-scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:
That method uses the runmode NSDefaultRunLoopMode for the timer. While a modal
window gets displayed gui requests events in the NSModalPanelRunLoopMode and
the timer wont get fired. Now this behaviour matches the Apple documentation,
but results in the tooltip never getting displayed.
when you write "this behaviour matches Apple" do you mean our timer is acting
correct but we are using the wrong one?
To work around this behaviour gui should create the timer via
-timerWithTimeInterval:target:selector:userInfo:repeats: and add it to the
runloop itself for different modes.
I am no expert here, but the behaviour in base matches the documentation. If
this does not result in the desired effect, we will have to use a different
way. And maybe the solution is as simple as adding that timer for the modal
panel mode as well.
I just added the line
[[NSRunLoop currentRunLoop] addTimer: timer forMode:
NSModalPanelRunLoopMode];
to GSTooltips.m (plus the required includes) and now tooltips work even
in modal panels. There are a lot more places in gui where we use a timer
and most of them would benefit from a similar change. The question is,
are there any downsides to this change and which places should be adopted?
And most important: Should we really change this during the code freeze
that is currently in place on gui and back?
_______________________________________________
Gnustep-dev mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/gnustep-dev