From d182302cc7b203b117a0178d6f7b59165519eb43 Mon Sep 17 00:00:00 2001 From: zeljko Date: Tue, 29 May 2012 10:12:15 +0000 Subject: [PATCH] Qt: fixed wrong SetCapture() under win32. Problem was passed TQtWidget handle instead of underlaying widget winID() which is native handle. git-svn-id: trunk@37451 - --- lcl/interfaces/qt/qtwinapi.inc | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/lcl/interfaces/qt/qtwinapi.inc b/lcl/interfaces/qt/qtwinapi.inc index 9f6e3a2702..2e233815a8 100644 --- a/lcl/interfaces/qt/qtwinapi.inc +++ b/lcl/interfaces/qt/qtwinapi.inc @@ -2433,7 +2433,7 @@ begin if (w = nil) and (QApplication_mouseButtons() > 0) then w := QApplication_focusWidget() else - if w <> QWidget_mouseGrabber then + if (w <> QWidget_mouseGrabber) and (QWidget_mouseGrabber <> nil) then w := QWidget_mouseGrabber; {$ELSE} @@ -5014,8 +5014,7 @@ begin if Result then begin {$IFDEF MSWINDOWS} - if (w is TQtMainWindow) or - (w.ChildOfComplexWidget in [ccwCustomControl, ccwScrollingWinControl]) then + if (w is TQtMainWindow) then w.releaseMouse() else windows.ReleaseCapture; @@ -5450,11 +5449,7 @@ begin if IsValidHandle(AHandle) then begin {$IFDEF MSWINDOWS} - if TQtWidget(AHandle).ChildOfComplexWidget in - [ccwCustomControl, ccwScrollingWinControl] then - TQtWidget(AHandle).grabMouse() - else - Windows.SetCapture(AHandle); + Windows.SetCapture(QWidget_winID(TQtWidget(AHandle).Widget)); {$ELSE} TQtWidget(AHandle).grabMouse(); {$ENDIF}