diff options
author | Vincent Torri <vincent.torri@gmail.com> | 2020-09-30 13:59:27 +0100 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2020-09-30 13:59:27 +0100 |
commit | de5ac3287002f21fb13f97ba635f6962664e3ebc (patch) | |
tree | 4a5dd02c4c35e1da4c0f7381865aad22898100d0 | |
parent | 3d351b98c24e617b13f120605dd8d6c9c7892e4e (diff) | |
download | efl-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.c | 9 |
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); |