qt: fix TMonitor support (tested on 2 monitor system)

git-svn-id: trunk@19247 -
This commit is contained in:
paul 2009-04-06 12:22:48 +00:00
parent 9ca2fd903b
commit a7562d799f

View File

@ -1332,7 +1332,7 @@ var
begin
Desktop := QApplication_desktop();
for i := 0 to QDesktopWidget_numScreens(Desktop) - 1 do
lpfnEnum(HMONITOR(QDesktopWidget_screen(Desktop, i)), 0, nil, dwData);
lpfnEnum(i, 0, nil, dwData);
Result := True;
end;
@ -2242,28 +2242,18 @@ end;
function TQtWidgetSet.GetMonitorInfo(Monitor: HMONITOR; lpmi: PMonitorInfo): Boolean;
var
Desktop: QDesktopWidgetH;
i: integer;
Screen: QWidgetH;
begin
Result := (lpmi <> nil) and (lpmi^.cbSize >= SizeOf(TMonitorInfo));
if not Result then Exit;
Result := False;
Desktop := QApplication_desktop();
for i := 0 to QDesktopWidget_numScreens(Desktop) - 1 do
begin
Screen := QDesktopWidget_screen(Desktop, i);
if HMONITOR(Screen) = Monitor then
begin
QDesktopWidget_screenGeometry(Desktop, @lpmi^.rcMonitor, i);
QDesktopWidget_availableGeometry(Desktop, @lpmi^.rcWork, i);
if QDesktopWidget_primaryScreen(Desktop) = i then
lpmi^.dwFlags := MONITORINFOF_PRIMARY
else
lpmi^.dwFlags := 0;
Result := True;
break;
end;
end;
Result := (Monitor >= 0) and (Monitor < QDesktopWidget_numScreens(Desktop));
if not Result then Exit;
QDesktopWidget_screenGeometry(Desktop, @lpmi^.rcMonitor, Monitor);
QDesktopWidget_availableGeometry(Desktop, @lpmi^.rcWork, Monitor);
if QDesktopWidget_primaryScreen(Desktop) = Monitor then
lpmi^.dwFlags := MONITORINFOF_PRIMARY
else
lpmi^.dwFlags := 0;
end;
{------------------------------------------------------------------------------