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.
This feature is essential if two overlapping widgets can receive drop
information.
Until now, if two widgets (e.g background and button) were added as drop
targets, pointing to common coordinates would have given priority to the
first inserted as drop target.
Now, it will determine which widget is supposed to receive this drop
target by using the same mechanism as used for mouse move, i.e by
walking on the objects tree whose pointer passes through.
A test has been added (Overlapping DnD) to show how this feature can be
used. You can drop in bg, box and button.