Qt: dragimagelist should respect DoLock and DoUnlock parameters.

git-svn-id: trunk@22192 -
This commit is contained in:
zeljko 2009-10-15 10:13:06 +00:00
parent 4d8c56fde5
commit cef549858e
3 changed files with 20 additions and 3 deletions

View File

@ -67,6 +67,7 @@ type
FDockImage: QRubberBandH;
FDragImageList: QWidgetH;
FDragHotSpot: TPoint;
FDragImageLock: Boolean;
FCachedColors: Array[0..MAX_SYS_COLORS + 1] of PLongWord;
procedure ClearCachedColors;
procedure SetOverrideCursor(const AValue: TObject);
@ -133,6 +134,7 @@ type
procedure InitStockItems; virtual;
procedure FreeStockItems; virtual;
property DragImageLock: Boolean read FDragImageLock write FDragImageLock;
property OverrideCursor: TObject read FOverrideCursor write SetOverrideCursor;
{$I qtwinapih.inc}

View File

@ -31,6 +31,7 @@ begin
QtWidgetSet := Self;
ClearCachedColors;
FDockImage := nil;
FDragImageLock := False;
end;
{------------------------------------------------------------------------------

View File

@ -672,14 +672,28 @@ class function TQtWSDragImageList.HideDragImage(
const ADragImageList: TDragImageList; ALockedWindow: HWND; DoUnLock: Boolean
): Boolean;
begin
Result := True;
if DoUnlock then
begin
TQtWidgetset(Widgetset).DragImageLock := False;
Result := TQtWidgetset(Widgetset).DragImageList_SetVisible(False);
end;
end;
class function TQtWSDragImageList.ShowDragImage(
const ADragImageList: TDragImageList; ALockedWindow: HWND; X, Y: Integer;
DoLock: Boolean): Boolean;
begin
Result := TQtWidgetset(Widgetset).DragImageLock;
if not DoLock then
begin
if not Result then
Result := TQtWidgetset(Widgetset).DragImageList_SetVisible(True);
end else
begin
TQtWidgetset(Widgetset).DragImageLock := True;
Result := TQtWidgetset(Widgetset).DragImageList_DragMove(X, Y) and TQtWidgetset(Widgetset).DragImageList_SetVisible(True);
end;
end;
end.