• 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: NSPopUpButtonCell causes UI to "sleep" when clicked
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSPopUpButtonCell causes UI to "sleep" when clicked


  • Subject: Re: NSPopUpButtonCell causes UI to "sleep" when clicked
  • From: Jerry Krinock <email@hidden>
  • Date: Fri, 24 Apr 2009 21:39:48 -0700


On 2009 Apr 24, at 17:36, Peter Ammon wrote:

Sorry, I think I misread your original message. After the menu is dismissed, then the run loop should return to the Default mode and timers in that mode should resume. The behavior you describe is pretty weird.

Thank you, Peter. I had been preparing a reply, but now it will be shorter.


Can you take a sample of the app when it is in this state? What does it show?

Yes, I did that yesterday, just recreated and saved one for you [1]. In the first thread, -[NSTableHeaderView mouseDown:], is when I click the mouse in a table header view to which the menu is attached.


--------

I tried to reproduce the problem in a demo project, like this:

    [[popUp cell] performClickWithFrame:[sender frame]
                                 inView:sender] ;

where 'sender' is a regular button instead of a NSTableHeaderView as in my real project. But in the demo project, tracking stops when the menu is closed.

On 2009 Apr 24, at 15:02, Peter Ammon wrote:

This method [attachPopUpWithFrame:inView] is mainly a holdover from NeXT menus, and isn't good for much.

Great. I just submitted Document Feedback requesting that your remark be added to the documentation, because it would have saved me quite some time. It will be interesting to see how the marketing guys translate it ;)


If you want to pop up a popup button, you can use either performClick: or trackMouse:inRect:ofView:untilMouseUp:

The latter can only be used if you have the event, so I am using the performClick:inView:. I just tried using performClick: as you suggest, but the menu fails to pop up.


If you have any clues as to what I might have done to cause this menu to continue event tracking after it has been closed, let me know -- it might save me a few hours of trial and error in converging my "bad" and "good" cases.

Jerry



[1]

Sampling process 30384 for 3 seconds with 1 millisecond of run time between samples
Sampling completed, processing symbols...
Analysis of sampling New Project (pid 30384) every 1 millisecond
Call graph:
2020 Thread_2507
2020 start
2020 main
2020 NSApplicationMain
2020 -[NSApplication run]
2020 -[NSApplication sendEvent:]
2020 -[NSWindow sendEvent:]
2020 -[NSTableHeaderView mouseDown:]
2020 -[NSTableHeaderView _trackAndModifySelectionWithEvent:onColumn:stopOnReorderGesture:]
2020 -[NSWindow nextEventMatchingMask:]
2020 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
2020 _DPSNextEvent
2020 BlockUntilNextEventMatchingListInMode
2020 ReceiveNextEventCommon
2020 RunCurrentEventLoopInMode
2020 CFRunLoopRunInMode
2020 CFRunLoopRunSpecific
2019 mach_msg
2019 mach_msg_trap
2019 mach_msg_trap
1 DisposeAllMenuWindows()
1 ForEachMenuDo(long (*) (MenuData*, void*), void*)
1 CFDictionaryApplyFunction
1 Dispose1MenuWindow(MenuData*, void*)
1 _CFRelease
1 WindowData::Destruct()
1 HIObject::Destruct()
1 SendEventToEventTargetWithOptions
1 SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*)
1 DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*)
1 HIObject::EventHook(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*)
1 HIObject::HandleClassHIObjectEvent(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*)
1 HIViewWrapperDef::~HIViewWrapperDef()
1 WindowData::~WindowData()
1 DisposePlatformWindow
1 CGSReleaseWindow
1 _CGSReleaseWindowList
1 _CGSTerminateWindowList
1 mach_msg
1 mach_msg_trap
1 mach_msg_trap
2020 Thread_2603
2020 thread_start
2020 _pthread_start
2020 __NSThread__main__
2020 -[NSThread main]
2020 +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:]
2020 CFRunLoopRunInMode
2020 CFRunLoopRunSpecific
2020 mach_msg
2020 mach_msg_trap
2020 mach_msg_trap
2020 Thread_2703
2020 thread_start
2020 _pthread_start
2020 select$DARWIN_EXTSN
2020 select$DARWIN_EXTSN
2020 Thread_2803
2020 0x0
2020 0x0
2020 Thread_2903
2020 0x0
2020 0x0


Total number in stack (recursive counted multiple, when >=5):

Sort by top of stack, same collapsed (when >= 5):
        0x0        4040
        mach_msg_trap        4040
        select$DARWIN_EXTSN        2020
Sample analysis of process 30384 written to file /dev/stdout


_______________________________________________

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: 
 >NSPopUpButtonCell causes UI to "sleep" when clicked (From: Jerry Krinock <email@hidden>)
 >Re: NSPopUpButtonCell causes UI to "sleep" when clicked (From: Peter Ammon <email@hidden>)

  • Prev by Date: Re: Fill box with repeating text
  • Next by Date: Re: Fill box with repeating text
  • Previous by thread: Re: NSPopUpButtonCell causes UI to "sleep" when clicked
  • Next by thread: Re: NSPopUpButtonCell Keeps on Trackin'! Demo, Movie
  • Index(es):
    • Date
    • Thread