e_info: Add option to control transparent of the kvm service 57/298057/2
authorJunseok Kim <juns.kim@samsung.com>
Wed, 30 Aug 2023 05:29:58 +0000 (14:29 +0900)
committerJunSeok Kim <juns.kim@samsung.com>
Thu, 31 Aug 2023 00:15:02 +0000 (00:15 +0000)
Change-Id: I1889e783a441314948165b96941fd540263c9112

src/bin/e_info_client.c
src/bin/e_info_server.c

index 6a03b3d..25b06fa 100644 (file)
@@ -6749,6 +6749,30 @@ _e_info_client_proc_input_subtype_set(int argc, char **argv)
      }
 }
 
+static void
+_e_info_client_proc_kvm_transparent_set(int argc, char **argv)
+{
+   int set = 0;
+   Eina_Bool res;
+
+   EINA_SAFETY_ON_FALSE_GOTO(argc == 3, usage);
+
+   set = atoi(argv[2]);
+   if ((set != 0) && (set != 1))
+     goto usage;
+
+   res = _e_info_client_eldbus_message_with_args("kvm_transparent", NULL, "i", set);
+   EINA_SAFETY_ON_FALSE_RETURN(res);
+
+   goto finish;
+
+usage :
+   printf("Usage: %s -kvm_transparent_set [0:unset(opaque), 1:set(transparent)]\n", argv[0]);
+
+finish:
+   return;
+}
+
 typedef struct _ProcInfo
 {
    const char *option;
@@ -7159,6 +7183,12 @@ static ProcInfo procs_to_execute[] =
       "Set/Unset specify property",
       _e_info_client_property_set
    },
+   {
+      "kvm_transparent",
+      "[0:unset(opaque), 1:set(transparent)]",
+      "Set/Unset transparent of the kvm service window",
+      _e_info_client_proc_kvm_transparent_set
+   },
 };
 
 ProcInfo procs_to_input[] =
index f8c0527..8868e2c 100644 (file)
@@ -13,6 +13,7 @@
 #include <mcheck.h>
 #include "e_policy_wl.h"
 #include "services/e_service_quickpanel.h"
+#include "services/e_service_kvm.h"
 
 #define EDJE_EDIT_IS_UNSTABLE_AND_I_KNOW_ABOUT_IT
 #include <Edje_Edit.h>
@@ -7628,6 +7629,30 @@ _e_info_server_cb_input_subtype_set(const Eldbus_Service_Interface *iface EINA_U
    return reply;
 }
 
+static Eldbus_Message *
+_e_info_server_cb_kvm_transparent_set(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
+{
+   Eldbus_Message *reply = eldbus_message_method_return_new(msg);
+   int set = 0;
+
+   if (!eldbus_message_arguments_get(msg, "i", &set))
+     {
+        ERR("Failed to get argument");
+        return reply;
+     }
+
+   if (set)
+     {
+        e_service_kvm_transparent_set(e_service_kvm_client_get(), EINA_TRUE);
+     }
+   else
+     {
+        e_service_kvm_transparent_set(e_service_kvm_client_get(), EINA_FALSE);
+     }
+
+   return reply;
+}
+
 //{ "method_name", arguments_from_client, return_values_to_client, _method_cb, ELDBUS_METHOD_FLAG },
 static const Eldbus_Method methods[] = {
    { "get_window_info", NULL, ELDBUS_ARGS({"iiiiisiiia("VALUE_TYPE_FOR_TOPVWINS")", "array of ec"}), _e_info_server_cb_window_info_get, 0 },
@@ -7734,6 +7759,7 @@ static const Eldbus_Method methods[] = {
    { "resize_ppu_set", ELDBUS_ARGS({"si", "set resize ppu"}), NULL, e_info_server_cb_resize_ppu_set, 0},
    { "prop_set", ELDBUS_ARGS({"s","window id" }, {"s", "property"}, {"i", "set value"}), NULL, _e_info_server_cb_prop_set, 0},
    { "input_subtype_set", ELDBUS_ARGS({"ss", "set input device's subtype(subclas)"}), ELDBUS_ARGS({"s", "result message"}), _e_info_server_cb_input_subtype_set, 0 },
+   { "kvm_transparent", ELDBUS_ARGS({"i", "set kvm service window to transparent"}), NULL, _e_info_server_cb_kvm_transparent_set, 0 },
    { NULL, NULL, NULL, NULL, 0 }
 };