summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Torri <vincent.torri@gmail.com>2020-09-30 13:59:27 +0100
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2020-09-30 13:59:27 +0100
commitde5ac3287002f21fb13f97ba635f6962664e3ebc (patch)
tree4a5dd02c4c35e1da4c0f7381865aad22898100d0
parent3d351b98c24e617b13f120605dd8d6c9c7892e4e (diff)
downloadefl-de5ac3287002f21fb13f97ba635f6962664e3ebc.tar.gz
Windows: fix copy'n paste
Summary: fix seat id and clean cnp data when needed Test Plan: Ctrl-c and Ctrl-V (elm-->app, app--> elm elm-->elm) Reviewers: jptiz, walac, cochisecesar, bu5hm4n, felipealmeida, raster Reviewed By: felipealmeida, raster Subscribers: netstar, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D12166
-rw-r--r--src/modules/ecore_evas/engines/win32/ecore_evas_win32.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c b/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c
index 638d4e74f7..debb7f263c 100644
--- a/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c
+++ b/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c
@@ -1219,7 +1219,7 @@ _delivery(void *data, const Eina_Value value EINA_UNUSED, const Eina_Future *dea
}
if (mime_type)
{
- edata->clipboard.delivery(ee, 0, ECORE_EVAS_SELECTION_BUFFER_COPY_AND_PASTE_BUFFER, mime_type, &slice);
+ edata->clipboard.delivery(ee, 1, ECORE_EVAS_SELECTION_BUFFER_COPY_AND_PASTE_BUFFER, mime_type, &slice);
EINA_SAFETY_ON_FALSE_GOTO(ecore_win32_clipboard_set((Ecore_Win32_Window *)ee->prop.window, slice.mem, slice.len, mime_type), end);
}
else
@@ -1234,18 +1234,21 @@ end:
static Eina_Bool
_ecore_evas_win32_selection_claim(Ecore_Evas *ee, unsigned int seat, Ecore_Evas_Selection_Buffer selection, Eina_Array *available_types, Ecore_Evas_Selection_Internal_Delivery delivery, Ecore_Evas_Selection_Internal_Cancel cancel)
{
+ Ecore_Evas_Engine_Data_Win32 *edata = ee->engine.data;
+
if (selection != ECORE_EVAS_SELECTION_BUFFER_COPY_AND_PASTE_BUFFER)
return EINA_FALSE;
if (!delivery && !cancel)
{
+ edata->clipboard.delivery = NULL;
+ edata->clipboard.cancel = NULL;
+ eina_array_clean(edata->clipboard.available_types);
ecore_win32_clipboard_clear((Ecore_Win32_Window *)ee->prop.window);
return EINA_TRUE;
}
else
{
- Ecore_Evas_Engine_Data_Win32 *edata = ee->engine.data;
-
if (edata->clipboard.cancel)
{
edata->clipboard.cancel(ee, seat, selection);