diff options
Diffstat (limited to 'decorators/mdecorator')
-rw-r--r-- | decorators/mdecorator/mdecoratorwindow.cpp | 24 | ||||
-rw-r--r-- | decorators/mdecorator/mdecoratorwindow.h | 3 |
2 files changed, 19 insertions, 8 deletions
diff --git a/decorators/mdecorator/mdecoratorwindow.cpp b/decorators/mdecorator/mdecoratorwindow.cpp index 56ba3ef..49597e6 100644 --- a/decorators/mdecorator/mdecoratorwindow.cpp +++ b/decorators/mdecorator/mdecoratorwindow.cpp @@ -22,7 +22,8 @@ #include <MSceneManager> #include <MScene> -#include <QCoreApplication> +#include <QApplication> +#include <QDesktopWidget> #include <QX11Info> #include <QGLFormat> #include <QGLWidget> @@ -49,7 +50,7 @@ class MDecorator: public MAbstractDecorator public: MDecorator(MDecoratorWindow *p) : MAbstractDecorator(p), - window(p) + decorwindow(p) { connect(this, SIGNAL(windowTitleChanged(const QString&)), p, SIGNAL(windowTitleChanged(const QString&))); @@ -73,14 +74,15 @@ protected: XFree(p.value); } } - + setAvailableGeometry(decorwindow->availableClientRect()); + emit windowTitleChanged(title); } virtual void setAutoRotation(bool mode) { - window->setOrientationAngleLocked(!mode); + decorwindow->setOrientationAngleLocked(!mode); if (!mode) - window->setOrientationAngle(M::Angle0); + decorwindow->setOrientationAngle(M::Angle0); } signals: @@ -89,7 +91,7 @@ signals: private: - MDecoratorWindow *window; + MDecoratorWindow *decorwindow; }; #if 0 @@ -200,9 +202,9 @@ void MDecoratorWindow::setInputRegion() region += navigationBar->boundingRect().toRect(); region += homeButtonPanel->boundingRect().toRect(); region += escapeButtonPanel->boundingRect().toRect(); - QRect b = region.boundingRect(); + decoratorRect = region.boundingRect(); - XRectangle rect = itemRectToScreenRect(b); + XRectangle rect = itemRectToScreenRect(decoratorRect); Display *dpy = QX11Info::display(); XserverRegion shapeRegion = XFixesCreateRegion(dpy, &rect, 1); @@ -244,4 +246,10 @@ void MDecoratorWindow::setMDecoratorWindowProperty() (unsigned char *) &on, 1); } + +const QRect MDecoratorWindow::availableClientRect() const +{ + return decoratorRect; +} + #include "mdecoratorwindow.moc" diff --git a/decorators/mdecorator/mdecoratorwindow.h b/decorators/mdecorator/mdecoratorwindow.h index cdaeffe..cba9c79 100644 --- a/decorators/mdecorator/mdecoratorwindow.h +++ b/decorators/mdecorator/mdecoratorwindow.h @@ -43,6 +43,8 @@ class MDecoratorWindow : public MWindow public: explicit MDecoratorWindow(QWidget *parent = 0); virtual ~MDecoratorWindow(); + + const QRect availableClientRect() const; private slots: @@ -70,6 +72,7 @@ private: MEscapeButtonPanel *escapeButtonPanel; MNavigationBar *navigationBar; MStatusBar *statusBar; + QRect decoratorRect; Q_DISABLE_COPY(MDecoratorWindow); }; |