diff options
author | Přemysl Eric Janouch <p@janouch.name> | 2023-12-28 11:19:04 +0100 |
---|---|---|
committer | Přemysl Eric Janouch <p@janouch.name> | 2023-12-28 11:22:17 +0100 |
commit | ee08565389f0e0f3a5861887d0a0322b59213f98 (patch) | |
tree | 525a2ce423dfa8c635c2d8f880be0f2e51c981fd | |
parent | c04c4063e4a4feabf0eb23b3a38630e4fce1456b (diff) | |
download | fiv-ee08565389f0e0f3a5861887d0a0322b59213f98.tar.gz fiv-ee08565389f0e0f3a5861887d0a0322b59213f98.tar.xz fiv-ee08565389f0e0f3a5861887d0a0322b59213f98.zip |
Resolve spurious overshoot indicators
_gtk_scrolled_window_get_overshoot() decrements the page size
from the upper value before using it for comparisons.
-rw-r--r-- | fiv-browser.c | 9 | ||||
-rw-r--r-- | fiv-view.c | 6 |
2 files changed, 8 insertions, 7 deletions
diff --git a/fiv-browser.c b/fiv-browser.c index 867786a..cfff7e2 100644 --- a/fiv-browser.c +++ b/fiv-browser.c @@ -275,14 +275,13 @@ relayout(FivBrowser *self, int width) gtk_adjustment_set_page_size(self->hadjustment, width); } if (self->vadjustment) { + int height = gtk_widget_get_allocated_height(widget); gtk_adjustment_set_lower(self->vadjustment, 0); - gtk_adjustment_set_upper(self->vadjustment, total_height); + gtk_adjustment_set_upper(self->vadjustment, MAX(height, total_height)); gtk_adjustment_set_step_increment(self->vadjustment, self->item_height + self->item_spacing + 2 * self->item_border_y); - gtk_adjustment_set_page_increment( - self->vadjustment, gtk_widget_get_allocated_height(widget) * 0.9); - gtk_adjustment_set_page_size( - self->vadjustment, gtk_widget_get_allocated_height(widget)); + gtk_adjustment_set_page_increment(self->vadjustment, height * 0.9); + gtk_adjustment_set_page_size(self->vadjustment, height); } return total_height; } @@ -198,12 +198,14 @@ update_adjustments(FivView *self) if (self->hadjustment) { gtk_adjustment_configure(self->hadjustment, - gtk_adjustment_get_value(self->hadjustment), 0, dw, + gtk_adjustment_get_value(self->hadjustment), + 0, MAX(dw, alloc.width), alloc.width * 0.1, alloc.width * 0.9, alloc.width); } if (self->vadjustment) { gtk_adjustment_configure(self->vadjustment, - gtk_adjustment_get_value(self->vadjustment), 0, dh, + gtk_adjustment_get_value(self->vadjustment), + 0, MAX(dh, alloc.height), alloc.height * 0.1, alloc.height * 0.9, alloc.height); } } |