e_comp_object/e_xdg_shell: fix resizing issue 17/274917/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Thu, 12 May 2022 02:28:42 +0000 (11:28 +0900)
committerJunseok Kim <juns.kim@samsung.com>
Thu, 12 May 2022 05:18:53 +0000 (14:18 +0900)
There was a bug that the window size was rollback as below case.
1. Do interactive resize to (w1 x h1)
2. App change it's window size to (w2 x h2)
3. Do interactive move
<== Window's size is changed to (w1 x h1)

To fix this, we add code that e send a configure event if the window size is changed.

Change-Id: I59fe88bcb7cbc1e8272a084d6729e9c4176be701

src/bin/e_comp_object.c
src/bin/e_xdg_shell_v6.c

index c2ae178ae714e40f49680c63e01a68513d4c9dc2..6a7e214280f9dd0f26610656ca6fe2d0f6a80b84 100644 (file)
@@ -1765,6 +1765,8 @@ _e_comp_intercept_resize(void *data, Evas_Object *obj, int w, int h)
      }
    else
      {
+        evas_object_smart_callback_call(obj, "client_resize", NULL);
+
         /* flip for CSD */
         if ((!cw->frame_object) && (!cw->ec->input_only))
           w = pw, h = ph;
index 77cbddd52ef507ad47d62dfdcd233282de90b624..2d3b41c65728fa6a76da7a11689cd98ec0f7b669 100644 (file)
@@ -567,7 +567,10 @@ _e_xdg_toplevel_pending_state_compare(E_Xdg_Toplevel *toplevel)
 
    if ((toplevel->pending.size.w == configured.size.w) &&
        (toplevel->pending.size.h == configured.size.h))
-     return EINA_TRUE;
+     {
+        if (!toplevel->base.ec->changes.size)
+          return EINA_TRUE;
+     }
 
    if ((toplevel->pending.size.w == 0) &&
        (toplevel->pending.size.h == 0))