From 661acfe04374ca7924e66d60eb648f1cdd47fd3c Mon Sep 17 00:00:00 2001 From: jp9000 Date: Mon, 13 Apr 2015 14:31:36 -0700 Subject: [PATCH] UI: Add right-click context menu to projector For now, just has the option to close the projector window. --- obs/window-projector.cpp | 14 ++++++++++++++ obs/window-projector.hpp | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/obs/window-projector.cpp b/obs/window-projector.cpp index 3ff741bb7..44efe4ce1 100644 --- a/obs/window-projector.cpp +++ b/obs/window-projector.cpp @@ -1,8 +1,11 @@ #include +#include +#include #include "window-projector.hpp" #include "display-helpers.hpp" #include "qt-wrappers.hpp" #include "platform.hpp" +#include "obs-app.hpp" OBSProjector::OBSProjector(QWidget *widget, obs_source_t *source_) : OBSQTDisplay (widget, @@ -97,6 +100,17 @@ void OBSProjector::OBSSourceRemoved(void *data, calldata_t *params) UNUSED_PARAMETER(params); } +void OBSProjector::mousePressEvent(QMouseEvent *event) +{ + OBSQTDisplay::mousePressEvent(event); + + if (event->button() == Qt::RightButton) { + QMenu popup(this); + popup.addAction(QTStr("Close"), this, SLOT(EscapeTriggered())); + popup.exec(QCursor::pos()); + } +} + void OBSProjector::EscapeTriggered() { deleteLater(); diff --git a/obs/window-projector.hpp b/obs/window-projector.hpp index 377114dd6..30a3f1cf6 100644 --- a/obs/window-projector.hpp +++ b/obs/window-projector.hpp @@ -3,6 +3,8 @@ #include #include "qt-display.hpp" +class QMouseEvent; + class OBSProjector : public OBSQTDisplay { Q_OBJECT @@ -14,6 +16,8 @@ private: static void OBSRender(void *data, uint32_t cx, uint32_t cy); static void OBSSourceRemoved(void *data, calldata_t *params); + void mousePressEvent(QMouseEvent *event) override; + private slots: void EscapeTriggered();