|
From: | Willem Rein Oudshoorn |
Subject: | DnD improvements |
Date: | 30 Nov 2001 22:48:24 +0100 |
User-agent: | Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 |
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 <woudshoo@xs4all.nl> * 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 <woudshoo@xs4all.nl> * 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
[Prev in Thread] | Current Thread | [Next in Thread] |