e_comp_object: fix continuously generate E_EVENT_CLIENT_PROPERTY 84/285684/1
authorChangyeon Lee <cyeon.lee@samsung.com>
Fri, 16 Dec 2022 08:12:59 +0000 (17:12 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Fri, 16 Dec 2022 09:01:07 +0000 (18:01 +0900)
if ec has pending geometry but client does not send wl_surface_commit
request, E_EVENT_CLIENT_PROPERTY is continually generated with below
sequence.

1. pending_geometry and changes.pos of client is set true
2. changes.pos is set false and evas_object_move is called in
   _e_client_eval(it is called in idle_enterer_before)
3. changes.pos is set true in _e_comp_intercept_move because
   ec has pending geometry
4. E_EVENT_CLIENT_PROPERTY is added in _e_client_eval
5. ecore main loop is wake up with E_EVENT_CLIENT_PROPERTY
6. step 2 is repeated

Change-Id: Id817e13569759c0807188e2bbd342274454673ae

src/bin/e_comp_object.c

index f272bdf1eb953f7f3fc020c641851716c0e92d2a..1429913931d5b7de73bc6219370abde1318193bb 100644 (file)
@@ -1621,8 +1621,7 @@ _e_comp_intercept_move(void *data, Evas_Object *obj, int x, int y)
    /* delay to move while surface waits paired commit serial*/
    if (e_client_pending_geometry_has(cw->ec))
      {
-        cw->ec->changes.pos = 1;
-        EC_CHANGED(cw->ec);
+        /* do nothing while waiting paired commit serial*/
         return;
      }