windows.dragdrop-listener: optimize the DragEnter implementation
parent
db24910497
commit
52b6cee8e4
|
@ -36,6 +36,9 @@ IN: windows.dragdrop-listener
|
||||||
: filenames-from-data-object ( data-object -- filenames )
|
: filenames-from-data-object ( data-object -- filenames )
|
||||||
\ filenames-from-hdrop swap handle-data-object ;
|
\ filenames-from-hdrop swap handle-data-object ;
|
||||||
|
|
||||||
|
: filecount-from-data-object ( data-object -- n )
|
||||||
|
\ filecount-from-hdrop swap handle-data-object ;
|
||||||
|
|
||||||
TUPLE: listener-dragdrop hWnd last-drop-effect ;
|
TUPLE: listener-dragdrop hWnd last-drop-effect ;
|
||||||
|
|
||||||
: <listener-dragdrop> ( hWnd -- object )
|
: <listener-dragdrop> ( hWnd -- object )
|
||||||
|
@ -46,9 +49,8 @@ SYMBOL: +listener-dragdrop-wrapper+
|
||||||
{ IDropTarget {
|
{ IDropTarget {
|
||||||
[ ! HRESULT DragEnter ( IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect )
|
[ ! HRESULT DragEnter ( IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect )
|
||||||
[
|
[
|
||||||
2drop
|
2drop filecount-from-data-object
|
||||||
filenames-from-data-object
|
1 = DROPEFFECT_COPY DROPEFFECT_NONE ?
|
||||||
length 1 = [ DROPEFFECT_COPY ] [ DROPEFFECT_NONE ] if
|
|
||||||
dup
|
dup
|
||||||
] dip 0 set-alien-unsigned-4
|
] dip 0 set-alien-unsigned-4
|
||||||
>>last-drop-effect drop
|
>>last-drop-effect drop
|
||||||
|
|
Loading…
Reference in New Issue