e_comp_object: fixed size update problem for H/W composited cw. 76/100276/2 accepted/tizen/3.0/common/20161128.091608 accepted/tizen/3.0/ivi/20161128.084948 accepted/tizen/3.0/mobile/20161128.084813 accepted/tizen/3.0/tv/20161128.084841 accepted/tizen/3.0/wearable/20161128.084918 accepted/tizen/common/20161128.064140 accepted/tizen/ivi/20161128.001026 accepted/tizen/mobile/20161128.000931 accepted/tizen/tv/20161128.000949 accepted/tizen/wearable/20161128.001009 submit/tizen/20161126.034005 submit/tizen_3.0/20161126.033048
authorGwanglim Lee <gl77.lee@samsung.com>
Fri, 25 Nov 2016 13:14:55 +0000 (22:14 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Fri, 25 Nov 2016 13:18:11 +0000 (05:18 -0800)
The size of non-compositing window can be changed, so there is a
need to check that cw is H/W composited if cw is not redirected.
And of course we have to change size of evas object of H/W composited cw,
otherwise cw can't receive input events even if it is shown on the screen.

Change-Id: I9a126bdcb7c1ad0be11e9fd3c4e8df3804f4a1fc

src/bin/e_comp_object.c

index 7cbc20589e60ac40bbbee5e1f50754a46f65592d..68183bbf6960e1c96bfae54b98a90743067027c6 100644 (file)
@@ -1266,7 +1266,17 @@ _e_comp_intercept_resize(void *data, Evas_Object *obj, int w, int h)
         cw->ec->client.h = ih;
         if ((cw->ec->client.w < 0) || (cw->ec->client.h < 0)) CRI("WTF");
      }
-   if ((!cw->ec->input_only) && (cw->redirected) &&
+
+   /* The size of non-compositing window can be changed, so there is a
+    * need to check that cw is H/W composited if cw is not redirected.
+    * And of course we have to change size of evas object of H/W composited cw,
+    * otherwise cw can't receive input events even if it is shown on the screen.
+    */
+   Eina_Bool redirected = cw->redirected;
+   if (!redirected)
+     redirected = e_comp_is_on_overlay(cw->ec);
+
+   if ((!cw->ec->input_only) && (redirected) &&
        (cw->content_type != E_COMP_OBJECT_CONTENT_TYPE_EXT_IMAGE) &&
        (cw->content_type != E_COMP_OBJECT_CONTENT_TYPE_EXT_EDJE) &&
        (e_pixmap_dirty_get(cw->ec->pixmap) ||