Qt: do not report stalled focus changes if widget is invisible. issue #27960

git-svn-id: trunk@48840 -
This commit is contained in:
zeljko 2015-04-25 07:03:59 +00:00
parent 228d2c547b
commit 990754d7c0
2 changed files with 9 additions and 3 deletions

View File

@ -392,7 +392,7 @@ begin
begin
if not (Obj is TQtWidget) then
raise Exception.Create('QtObjectFromWidgetH: QObject_property returned '
+ 'a variant which is not TQtWidget but ' + dbgsName(Obj));
+ 'a variant which is not TQtWidget ' + dbgHex(PtrUInt(Obj)));
QtWg := TQtWidget(Obj);
//Write('Converted successfully, Control=');
if QtWg<>nil then

View File

@ -1005,8 +1005,14 @@ begin
{$IF DEFINED(VerboseFocus) OR DEFINED(DebugQtFocus)}
WriteLn('> ** TQtWidgetSet.FocusChanged: old: ', dbgHex(PtrUInt(aold)), ' new: ', dbgHex(PtrUInt(anew)));
{$ENDIF}
OldWidget := GetFirstQtObjectFromWidgetH(aold);
NewWidget := GetFirstQtObjectFromWidgetH(anew);
if (AOld <> nil) and not QWidget_isVisible(AOld) then
OldWidget := nil
else
OldWidget := GetFirstQtObjectFromWidgetH(aold);
if (ANew <> nil) and not QWidget_isVisible(ANew) then
NewWidget := nil
else
NewWidget := GetFirstQtObjectFromWidgetH(anew);
if OldWidget = NewWidget then
begin