In Elm_Cnp, a markup data preparer was missing, which resulted
in _x11_notify_handler_targets not requesting
"application/x-elementary-markup" (requested "UTF8_STRING" instead) when
trying to paste markup text from one entry to another (or itself).
Also, there was a missing handling in the selection data callback for
ELM_SEL_FORMAT_MARKUP data format.
This fixes issues like not being able to paste "item" formats to the
entry widget.
@fix
Summary:
For various angles 90, 180, 270, the calculation of dnd window position
is not proper causing window to be placed wrongly while dragging.
Signed-Off By: Kumar Navneet <k.navneet@samsung.com>
@fix
Test Plan:
Longpress and drag and drop in entry by placing device at various angles
90, 180 and 270.
Reviewers: woohyun, cedric, thiepha
Reviewed By: thiepha
Subscribers: navnbeet
Differential Revision: https://phab.enlightenment.org/D3188
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
The x, y coordinates in pos callback should be relative to
the top-left of the object.
This patch corrects the x,y coordinates and adds poscb to elementary test
to clearly show the bug case.
Test:
Run Genlist Dnd Dflt Anim with the change in this patch.
Drag an item to other genlist and see the printed out item, x, y.
@fix
Reviewers: JackDanielZ
Subscribers: seoz
Differential Revision: https://phab.enlightenment.org/D3063
performing strlen() on potential non-string data is not recommended and can
even lead to crashes. nul terminating non-string data is pointless and enables
bad application behavior such as calling strlen() on potentially non-string data
@fix
previously the drop format was chosen in a manner unrelated to what
the offered format was, leading to applications receiving either the correct
data with the wrong format, the wrong data with the wrong format, or
the wrong data with the correct format. by comparing the drop handler
types with the offered type and ensuring that there is a match, the
correctness of the format that the application receives is more reliable
@fix
Summary:
Drag win should use ELM_WIN_DND.
The drag win in _drag_start function was added when ELM_WIN_DND
was not supported. Now we have ELM_WIN_DND, drag win needs to
change to ELM_WIN_DND.
@fix
Reviewers: JackDanielZ, cedric, Hermet
Subscribers: seoz
Differential Revision: https://phab.enlightenment.org/D2784
Summary:
SEG_FAULT happens when the object which has selection is deleted,
and new selection is done at another object.
Reason: loss_cb is not removed when the object which has selection is deleted.
When new selection is set for new object, the loss_cb is called for deleted
object. As result, SEG_FAULT happens.
Test Plan:
Run elementary test, open Entry, do selection,
close Entry window, open Entry one more time, do selection.
Reviewers: JackDanielZ
Differential Revision: https://phab.enlightenment.org/D2763
- Reset loss cb after invocation as it is no more needed
- When selection is set, previous owner loss cb is invoked only
if the new owner and the previous one are different.
- TARGETS notifier is specific to CnP and should not be called for DnD
- On DnD (when drag starts) and on CnP, it doesn't make sense that the TARGETS
type are sent to the potential target. Only basic types should be sent.
Summary:
It could make crash when malloc is failed.
@fix
Reviewers: raster, woohyun, Hermet, JackDanielZ, thiepha
Subscribers: JackDanielZ
Differential Revision: https://phab.enlightenment.org/D2671
Each data notifier was preparing data and then invoking the user callbacks
for DnD or selection protocols.
Most of the notifiers code was handling the user callbacks invocation
and was the same for all of them.
This patch simplifies the notifiers by moving the user callbacks
invocation into a common place for all the types, i.e into the notify
dispatcher.
The notifiers prototype has been changed to suit the code modifications.
The object parameter in datacb must be the selection request object,
not the selection owner object.
This patch corrects that.
Test case: open two windows with entry, copy text from one entry in
first window, paste to entry in other window.
@fix
There is code in elm_cnp.c which is used to paste data to entry widget only.
This can cause error if widget is not entry.
This patch removes that code in elm_cnp.c and adds datacb to entry
to insert content to entry.
@fix
Summary:
It could make crash when strdup() is failed.
CID - 329115
@fix
Reviewers: raster, thiepha, woohyun, Hermet
Differential Revision: https://phab.enlightenment.org/D2673
Summary:
It could be failed to allocate memory for Anim_Icon.
CID - 337351
@fix
Reviewers: raster, thiepha, woohyun, Hermet
Differential Revision: https://phab.enlightenment.org/D2672
The problem occurs when no drop target below the mouse can receive the
data type provided and the mouse button is released. The mouse pointer
stays grabbed and this leads to issues for the next drags.
To solve this, on a bad drop, the destination window has to request
from the source window the end of the dnd.