summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Endrodi <ext-adam.endrodi@nokia.com>2010-12-10 12:17:19 +0200
committerAdam Endrodi <ext-adam.endrodi@nokia.com>2010-12-15 16:00:05 +0200
commitcba33155597b60a2a988704cc22a2ef4b026f8f5 (patch)
tree8381a9193a8627962fdab0306341ebb1ce1255cb
parentd99edd1e297702d14653eeb38ef06ed8426000ce (diff)
sick button removal
The decorator may show an orphan rectangle around the bottom-left corner in case the theme doesn't really need it. Get rid of it. * decorators/mdecorator/mdecoratorwindow.cpp (MDecoratorWindow::MDecoratorWindow): Check the theme and don't create an MEscapeButtonPanel() unless the theme explicitly asks for it. * MDecoratorWindow::setOnlyStatusbar(), MDecoratorWindow::setInputRegion(): Handle escapeButtonPanel == NULL.
-rw-r--r--decorators/mdecorator/mdecoratorwindow.cpp23
1 files changed, 15 insertions, 8 deletions
diff --git a/decorators/mdecorator/mdecoratorwindow.cpp b/decorators/mdecorator/mdecoratorwindow.cpp
index d991fb2..c51034a 100644
--- a/decorators/mdecorator/mdecoratorwindow.cpp
+++ b/decorators/mdecorator/mdecoratorwindow.cpp
@@ -123,15 +123,19 @@ MDecoratorWindow::MDecoratorWindow(QWidget *parent)
managedWindowAtom = XInternAtom(QX11Info::display(),
"_MDECORATOR_MANAGED_WINDOW", False);
- homeButtonPanel = new MHomeButtonPanel();
- escapeButtonPanel = new MEscapeButtonPanel();
- navigationBar = new MNavigationBar();
statusBar = new MStatusBar();
+ navigationBar = new MNavigationBar();
+ QVariant hasclose = navigationBar->property("hasCloseButton");
+ if (hasclose.isValid() && hasclose.toBool()) {
+ escapeButtonPanel = new MEscapeButtonPanel();
+ connect(escapeButtonPanel, SIGNAL(buttonClicked()), this,
+ SIGNAL(escapeClicked()));
+ } else // The current theme doesn't want an escape button.
+ escapeButtonPanel = NULL;
+ homeButtonPanel = new MHomeButtonPanel();
connect(homeButtonPanel, SIGNAL(buttonClicked()), this,
SIGNAL(homeClicked()));
- connect(escapeButtonPanel, SIGNAL(buttonClicked()), this,
- SIGNAL(escapeClicked()));
sceneManager()->appearSceneWindowNow(statusBar);
setOnlyStatusbar(false);
@@ -267,11 +271,13 @@ void MDecoratorWindow::setOnlyStatusbar(bool mode, bool temporary)
if (mode) {
sceneManager()->disappearSceneWindowNow(navigationBar);
sceneManager()->disappearSceneWindowNow(homeButtonPanel);
- sceneManager()->disappearSceneWindowNow(escapeButtonPanel);
+ if (escapeButtonPanel)
+ sceneManager()->disappearSceneWindowNow(escapeButtonPanel);
} else if (!messageBox) {
sceneManager()->appearSceneWindowNow(navigationBar);
sceneManager()->appearSceneWindowNow(homeButtonPanel);
- sceneManager()->appearSceneWindowNow(escapeButtonPanel);
+ if (escapeButtonPanel)
+ sceneManager()->appearSceneWindowNow(escapeButtonPanel);
}
if (!temporary)
requested_only_statusbar = mode;
@@ -301,7 +307,8 @@ void MDecoratorWindow::setInputRegion()
if (!only_statusbar) {
region += navigationBar->geometry().toRect();
region += homeButtonPanel->geometry().toRect();
- region += escapeButtonPanel->geometry().toRect();
+ if (escapeButtonPanel)
+ region += escapeButtonPanel->geometry().toRect();
}
// The coordinates we receive from libmeegotouch are rotated