summaryrefslogtreecommitdiffstats
path: root/WebKit/efl/ewk/ewk_view_single.c
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/efl/ewk/ewk_view_single.c')
-rw-r--r--WebKit/efl/ewk/ewk_view_single.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/WebKit/efl/ewk/ewk_view_single.c b/WebKit/efl/ewk/ewk_view_single.c
index 4111370..803b219 100644
--- a/WebKit/efl/ewk/ewk_view_single.c
+++ b/WebKit/efl/ewk/ewk_view_single.c
@@ -36,17 +36,28 @@ static void _ewk_view_single_on_del(void *data, Evas *e, Evas_Object *o, void *e
evas_object_del(clip);
}
-static Evas_Object *_ewk_view_single_smart_backing_store_add(Ewk_View_Smart_Data *sd)
+static void _ewk_view_single_smart_add(Evas_Object *o)
{
- Evas_Object *bs = evas_object_image_add(sd->base.evas);
+ Ewk_View_Smart_Data *sd;
+
+ _parent_sc.sc.add(o);
+
+ sd = (Ewk_View_Smart_Data *)evas_object_smart_data_get(o);
+
Evas_Object *clip = evas_object_rectangle_add(sd->base.evas);
- evas_object_image_alpha_set(bs, EINA_FALSE);
- evas_object_image_smooth_scale_set(bs, sd->zoom_weak_smooth_scale);
- evas_object_clip_set(bs, clip);
+ evas_object_clip_set(sd->backing_store, clip);
+ evas_object_smart_member_add(clip, o);
evas_object_show(clip);
evas_object_event_callback_add
- (bs, EVAS_CALLBACK_DEL, _ewk_view_single_on_del, clip);
+ (sd->backing_store, EVAS_CALLBACK_DEL, _ewk_view_single_on_del, clip);
+}
+
+static Evas_Object *_ewk_view_single_smart_backing_store_add(Ewk_View_Smart_Data *sd)
+{
+ Evas_Object *bs = evas_object_image_add(sd->base.evas);
+ evas_object_image_alpha_set(bs, EINA_FALSE);
+ evas_object_image_smooth_scale_set(bs, sd->zoom_weak_smooth_scale);
return bs;
}
@@ -538,6 +549,7 @@ Eina_Bool ewk_view_single_smart_set(Ewk_View_Smart_Class *api)
if (EINA_UNLIKELY(!_parent_sc.sc.add))
ewk_view_base_smart_set(&_parent_sc);
+ api->sc.add = _ewk_view_single_smart_add;
api->sc.resize = _ewk_view_single_smart_resize;
api->backing_store_add = _ewk_view_single_smart_backing_store_add;