summaryrefslogtreecommitdiff
path: root/decorators/mdecorator
diff options
context:
space:
mode:
authorAbdiel Janulgue <abdiel.janulgue@nokia.com>2010-04-28 18:57:39 +0300
committerAbdiel Janulgue <abdiel.janulgue@nokia.com>2010-04-28 18:57:39 +0300
commitca00457291ca49978b6e2b05bbcc043ef14ecb98 (patch)
treef3a2ae5659b3cf36795d29d4e643e47b0dbf6036 /decorators/mdecorator
parentb626c5a0bde6ba3b337cf6d12ef7c2bbf79c590a (diff)
Changes: Dynamically inform compositor of decorator geometry
RevBy: TrustMe
Diffstat (limited to 'decorators/mdecorator')
-rw-r--r--decorators/mdecorator/mdecoratorwindow.cpp24
-rw-r--r--decorators/mdecorator/mdecoratorwindow.h3
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);
};