diff options
author | Adam Endrodi <ext-adam.endrodi@nokia.com> | 2010-12-10 12:17:19 +0200 |
---|---|---|
committer | Adam Endrodi <ext-adam.endrodi@nokia.com> | 2010-12-15 16:00:05 +0200 |
commit | cba33155597b60a2a988704cc22a2ef4b026f8f5 (patch) | |
tree | 8381a9193a8627962fdab0306341ebb1ce1255cb | |
parent | d99edd1e297702d14653eeb38ef06ed8426000ce (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.cpp | 23 |
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 |