1 #include "e_mod_comp_shared_types.h"
2 #include "e_mod_comp_debug.h"
3 #include "e_mod_comp.h"
5 #ifdef _F_BORDER_CLIP_TO_ZONE_
6 #undef _F_BORDER_CLIP_TO_ZONE_
8 #define _F_BORDER_CLIP_TO_ZONE_ 0
10 /* externally accessible functions */
12 e_mod_comp_obj_add(E_Comp_Win *cw,
13 E_Comp_Canvas *canvas)
16 co = E_NEW(E_Comp_Object, 1);
17 E_CHECK_RETURN(co, 0);
18 if ((!cw->input_only) && (!cw->invalid))
20 if (_comp_mod->conf->use_hwc)
22 co->hwc.mask_rect = evas_object_rectangle_add(canvas->evas);
24 evas_object_color_set(co->hwc.mask_rect, 50, 0, 0, 50);
26 evas_object_color_set(co->hwc.mask_rect, 0, 0, 0, 0);
28 evas_object_render_op_set(co->hwc.mask_rect, EVAS_RENDER_COPY);
29 evas_object_hide(co->hwc.mask_rect);
31 co->shadow = edje_object_add(canvas->evas);
32 co->img = evas_object_image_filled_add(canvas->evas);
34 if ((!co->shadow) || (!co->img))
36 ELBF(ELBT_COMP, 0, e_mod_comp_util_client_xid_get(cw),
37 "%15.15s|ERROR shadow:%p img:%p evas:%p argb:%d canvas_num:%d",
38 "OBJECT_CREATE", co->shadow, co->img,
39 canvas->evas, cw->argb, canvas->num);
42 E_Comp_Layer *ly = e_mod_comp_canvas_layer_get(canvas, "comp");
45 e_mod_comp_layer_populate(ly, co->shadow);
46 if (_comp_mod->conf->use_hwc)
48 e_mod_comp_layer_populate(ly, co->hwc.mask_rect);
51 ELBF(ELBT_COMP, 0, e_mod_comp_util_client_xid_get(cw),
52 "%15.15s|OK!! layer shadow:%p img:%p evas:%p argb:%d canvas_num:%d ly:%p",
53 "OBJECT_CREATE", co->shadow, co->img,
54 canvas->evas, cw->argb, canvas->num, ly);
58 ELBF(ELBT_COMP, 0, e_mod_comp_util_client_xid_get(cw),
59 "%15.15s|ERROR shadow:%p img:%p evas:%p argb:%d canvas_num:%d ly:%p",
60 "OBJECT_CREATE", co->shadow, co->img,
61 canvas->evas, cw->argb, canvas->num, ly);
64 evas_object_image_colorspace_set(co->img, EVAS_COLORSPACE_ARGB8888);
65 if (cw->argb) evas_object_image_alpha_set(co->img, 1);
66 else evas_object_image_alpha_set(co->img, 0);
70 co->shadow = evas_object_rectangle_add(canvas->evas);
74 ELBF(ELBT_COMP, 0, e_mod_comp_util_client_xid_get(cw),
75 "%15.15s|ERROR shadow:%p evas:%p canvas_num:%d",
76 "OBJECT_CREATE", co->shadow, canvas->evas,
81 E_Comp_Layer *ly = e_mod_comp_canvas_layer_get(canvas, "comp");
83 e_mod_comp_layer_populate(ly, co->shadow);
85 evas_object_color_set(co->shadow, 0, 0, 0, 0);
89 co->zone = canvas->zone;
94 e_mod_comp_obj_del(E_Comp_Object *co)
96 E_Comp_Layer *ly = e_mod_comp_canvas_layer_get(co->canvas, "comp");
97 if (ly) e_layout_unpack(co->shadow);
99 if (_comp_mod->conf->use_hwc)
101 if (co->hwc.mask_rect)
103 evas_object_del(co->hwc.mask_rect);
104 co->hwc.mask_rect = NULL;
111 EINA_LIST_FREE(co->img_mirror, o)
113 if (co->xim) evas_object_image_data_set(o, NULL);
114 evas_object_event_callback_del(o, EVAS_CALLBACK_DEL,
115 e_mod_comp_cb_win_mirror_del);
121 evas_object_image_data_set(co->img, NULL);
122 ecore_x_image_free(co->xim);
127 evas_object_del(co->clipper);
132 evas_object_del(co->img);
135 if (co->transp.offset)
137 evas_object_del(co->transp.offset);
138 co->transp.offset = NULL;
142 evas_object_del(co->transp.rect);
143 co->transp.rect = NULL;
147 evas_object_del(co->shadow);
154 e_mod_comp_win_comp_objs_add(E_Comp_Win *cw)
156 Eina_List *l, *objs = NULL;
157 E_Comp_Canvas *canvas;
160 EINA_LIST_FOREACH(cw->c->canvases, l, canvas)
162 co = e_mod_comp_obj_add(cw, canvas);
165 e_mod_comp_win_comp_objs_del(cw, objs);
168 objs = eina_list_append(objs, co);
174 e_mod_comp_win_comp_objs_del(E_Comp_Win *cw,
178 EINA_LIST_FREE(objs, co) e_mod_comp_obj_del(co);
182 e_mod_comp_win_comp_objs_move(E_Comp_Win *cw,
190 E_Comp_Canvas *canvas, *ly_canvas = NULL;
191 E_Comp_Layer *eff_ly;
192 E_Comp_Effect_Object *eff_obj = NULL;
193 Eina_Bool eff_run = EINA_FALSE;
194 canvas = eina_list_nth(cw->c->canvases, 0);
195 eff_ly = e_mod_comp_canvas_layer_get(canvas, "effect");
196 eff_run = e_mod_comp_layer_effect_get(eff_ly);
197 #ifdef _F_USE_BORDER_TRANSFORM_
198 if ((cw->bd) && e_border_transform_enable_get(cw->bd))
200 e_border_transform_get(cw->bd, &x, &y, 0, 0, 0);
202 #endif /* end of _F_USE_BORDER_TRANSFORM_ */
205 /* do not change position of the mini-mode window effect object
206 * during effect to avoid unnecessary move around screen.
207 * TODO: Move INSET check code to effect.c file.
209 if (!STATE_INSET_CHECK(cw))
211 eff_obj = e_mod_comp_layer_effect_obj_get(eff_ly, cw->win);
212 if (eff_obj) ly_canvas = eff_ly->canvas;
216 EINA_LIST_FOREACH(cw->objs, l, co)
220 if (!co->shadow) continue;
227 ly = e_mod_comp_canvas_layer_get(co->canvas, "comp");
230 e_layout_child_move(co->shadow, x - zx, y - zy);
231 if (_comp_mod->conf->use_hwc)
233 e_layout_child_move(co->hwc.mask_rect, x - zx, y - zy);
238 evas_object_move(co->shadow, x - zx, y - zy);
239 if (_comp_mod->conf->use_hwc)
241 evas_object_move(co->hwc.mask_rect, x - zx, y - zy);
245 /* to show moving window while effect, we should also update effect object */
248 if (ly_canvas == co->canvas)
249 e_layout_child_move(eff_obj->edje, x -zx, y - zy);
252 if ((eff_obj) && (TYPE_QUICKPANEL_CHECK(cw)))
254 if (ly_canvas == co->canvas)
255 e_layout_child_move(eff_obj->edje, x -zx, y - zy);
259 #if _F_BORDER_CLIP_TO_ZONE_
260 if ((cw->visible) && (cw->bd) && (co->zone) &&
261 (!cw->input_only) && (!cw->invalid) &&
262 E_INTERSECTS(co->zone->x, co->zone->y,
263 co->zone->w, co->zone->h,
264 cw->x, cw->y, cw->w, cw->h))
266 if (!(E_CONTAINS(co->zone->x, co->zone->y,
267 co->zone->w, co->zone->h,
268 cw->x, cw->y, cw->w, cw->h)))
271 _x = x - zx; _y = y - zy;
272 _w = cw->pw; _h = cw->ph;
274 E_RECTS_CLIP_TO_RECT(_x, _y, _w, _h,
275 0, 0, co->zone->w, co->zone->h);
278 co->clipper = evas_object_rectangle_add(co->canvas->evas);
279 evas_object_clip_set(co->shadow, co->clipper);
280 /* check to see if a given object exists on the zone which is
281 * equal to its border. if it is, the clipper will be shown.
282 * otherwise, the clipper will be invisible.
284 if (cw->bd->zone == co->zone)
285 evas_object_show(co->clipper);
289 e_layout_child_move(co->clipper, _x, _y);
290 e_layout_child_resize(co->clipper, _w, _h);
294 evas_object_move(co->clipper, _x, _y);
295 evas_object_resize(co->clipper, _w, _h);
302 evas_object_hide(co->clipper);
303 evas_object_clip_unset(co->shadow);
304 evas_object_del(co->clipper);
314 e_mod_comp_win_comp_objs_resize(E_Comp_Win *cw,
321 #ifdef _F_USE_BORDER_TRANSFORM_
322 if ((cw->bd) && e_border_transform_enable_get(cw->bd))
324 e_border_transform_get(cw->bd, 0, 0, &w, &h, 0);
326 #endif /* end of _F_USE_BORDER_TRANSFORM_ */
327 EINA_LIST_FOREACH(cw->objs, l, co)
330 if (!co->shadow) continue;
331 ly = e_mod_comp_canvas_layer_get(co->canvas, "comp");
334 e_layout_child_resize(co->shadow, w, h);
335 if (_comp_mod->conf->use_hwc)
337 e_layout_child_resize(co->hwc.mask_rect, w, h);
342 evas_object_resize(co->shadow, w, h);
343 if (_comp_mod->conf->use_hwc)
345 evas_object_resize(co->hwc.mask_rect, w, h);
352 e_mod_comp_win_comp_objs_img_resize(E_Comp_Win *cw,
358 EINA_LIST_FOREACH(cw->objs, l, co)
361 if (!co->img) continue;
362 evas_object_image_size_set(co->img, w, h);
367 e_mod_comp_win_comp_objs_img_init(E_Comp_Win *cw)
372 EINA_LIST_FOREACH(cw->objs, l, co)
375 if (co->native) continue;
376 Evas_Native_Surface ns;
377 ns.version = EVAS_NATIVE_SURFACE_VERSION;
378 ns.type = EVAS_NATIVE_SURFACE_X11;
379 ns.data.x11.visual = cw->vis;
380 ns.data.x11.pixmap = cw->pixmap;
382 evas_object_render_op_set(co->img, EVAS_RENDER_COPY);
383 evas_object_image_native_surface_set(co->img, &ns);
384 EINA_LIST_FOREACH(co->img_mirror, ll, o)
386 evas_object_image_native_surface_set(o, &ns);
388 evas_object_image_data_update_add(co->img, 0, 0, cw->pw, cw->ph);
394 e_mod_comp_win_comp_objs_img_deinit(E_Comp_Win *cw)
399 EINA_LIST_FOREACH(cw->objs, l, co)
402 if (!co->native) continue;
403 evas_object_image_native_surface_set(co->img, NULL);
405 EINA_LIST_FOREACH(co->img_mirror, ll, o)
408 evas_object_image_native_surface_set(o, NULL);
414 e_mod_comp_win_comp_objs_xim_free(E_Comp_Win *cw)
419 EINA_LIST_FOREACH(cw->objs, l, co)
422 if (!co->xim) continue;
423 evas_object_image_size_set(co->img, 1, 1);
424 evas_object_image_data_set(co->img, NULL);
425 ecore_x_image_free(co->xim);
427 EINA_LIST_FOREACH(co->img_mirror, ll, o)
429 evas_object_image_size_set(o, 1, 1);
430 evas_object_image_data_set(o, NULL);
436 e_mod_comp_win_comp_objs_img_pass_events_set(E_Comp_Win *cw,
441 EINA_LIST_FOREACH(cw->objs, l, co)
444 if (!co->img) continue;
445 evas_object_pass_events_set(co->img, set);
450 e_mod_comp_win_comp_objs_pass_events_set(E_Comp_Win *cw,
455 EINA_LIST_FOREACH(cw->objs, l, co)
458 if (!co->shadow) continue;
459 evas_object_pass_events_set(co->shadow, set);
464 e_mod_comp_win_comp_objs_img_alpha_set(E_Comp_Win *cw,
470 EINA_LIST_FOREACH(cw->objs, l, co)
473 if (!co->img) continue;
474 evas_object_image_alpha_set(co->img, alpha);
475 EINA_LIST_FOREACH(co->img_mirror, ll, o)
477 evas_object_image_alpha_set(o, alpha);
483 e_mod_comp_win_comp_objs_img_size_set(E_Comp_Win *cw,
490 EINA_LIST_FOREACH(cw->objs, l, co)
493 if (!co->img) continue;
494 evas_object_image_size_set(co->img, w, h);
495 EINA_LIST_FOREACH(co->img_mirror, ll, o)
497 evas_object_image_size_set(o, w, h);
503 e_mod_comp_win_comp_objs_img_data_update_add(E_Comp_Win *cw,
513 E_Comp_Canvas *canvas, *ly_canvas = NULL;
515 E_Comp_Effect_Object *eff_obj = NULL;
516 Eina_Bool eff_run = EINA_FALSE;
517 canvas = eina_list_nth(cw->c->canvases, 0);
518 ly = e_mod_comp_canvas_layer_get(canvas, "effect");
519 eff_run = e_mod_comp_layer_effect_get(ly);
522 eff_obj = e_mod_comp_layer_effect_obj_get(ly, cw->win);
523 if (eff_obj) ly_canvas = ly->canvas;
526 EINA_LIST_FOREACH(cw->objs, l, co)
529 if (!co->img) continue;
532 * Do nothing if an object is not located on E_Zone.
533 * A given object should not be marked if it is located on
534 * outer viewport. The evas doesn't perform viewport culling
538 !((cw->input_only) && (cw->invalid)) &&
539 E_INTERSECTS(co->zone->x, co->zone->y,
540 co->zone->w, co->zone->h,
541 cw->x, cw->y, cw->w, cw->h))
543 evas_object_image_data_update_add(co->img, x, y, w, h);
545 /* to show damaged window while effect, we should also update effect object */
548 if (ly_canvas == co->canvas)
549 evas_object_image_data_update_add(eff_obj->img, x, y, w, h);
553 EINA_LIST_FOREACH(co->img_mirror, ll, o)
555 evas_object_image_data_update_add(o, x, y, w, h);
561 e_mod_comp_win_comp_objs_needxim_set(E_Comp_Win *cw,
566 EINA_LIST_FOREACH(cw->objs, l, co)
569 if (need && co->xim) co->needxim = EINA_TRUE;
574 e_mod_comp_win_comp_objs_native_set(E_Comp_Win *cw,
579 EINA_LIST_FOREACH(cw->objs, l, co)
587 e_mod_comp_win_comp_objs_data_del(E_Comp_Win *cw,
592 EINA_LIST_FOREACH(cw->objs, l, co)
595 evas_object_data_del(co->shadow, key);
600 e_mod_comp_win_comp_objs_data_set(E_Comp_Win *cw,
606 EINA_LIST_FOREACH(cw->objs, l, co)
609 if (!co->shadow) continue;
610 evas_object_data_set(co->shadow, key, data);
615 e_mod_comp_win_comp_objs_show(E_Comp_Win *cw)
619 Eina_Bool eff = EINA_FALSE;
620 EINA_LIST_FOREACH(cw->objs, l, co)
625 (cw->dmg_updates >= 1))
627 if (!evas_object_visible_get(co->shadow) &&
630 if (!cw->hidden_override)
632 ELBF(ELBT_COMP, 0, e_mod_comp_util_client_xid_get(cw),
633 "[comp_objs_show] win:0x%07x name:%s",
634 cw->bd ? cw->bd->client.win : cw->win,
635 cw->bd ? cw->bd->client.netwm.name : NULL);
637 evas_object_show(co->shadow);
639 if (_comp_mod->conf->use_hwc)
641 cw->hwc.set_drawable = EINA_TRUE;
645 e_mod_comp_bg_win_handler_update(cw);
647 if (!cw->hidden_override)
653 if (eff) cw->c->effect_funcs.win_show(cw);
657 * It is possible that the WM can receive a border show event immediatly
658 * after getting a border hide event such as indicator hide/show.
659 * In that case, if we use e_mod_comp_win_objs_show() function then we
660 * don't append showing EDJE signal because a shadow object of given window
661 * is still visible state. The hide_done callback can make object to hide.
662 * Thus the WM has to append showing EDJE signal into the job queue
663 * to show a shadow object of given window.
666 e_mod_comp_win_comp_objs_force_show(E_Comp_Win *cw)
670 Eina_Bool eff = EINA_FALSE;
671 EINA_LIST_FOREACH(cw->objs, l, co)
674 if (!cw->animate_hide)
676 if (!cw->hidden_override)
678 if (!evas_object_visible_get(co->shadow))
680 ELBF(ELBT_COMP, 0, e_mod_comp_util_client_xid_get(cw),
681 "[comp_objs_force_show] win:0x%07x name:%s",
682 cw->bd ? cw->bd->client.win : cw->win,
683 cw->bd ? cw->bd->client.netwm.name : NULL);
685 evas_object_show(co->shadow);
687 if (_comp_mod->conf->use_hwc)
689 cw->hwc.set_drawable = EINA_TRUE;
695 e_mod_comp_bg_win_handler_update(cw);
699 if (eff) cw->c->effect_funcs.win_show(cw);
703 e_mod_comp_win_comp_objs_hide(E_Comp_Win *cw)
707 EINA_LIST_FOREACH(cw->objs, l, co)
710 if (!co->shadow) continue;
712 ELBF(ELBT_COMP, 0, e_mod_comp_util_client_xid_get(cw),
713 "[comp_objs_hide] win:0x%07x name:%s",
714 cw->bd ? cw->bd->client.win : cw->win,
715 cw->bd ? cw->bd->client.netwm.name : NULL);
717 evas_object_hide(co->shadow);
719 if (_comp_mod->conf->use_hwc)
721 evas_object_hide(co->hwc.mask_rect);
722 cw->hwc.set_drawable = EINA_FALSE;
728 e_mod_comp_win_comp_objs_raise(E_Comp_Win *cw)
733 EINA_LIST_FOREACH(cw->objs, l, co)
736 e_layout_child_raise(co->shadow);
737 if (_comp_mod->conf->use_hwc)
739 e_layout_child_raise_above(co->hwc.mask_rect, co->shadow);
741 ly = e_mod_comp_canvas_layer_get(co->canvas, "comp");
742 if (ly) e_mod_comp_layer_bg_adjust(ly);
747 e_mod_comp_win_comp_objs_lower(E_Comp_Win *cw)
752 EINA_LIST_FOREACH(cw->objs, l, co)
755 e_layout_child_lower(co->shadow);
756 if (_comp_mod->conf->use_hwc)
758 e_layout_child_raise_above(co->hwc.mask_rect, co->shadow);
761 ly = e_mod_comp_canvas_layer_get(co->canvas, "comp");
762 if (ly) e_mod_comp_layer_bg_adjust(ly);
767 e_mod_comp_win_comp_objs_stack_above(E_Comp_Win *cw,
771 E_Comp_Object *co, *co2;
773 EINA_LIST_FOREACH(cw->objs, l, co)
775 EINA_LIST_FOREACH(cw2->objs, ll, co2)
777 if (co->zone == co2->zone)
779 e_layout_child_raise_above(co->shadow,
781 if (_comp_mod->conf->use_hwc)
783 e_layout_child_raise_above(co->hwc.mask_rect, co->shadow);
784 e_layout_child_raise_above(co2->hwc.mask_rect, co2->shadow);
786 ly = e_mod_comp_canvas_layer_get(co->canvas, "comp");
787 if (ly) e_mod_comp_layer_bg_adjust(ly);
794 e_mod_comp_win_comp_objs_transparent_rect_update(E_Comp_Win *cw)
799 EINA_LIST_FOREACH(cw->objs, l, co)
801 if (cw->transp_rect.use)
803 if (!co->transp.offset)
804 co->transp.offset = evas_object_rectangle_add(co->canvas->evas);
805 if (!co->transp.rect)
806 co->transp.rect = evas_object_rectangle_add(co->canvas->evas);
808 if ((co->transp.offset) && (co->transp.rect))
810 evas_object_size_hint_min_set(co->transp.offset,
813 evas_object_size_hint_min_set(co->transp.rect,
816 evas_object_color_set(co->transp.offset, 0, 0, 0, 0);
817 evas_object_color_set(co->transp.rect, 0, 0, 0, 0);
818 evas_object_render_op_set(co->transp.rect, EVAS_RENDER_COPY);
822 if (edje_object_part_exists(co->shadow, "e.swallow.transp.offset"))
824 edje_object_part_swallow(co->shadow,
825 "e.swallow.transp.offset",
829 if (edje_object_part_exists(co->shadow, "e.swallow.transp.rect"))
831 edje_object_part_swallow(co->shadow,
832 "e.swallow.transp.rect",
840 if (co->transp.offset)
844 if (edje_object_part_exists(co->shadow, "e.swallow.transp.offset"))
846 edje_object_part_unswallow(co->shadow,
850 evas_object_size_hint_min_set(co->transp.offset, 0, 0);
851 evas_object_color_set(co->transp.offset, 0, 0, 0, 0);
852 evas_object_del(co->transp.offset);
853 co->transp.offset = NULL;
859 if (edje_object_part_exists(co->shadow, "e.swallow.transp.rect"))
861 edje_object_part_unswallow(co->shadow,
865 evas_object_size_hint_min_set(co->transp.rect, 0, 0);
866 evas_object_color_set(co->transp.rect, 0, 0, 0, 0);
867 evas_object_render_op_set(co->transp.rect, EVAS_RENDER_BLEND);
868 evas_object_del(co->transp.rect);
869 co->transp.rect = NULL;
874 #ifdef _F_USE_BORDER_TRANSFORM_
875 e_mod_comp_win_comp_objs_img_transform_set(cw, EINA_TRUE);
880 e_mod_comp_win_hwcomp_mask_objs_show(E_Comp_Win *cw)
886 EINA_LIST_FOREACH(cw->objs, l, co)
889 if (!co->hwc.mask_rect) continue;
890 if (!co->shadow) continue;
892 e_layout_child_move(co->hwc.mask_rect, cw->x, cw->y);
893 e_layout_child_resize(co->hwc.mask_rect, cw->pw, cw->ph);
894 e_layout_child_raise_above(co->hwc.mask_rect, co->shadow);
895 evas_object_show(co->hwc.mask_rect);
897 ELBF(ELBT_COMP, 0, e_mod_comp_util_client_xid_get(cw),
898 "%15.15s| Show(x:%d, y:%d, w:%d, h:%d)", "Mask OBJ", cw->x, cw->y, cw->pw, cw->ph);
904 e_mod_comp_win_hwcomp_mask_objs_hide(E_Comp_Win *cw)
910 EINA_LIST_FOREACH(cw->objs, l, co)
913 if (!co->hwc.mask_rect) continue;
915 evas_object_hide(co->hwc.mask_rect);
917 ELBF(ELBT_COMP, 0, e_mod_comp_util_client_xid_get(cw),
918 "%15.15s| Hide", "Mask OBJ");
923 #ifdef _F_USE_BORDER_TRANSFORM_
925 e_mod_comp_win_comp_objs_img_transform_set(E_Comp_Win *cw, Eina_Bool force)
929 if (!cw->objs) return;
931 E_Comp_Object* co = NULL;
932 co = eina_list_nth(cw->objs, 0);
934 if ((!co) || (!co->shadow)) return;;
936 if (e_border_transform_enable_get(cw->bd))
939 Evas_Map* m = evas_map_new(4);
940 evas_map_util_points_populate_from_object_full(m, co->shadow, 0);
941 evas_map_util_points_color_set(m, 255, 255, 255, 255);
942 E_Border_Transform_Vertex vertex = e_border_transform_vertex_get(cw->bd);
945 for (i = 0; i < 4; ++i)
947 evas_map_point_coord_set(m, i, vertex.vertexPosition[i][0],
948 vertex.vertexPosition[i][1],
949 vertex.vertexPosition[i][2]);
952 evas_object_map_set(co->shadow, m);
953 evas_object_map_enable_set(co->shadow, EINA_TRUE);
958 e_border_transform_get(cw->bd, &x, &y, &w, &h, 0);
959 e_mod_comp_win_comp_objs_move(cw, x, y);
960 e_mod_comp_win_comp_objs_resize(cw, w, h);
962 if (cw->transp_rect.use)
967 if (cw->bd->w == 0) return;
968 if (cw->bd->h == 0) return;
970 dw = (float)w / (float)cw->bd->w;
971 dh = (float)h / (float)cw->bd->h;
973 if (co->transp.offset)
975 evas_object_size_hint_min_set(co->transp.offset,
976 (int)((float)cw->transp_rect.x * dw),
977 (int)((float)cw->transp_rect.y * dh));
981 evas_object_size_hint_min_set(co->transp.rect,
982 (int)((float)cw->transp_rect.w * dw),
983 (int)((float)cw->transp_rect.h * dh));
992 e_mod_comp_win_comp_objs_move(cw, cw->bd->x, cw->bd->y);
993 e_mod_comp_win_comp_objs_resize(cw, cw->bd->w, cw->bd->h);
995 if (cw->transp_rect.use)
997 if (co->transp.offset)
998 evas_object_size_hint_min_set(co->transp.offset,
1001 if (co->transp.rect)
1002 evas_object_size_hint_min_set(co->transp.rect,
1008 #endif /* end of _F_USE_BORDER_TRANSFORM_ */