Improve page-up/down scrolling in File Browser

Patch by Ingo
This commit is contained in:
Morgan Hardwood 2019-07-25 14:11:40 +02:00
parent 4cbc2a9091
commit a9edbcf47b

View File

@ -534,26 +534,31 @@ void ThumbBrowserBase::configScrollBars ()
GThreadLock tLock; // Acquire the GUI
if (inW > 0 && inH > 0) {
int iw = internal.get_width ();
int ih = internal.get_height();
hscroll.get_adjustment()->set_upper (inW);
vscroll.get_adjustment()->set_upper (inH);
hscroll.get_adjustment()->set_lower (0);
vscroll.get_adjustment()->set_lower (0);
hscroll.get_adjustment()->set_step_increment (!fd.empty() ? fd[0]->getEffectiveWidth() : 0);
vscroll.get_adjustment()->set_step_increment (!fd.empty() ? fd[0]->getEffectiveHeight() : 0);
hscroll.get_adjustment()->set_page_increment (iw);
vscroll.get_adjustment()->set_page_increment (ih);
hscroll.get_adjustment()->set_page_size (iw);
vscroll.get_adjustment()->set_page_size (ih);
if (arrangement == TB_Horizontal) {
auto ha = hscroll.get_adjustment();
int iw = internal.get_width();
ha->set_upper(inW);
ha->set_lower(0);
ha->set_step_increment(!fd.empty() ? fd[0]->getEffectiveWidth() : 0);
ha->set_page_increment(iw);
ha->set_page_size(iw);
if (iw >= inW) {
hscroll.hide();
} else {
hscroll.show();
}
} else {
hscroll.hide();
}
auto va = vscroll.get_adjustment();
va->set_upper(inH);
va->set_lower(0);
const auto height = !fd.empty() ? fd[0]->getEffectiveHeight() : 0;
va->set_step_increment(height);
va->set_page_increment(height == 0 ? ih : (ih / height) * height);
va->set_page_size(ih);
if (ih >= inH) {
vscroll.hide();