12345678910111213141516171819202122232425262728293031323334353637383940 |
- #pragma once
- #include <widgets/OBSQTDisplay.hpp>
- #include <QObject>
- #include <QPlatformSurfaceEvent>
- class SurfaceEventFilter : public QObject {
- Q_OBJECT
- OBSQTDisplay *display;
- public:
- SurfaceEventFilter(OBSQTDisplay *src) : QObject(src), display(src) {}
- protected:
- bool eventFilter(QObject *obj, QEvent *event) override
- {
- bool result = QObject::eventFilter(obj, event);
- QPlatformSurfaceEvent *surfaceEvent;
- switch (event->type()) {
- case QEvent::PlatformSurface:
- surfaceEvent = static_cast<QPlatformSurfaceEvent *>(event);
- switch (surfaceEvent->surfaceEventType()) {
- case QPlatformSurfaceEvent::SurfaceAboutToBeDestroyed:
- display->DestroyDisplay();
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
- return result;
- }
- };
|