X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..697e0cdd12c2723397deafab25055b39cc75b77f:/src/msw/frame.cpp?ds=sidebyside diff --git a/src/msw/frame.cpp b/src/msw/frame.cpp index 9a324b1042..a76e556e13 100644 --- a/src/msw/frame.cpp +++ b/src/msw/frame.cpp @@ -523,9 +523,10 @@ bool wxFrame::ShowFullScreen(bool show, long style) // Save the number of fields in the statusbar if ((style & wxFULLSCREEN_NOSTATUSBAR) && theStatusBar) { - m_fsStatusBarFields = theStatusBar->GetFieldsCount(); - SetStatusBar((wxStatusBar*) NULL); - delete theStatusBar; + //m_fsStatusBarFields = theStatusBar->GetFieldsCount(); + //SetStatusBar((wxStatusBar*) NULL); + //delete theStatusBar; + theStatusBar->Show(FALSE); } else m_fsStatusBarFields = 0; @@ -587,10 +588,14 @@ bool wxFrame::ShowFullScreen(bool show, long style) theToolBar->Show(TRUE); } - if ((m_fsStyle & wxFULLSCREEN_NOSTATUSBAR) && (m_fsStatusBarFields > 0)) + if ((m_fsStyle & wxFULLSCREEN_NOSTATUSBAR)) // && (m_fsStatusBarFields > 0)) { - CreateStatusBar(m_fsStatusBarFields); - PositionStatusBar(); + //CreateStatusBar(m_fsStatusBarFields); + if (GetStatusBar()) + { + GetStatusBar()->Show(TRUE); + PositionStatusBar(); + } } if ((m_fsStyle & wxFULLSCREEN_NOMENUBAR) && (m_hMenu != 0)) @@ -620,10 +625,17 @@ bool wxFrame::MSWCreate(int id, wxWindow *parent, const wxChar *wclass, wxWindow // could be the culprit. But without it, you can get a lot of flicker. DWORD msflags = 0; - if ((style & wxCAPTION) == wxCAPTION) - msflags = WS_OVERLAPPED; + if ( style & wxCAPTION ) + { + if ( style & wxFRAME_TOOL_WINDOW ) + msflags |= WS_POPUPWINDOW; + else + msflags |= WS_OVERLAPPED; + } else - msflags = WS_POPUP; + { + msflags |= WS_POPUP; + } if (style & wxMINIMIZE_BOX) msflags |= WS_MINIMIZEBOX; @@ -668,6 +680,11 @@ bool wxFrame::MSWCreate(int id, wxWindow *parent, const wxChar *wclass, wxWindow if (style & wxSTAY_ON_TOP) extendedStyle |= WS_EX_TOPMOST; +#ifndef __WIN16__ + if (m_exStyle & wxFRAME_EX_CONTEXTHELP) + extendedStyle |= WS_EX_CONTEXTHELP; +#endif + m_iconized = FALSE; if ( !wxWindow::MSWCreate(id, parent, wclass, wx_win, title, x, y, width, height, msflags, NULL, extendedStyle) ) @@ -779,6 +796,16 @@ void wxFrame::IconizeChildFrames(bool bIconize) { wxWindow *win = node->GetData(); + // iconizing the frames with this style under Win95 shell puts them at + // the bottom of the screen (as the MDI children) instead of making + // them appear in the taskbar because they are, by virtue of this + // style, not managed by the taskbar - instead leave Windows take care + // of them +#ifdef __WIN95__ + if ( win->GetWindowStyle() & wxFRAME_TOOL_WINDOW ) + continue; +#endif // Win95 + // the child MDI frames are a special case and should not be touched by // the parent frame - instead, they are managed by the user wxFrame *frame = wxDynamicCast(win, wxFrame);