merge with dev

This commit is contained in:
Desmis
2019-07-28 10:23:52 +02:00

View File

@@ -178,15 +178,19 @@ void ThumbBrowserBase::selectRange (ThumbBrowserEntryBase* clicked, bool additio
if (!additional || !lastClicked) { if (!additional || !lastClicked) {
// Extend the current range w.r.t to first selected entry. // Extend the current range w.r.t to first selected entry.
ThumbIterator front = std::find(fd.begin(), fd.end(), selected.front()); ThumbIterator front = std::find(fd.begin(), fd.end(), selected.front());
ThumbIterator back;
ThumbIterator current = std::find(fd.begin(), fd.end(), clicked); ThumbIterator current = std::find(fd.begin(), fd.end(), clicked);
if (front > current) { if (front > current) {
std::swap(front, current); front = current;
back = std::find(fd.begin(), fd.end(), selected.back());
} else {
back = current;
} }
clearSelection(selected); clearSelection(selected);
for (; front <= current && front != fd.end(); ++front) { for (; front <= back && front != fd.end(); ++front) {
addToSelection(*front, selected); addToSelection(*front, selected);
} }
} else { } else {
@@ -534,28 +538,33 @@ void ThumbBrowserBase::configScrollBars ()
GThreadLock tLock; // Acquire the GUI GThreadLock tLock; // Acquire the GUI
if (inW > 0 && inH > 0) { if (inW > 0 && inH > 0) {
int ih = internal.get_height();
int iw = internal.get_width (); if (arrangement == TB_Horizontal) {
int ih = internal.get_height (); auto ha = hscroll.get_adjustment();
int iw = internal.get_width();
hscroll.get_adjustment()->set_upper (inW); ha->set_upper(inW);
vscroll.get_adjustment()->set_upper (inH); ha->set_lower(0);
hscroll.get_adjustment()->set_lower (0); ha->set_step_increment(!fd.empty() ? fd[0]->getEffectiveWidth() : 0);
vscroll.get_adjustment()->set_lower (0); ha->set_page_increment(iw);
hscroll.get_adjustment()->set_step_increment (!fd.empty() ? fd[0]->getEffectiveHeight() : 0); ha->set_page_size(iw);
vscroll.get_adjustment()->set_step_increment (!fd.empty() ? fd[0]->getEffectiveHeight() : 0); if (iw >= inW) {
hscroll.get_adjustment()->set_page_increment (iw); hscroll.hide();
vscroll.get_adjustment()->set_page_increment (ih); } else {
hscroll.get_adjustment()->set_page_size (iw); hscroll.show();
vscroll.get_adjustment()->set_page_size (ih); }
if(iw >= inW) {
hscroll.hide();
} else { } else {
hscroll.show(); hscroll.hide();
} }
if(ih >= inH) { 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(); vscroll.hide();
} else { } else {
vscroll.show(); vscroll.show();
@@ -749,7 +758,7 @@ bool ThumbBrowserBase::Internal::on_query_tooltip (int x, int y, bool keyboard_t
} }
if (!ttip.empty()) { if (!ttip.empty()) {
tooltip->set_markup (ttip); tooltip->set_text(ttip);
return true; return true;
} else { } else {
return false; return false;