bug-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

DnD improvements


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

Attachment: gui-diff
Description: GUI-diff

Attachment: dnd-diff.gz
Description: XGPS-diff

Attachment: new-DnD-files.tar.gz
Description: new-files-in-Source-SharedX

Attachment: cursors.tar.gz
Description: new-images


reply via email to

[Prev in Thread] Current Thread [Next in Thread]