ENH:When software is full screen in mac, the sub frame uses the wxSTAYBON_TOP style

jira: none
Change-Id: I338576d77e61a436615e70372b4564c38be0c7dc
This commit is contained in:
zhou.xu 2025-03-25 11:34:27 +08:00 committed by lane.wei
parent a598ce8d61
commit 645d843dd9
3 changed files with 17 additions and 4 deletions

View File

@ -241,7 +241,10 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, BORDERLESS_FRAME_
m_reset_title_text_colour_timer->Stop();
m_reset_title_text_colour_timer->Start(500);
}
}
m_mac_fullscreen = false;
} else {
m_mac_fullscreen = true;
}
auto int_event = new IntEvent(EVT_NOTICE_FULL_SCREEN_CHANGED, e.IsFullScreen() ? 1 : 0);
wxQueueEvent(wxGetApp().plater(), int_event);
e.Skip();

View File

@ -91,7 +91,10 @@ protected:
class MainFrame : public DPIFrame
{
bool m_loaded {false};
#ifdef __APPLE__
bool m_mac_fullscreen{false};
#endif
bool m_loaded {false};
wxTimer* m_reset_title_text_colour_timer{ nullptr };
wxString m_qs_last_input_file = wxEmptyString;
@ -204,7 +207,9 @@ protected:
public:
MainFrame();
~MainFrame() = default;
#ifdef __APPLE__
bool get_mac_full_screen() { return m_mac_fullscreen; }
#endif
//BBS GUI refactor
enum TabPosition
{

View File

@ -746,6 +746,11 @@ void SecondaryCheckDialog::update_text(wxString text)
void SecondaryCheckDialog::on_show()
{
#ifdef __APPLE__
if (wxGetApp().mainframe && wxGetApp().mainframe->get_mac_full_screen()) {
SetWindowStyleFlag(GetWindowStyleFlag() | wxSTAY_ON_TOP);
}
#endif
wxGetApp().UpdateFrameDarkUI(this);
// recover button color
wxMouseEvent evt_ok(wxEVT_LEFT_UP);
@ -754,7 +759,7 @@ void SecondaryCheckDialog::on_show()
m_button_cancel->GetEventHandler()->ProcessEvent(evt_cancel);
this->Show();
//this->Raise();
this->Raise();
}
void SecondaryCheckDialog::on_hide()