Implement GtkScrollable in FivView

This fixes rendering and positioning behaviour when dragging on X11,
where we aim to use a native GdkWindow.
This commit is contained in:
2022-07-16 16:49:47 +02:00
parent ca57c2632a
commit 23429d9631
2 changed files with 147 additions and 33 deletions

View File

@@ -198,12 +198,12 @@ relayout(FivBrowser *self, int width)
if (self->vadjustment) {
gtk_adjustment_set_lower(self->vadjustment, 0);
gtk_adjustment_set_upper(self->vadjustment, total_height);
gtk_adjustment_set_page_size(
self->vadjustment, gtk_widget_get_allocated_height(widget));
gtk_adjustment_set_page_increment(
self->vadjustment, gtk_widget_get_allocated_height(widget));
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));
}
return total_height;
}
@@ -765,8 +765,7 @@ static void
on_adjustment_value_changed(
G_GNUC_UNUSED GtkAdjustment *adjustment, gpointer user_data)
{
FivBrowser *self = FIV_BROWSER(user_data);
gtk_widget_queue_draw(GTK_WIDGET(self));
gtk_widget_queue_draw(GTK_WIDGET(user_data));
}
static gboolean