e_hwc_window: consider transform of client when setting info 40/208240/3
authorChangyeon Lee <cyeon.lee@samsung.com>
Wed, 19 Jun 2019 06:55:30 +0000 (15:55 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Mon, 24 Jun 2019 09:53:27 +0000 (09:53 +0000)
Change-Id: Icf5413c9c6f5a05134a9ac8c8c41a4b00cd2dbbd

src/bin/e_hwc_window.c

index 71accb557bdcd3d34c5654c41d69eda0a59c5f4a..b26140422500a0c73adc15c0394d15a44174dee8 100644 (file)
@@ -887,6 +887,7 @@ e_hwc_window_info_update(E_Hwc_Window *hwc_window)
      }
    else if (tsurface)
      {
+        int x, y, w, h;
         /* set hwc_window when the layer infomation is different from the previous one */
         tbm_surface_get_info(tsurface, &surf_info);
 
@@ -900,8 +901,12 @@ e_hwc_window_info_update(E_Hwc_Window *hwc_window)
         EINA_SAFETY_ON_TRUE_RETURN_VAL(hwc_win_info.src_config.size.h == 0, EINA_FALSE);
         hwc_win_info.src_config.size.v = surf_info.height;
 
-        hwc_win_info.dst_pos.x = ec->x;
-        hwc_win_info.dst_pos.y = ec->y;
+        e_client_geometry_get(ec, &x, &y, &w, &h);
+
+        hwc_win_info.dst_pos.x = x;
+        hwc_win_info.dst_pos.y = y;
+        hwc_win_info.dst_pos.w = w;
+        hwc_win_info.dst_pos.h = h;
 
         /* if output is transformed, the position of a buffer on screen should be also
         * transformed.
@@ -922,9 +927,6 @@ e_hwc_window_info_update(E_Hwc_Window *hwc_window)
               hwc_win_info.dst_pos.y = dst_y;
           }
 
-        hwc_win_info.dst_pos.w = surf_info.width;
-        hwc_win_info.dst_pos.h = surf_info.height;
-
         // TODO: need to calculation with ec(window) rotation and output->config.rotation?
         hwc_win_info.transform = TDM_TRANSFORM_NORMAL;
      }