From 278c2743e68988c1a6f372822dcd0312fbc08767 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Mon, 27 Sep 2010 17:03:16 +0000 Subject: [PATCH] Use fixed layout when in touch mode. Fixed layout will try to keep the page layout to the original viewport size even at different zoom levels. SVN revision: 52801 --- src/bin/view.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/bin/view.c b/src/bin/view.c index 8d3cdc4..b275463 100644 --- a/src/bin/view.c +++ b/src/bin/view.c @@ -1102,6 +1102,13 @@ _view_smart_calculate(Evas_Object *o) /* call parent smart calculate and let ewk_view do all its work */ _parent_sc.sc.calculate(o); + if (sd->flags.touch_interface) + { + Evas_Coord w, h; + evas_object_geometry_get(o, NULL, NULL, &w, &h); + ewk_view_fixed_layout_size_set(o, w, h); + } + #ifdef HACK_FLUSH_EVENTS_DURING_LONG_CALCULATE double now = ecore_time_get(); double elapsed = now - before; @@ -1652,7 +1659,17 @@ void view_touch_interface_set(Evas_Object *view, Eina_Bool setting) setting = !!setting; if (sd->flags.touch_interface == setting) return; sd->flags.touch_interface = setting; - if (setting) return; /* nothing to do to enter touch mode */ + + if (setting) + { + Evas_Coord w, h; + evas_object_geometry_get(view, NULL, NULL, &w, &h); + ewk_view_fixed_layout_size_set(view, w, h); + } + else + ewk_view_fixed_layout_size_set(view, 0, 0); + + if (setting) return; /* nothing else to do to enter touch mode */ if (sd->animator.kinetic) {