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 8a9f0bd603.

Ref T4749
Fixes T5573

@fix
This commit is contained in:
Jean-Philippe Andre 2017-06-13 11:13:03 +09:00
parent ed41adf791
commit f5c4ec6cd9
1 changed files with 8 additions and 11 deletions

View File

@ -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: