mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-10 19:18:14 +02:00
Qt: dragimagelist should respect DoLock and DoUnlock parameters.
git-svn-id: trunk@22192 -
This commit is contained in:
parent
4d8c56fde5
commit
cef549858e
@ -67,6 +67,7 @@ type
|
|||||||
FDockImage: QRubberBandH;
|
FDockImage: QRubberBandH;
|
||||||
FDragImageList: QWidgetH;
|
FDragImageList: QWidgetH;
|
||||||
FDragHotSpot: TPoint;
|
FDragHotSpot: TPoint;
|
||||||
|
FDragImageLock: Boolean;
|
||||||
FCachedColors: Array[0..MAX_SYS_COLORS + 1] of PLongWord;
|
FCachedColors: Array[0..MAX_SYS_COLORS + 1] of PLongWord;
|
||||||
procedure ClearCachedColors;
|
procedure ClearCachedColors;
|
||||||
procedure SetOverrideCursor(const AValue: TObject);
|
procedure SetOverrideCursor(const AValue: TObject);
|
||||||
@ -132,7 +133,8 @@ type
|
|||||||
procedure SetQtDefaultDC(Handle: HDC); virtual;
|
procedure SetQtDefaultDC(Handle: HDC); virtual;
|
||||||
procedure InitStockItems; virtual;
|
procedure InitStockItems; virtual;
|
||||||
procedure FreeStockItems; virtual;
|
procedure FreeStockItems; virtual;
|
||||||
|
|
||||||
|
property DragImageLock: Boolean read FDragImageLock write FDragImageLock;
|
||||||
property OverrideCursor: TObject read FOverrideCursor write SetOverrideCursor;
|
property OverrideCursor: TObject read FOverrideCursor write SetOverrideCursor;
|
||||||
|
|
||||||
{$I qtwinapih.inc}
|
{$I qtwinapih.inc}
|
||||||
|
@ -31,6 +31,7 @@ begin
|
|||||||
QtWidgetSet := Self;
|
QtWidgetSet := Self;
|
||||||
ClearCachedColors;
|
ClearCachedColors;
|
||||||
FDockImage := nil;
|
FDockImage := nil;
|
||||||
|
FDragImageLock := False;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
|
@ -672,14 +672,28 @@ class function TQtWSDragImageList.HideDragImage(
|
|||||||
const ADragImageList: TDragImageList; ALockedWindow: HWND; DoUnLock: Boolean
|
const ADragImageList: TDragImageList; ALockedWindow: HWND; DoUnLock: Boolean
|
||||||
): Boolean;
|
): Boolean;
|
||||||
begin
|
begin
|
||||||
Result := TQtWidgetset(Widgetset).DragImageList_SetVisible(False);
|
Result := True;
|
||||||
|
if DoUnlock then
|
||||||
|
begin
|
||||||
|
TQtWidgetset(Widgetset).DragImageLock := False;
|
||||||
|
Result := TQtWidgetset(Widgetset).DragImageList_SetVisible(False);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
class function TQtWSDragImageList.ShowDragImage(
|
class function TQtWSDragImageList.ShowDragImage(
|
||||||
const ADragImageList: TDragImageList; ALockedWindow: HWND; X, Y: Integer;
|
const ADragImageList: TDragImageList; ALockedWindow: HWND; X, Y: Integer;
|
||||||
DoLock: Boolean): Boolean;
|
DoLock: Boolean): Boolean;
|
||||||
begin
|
begin
|
||||||
Result := TQtWidgetset(Widgetset).DragImageList_DragMove(X, Y) and TQtWidgetset(Widgetset).DragImageList_SetVisible(True);
|
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;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
Loading…
Reference in New Issue
Block a user