From f5c4ec6cd9e2aba8a175647410c9e4932f82e0cb Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Tue, 13 Jun 2017 11:13:03 +0900 Subject: [PATCH] evas: Fix resize & move intercepts Thanks @zmike for the report. This in therory should restore behaviour from 1.18, where the intercept function is called even if the geometry isn't changed. Test scenario, in E: 1. remove bryces, shelves on a screen, or mark all as autohide 2. open chromium or any CSD application as unmaximized 3. maximize the window 4. make it fullscreen (eg. with chromium: F11) See 8a9f0bd603aaaf3abd3ca9a. Ref T4749 Fixes T5573 @fix --- src/lib/evas/canvas/evas_object_intercept.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_intercept.c b/src/lib/evas/canvas/evas_object_intercept.c index da774e2b9c..cd8d6d20de 100644 --- a/src/lib/evas/canvas/evas_object_intercept.c +++ b/src/lib/evas/canvas/evas_object_intercept.c @@ -113,22 +113,19 @@ _evas_object_intercept_call_internal(Evas_Object *eo_obj, } i = va_arg(args, int); j = va_arg(args, int); - if (!obj->interceptors) - { - if ((obj->cur->geometry.x == i) && (obj->cur->geometry.y == j)) - blocked = EINA_TRUE; - break; - } - blocked = evas_object_intercept_call_move(eo_obj, obj, i, j); + if (obj->interceptors) + blocked = evas_object_intercept_call_move(eo_obj, obj, i, j); + if (!blocked && (obj->cur->geometry.x == i) && (obj->cur->geometry.y == j)) + blocked = 1; break; case EVAS_OBJECT_INTERCEPT_CB_RESIZE: i = va_arg(args, int); j = va_arg(args, int); - if (_efl_canvas_object_efl_gfx_size_set_block(eo_obj, obj, i, j, internal)) - return 1; - if (!obj->interceptors) return 0; - blocked = evas_object_intercept_call_resize(eo_obj, obj, i, j); + if (obj->interceptors) + blocked = evas_object_intercept_call_resize(eo_obj, obj, i, j); + if (!blocked && _efl_canvas_object_efl_gfx_size_set_block(eo_obj, obj, i, j, internal)) + blocked = 1; break; case EVAS_OBJECT_INTERCEPT_CB_RAISE: