fix: getScreenRect is empty

This commit is contained in:
rankun 2020-06-13 08:47:00 +08:00
commit 12f8813577

View file

@ -92,7 +92,7 @@ QRect VideoForm::getGrabCursorRect()
// high dpi support // high dpi support
rc.setTopLeft(rc.topLeft() * m_videoWidget->devicePixelRatio()); rc.setTopLeft(rc.topLeft() * m_videoWidget->devicePixelRatio());
rc.setBottomRight(rc.bottomRight() * m_videoWidget->devicePixelRatio()); rc.setBottomRight(rc.bottomRight() * m_videoWidget->devicePixelRatio());
rc.setX(rc.x() + 10); rc.setX(rc.x() + 10);
rc.setY(rc.y() + 10); rc.setY(rc.y() + 10);
rc.setWidth(rc.width() - 20); rc.setWidth(rc.width() - 20);
@ -111,7 +111,7 @@ QRect VideoForm::getGrabCursorRect()
// high dpi support -- taken from the WIN32 section and untested // high dpi support -- taken from the WIN32 section and untested
rc.setTopLeft(rc.topLeft() * m_videoWidget->devicePixelRatio()); rc.setTopLeft(rc.topLeft() * m_videoWidget->devicePixelRatio());
rc.setBottomRight(rc.bottomRight() * m_videoWidget->devicePixelRatio()); rc.setBottomRight(rc.bottomRight() * m_videoWidget->devicePixelRatio());
rc.setX(rc.x() + 10); rc.setX(rc.x() + 10);
rc.setY(rc.y() + 10); rc.setY(rc.y() + 10);
rc.setWidth(rc.width() - 20); rc.setWidth(rc.width() - 20);
@ -329,14 +329,16 @@ QRect VideoForm::getScreenRect()
if (!win) { if (!win) {
return screenRect; return screenRect;
} }
QWindow *winHandle = win->windowHandle(); QWindow *winHandle = win->windowHandle();
if (!winHandle) { QScreen *screen = QGuiApplication::primaryScreen();
return screenRect; if (winHandle) {
screen = winHandle->screen();
} }
QScreen *screen = winHandle->screen();
if (!screen) { if (!screen) {
return screenRect; return screenRect;
} }
screenRect = screen->availableGeometry(); screenRect = screen->availableGeometry();
return screenRect; return screenRect;
} }