mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-30 19:30:38 +00:00
DnD fixes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@17994 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
914ac48552
commit
060c18ec01
3 changed files with 45 additions and 47 deletions
|
@ -3131,15 +3131,19 @@ Code shared with [NSPanel -sendEvent:], remember to update both places.
|
|||
#define GSPerformDragSelector(view, sel, info, action) \
|
||||
if ([view window] == self) \
|
||||
{ \
|
||||
id target; \
|
||||
id target = view; \
|
||||
\
|
||||
if (view == _contentView && _delegate != nil) \
|
||||
if (target == _wv) \
|
||||
{ \
|
||||
target = _delegate; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
target= view; \
|
||||
if (_delegate != nil \
|
||||
&& [_delegate respondsToSelector: sel] == YES) \
|
||||
{ \
|
||||
target = _delegate; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
target = self; \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
if ([target respondsToSelector: sel]) \
|
||||
|
@ -3152,15 +3156,19 @@ Code shared with [NSPanel -sendEvent:], remember to update both places.
|
|||
#define GSPerformVoidDragSelector(view, sel, info) \
|
||||
if ([view window] == self) \
|
||||
{ \
|
||||
id target; \
|
||||
id target = view; \
|
||||
\
|
||||
if (view == _contentView && _delegate) \
|
||||
if (target == _wv) \
|
||||
{ \
|
||||
target = _delegate; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
target= view; \
|
||||
if (_delegate != nil \
|
||||
&& [_delegate respondsToSelector: sel] == YES) \
|
||||
{ \
|
||||
target = _delegate; \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
target = self; \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
if ([target respondsToSelector: sel]) \
|
||||
|
@ -3175,9 +3183,14 @@ Code shared with [NSPanel -sendEvent:], remember to update both places.
|
|||
BOOL isEntry;
|
||||
|
||||
v = [_contentView hitTest: [theEvent locationInWindow]];
|
||||
// FIXME ... check whether drag shoulkd propogate up hierarchy
|
||||
while (v != nil && ((NSViewPtr)v)->_rFlags.has_draginfo == 0)
|
||||
{
|
||||
v = [v superview];
|
||||
}
|
||||
if (v == nil)
|
||||
{
|
||||
v = _contentView;
|
||||
v = _wv;
|
||||
}
|
||||
dragInfo = [GSServerForWindow(self) dragInfo];
|
||||
if (_lastDragView == v)
|
||||
|
@ -3195,7 +3208,7 @@ Code shared with [NSPanel -sendEvent:], remember to update both places.
|
|||
}
|
||||
ASSIGN(_lastDragView, v);
|
||||
_f.accepts_drag = GSViewAcceptsDrag(v, dragInfo);
|
||||
action = NSDragOperationNone;
|
||||
action = NSDragOperationNone;
|
||||
}
|
||||
if (_f.accepts_drag)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue