forked from quickshell/quickshell
x11: add XPanelWindow
This commit is contained in:
parent
908ba3eef5
commit
73cfeba61b
15 changed files with 804 additions and 5 deletions
|
@ -117,6 +117,10 @@ class PanelWindowInterface: public WindowInterface {
|
|||
Q_PROPERTY(qint32 exclusiveZone READ exclusiveZone WRITE setExclusiveZone NOTIFY exclusiveZoneChanged);
|
||||
/// Defaults to `ExclusionMode.Auto`.
|
||||
Q_PROPERTY(ExclusionMode::Enum exclusionMode READ exclusionMode WRITE setExclusionMode NOTIFY exclusionModeChanged);
|
||||
/// If the panel should render above standard windows. Defaults to true.
|
||||
QSDOC_HIDE Q_PROPERTY(bool aboveWindows READ aboveWindows WRITE setAboveWindows NOTIFY aboveWindowsChanged);
|
||||
/// Defaults to false.
|
||||
QSDOC_HIDE Q_PROPERTY(bool focusable READ focusable WRITE setFocusable NOTIFY focusableChanged);
|
||||
// clang-format on
|
||||
QSDOC_NAMED_ELEMENT(PanelWindow);
|
||||
|
||||
|
@ -135,9 +139,17 @@ public:
|
|||
[[nodiscard]] virtual ExclusionMode::Enum exclusionMode() const = 0;
|
||||
virtual void setExclusionMode(ExclusionMode::Enum exclusionMode) = 0;
|
||||
|
||||
[[nodiscard]] virtual bool aboveWindows() const = 0;
|
||||
virtual void setAboveWindows(bool aboveWindows) = 0;
|
||||
|
||||
[[nodiscard]] virtual bool focusable() const = 0;
|
||||
virtual void setFocusable(bool focusable) = 0;
|
||||
|
||||
signals:
|
||||
void anchorsChanged();
|
||||
void marginsChanged();
|
||||
void exclusiveZoneChanged();
|
||||
void exclusionModeChanged();
|
||||
void aboveWindowsChanged();
|
||||
void focusableChanged();
|
||||
};
|
||||
|
|
|
@ -46,7 +46,7 @@ ProxyWindowBase::~ProxyWindowBase() { this->deleteWindow(); }
|
|||
void ProxyWindowBase::onReload(QObject* oldInstance) {
|
||||
this->window = this->retrieveWindow(oldInstance);
|
||||
auto wasVisible = this->window != nullptr && this->window->isVisible();
|
||||
if (this->window == nullptr) this->window = new QQuickWindow();
|
||||
if (this->window == nullptr) this->window = this->createQQuickWindow();
|
||||
|
||||
// The qml engine will leave the WindowInterface as owner of everything
|
||||
// nested in an item, so we have to make sure the interface's children
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue