From 548310edfa010e0a457eb1734fa0dad98ba2a267 Mon Sep 17 00:00:00 2001 From: Søren Sandmann Date: Sat, 7 Jun 2008 17:58:10 -0400 Subject: Add ugly workaround for first size allocation --- main.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/main.c b/main.c index 4511490..893f567 100644 --- a/main.c +++ b/main.c @@ -69,13 +69,28 @@ on_main_viewport_size_changed (FooScrollArea *scroll_area, gpointer data) { App *app = data; - int nth_slide = deck_get_view_slide (app->deck, old_viewport); - int old_location = deck_get_slide_location (app->deck, old_viewport, nth_slide); - int new_location = deck_get_slide_location (app->deck, new_viewport, nth_slide); int height = deck_get_height (app->deck, new_viewport); - - foo_scroll_area_set_size_fixed_y (scroll_area, new_viewport->width, - height, old_location, new_location); + static int first = 1; + if (first) + { + old_viewport = NULL; + first = 0; + } + + if (old_viewport) + { + int nth_slide = deck_get_view_slide (app->deck, old_viewport); + int old_location = deck_get_slide_location (app->deck, old_viewport, nth_slide); + int new_location = deck_get_slide_location (app->deck, new_viewport, nth_slide); + foo_scroll_area_set_size_fixed_y (scroll_area, new_viewport->width, + height, old_location, new_location); + } + else + { + foo_scroll_area_set_size (scroll_area, new_viewport->width, height); + + foo_scroll_area_set_viewport_pos (scroll_area, 0, 0); + } foo_scroll_area_invalidate (scroll_area); } -- cgit v1.2.3