From 6a6685ab21e70fb0f35a0f10ffbad6efe285620d Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Wed, 6 Dec 2017 11:53:06 +0900 Subject: [PATCH] elm: Fix _elm_widget_onscreen_is for window A window is using ecore_evas geometry value for its evas_object geometry value. The evas_output_viewport x(y) value which is used in _elm_widget_onscreen_is is always 0. So _elm_widget_onscreen_is could return EINA_FALSE, if ecore_evas geometry x(y) value is bigger than 0, even though a window object is on screen. So it is not correct to compare ecore_output_viewport and evas_object geometry for a window object. Moreover it does not make sense. --- src/lib/elementary/elm_widget.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c index 5f9a4eb18b..7b7497b045 100644 --- a/src/lib/elementary/elm_widget.c +++ b/src/lib/elementary/elm_widget.c @@ -3881,6 +3881,10 @@ _elm_widget_onscreen_is(Evas_Object *widget) if (eina_rectangle_is_empty(&r1)) return EINA_FALSE; + // window does not have to check viewport and geometry + if (efl_isa(widget, EFL_ACCESS_WINDOW_INTERFACE)) + return EINA_TRUE; + // check if on canvas evas_output_viewport_get(evas, &r2.x, &r2.y, &r2.w, &r2.h); if (!eina_rectangles_intersect(&r1, &r2))