diff --git a/src/bin/e_widget_bgpreview.c b/src/bin/e_widget_bgpreview.c index 10af0d67d..39faf11fb 100644 --- a/src/bin/e_widget_bgpreview.c +++ b/src/bin/e_widget_bgpreview.c @@ -26,6 +26,21 @@ static void _e_wid_desk_cb_config(void *data, Evas *evas, Evas_Object *obj, static void _e_wid_cb_resize(void *data, Evas *evas, Evas_Object *obj, void *event); static Eina_Bool _e_wid_cb_bg_update(void *data, int type, void *event); +static void +_bgpreview_viewport_update(Evas_Object *o, const E_Zone *zone, int x, int y) +{ + Edje_Message_Float_Set *msg; + + msg = alloca(sizeof(Edje_Message_Float_Set) + (4 * sizeof(double))); + msg->count = 5; + msg->val[0] = 0.2 * (!!e_config->desk_flip_animate_mode);//e_config->desk_flip_animate_time; + msg->val[1] = x; + msg->val[2] = zone->desk_x_count; + msg->val[3] = y; + msg->val[4] = zone->desk_y_count; + edje_object_message_send(o, EDJE_MESSAGE_FLOAT_SET, 0, msg); +} + E_API Evas_Object * e_widget_bgpreview_add(Evas *evas, int nx, int ny) { @@ -83,6 +98,7 @@ e_widget_bgpreview_desk_add(Evas *e, E_Zone *zone, int x, int y) dd->thumb = edje_object_add(e_livethumb_evas_get(dd->live)); edje_object_file_set(dd->thumb, bgfile, "e/desktop/background"); + _bgpreview_viewport_update(dd->thumb, zone, x, y); e_livethumb_thumb_set(dd->live, dd->thumb); evas_object_show(dd->thumb); eina_stringshare_del(bgfile); @@ -314,6 +330,7 @@ _e_wid_cb_bg_update(void *data, int type, void *event) bgfile = e_bg_file_get(dd->manager, dd->zone, dd->x, dd->y); edje_object_file_set(dd->thumb, bgfile, "e/desktop/background"); + _bgpreview_viewport_update(dd->thumb, e_comp_zone_number_get(e_comp_get(NULL), dd->zone), dd->x, dd->y); eina_stringshare_del(bgfile); }