У меня очень большой Gtk::EventBox
в Gtk::ScrolledWindow
.
В тот момент, когда я делаю grab_focus()
в своем Gtk::EventBox
,Gtk::ScrolledWindow
прокручивается вверху Gtk::EventBox
.
Как я могу отключить это поведение?
У меня очень большой Gtk::EventBox
в Gtk::ScrolledWindow
.
В тот момент, когда я делаю grab_focus()
в своем Gtk::EventBox
,Gtk::ScrolledWindow
прокручивается вверху Gtk::EventBox
.
Как я могу отключить это поведение?
Gtk::EventBox
не наследует Gtk::Scrollable
и поэтому при добавлении к Gtk::ScrolledWindow
упаковывается в Gtk::Viewport
.
Чтобы отключить прокрутку до сфокусированного ребенка, вам нужно изменить focus_hadjustment
/focus_vadjustment
//Disable scroll to focused child
auto viewport = dynamic_cast<Gtk::Viewport*>(m_scrolled.get_child());
if (viewport) {
auto dummy_adj = Gtk::Adjustment::create(0,0,0);
viewport->set_focus_hadjustment(dummy_adj);
viewport->set_focus_vadjustment(dummy_adj);
}