A leave callback is invoked on the drop target of the previous DnD
operation, leading to inconsistency for applications.
The state of the dropable target was not resetted during drop.
This patch fixes that.
Summary:
encoded URI is pasted in terminology on dnd with file which has blank in name
ex. Test Blank.avi -> Test%20Blank.avi
Therefore, decode it when we extract file uris from uri list by using efreet.
by the way, copy and paste code likely needs refactoring..
Reviewers: raster, cedric
Subscribers: billiob, seoz
Differential Revision: https://phab.enlightenment.org/D1384
In some cases, like having a drop target inside an inwin (looks like it
can be other containers too) can cause an infinite loop (as described in
the report). The reason for that is that while the drop target was added
when there was an X window available, the X window ws now gone, so the
non X path was being called which didn't have the code to remove the
item from the list being iterated. Yes, definition of spaghetti and
false assumptions.
Elm dnd/cnp need a massive overhaul, they are disgusting.
See the ticket for more information on the issue.
Fixes T1702
This was leading to never enter the cnp functions dedicated to Wayland,
as the given object was not a window. The Copy And Paste test was not
working for this reason.
Summary:
When a wayland client requests selection_set, Wayland server doesn't care and doesn't know how long source data is.
so, it cannot ignore request for selection_set about empty buffer.
therefore to avoid copying empty buffer, it need to check length of buffer before request selection_set.
Test Plan:
1. Run "elementray_test -to entry5" with wayland server.
2. Drag text and try to paste.
3. Drag empty area in entry (request for selection_set on empty buffer is rejected)
4. Try to paste (you can see text of step 2).
Reviewers: devilhorns, raster, seoz
CC: gwanglim
Differential Revision: https://phab.enlightenment.org/D1146
Summary:
During drag, dragwin should be rotated when main window is rotated.
@fix
Reviewers: raster, JackDanielZ, woohyun
Reviewed By: raster
Differential Revision: https://phab.enlightenment.org/D976
Summary:
If window is rotated, the drag window position is incorrect.
In drag start, the drag window is placed in incorrect position if main window is rotated.
Fix: Update drag window according to window rotation.
@fix
Reviewers: JackDanielZ, raster
Reviewed By: raster
CC: woohyun, seoz
Differential Revision: https://phab.enlightenment.org/D746
With Eo2 you can return values directly without the need to use a pointer
(use the C return).
For example:
eo_do(obj, elm_object_text_get(&text));
becomes:
eo_do(obj, text = elm_object_text_get());
@feature
Summary:
Currently, when drag starts, drag window is not skipped. It makes ecore_x cannot find dropable window in some cases.
Issue: Dropable window is not found if we drop inside the initialized area of drag window.
(Example: in Dnd Types of elementary test, try to start dragging at right edge of left label and drop to left edge of right label. The drop is failed).
Reason: Ecore_x considers drag window when it tries to find dropable window at specific position. Therefore, it cannot find dropable window.
Resolve: Skip drag window.
@fix
Reviewers: raster, JackDanielZ, seoz
CC: woohyun, seoz
Differential Revision: https://phab.enlightenment.org/D710
Summary:
In case we register two or more of same drop callbacks for one object, when that object is deleted, segmentation fault happens.
Test case: Register only same callbacks more than two times for one object. Delete that object (manual or auto). Segmentation fault happens.
Reason: When object is deleted, we remove all drop callbacks registered with the object. The _all_drops_targets_cbs_del and elm_drop_target_del are used to do that and they operates on the same cbs_list. If elm_drop_target_del remove the current and the next callbacks in cbs_list, the segmentation fault will happen at _all_drops_targets_cbs_del.
Fix: Check and use updated cbs_list.
@fix
Reviewers: JackDanielZ, raster, seoz
Reviewed By: JackDanielZ
CC: woohyun
Differential Revision: https://phab.enlightenment.org/D691
Summary:
problem:
1) elementary_test -> entry -> close entry window
2) type mismatch warning is shown on console as below
ERR<19427>:eo lib/eo/eo.c:342 _eo_dov_internal() in elm_win.eo.c:2067: Can't execute function Elm_Win:ELM_OBJ_WIN_SUB_ID_XWINDOW_GET (op 0x167) for class 'Elm_Entry'. Aborting.
solution:
check top object type before invoke elm_win_xwindow_get()/elm_wl_window_get().
if it's not a window, find window id by using ecore_evas APIs.
Fixes T1141
Test Plan: elementary_test -> entry -> close entry window -> check console
Reviewers: raster, seoz, uartie
Reviewed By: raster
CC: seoz
Maniphest Tasks: T1141
Differential Revision: https://phab.enlightenment.org/D684
Summary:
When window is rotated, the drag position is not updated.
It makes dnd cannot find out correct dropable objects.
This patch updates the drag position when window is rotated, so that dnd can find correct dropable objects.
@fix
P/S: This patch is originated from JackDanielZ (Daniel Zaoui). I update it to conform with lastest code.
Reviewers: JackDanielZ, raster
Reviewed By: JackDanielZ
CC: woohyun
Differential Revision: https://phab.enlightenment.org/D680
Summary:
Type matching for drag and drop targets does not consider drop target objects' types.
For example, we have drag object which provides image type and drop target object which only accepts text type.
For current code, in _x11_dnd_drop function, we only check savedtypes.types with _x11_atoms.
As result, we allows the image to be dropped into text. You can refer to the test in D617.
This path fixes this issue by matching drag object's type with drop targets' types to find suitable one.
@fix
Reviewers: raster, JackDanielZ, seoz, woohyun
Differential Revision: https://phab.enlightenment.org/D628
Summary:
When we start dragging, the type is always set to "text/uri-list" no matter the format type set by application.
This patch fixs this hard-coded type issue. It will set types corresponding to the format type set by application.
For example, if application set format as ELM_SEL_FORMAT_TEXT, it will set types UTF8_STRING, STRING, COMPOUND_TEXT, TEXT,
text/plain, text/plain;charset=utf-8.
Reviewers: JackDanielZ, raster
Reviewed By: raster
CC: woohyun, seoz
Differential Revision: https://phab.enlightenment.org/D546
ecore_animator_del, and ecore_job_del.
As all efl public free apis get null as valid parameter, we do not need
to check null. I also removed some null check for other free apis which
were right next to timer/animator/job del. After this job code got
cleaner.
this makes efl ignore certain env vars for thnigs and entirely removes
user modules (that no one ever used) etc. etc. to ensure that *IF* an
app is setuid, there isn't a priv escalation path that is easy.
from terminology into other elm apps (selection format issue).
Wayland has no concept of primary or secondary clipboards so we need
to test for selection == those due to some X apps.
*cough*terminology*cough* using only Primary or Secondary.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This is part of a larger copy/paste fix for efl/elm wayland.
Previously, copy/paste would not work via keyboard shortcuts. This
series of changes fixes that issue (wrt elm_entry anyway).
This also adds addtional copy/paste support (wrt efl wayland),
including support for various mime types (text/plain, elm-markup, and
html).
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This features permits execution of more than one set of functions during
DnD.
Delete function API has been modified to give the developer the
possibility to remove a specific set of functions.