static Eina_Bool _ewk_view_tiled_smart_zoom_set(Ewk_View_Smart_Data* smartData, float zoom, Evas_Coord centerX, Evas_Coord centerY) { Evas_Coord x, y, width, height; Eina_Bool result; result = ewk_tiled_backing_store_zoom_set(smartData->backing_store, &zoom, centerX, centerY, &x, &y); if (!result) return result; ewk_tiled_backing_store_disabled_update_set(smartData->backing_store, true); result = _parent_sc.zoom_set(smartData, zoom, centerX, centerY); ewk_frame_scroll_set(smartData->main_frame, -x, -y); ewk_frame_scroll_size_get(smartData->main_frame, &width, &height); ewk_tiled_backing_store_fix_offsets(smartData->backing_store, width, height); ewk_view_scrolls_process(smartData); evas_object_smart_calculate(smartData->backing_store); evas_object_smart_calculate(smartData->self); ewk_tiled_backing_store_disabled_update_set(smartData->backing_store, false); return result; }
static Eina_Bool _ewk_view_tiled_smart_zoom_set(Ewk_View_Smart_Data *sd, float zoom, Evas_Coord cx, Evas_Coord cy) { Evas_Coord x, y, w, h; Eina_Bool r; r = ewk_tiled_backing_store_zoom_set(sd->backing_store, &zoom, cx, cy, &x, &y); if (!r) return r; ewk_tiled_backing_store_disabled_update_set(sd->backing_store, EINA_TRUE); r = _parent_sc.zoom_set(sd, zoom, cx, cy); ewk_frame_scroll_set(sd->main_frame, -x, -y); ewk_frame_scroll_size_get(sd->main_frame, &w, &h); ewk_tiled_backing_store_fix_offsets(sd->backing_store, w, h); ewk_view_scrolls_process(sd); evas_object_smart_calculate(sd->backing_store); evas_object_smart_calculate(sd->self); ewk_tiled_backing_store_disabled_update_set(sd->backing_store, EINA_FALSE); return r; }