summaryrefslogtreecommitdiff
path: root/src/corelib/x11
AgeCommit message (Collapse)Author
2010-11-18This X11 work-around doesn't seem to be needed anymore.Graeme Geldenhuys
Now that the Align issues have been resolved, this work-around is not needed any more. Commented, it now produces the exact same events as under Windows too. This is good, obviously. :)
2010-11-12X11: extra checks and precautionsGraeme Geldenhuys
2010-11-12Added "call stack debugging" for internal use.Graeme Geldenhuys
It's disabled by default. Enabling can be done via project level or inside each unit at the beginning of such units.
2010-11-12fpgApplication.CreateForm implementation has changed, but end result is the sameGraeme Geldenhuys
Apparently it is good to allocate a instance, without calling the constructor. I'm not exactly sure why, but it also makes supporting FPC 2.5.1 a lot less messy (no casting required).
2010-11-11Bumped the version number so it's newer than the last release.Graeme Geldenhuys
2010-11-08Revert "Merge branch 'master' of ↵Graeme Geldenhuys
ssh://fpgui.git.sourceforge.net/gitroot/fpgui/fpgui" Andrew is finding is training wheels with git. This reverts commit e320dfae6add39c66ea554dbb161a844ee06db4d, reversing changes made to 735aec8207036adb17f2174ffcb9056bee712ed3.
2010-11-05Merge branch 'master' of ssh://fpgui.git.sourceforge.net/gitroot/fpgui/fpguiAndrew Haines
2010-10-29Removed the stray writeln() statement.Graeme Geldenhuys
2010-10-29Updated X11 code due to property changes in TfpgMimeDataItem class.Graeme Geldenhuys
2010-10-28TfpgWindowBase introduced a new abstract methodGraeme Geldenhuys
* This abstract method is called from TfpgWidget's AcceptDrops setter function * Template implementation in X11 * Actual implementation in GDI
2010-10-28extra error checking in mimelist DND operationGraeme Geldenhuys
2010-10-28More code comments and DNDDebug entries.Graeme Geldenhuys
2010-10-28bugfix: TfpgX11Drag.SendDNDDrop did not always process correctly.Graeme Geldenhuys
Even though this method was called, it should have checked the FDropAccepted variable which did didn't. Now it correctly conforms to the XDND spec. Due to the new behaviour we also have to make sure we free the TfpgDrag instance when the drop is not accepted.
2010-10-28Bugfix: TfpgX11Application.HandleDNDposition's XdndStatus message sent did ↵Graeme Geldenhuys
not correctly set the ActionType parameter if the drag was not accepted.
2010-10-28OnDragLeave event now has the Sender parameter set, and points to the target ↵Graeme Geldenhuys
component
2010-10-27X11 DND: We never checked if drop was really accepted in HandleDNDDropGraeme Geldenhuys
If the Drop occured, but AcceptDrops = False, we must not do any Selections conversions. This is now so. We must still send the XdndFinished message though, so data object can be freed, and to simply comply with XDND protocol. We now correctly set the Accept or Decine status in the XDNDFinished message.
2010-10-27Renamed TfpgWindowBase.DoEnabledDrops() to DoDNDEnabled()Graeme Geldenhuys
This will hopefully reduce the confusion between the other TfpgWidget.AcceptDrops property - they had too similar names. * Applied rename changes to all other descendants too * Updated DND demo project
2010-10-27X11 DND: Incorrectly assumed there will always be a 'text/plain' mime-typeGraeme Geldenhuys
If the developer did not set the AMimeChoice in OnDragEnter, then the incorrect default could have been used. By default it used to deflaut to 'text/plain' and never actually checked the mime-type list to see if that exists. :-( Now the default AMimeChoice is set the the first mime-type in the mime-type list. This keeps with the methodology that the mime-type list must be from most specific to least specific mime types.
2010-10-26X11: in HandleDNDposition() we never recursed through all childrenGraeme Geldenhuys
The bug was that it only checked for the immediate children of the toplevel window. It never recursed through all levels of children finding the correct child the mouse cursor is over. This is now fixed. This also allows embedded frames or forms to work with DND.
2010-10-26X11: make sure that AcceptDrops are True before we fire OnDragDropGraeme Geldenhuys
There was a bug where if the component had a OnDragDrop event handler and AcceptDrops was False, it still triggered the event. Not any more.
2010-10-26X11: improved DND debug messagesGraeme Geldenhuys
I also made sure that all writeln() statements are wrapped in IFDEF's.
2010-10-21GDI: Removed definition of MW_MOUSEWHEEL. it already exists in FPC.Graeme Geldenhuys
2010-10-04X11: extra failsafe before posting FPGM_RESIZE event.Graeme Geldenhuys
2010-10-03X11: fake a Resize event after the window is mapped (shown).Graeme Geldenhuys
X11 seems too efficient, so one the initial mapping of the window to the display, no resize event needs to occur, and it doesn't. This screws with Align property which expects as Resize event (like Windows GDI). So we fake a resize event.
2010-09-23X11: disable DNDDebug define to hide debug informationGraeme Geldenhuys
2010-09-23DND: > 3 data types are now supported.Graeme Geldenhuys
* Reorganized some code * > 3 data types are now supported. XdndTypeList is now correctly set for the source window.
2010-09-23DND: clean-up after we are done.Graeme Geldenhuys
2010-09-23X11 DND: a variant is now passed around and used in OnDragDrop event.Graeme Geldenhuys
2010-09-23HandleSelectionRequest now correctly returns 'html' or 'plain text' data.Graeme Geldenhuys
2010-09-23simple code formatting improvementGraeme Geldenhuys
2010-09-23bugfix: SendDNDEnter now correctly sets first three supported data typesGraeme Geldenhuys
2010-09-23X11: reset the mouse cursor after a DND drop action is completeGraeme Geldenhuys
2010-09-23X11 correctly set mouse cursor for mcDefault and mcArrowGraeme Geldenhuys
2010-09-23confirming XSetSelectionOwner succeeded as per ICCCM specsGraeme Geldenhuys
2010-09-23Two new MouseCursor shapes added. mcDrag & mcNoDropGraeme Geldenhuys
* X11 DND now changes the mouse cursor depending if a drop target is available or not
2010-09-23IsDNDAware never actually returned True before. Oops!Graeme Geldenhuys
2010-09-23X11: FindWindow - renamed variable to make it easier to read and understandGraeme Geldenhuys
2010-09-23X11: Only send XdndLeave event if we actually had a FLastTarget windowGraeme Geldenhuys
2010-09-23X11: only delegate MotionNotify event to Drag object if it's actually a dragGraeme Geldenhuys
2010-09-23bugfix: I broke the array types earlier. This restores them to what they were.Graeme Geldenhuys
2010-09-23X11: delegate the DND events to the Drag object.Graeme Geldenhuys
2010-09-23fix the type of XDND implemented version fpGUI supportsGraeme Geldenhuys
2010-09-23implement the higher level TfpgDrag and TfpgMimeData classes.Graeme Geldenhuys
These are independant of the backend - they contain common code and interface. TfpgDrag will be used to initiate a drag action (acting as the source of a drag), and contain the data available for that drag action.
2010-09-23X11: Two new DND helper functions introducedGraeme Geldenhuys
* IsTopLevel returns a boolean to say if a specific window is the top level window, and not some subwindow. * FindWindow tries to find the window at root coordinates x,y. we will use this to find the drop target.
2010-09-23X11: introduced a TfpgX11Drag class with handles most of the XDND messagesGraeme Geldenhuys
We offload most of the DND message processing to the TfpgX11Drag class. This helps keep the functionality with a clean design.
2010-09-23Replaced magic numbers with variable names.Graeme Geldenhuys
Now we actually know the meaning of those parameters.
2010-09-23Move array types to interface section as it's required in other interface ↵Graeme Geldenhuys
classes.
2010-09-23Adds OnDragDrop event to TfpgWidget.Graeme Geldenhuys
For now we hard-code the data type as TfpgString. Later this will change.
2010-09-23Adds OnDragExit event to TfpgWidget.Graeme Geldenhuys
2010-09-23Reworked the HandleDNDposition() methodGraeme Geldenhuys
* Events are now only fired when the drop is truly accepted, not just because it has AcceptDrops and OnEnterDrag event handlers. Event handler needs to explicitly set Accept = True. * Default mime type used is 'text/plain' * Default drop action is daCopy (or XdndActionCopy)