FIX:Preference page scrolling issue

Change-Id: Ia885b083a7467f3558a940b808f071d9ca80e531
This commit is contained in:
Kunlong Ma 2023-08-02 09:10:34 +08:00 committed by Lane.Wei
parent 33a8545e2b
commit 47db82ee1e
2 changed files with 15 additions and 2 deletions

View File

@ -29,6 +29,18 @@ WX_DEFINE_LIST(RadioSelectorList);
wxDEFINE_EVENT(EVT_PREFERENCES_SELECT_TAB, wxCommandEvent); wxDEFINE_EVENT(EVT_PREFERENCES_SELECT_TAB, wxCommandEvent);
class MyscrolledWindow : public wxScrolledWindow {
public:
MyscrolledWindow(wxWindow* parent,
wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxVSCROLL) : wxScrolledWindow(parent, id, pos, size, style) {}
bool ShouldScrollToChildOnFocus(wxWindow* child) override { return false; }
};
wxBoxSizer *PreferencesDialog::create_item_title(wxString title, wxWindow *parent, wxString tooltip) wxBoxSizer *PreferencesDialog::create_item_title(wxString title, wxWindow *parent, wxString tooltip)
{ {
wxBoxSizer *m_sizer_title = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *m_sizer_title = new wxBoxSizer(wxHORIZONTAL);
@ -836,7 +848,7 @@ void PreferencesDialog::create()
auto main_sizer = new wxBoxSizer(wxVERTICAL); auto main_sizer = new wxBoxSizer(wxVERTICAL);
m_scrolledWindow = new wxScrolledWindow(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL); m_scrolledWindow = new MyscrolledWindow(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL);
m_scrolledWindow->SetScrollRate(5, 5); m_scrolledWindow->SetScrollRate(5, 5);
m_sizer_body = new wxBoxSizer(wxVERTICAL); m_sizer_body = new wxBoxSizer(wxVERTICAL);

View File

@ -41,6 +41,7 @@ public:
RadioBox *m_radiobox; RadioBox *m_radiobox;
bool m_selected = false; bool m_selected = false;
}; };
WX_DECLARE_LIST(RadioSelector, RadioSelectorList); WX_DECLARE_LIST(RadioSelector, RadioSelectorList);
class CheckBox; class CheckBox;
class TextInput; class TextInput;
@ -61,7 +62,7 @@ private:
protected: protected:
wxBoxSizer * m_sizer_body; wxBoxSizer * m_sizer_body;
wxScrolledWindow *m_scrolledWindow; wxScrolledWindow* m_scrolledWindow;
// bool m_settings_layout_changed {false}; // bool m_settings_layout_changed {false};
bool m_seq_top_layer_only_changed{false}; bool m_seq_top_layer_only_changed{false};