mmi-client: added apis for setting/getting has_focus of a client 34/264034/1
authorSung-Jin Park <sj76.park@samsung.com>
Sat, 24 Jul 2021 18:19:03 +0000 (03:19 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Mon, 13 Sep 2021 11:24:25 +0000 (20:24 +0900)
Change-Id: I47647e8e1309853a98a4761670124f2daa41b568
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
src/mmi-client.c
src/mmi-client.h

index 043f68bd8db1534f6437ba6bbeb2e0a41278b2ec..eb6904cc1c010816a92bedb7a927f4a9d53b0f04 100644 (file)
@@ -35,6 +35,7 @@ struct _mmi_client
        uid_t uid;
        pid_t pid;
        mmi_state state;
+       bool has_focus;
 
        rpc_port_focus_event_h focus_cb_h;
        rpc_port_state_change_event_h state_change_cb_h;
@@ -127,7 +128,6 @@ client_manager_remove_client(const char *sender)
                goto err;
        }
 
-
        if (!eina_hash_del(_client_hash, sender, mc))
        {
                LOGE("Failed to remove client info using sender(=%s) !\n", sender);
@@ -206,6 +206,25 @@ client_manager_get_client_state(mmi_client *client)
        return client->state;
 }
 
+bool
+client_manager_set_client_has_focus(mmi_client *client, bool has_focus)
+{
+       if (!client)
+               return false;
+
+       client->has_focus = has_focus;
+       return client->has_focus;
+}
+
+bool
+client_manager_get_client_has_focus(mmi_client *client)
+{
+       if (!client)
+               return false;
+
+       return client->has_focus;
+}
+
 static void
 _cleanup_client_hash(void)
 {
index feb07aa80d0636fe20c78965c06cf02d2d6e8273..618c896e6da23790d754ecb27de1db3303ef8f26 100644 (file)
@@ -42,6 +42,8 @@ int client_manager_set_client_pid(mmi_client *client, pid_t pid);
 int client_manager_get_client_pid(mmi_client *client);
 mmi_state client_manager_set_client_state(mmi_client *client, mmi_state state);
 mmi_state client_manager_get_client_state(mmi_client *client);
+bool client_manager_set_client_has_focus(mmi_client *client, bool has_focus);
+bool client_manager_get_client_has_focus(mmi_client *client);
 
 void *client_manager_set_client_focus_cb_handle(mmi_client *client, void *focus_cb_h);
 void *client_manager_get_client_focus_cb_handle(mmi_client *client);