diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2017-07-28 15:44:43 -0400 |
---|---|---|
committer | Mike Blumenkrantz <zmike@osg.samsung.com> | 2017-07-28 15:40:47 -0400 |
commit | b32ae04306fa31a28f4d09b57d9f21e5403188cb (patch) | |
tree | 9655d8e0a02f1a99b52705b3f7ee9d912e8fdac6 /src/lib/efl_wl | |
parent | ef03ecd89ca8206b61e028752ac567036c1150cf (diff) |
efl-wl: use correct window when requesting x11 clipboard selection
Diffstat (limited to 'src/lib/efl_wl')
-rw-r--r-- | src/lib/efl_wl/x11.x | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/lib/efl_wl/x11.x b/src/lib/efl_wl/x11.x index cc567990ba..bebd017519 100644 --- a/src/lib/efl_wl/x11.x +++ b/src/lib/efl_wl/x11.x | |||
@@ -145,8 +145,25 @@ x11_fixes_selection_notify(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_X_Event | |||
145 | } | 145 | } |
146 | if (ev->owner) | 146 | if (ev->owner) |
147 | { | 147 | { |
148 | xconvertselection(ecore_x_display_get(), ECORE_X_ATOM_SELECTION_CLIPBOARD, | 148 | EINA_LIST_FOREACH(comps, l, c) |
149 | ECORE_X_ATOM_SELECTION_TARGETS, comp_dnd_atom, ev->win, 0); | 149 | { |
150 | win = ecore_evas_window_get(ecore_evas_ecore_evas_get(c->evas)); | ||
151 | if (l != comps) | ||
152 | { | ||
153 | Eina_List *ll; | ||
154 | Comp *c2; | ||
155 | Ecore_X_Window win2 = 0; | ||
156 | EINA_LIST_FOREACH(comps, ll, c2) | ||
157 | { | ||
158 | win2 = ecore_evas_window_get(ecore_evas_ecore_evas_get(c->evas)); | ||
159 | if (win == win2) break; | ||
160 | if (l == ll) break; | ||
161 | } | ||
162 | if ((win == win2) && (l != ll)) continue; | ||
163 | } | ||
164 | xconvertselection(ecore_x_display_get(), ECORE_X_ATOM_SELECTION_CLIPBOARD, | ||
165 | ECORE_X_ATOM_SELECTION_TARGETS, comp_dnd_atom, win, 0); | ||
166 | } | ||
150 | } | 167 | } |
151 | } | 168 | } |
152 | return ECORE_CALLBACK_RENEW; | 169 | return ECORE_CALLBACK_RENEW; |