Topbar: do not redraw the buttons all the time

This commit is contained in:
YuSanka 2024-04-24 14:29:25 +02:00 committed by Lukas Matena
parent 2b4a962154
commit 2b93bd97c6
2 changed files with 3 additions and 10 deletions

View File

@ -392,7 +392,9 @@ TopBarItemsCtrl::TopBarItemsCtrl(wxWindow *parent, TopBarMenus* menus/* = nullpt
wxControl(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE | wxTAB_TRAVERSAL) wxControl(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE | wxTAB_TRAVERSAL)
,m_menus(menus) ,m_menus(menus)
{ {
#ifdef __WINDOWS__ wxGetApp().UpdateDarkUI(this);
#ifdef _WIN32
SetDoubleBuffered(true); SetDoubleBuffered(true);
#endif //__WINDOWS__ #endif //__WINDOWS__
update_margins(); update_margins();
@ -461,8 +463,6 @@ TopBarItemsCtrl::TopBarItemsCtrl(wxWindow *parent, TopBarMenus* menus/* = nullpt
m_sizer->SetItemMinSize(1, wxSize(42 * wxGetApp().em_unit(), -1)); m_sizer->SetItemMinSize(1, wxSize(42 * wxGetApp().em_unit(), -1));
this->Bind(wxEVT_PAINT, &TopBarItemsCtrl::OnPaint, this);
this->Bind(wxEVT_UPDATE_UI, [](wxUpdateUIEvent& evt) { this->Bind(wxEVT_UPDATE_UI, [](wxUpdateUIEvent& evt) {
auto user_account = wxGetApp().plater()->get_user_account(); auto user_account = wxGetApp().plater()->get_user_account();
evt.Enable(user_account ? user_account->is_logged() : false); evt.Enable(user_account ? user_account->is_logged() : false);
@ -470,12 +470,6 @@ TopBarItemsCtrl::TopBarItemsCtrl(wxWindow *parent, TopBarMenus* menus/* = nullpt
}, m_menus->remember_me_item_id); }, m_menus->remember_me_item_id);
} }
void TopBarItemsCtrl::OnPaint(wxPaintEvent&)
{
wxGetApp().UpdateDarkUI(this);
m_search->Refresh();
}
void TopBarItemsCtrl::UpdateMode() void TopBarItemsCtrl::UpdateMode()
{ {
auto mode = wxGetApp().get_mode(); auto mode = wxGetApp().get_mode();

View File

@ -69,7 +69,6 @@ public:
bool is_main = true); bool is_main = true);
~TopBarItemsCtrl() {} ~TopBarItemsCtrl() {}
void OnPaint(wxPaintEvent&);
void SetSelection(int sel, bool force = false); void SetSelection(int sel, bool force = false);
void UpdateMode(); void UpdateMode();
void Rescale(); void Rescale();