]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/taskbar.mm
fixing osx_cocoa, there's a reason m_peer is private in the base class
[wxWidgets.git] / src / cocoa / taskbar.mm
index 17147b1fd28b236a82706265dd6da54516bc5726..b48ecd30d1ce7eab883abdac14054937f988dd00 100644 (file)
@@ -9,10 +9,6 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "taskbar.h"
-#endif
-
 #include "wx/wxprec.h"
 #ifdef wxHAS_TASK_BAR_ICON
 
@@ -315,8 +311,9 @@ bool wxTaskBarIconCustomStatusItemImpl::RemoveIcon()
 
 bool wxTaskBarIconCustomStatusItemImpl::PopupMenu(wxMenu *menu)
 {
-    wxASSERT(menu);
-    menu->SetInvokingWindow(m_iconWindow);
+    wxCHECK_MSG(menu, false, "can't popup a NULL menu");
+
+    wxMenuInvokingWindowSetter setInvokingWin(*menu, m_iconWindow);
     menu->UpdateUI();
 
     if([m_cocoaNSStatusItem respondsToSelector:@selector(popUpStatusItemMenu:)])
@@ -332,7 +329,6 @@ bool wxTaskBarIconCustomStatusItemImpl::PopupMenu(wxMenu *menu)
             eventNumber:0 clickCount:1 pressure:0.0];
         [NSMenu popUpContextMenu:menu->GetNSMenu() withEvent:nsevent forView:m_iconWindow->GetNSView()];
     }
-    menu->SetInvokingWindow(NULL);
     return true;
 }
 
@@ -394,7 +390,7 @@ void wxTaskBarIconWindowCustom::OnPaint(wxPaintEvent &event)
 
 // This neatly solves the problem of DLL separation.  If the wxAdvanced
 // library (which this file is part of) is loaded then this category is
-// defined and we get dock menu behavior without app.mm ever having to
+// defined and we get dock menu behaviour without app.mm ever having to
 // know we exist.  C++ did sucketh so. :-)
 
 @interface wxNSApplicationDelegate(wxTaskBarIconNSApplicationDelegateCategory)