0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 04:42:18 +02:00

UI: Fix full screen projector on screens that have reserved areas

QScreen::availableGeometry() does not return the full screen size on X11
if areas of the screen are reserved by the window manager. In this case
the full screen projector does not cover the whole screen. Using
QScreen::geometry() instead fixes this issue.
This commit is contained in:
Christoph Hohmann 2016-10-20 15:29:43 +02:00
parent 83fa6e728a
commit 623c9dc41a
3 changed files with 4 additions and 4 deletions

View File

@ -141,7 +141,7 @@ OBSBasic::OBSBasic(QWidget *parent)
QRect windowGeometry = normalGeometry(); QRect windowGeometry = normalGeometry();
if (!WindowPositionValid(windowGeometry)) { if (!WindowPositionValid(windowGeometry)) {
QRect rect = App()->desktop()->availableGeometry(); QRect rect = App()->desktop()->geometry();
setGeometry(QStyle::alignedRect( setGeometry(QStyle::alignedRect(
Qt::LeftToRight, Qt::LeftToRight,
Qt::AlignCenter, Qt::AlignCenter,
@ -2774,7 +2774,7 @@ static void AddProjectorMenuMonitors(QMenu *parent, QObject *target,
QAction *action; QAction *action;
QList<QScreen*> screens = QGuiApplication::screens(); QList<QScreen*> screens = QGuiApplication::screens();
for (int i = 0; i < screens.size(); i++) { for (int i = 0; i < screens.size(); i++) {
QRect screenGeometry = screens[i]->availableGeometry(); QRect screenGeometry = screens[i]->geometry();
QString str = QString("%1 %2: %3x%4 @ %5,%6"). QString str = QString("%1 %2: %3x%4 @ %5,%6").
arg(QTStr("Display"), arg(QTStr("Display"),
QString::number(i), QString::number(i),

View File

@ -1101,7 +1101,7 @@ void OBSBasicSettings::LoadResolutionLists()
ui->baseResolution->clear(); ui->baseResolution->clear();
for (QScreen* screen: QGuiApplication::screens()) { for (QScreen* screen: QGuiApplication::screens()) {
QSize as = screen->availableSize(); QSize as = screen->size();
string res = ResString(as.width(), as.height()); string res = ResString(as.width(), as.height());
ui->baseResolution->addItem(res.c_str()); ui->baseResolution->addItem(res.c_str());
} }

View File

@ -50,7 +50,7 @@ OBSProjector::~OBSProjector()
void OBSProjector::Init(int monitor) void OBSProjector::Init(int monitor)
{ {
QScreen *screen = QGuiApplication::screens()[monitor]; QScreen *screen = QGuiApplication::screens()[monitor];
setGeometry(screen->availableGeometry()); setGeometry(screen->geometry());
bool alwaysOnTop = config_get_bool(GetGlobalConfig(), bool alwaysOnTop = config_get_bool(GetGlobalConfig(),
"BasicWindow", "ProjectorAlwaysOnTop"); "BasicWindow", "ProjectorAlwaysOnTop");