Here are some improvements on DnD. Improvements are
* Cursor changes on type of DnD operation
* Key modifiers work during DnD
* Should work with all window managers
Things still to do:
* Fix cursor setting bug with WindowMaker
* Work together with other DnD aware applications.
* Fix bug in NSColorWell usage of DnD
Although the cursor changes during DnD it does not always
work due to a bug in the cursor setting code.
It is a mysterious bug that as far as I can see
only happens when there is a NSPanel present.
So the cursor changing code does not have a visible
effect yet in GWorkspace and Gorm. The NSColorWell
bug prevents the correct cursor display.
What is included:
* ChangeLog for xgps
* ChangeLog for gui
* two new files:
- XGDragView.m
- XGDragView.h
which should be put in xgps/Source/SharedX
* three new Images:
- common_noCursor.tiff
- common_linkCursor.tiff
- common_copyCursor.tiff
which should be put in gui/Images
* diff for xgps
* diff for gui
I hope I have not forgotten anything, and if there are any
questions feel free to ask.
Wim Oudshoorn.
---------[ Change Log GUI ]------------------------
2001-11-30 Willem Rein Oudshoorn <[EMAIL PROTECTED]>
* Source/NSImage.m ([NSImage -compositeToPoint:fromRect:operation:]):
cached images did not draw background, fixed.
* Source/NSCursor.m (backgroundColorHint:): added FIXME comment
* Images/GNUmakefile (IMAGE_FILES): added DnD cursors
* Headers/gnustep/gui/NSBitmapImageRep.h (NSImageRep): removed unused instance
variable
--------[ Change Log XGPS ]-------------------------
2001-11-30 Willem Rein Oudshoorn <[EMAIL PROTECTED]>
* Source/SharedX/XGDragView.m: All DnD code that used to reside in
XGContextEvent.m
([XGDragView +sharedDragView]): use GSEnsureDndIsInitialized
([XGDragView -_sendLocalEvent:action:position:timestamp:toWindow:]): fixed
target bug
([XGDragView -_setupWindow:dragStart]): better, more comprehensive
initialization
(GSEnsureDndIsInitialized): New function
([XGDragView -_updateOperationMask:theEvent]): new method
([XGDragView -_handleDrag:]): put loop in own method, cleaned up and bug fixes
([XGDragView -_handleEventDuringDragging:theEvent]): factored out from
_handleDrag, mostly rewritten
([XGDragView -_updateAndMoveImageToCorrectPosition]): facctored out from
_handleDrag, rewritten
([XGDragView -_xWindowAcceptingDnDDescendentOf:parent:x:y]): new method
([XGDragView -_xWindowAcceptingDnDunderX:x:y]): new method, replacement of
_findXWindow
(_findXWindow): superseded by -[XGDragView _xWindowAcceptingDnDunderX:Y:]
([XGContext -_resetDragTypesForWindow:]): use GSEnsureDndIsInitialized
* Source/SharedX/XGContextEvent.m (pasteboardTypeForMimeType): Removed, unused
and non-working function
* Tools/xpbs.m ([XPbOwner -xSelectionNotify:]): removed unused variable
([XPbOwner -xSelectionRequest:]): removed unused variables.
* Tools/gpbs.m (ihandler): changed signature to avoid warning
* Source/SharedX/XGContextWindow.m (checkWindowManager): removed global static
BOOL windowMaker and
made it local.
(xgps_cursor_mask): got rid of floats
(xgps_cursor_image): got rid of floats
* Source/SharedX/XGContextEvent.m: removed emacs C++ mode indication,
changed include file section, moved DnD code to XGDragView.[h|m]
([XGContext -receivedEvent:type:extra:forMode:]): dndStatus handling checks if
targets accepts Dnd
* Source/SharedX/XGBitmapImageRep.m ([NSBitmapImageRep -xPixmapMask]):
rewritten
* Source/XGGState.m ([XGGState
-_compositeGState:sourcefromRect:fromRecttoPoint:toPointop:op]):
added check for null image
* Source/XGFont.m ([XGFontInfo -setupAttributes]): fixed forgotten return value
* Source/GNUmakefile (libgnustep-xgps_OBJC_FILES): added XGDragView.m
gui-diff
Description: GUI-diff
dnd-diff.gz
Description: XGPS-diff
new-DnD-files.tar.gz
Description: new-files-in-Source-SharedX
cursors.tar.gz
Description: new-images
