Remove interaction event filter in destructor
QT fakes a mouse move when destructing which is caught by our filter
This commit is contained in:
parent
c1da19e8c6
commit
688af46664
@ -45,7 +45,8 @@ OBSBasicInteraction::OBSBasicInteraction(QWidget *parent, OBSSource source_)
|
||||
|
||||
ui->preview->setMouseTracking(true);
|
||||
ui->preview->setFocusPolicy(Qt::StrongFocus);
|
||||
ui->preview->installEventFilter(BuildEventFilter());
|
||||
eventFilter = BuildEventFilter();
|
||||
ui->preview->installEventFilter(eventFilter);
|
||||
|
||||
if (cx > 400 && cy > 400)
|
||||
resize(cx, cy);
|
||||
@ -63,6 +64,14 @@ OBSBasicInteraction::OBSBasicInteraction(QWidget *parent, OBSSource source_)
|
||||
setWindowTitle(QTStr("Basic.InteractionWindow").arg(QT_UTF8(name)));
|
||||
}
|
||||
|
||||
OBSBasicInteraction::~OBSBasicInteraction()
|
||||
{
|
||||
// since QT fakes a mouse movement while destructing a widget
|
||||
// remove our event filter
|
||||
ui->preview->removeEventFilter(eventFilter);
|
||||
delete eventFilter;
|
||||
}
|
||||
|
||||
OBSEventFilter *OBSBasicInteraction::BuildEventFilter()
|
||||
{
|
||||
return new OBSEventFilter(
|
||||
|
@ -42,6 +42,7 @@ private:
|
||||
OBSSource source;
|
||||
OBSDisplay display;
|
||||
OBSSignal removedSignal;
|
||||
OBSEventFilter *eventFilter;
|
||||
|
||||
static void SourceRemoved(void *data, calldata_t params);
|
||||
static void DrawPreview(void *data, uint32_t cx, uint32_t cy);
|
||||
@ -61,6 +62,7 @@ private slots:
|
||||
|
||||
public:
|
||||
OBSBasicInteraction(QWidget *parent, OBSSource source_);
|
||||
~OBSBasicInteraction();
|
||||
|
||||
void Init();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user