From 18edbe16d8c7cc4988e5875bb7658f9815ad8d50 Mon Sep 17 00:00:00 2001 From: paul Date: Tue, 1 Apr 2008 09:14:35 +0000 Subject: [PATCH] qt: fix getClientBounds return (left, top was always zero) - part of 0011020 git-svn-id: trunk@14711 - --- lcl/interfaces/qt/qtwidgets.pas | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lcl/interfaces/qt/qtwidgets.pas b/lcl/interfaces/qt/qtwidgets.pas index dfbbd0dad0..dd453fe14c 100644 --- a/lcl/interfaces/qt/qtwidgets.pas +++ b/lcl/interfaces/qt/qtwidgets.pas @@ -2508,8 +2508,18 @@ begin end; function TQtWidget.getClientBounds: TRect; +var + parent: QWidgetH; + Pt: TQtPoint; begin - QWidget_contentsRect(Widget, @Result); + QWidget_contentsRect(Widget, @Result); // returns with zero offset + parent := QWidget_parentWidget(Widget); // get offset from parent + if (parent <> nil) and (Result.Left = 0) and (Result.Top = 0) then + begin + Pt := QtPoint(0, 0); + QWidget_mapToParent(Widget, @Pt, @Pt); + OffsetRect(Result, Pt.x, Pt.y); + end; end; procedure TQtWidget.grabMouse;