Compare commits

...

3 commits

2 changed files with 29 additions and 0 deletions

View file

@ -302,6 +302,8 @@ void OBSProjector::mousePressEvent(QMouseEvent *event)
&OBSProjector::EscapeTriggered);
popup.exec(QCursor::pos());
} else if (event->button() == Qt::LeftButton) {
onMousePressMouseOffset = event->globalPosition();
// Only MultiView projectors handle left click
if (this->type != ProjectorType::Multiview)
return;
@ -321,6 +323,28 @@ void OBSProjector::mousePressEvent(QMouseEvent *event)
}
}
void OBSProjector::mouseMoveEvent(QMouseEvent *event)
{
if (!isFullScreen() && (event->buttons() & Qt::LeftButton)) {
QPointF diff =
event->globalPosition() - onMousePressMouseOffset;
window()->move(window()->pos() + diff.toPoint());
onMousePressMouseOffset = event->globalPosition();
}
}
void OBSProjector::enterEvent(QEnterEvent *)
{
if (!isFullScreen()) {
setCursor(Qt::SizeAllCursor);
}
}
void OBSProjector::leaveEvent(QEvent *)
{
setCursor(Qt::ArrowCursor);
}
void OBSProjector::EscapeTriggered()
{
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());

View file

@ -27,7 +27,10 @@ private:
static void OBSSourceDestroyed(void *data, calldata_t *params);
void mousePressEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *event) override;
void mouseDoubleClickEvent(QMouseEvent *event) override;
void enterEvent(QEnterEvent *) override;
void leaveEvent(QEvent *) override;
void closeEvent(QCloseEvent *event) override;
bool isAlwaysOnTop;
@ -47,6 +50,8 @@ private:
QScreen *screen = nullptr;
QPointF onMousePressMouseOffset;
private slots:
void EscapeTriggered();
void OpenFullScreenProjector();