Skip to content

Commit

Permalink
UI: Support dragging projectors by clicking within
Browse files Browse the repository at this point in the history
  • Loading branch information
fsworld009 committed Dec 1, 2022
1 parent c7e02bc commit 45f0b10
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
20 changes: 19 additions & 1 deletion UI/window-projector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -319,8 +319,10 @@ void OBSProjector::mousePressEvent(QMouseEvent *event)
if (this->type != ProjectorType::Multiview)
return;

if (!mouseSwitching)
if (!mouseSwitching) {
mpos = event->pos();
return;
}

QPoint pos = event->pos();
OBSSource src =
Expand All @@ -334,6 +336,22 @@ void OBSProjector::mousePressEvent(QMouseEvent *event)
}
}

void OBSProjector::mouseMoveEvent(QMouseEvent *event)
{
if (event->buttons() & Qt::LeftButton) {
QPoint diff = event->pos() - mpos;
QPoint newpos = this->pos() + diff;

setCursor(Qt::SizeAllCursor);
this->move(newpos);
}
}

void OBSProjector::mouseReleaseEvent(QMouseEvent *event)
{
setCursor(Qt::ArrowCursor);
}

void OBSProjector::EscapeTriggered()
{
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
Expand Down
3 changes: 3 additions & 0 deletions UI/window-projector.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,13 @@ class OBSProjector : public OBSQTDisplay {
static void OBSSourceDestroyed(void *data, calldata_t *params);

void mousePressEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *event) override;
void mouseReleaseEvent(QMouseEvent *event) override;
void mouseDoubleClickEvent(QMouseEvent *event) override;
void closeEvent(QCloseEvent *event) override;

bool hideFrame;
QPoint mpos;
bool isAlwaysOnTop;
bool isAlwaysOnTopOverridden = false;
int savedMonitor = -1;
Expand Down

0 comments on commit 45f0b10

Please sign in to comment.