Resize preview when OBS windows are moved between monitors

This should fix the previews in most cases when moving between monitors
with differing pixel ratios
This commit is contained in:
Palana 2014-04-16 22:35:01 +02:00
parent b0237fd581
commit 9894bb4357
2 changed files with 19 additions and 0 deletions

View file

@ -37,6 +37,9 @@
#include <sstream>
#include <QScreen>
#include <QWindow>
using namespace std;
Q_DECLARE_METATYPE(OBSScene);
@ -53,6 +56,13 @@ OBSBasic::OBSBasic(QWidget *parent)
ui (new Ui::OBSBasic)
{
ui->setupUi(this);
connect(windowHandle(), &QWindow::screenChanged, [this]() {
struct obs_video_info ovi;
if (obs_get_video_info(&ovi))
ResizePreview(ovi.base_width, ovi.base_height);
});
}
static inline bool HasAudioDevices(const char *source_id)

View file

@ -21,6 +21,9 @@
#include "qt-wrappers.hpp"
#include "display-helpers.hpp"
#include <QScreen>
#include <QWindow>
using namespace std;
OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
@ -46,6 +49,12 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
layout()->addWidget(view);
layout()->setAlignment(view, Qt::AlignRight);
view->show();
connect(windowHandle(), &QWindow::screenChanged, [this]() {
if (resizeTimer)
killTimer(resizeTimer);
resizeTimer = startTimer(100);
});
}
void OBSBasicProperties::SourceRemoved(void *data, calldata_t params)