Implement sending wxIconizeEvent in wxOSX.
Translate windowDid{Miniaturize,Deminiaturize} callbacks to calls to
SendIconizeEvent().
Closes #16718.
(this is a backport of 31e1387541
from master)
This commit is contained in:
committed by
Vadim Zeitlin
parent
f313ecf9b6
commit
76ee2fa0a0
@@ -639,6 +639,7 @@ wxOSX:
|
|||||||
- Fix wxSearchCtrl appearance under 10.10 (John Roberts).
|
- Fix wxSearchCtrl appearance under 10.10 (John Roberts).
|
||||||
- Generate correct events for WXK_NUMPAD_ENTER (John Roberts).
|
- Generate correct events for WXK_NUMPAD_ENTER (John Roberts).
|
||||||
- Fix handling of WXK_NUMPAD_ENTER in wxTextCtrl (John Roberts).
|
- Fix handling of WXK_NUMPAD_ENTER in wxTextCtrl (John Roberts).
|
||||||
|
- Send wxIconizeEvent when a window is iconized/restore (Rob Krakora).
|
||||||
- Fix printing all pages non-interactively (John Roberts).
|
- Fix printing all pages non-interactively (John Roberts).
|
||||||
- Fix custom paper support (tijsv).
|
- Fix custom paper support (tijsv).
|
||||||
- Return false from wxSound::Create()/IsOk() if the file doesn't exist.
|
- Return false from wxSound::Create()/IsOk() if the file doesn't exist.
|
||||||
|
@@ -114,6 +114,8 @@ public:
|
|||||||
virtual void HandleMoved( double timestampsec );
|
virtual void HandleMoved( double timestampsec );
|
||||||
virtual void HandleResizing( double timestampsec, wxRect* rect );
|
virtual void HandleResizing( double timestampsec, wxRect* rect );
|
||||||
|
|
||||||
|
void OSXHandleMiniaturize(double WXUNUSED(timestampsec), bool miniaturized);
|
||||||
|
|
||||||
void WindowWasPainted();
|
void WindowWasPainted();
|
||||||
|
|
||||||
virtual bool Destroy();
|
virtual bool Destroy();
|
||||||
|
@@ -81,6 +81,9 @@ public:
|
|||||||
|
|
||||||
virtual void SetRepresentedFilename(const wxString& filename);
|
virtual void SetRepresentedFilename(const wxString& filename);
|
||||||
|
|
||||||
|
// do *not* call this to iconize the frame, this is a private function!
|
||||||
|
void OSXSetIconizeState(bool iconic);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// common part of all ctors
|
// common part of all ctors
|
||||||
void Init();
|
void Init();
|
||||||
|
@@ -4210,8 +4210,6 @@ public:
|
|||||||
|
|
||||||
An event being sent when the frame is iconized (minimized) or restored.
|
An event being sent when the frame is iconized (minimized) or restored.
|
||||||
|
|
||||||
Currently only wxMSW and wxGTK generate such events.
|
|
||||||
|
|
||||||
@onlyfor{wxmsw,wxgtk}
|
@onlyfor{wxmsw,wxgtk}
|
||||||
|
|
||||||
@beginEventTable{wxIconizeEvent}
|
@beginEventTable{wxIconizeEvent}
|
||||||
|
@@ -309,6 +309,8 @@ static NSResponder* s_formerFirstResponder = NULL;
|
|||||||
- (void)windowDidResignKey:(NSNotification *)notification;
|
- (void)windowDidResignKey:(NSNotification *)notification;
|
||||||
- (void)windowDidBecomeKey:(NSNotification *)notification;
|
- (void)windowDidBecomeKey:(NSNotification *)notification;
|
||||||
- (void)windowDidMove:(NSNotification *)notification;
|
- (void)windowDidMove:(NSNotification *)notification;
|
||||||
|
- (void)windowDidMiniaturize:(NSNotification *)notification;
|
||||||
|
- (void)windowDidDeminiaturize:(NSNotification *)notification;
|
||||||
- (BOOL)windowShouldClose:(id)window;
|
- (BOOL)windowShouldClose:(id)window;
|
||||||
- (BOOL)windowShouldZoom:(NSWindow *)window toFrame:(NSRect)newFrame;
|
- (BOOL)windowShouldZoom:(NSWindow *)window toFrame:(NSRect)newFrame;
|
||||||
|
|
||||||
@@ -397,6 +399,28 @@ extern int wxOSXGetIdFromSelector(SEL action );
|
|||||||
[self triggerMenu:_cmd];
|
[self triggerMenu:_cmd];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)windowDidMiniaturize:(NSNotification *)notification
|
||||||
|
{
|
||||||
|
NSWindow* window = (NSWindow*) [notification object];
|
||||||
|
wxNonOwnedWindowCocoaImpl* windowimpl = [window WX_implementation];
|
||||||
|
if ( windowimpl )
|
||||||
|
{
|
||||||
|
if ( wxNonOwnedWindow* wxpeer = windowimpl->GetWXPeer() )
|
||||||
|
wxpeer->OSXHandleMiniaturize(0, [window isMiniaturized]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)windowDidDeminiaturize:(NSNotification *)notification
|
||||||
|
{
|
||||||
|
NSWindow* window = (NSWindow*) [notification object];
|
||||||
|
wxNonOwnedWindowCocoaImpl* windowimpl = [window WX_implementation];
|
||||||
|
if ( windowimpl )
|
||||||
|
{
|
||||||
|
if ( wxNonOwnedWindow* wxpeer = windowimpl->GetWXPeer() )
|
||||||
|
wxpeer->OSXHandleMiniaturize(0, [window isMiniaturized]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
- (BOOL)windowShouldClose:(id)nwindow
|
- (BOOL)windowShouldClose:(id)nwindow
|
||||||
{
|
{
|
||||||
wxNonOwnedWindowCocoaImpl* windowimpl = [(NSWindow*) nwindow WX_implementation];
|
wxNonOwnedWindowCocoaImpl* windowimpl = [(NSWindow*) nwindow WX_implementation];
|
||||||
|
@@ -552,4 +552,12 @@ bool wxNonOwnedWindow::DoSetPathShape(const wxGraphicsPath& path)
|
|||||||
return DoSetRegionShape(wxRegion(bmp));
|
return DoSetRegionShape(wxRegion(bmp));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
wxNonOwnedWindow::OSXHandleMiniaturize(double WXUNUSED(timestampsec),
|
||||||
|
bool miniaturized)
|
||||||
|
{
|
||||||
|
if ( wxTopLevelWindowMac* top = (wxTopLevelWindowMac*) MacGetTopLevelWindow() )
|
||||||
|
top->OSXSetIconizeState(miniaturized);
|
||||||
|
}
|
||||||
|
|
||||||
#endif // wxUSE_GRAPHICS_CONTEXT
|
#endif // wxUSE_GRAPHICS_CONTEXT
|
||||||
|
@@ -224,3 +224,12 @@ void wxTopLevelWindowMac::SetRepresentedFilename(const wxString& filename)
|
|||||||
{
|
{
|
||||||
m_nowpeer->SetRepresentedFilename(filename);
|
m_nowpeer->SetRepresentedFilename(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxTopLevelWindowMac::OSXSetIconizeState(bool iconize)
|
||||||
|
{
|
||||||
|
if ( iconize != m_iconized )
|
||||||
|
{
|
||||||
|
m_iconized = iconize;
|
||||||
|
(void)SendIconizeEvent(iconize);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user