mmi-manager: set client state in _state_change_cb 76/264076/1
authorSung-Jin Park <sj76.park@samsung.com>
Fri, 3 Sep 2021 12:33:10 +0000 (21:33 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Mon, 13 Sep 2021 11:25:53 +0000 (20:25 +0900)
Change-Id: I8cc67f2fe4bb56947f48d330d8cbf32305f7a72b
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
src/mmi-manager.c

index 7a76756..0aa98ad 100644 (file)
@@ -215,8 +215,6 @@ _state_change_cb(void *data EINA_UNUSED, int type, void *event)
 
        mmi_manager_event_state_change *ev = (mmi_manager_event_state_change *)event;
 
-       //TODO : actually change state of given client
-
        arg.type = MMI_EVENT_STATE_CHANGE_TYPE_STATE_CHANGE;
        arg.timestamp = ecore_time_get();
        arg.state = ev->to_state;
@@ -224,11 +222,23 @@ _state_change_cb(void *data EINA_UNUSED, int type, void *event)
 
        if (ev->client)
        {
+               if (ev->to_state != client_manager_set_client_state(ev->client, ev->to_state))
+               {
+                       LOGE("Failed to set client state ! (client:%p, state=%d)\n",
+                                       ev->client, ev->to_state);
+                       return ECORE_CALLBACK_PASS_ON;
+               }
+
                r = client_manager_send_state_change_event(ev->client, &arg);
                if (r)
                        LOGE("Failed to send state cnahnge event(=%d) to client(%p) !\n",
                                        MMI_EVENT_STATE_CHANGE_TYPE_STATE_CHANGE, ev->client);
        }
+       else
+       {
+               LOGE("Abnormal state change event ! (No client info !)\n");
+               return ECORE_CALLBACK_PASS_ON;
+       }
 
        LOGI("State of client(%p) has been changed. (%d->%d)\n", ev->client, ev->from_state, ev->to_state);