Qt: fixed bug where fsStayOnTop forms after hide cannot be shown anymore (visible in window list but invisible on screen).

git-svn-id: trunk@26623 -
This commit is contained in:
zeljko 2010-07-13 14:11:17 +00:00
parent feaf0e30be
commit 32353ca72a

View File

@ -347,6 +347,7 @@ var
R: TRect;
ActiveWin: HWND;
W: QWidgetH;
Flags: Cardinal;
begin
if not WSCheckHandleAllocated(AWinControl, 'ShowHide') then
Exit;
@ -411,6 +412,25 @@ begin
end;
Widget.BeginUpdate;
if AWinControl.HandleObjectShouldBeVisible
and (TCustomForm(AWinControl).FormStyle in fsAllStayOnTop) then
begin
Flags := Widget.windowFlags;
if (Flags and QtWindowStaysOnTopHint = 0) then
begin
Flags := Flags or QtWindowStaysOnTopHint;
Widget.setWindowFlags(Flags);
end;
end else
begin
if (TCustomForm(AWinControl).FormStyle in fsAllStayOnTop)
and not (csDestroying in AWinControl.ComponentState) then
begin
Flags := Widget.windowFlags;
Flags := Flags and not QtWindowStaysOnTopHint;
Widget.setWindowFlags(Flags);
end;
end;
Widget.setVisible(AWinControl.HandleObjectShouldBeVisible);
Widget.EndUpdate;
{$IFDEF HASX11}