e_service_kvm: send source mimetype to kvm service 81/305181/3
authorJunseok Kim <juns.kim@samsung.com>
Fri, 26 Jan 2024 06:24:55 +0000 (15:24 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Tue, 30 Jan 2024 01:14:10 +0000 (01:14 +0000)
Change-Id: Ica0e41f0deb847f4a7e643fc378b0e3cdf5a50f8

src/bin/services/e_service_kvm.c
src/bin/services/e_service_kvm_intern.h

index bd644b4..59c9427 100644 (file)
@@ -88,6 +88,7 @@ _kvm_hook_drag_start(void *d EINA_UNUSED, E_Drag *drag)
             e_comp_ungrab_input(1, 1);
          }
 
+         e_service_kvm_send_source_mimetypes(esk);
          e_service_kvm_send_drag_start(esk);
      }
    eina_iterator_free(it);
@@ -322,6 +323,31 @@ e_service_kvm_perform_drag_leave(E_Client *ec)
 }
 
 EINTERN Eina_Bool
+e_service_kvm_send_source_mimetypes(E_Service_Kvm *esk)
+{
+   E_Comp_Wl_Data_Source *source;
+   Eina_Iterator *it;
+   char *mimetype;
+
+   EINA_SAFETY_ON_NULL_RETURN_VAL(esk, EINA_FALSE);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(esk->ec, EINA_FALSE);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(esk->srv_kvm_res, EINA_FALSE);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(e_comp_wl->drag_source, EINA_FALSE);
+
+   ELOGF("KVM", "Source mimes send!", esk->ec);
+
+   source = (E_Comp_Wl_Data_Source *) e_comp_wl->drag_source;
+
+   tws_service_kvm_send_source_mimes(esk->srv_kvm_res, NULL);
+   it = eina_array_iterator_new(source->mime_types);
+   EINA_ITERATOR_FOREACH(it, mimetype)
+     tws_service_kvm_send_source_mimes(esk->srv_kvm_res, mimetype);
+   eina_iterator_free(it);
+
+   return EINA_TRUE;
+}
+
+EINTERN Eina_Bool
 e_service_kvm_secondary_selection_set(E_Client *ec, Eina_Bool set)
 {
    E_Service_Kvm *esk;
index 5d8b0ed..b7328ec 100644 (file)
@@ -18,6 +18,7 @@ EINTERN Eina_Bool      e_service_kvm_drop_perform(E_Client *ec);
 EINTERN Eina_Bool      e_service_kvm_drag_cancel(E_Client *ec);
 EINTERN Eina_Bool      e_service_kvm_perform_drag_enter(E_Client *ec);
 EINTERN Eina_Bool      e_service_kvm_perform_drag_leave(E_Client *ec);
+EINTERN Eina_Bool      e_service_kvm_send_source_mimetypes(E_Service_Kvm *esk);
 EINTERN Eina_Bool      e_service_kvm_secondary_selection_set(E_Client *ec, Eina_Bool set);
 EINTERN Eina_Bool      e_service_kvm_transparent_set(E_Client *ec, Eina_Bool set);
 EINTERN Eina_Bool      e_service_kvm_all_kvm_service_transparent_set(Eina_Bool set);