• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Which NSWindow methods have asynchronous operation?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Which NSWindow methods have asynchronous operation?


  • Subject: Re: Which NSWindow methods have asynchronous operation?
  • From: Cosmin Apreutesei <email@hidden>
  • Date: Sun, 24 Aug 2014 13:11:24 +0300

Hi Ken, thanks for answering.

> From what perspective?

From the perspective of the API, i.e.

- after `close` returns, windowWillClose was already being called
- after calling `miniaturize`, windowDidMiniaturize was already being
called and isMiniaturized is guaranteed to return true.
etc.

From this pov., toggleFullscreen is clearly async, but miniaturize
_seems_ to be blocking. But these are just my empirical tests, I was
wondering if these methods are actually _specified_ as being blocking
or there might be cases where they might be queued (i.e. window server
is busy for instance).

> All of the corresponding object and delegate methods having been called?

Yes.

> All programmatic tests (e.g. -[NSWindow makeKeyWindow] vs. -[NSApplication keyWindow] and -[NSWindow isKeyWindow], which, by the way, mean different things) reflecting the changed state?

Yes.

> Visible effects for the user?

Nice-to-have, i.e. the API should not lie to the programmer, but I'm
not interested in that right now.

> As usual, the question arises: what are you trying to achieve?

I'm trying to make a cross-platform API for manipulating windows[1],
for which I need consistent behavior for the actions:
show/hide/minimize/maximize/enter_fullscreen/exit_fullscreen -- I need
to specify under what conditions these methods work and how they work,
i.e. I need to answer questions like: "what happens when I call
enter_fullscreen on a minimized window?". Because NSWindow behavior is
under-specified[2], I need to resort to empirical tests, which is
fine, but the question of sync vs. async operation is a bit harder to
test for reliably, which is where I would appreciate some help.

Now, why do I need to know sync vs. async for this? Because sometimes
I need to call a sequence of two or three methods to achieve one
behavior, and if some methods in the sequence are async, then that's
not a (temporal) sequence anymore and I can't specify the order in
which events are fired, or I might hit bugs or corner cases, etc.

Long email, so thanks for the patience.


[1] http://luapower.com/nw
[2] https://github.com/luapower/nw/blob/master/nw_cocoa.lua -- notice
how it's choke full of notes
_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


References: 
 >Which NSWindow methods have asynchronous operation? (From: Cosmin Apreutesei <email@hidden>)
 >Re: Which NSWindow methods have asynchronous operation? (From: Ken Thomases <email@hidden>)

  • Prev by Date: Re: NSTextView scroll to attribute/bookmark?
  • Next by Date: Re: -glyphWithName:
  • Previous by thread: Re: Which NSWindow methods have asynchronous operation?
  • Next by thread: NSTextView scroll to attribute/bookmark?
  • Index(es):
    • Date
    • Thread