summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2015-10-05 18:30:34 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2015-10-05 18:30:34 +0900
commit8f69d5202a19ead2558b8fea83c1ced4519bb1df (patch)
treea92d48552417c0103f7c0a55f8f9776ca3d70b4f /src/lib/evas/canvas
parent594dab807854483dbd55e0e4a7d78d5fc55b4f3f (diff)
evas rectangle - ensure centers of rects that just move/resize dont rend
calculating updates has been re-rendering centers fo solid rects if the solid rects moves/resizes with a lot of overlap and objects underneath changes - their changes show through. this fixes that @fix
Diffstat (limited to 'src/lib/evas/canvas')
-rw-r--r--src/lib/evas/canvas/evas_object_rectangle.c54
1 files changed, 27 insertions, 27 deletions
diff --git a/src/lib/evas/canvas/evas_object_rectangle.c b/src/lib/evas/canvas/evas_object_rectangle.c
index b154bb5a0c..a22c990275 100644
--- a/src/lib/evas/canvas/evas_object_rectangle.c
+++ b/src/lib/evas/canvas/evas_object_rectangle.c
@@ -277,33 +277,6 @@ evas_object_rectangle_render_pre(Evas_Object *eo_obj,
277 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, eo_obj, obj); 277 evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, eo_obj, obj);
278 goto done; 278 goto done;
279 } 279 }
280 /* if it changed geometry - and obviously not visibility or color */
281 /* calculate differences since we have a constant color fill */
282 /* we really only need to update the differences */
283 if ((obj->cur->geometry.x != obj->prev->geometry.x) ||
284 (obj->cur->geometry.y != obj->prev->geometry.y) ||
285 (obj->cur->geometry.w != obj->prev->geometry.w) ||
286 (obj->cur->geometry.h != obj->prev->geometry.h))
287 {
288 evas_rects_return_difference_rects(&obj->layer->evas->clip_changes,
289 obj->cur->geometry.x,
290 obj->cur->geometry.y,
291 obj->cur->geometry.w,
292 obj->cur->geometry.h,
293 obj->prev->geometry.x,
294 obj->prev->geometry.y,
295 obj->prev->geometry.w,
296 obj->prev->geometry.h);
297//// rl = evas_rects_return_difference_rects(obj->cur->cache.geometry.x,
298//// obj->cur->cache.geometry.y,
299//// obj->cur->cache.geometry.w,
300//// obj->cur->cache.geometry.h,
301//// obj->prev->cache.geometry.x,
302//// obj->prev->cache.geometry.y,
303//// obj->prev->cache.geometry.w,
304//// obj->prev->cache.geometry.h);
305 goto done;
306 }
307 /* it obviously didn't change - add a NO obscure - this "unupdates" this */ 280 /* it obviously didn't change - add a NO obscure - this "unupdates" this */
308 /* area so if there were updates for it they get wiped. don't do it if we */ 281 /* area so if there were updates for it they get wiped. don't do it if we */
309 /* arent fully opaque and we are visible */ 282 /* arent fully opaque and we are visible */
@@ -331,6 +304,33 @@ evas_object_rectangle_render_pre(Evas_Object *eo_obj,
331 y + obj->layer->evas->framespace.y, 304 y + obj->layer->evas->framespace.y,
332 w, h); 305 w, h);
333 } 306 }
307 /* if it changed geometry - and obviously not visibility or color */
308 /* calculate differences since we have a constant color fill */
309 /* we really only need to update the differences */
310 if ((obj->cur->geometry.x != obj->prev->geometry.x) ||
311 (obj->cur->geometry.y != obj->prev->geometry.y) ||
312 (obj->cur->geometry.w != obj->prev->geometry.w) ||
313 (obj->cur->geometry.h != obj->prev->geometry.h))
314 {
315 evas_rects_return_difference_rects(&obj->layer->evas->clip_changes,
316 obj->cur->geometry.x,
317 obj->cur->geometry.y,
318 obj->cur->geometry.w,
319 obj->cur->geometry.h,
320 obj->prev->geometry.x,
321 obj->prev->geometry.y,
322 obj->prev->geometry.w,
323 obj->prev->geometry.h);
324//// rl = evas_rects_return_difference_rects(obj->cur->cache.geometry.x,
325//// obj->cur->cache.geometry.y,
326//// obj->cur->cache.geometry.w,
327//// obj->cur->cache.geometry.h,
328//// obj->prev->cache.geometry.x,
329//// obj->prev->cache.geometry.y,
330//// obj->prev->cache.geometry.w,
331//// obj->prev->cache.geometry.h);
332 goto done;
333 }
334 done: 334 done:
335 evas_object_render_pre_effect_updates(&obj->layer->evas->clip_changes, eo_obj, is_v, was_v); 335 evas_object_render_pre_effect_updates(&obj->layer->evas->clip_changes, eo_obj, is_v, was_v);
336} 336}