Qt: Add a container widget for render-outside-main

Fixes missing decorations on Wayland.
This commit is contained in:
Connor McLaughlin
2021-07-17 22:27:07 +10:00
parent 3cf12e8f0d
commit d6c4c2dda9
4 changed files with 162 additions and 22 deletions

View File

@@ -1,6 +1,7 @@
#pragma once
#include "common/types.h"
#include "common/window_info.h"
#include <QtWidgets/QStackedWidget>
#include <QtWidgets/QWidget>
#include <optional>
@@ -40,3 +41,23 @@ private:
QPoint m_relative_mouse_last_position{};
bool m_relative_mouse_enabled = false;
};
class QtDisplayContainer final : public QStackedWidget
{
Q_OBJECT
public:
QtDisplayContainer();
~QtDisplayContainer();
static bool IsNeeded(bool fullscreen, bool render_to_main);
void setDisplayWidget(QtDisplayWidget* widget);
QtDisplayWidget* removeDisplayWidget();
protected:
bool event(QEvent* event) override;
private:
QtDisplayWidget* m_display_widget = nullptr;
};