[Mono-osx] Need a replacement for NSWindow.Close()

Duane Wandless duane at wandless.net
Tue Mar 29 11:17:20 EDT 2011


Why not make use of isReleasedWhenClosed in a handwritten Close to mark the
object as freed and then not release the object from the MM code?

Duane

On Tue, Mar 29, 2011 at 11:10 AM, Geoff Norton <gnorton at novell.com> wrote:

> I think you're confused what .Close () does.  Since it specifically calls
> out it does not call WillClose either:
>
>
> http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html
>
>
> <http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html>Anyways,
> the issue with .Close is it does a .Release under the hood, that we aren't
> aware of, leading to a double free.
>
> -g
>
> On 2011-03-29, at 10:58 AM, Maxi Combina wrote:
>
> .OrderOut() and .Close() don't seem to be equivallent:
> If I use Window.OrderOut() then the Window.WillClose() is not dispatched.
> I can not invoke PerformClose() since I use Borderless windows.
>
> I found 2 ideas, please advise me on those:
> 1) To have my own events: I use .OrderOut() and launch a custom event, to
> replace WillClose().
> 2) I code:
>    OrderOut();
>    StyleMask = Titled | Closable; // enable PerformClose()
>    PerformClose(this) // Close the already hidden window
>
> Or maybe I should refactor.
>
> Is it just me that finds the missing .Close() a little odd?
>
> Bests,
> Maxi
>
> 2011/3/29 Geoff Norton <gnorton at novell.com>
>
>> Use .OrderOut ()
>>
>> -g
>>
>> On 2011-03-29, at 5:54 AM, Maxi Combina wrote:
>>
>> Hello,
>>
>> I have a Borderless window which can not be closed with PerformClose(),
>> since this method (as per Apple documentation) "simulates the user clicking
>> the close button" and "if the windows doesn't ahve a close button or can't
>> be closed [...], the system emits the alert sound".
>> For closing a window I used the "Close()" method. But in the current
>> src/appkit.cs the "Close()" is commented out:
>>
>> /* NSWindow.Close by default calls [window release]
>>                  * This will cause a double free in our code since we're
>> not aware of this
>>                  * and we end up GCing the proxy eventually and sending
>> our own release
>>                  * Removing this method for now
>>                 [Export ("close")]
>>                 void Close ();
>>                  */
>>
>> I am looking for a way of closing (and releasing) the window.
>> Any ideas?
>>
>> Thanks!
>> maxi
>>
>> --
>> *Maxi Combina*
>> Cell:+1 408 300 3614
>> Tel:  +1 408 524 1579
>> 440 N. Wolfe Road. Sunnyvale. CA. 94085. USA
>>
>> <http://www.passwordbank.com/>www.PasswordBank.com<http://www.passwordbank.com/>
>> This message and its attachments are sent from PasswordBank, Inc. and may
>> contain information that is
>> confidential. If you are not the intended recipient, you are prohibited
>> from printing, copying, forwarding or
>> saving them. Please delete the message and attachments without printing,
>> copying, forwarding or saving
>> them, and notify the sender immediately. Message transmission is not
>> guaranteed to be secure.
>>
>>  _______________________________________________
>> Mono-osx mailing list
>> Mono-osx at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-osx
>>
>>
>>
>
>
> --
> *Maxi Combina*
> Cell:+1 408 300 3614
> Tel:  +1 408 524 1579
> 440 N. Wolfe Road. Sunnyvale. CA. 94085. USA
>
> <http://www.passwordbank.com/>www.PasswordBank.com<http://www.passwordbank.com/>
> This message and its attachments are sent from PasswordBank, Inc. and may
> contain information that is
> confidential. If you are not the intended recipient, you are prohibited
> from printing, copying, forwarding or
> saving them. Please delete the message and attachments without printing,
> copying, forwarding or saving
> them, and notify the sender immediately. Message transmission is not
> guaranteed to be secure.
>
>
>
> _______________________________________________
> Mono-osx mailing list
> Mono-osx at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-osx
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-osx/attachments/20110329/d0c1145b/attachment-0001.html 


More information about the Mono-osx mailing list