diff --git a/client.cpp b/client.cpp index c11389d32f..b524b2328f 100644 --- a/client.cpp +++ b/client.cpp @@ -1551,6 +1551,7 @@ void Client::setModal(bool m) if (modal == m) return; modal = m; + emit modalChanged(); if (!modal) return; // Changing modality for a mapped window is weird (?) diff --git a/client.h b/client.h index 455519a7a9..8f506e6111 100644 --- a/client.h +++ b/client.h @@ -113,7 +113,10 @@ class Client Q_PROPERTY(bool minimizable READ isMinimizable) // TODO: setter and notify signal Q_PROPERTY(bool minimized READ isMinimized) - Q_PROPERTY(bool modal READ isModal) + /** + * Whether the Client represents a modal window. + **/ + Q_PROPERTY(bool modal READ isModal NOTIFY modalChanged) Q_PROPERTY(bool moveable READ isMovable) Q_PROPERTY(bool moveableAcrossScreens READ isMovableAcrossScreens) // TODO: notify signal @@ -548,6 +551,7 @@ signals: void desktopChanged(); void fullScreenChanged(); void transientChanged(); + void modalChanged(); private: void exportMappingState(int s); // ICCCM 4.1.3.1, 4.1.4, NETWM 2.5.1