diff options
| author | Dana Jansens <danakj@orodu.net> | 2002-05-27 05:06:04 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2002-05-27 05:06:04 +0000 |
| commit | 5377e3fde108da56894185716d47c3058032b97f (patch) | |
| tree | d66a373ef9bc2b609354271e3add0eea1115fd2c /src/Toolbar.cc | |
| parent | b0f8eab0e6be1448e54db56cbed9c01b3a79020e (diff) | |
added "Hide Toolbar" option.
Diffstat (limited to 'src/Toolbar.cc')
| -rw-r--r-- | src/Toolbar.cc | 43 |
1 files changed, 31 insertions, 12 deletions
diff --git a/src/Toolbar.cc b/src/Toolbar.cc index 5ff333ad..447e0d03 100644 --- a/src/Toolbar.cc +++ b/src/Toolbar.cc @@ -161,14 +161,12 @@ Toolbar::Toolbar(BScreen *scrn) { screen->addStrut(&strut); reconfigure(); - - XMapSubwindows(display, frame.window); - XMapWindow(display, frame.window); + mapToolbar(); } Toolbar::~Toolbar(void) { - XUnmapWindow(display, frame.window); + unmapToolbar(); if (frame.base) screen->getImageControl()->removeImage(frame.base); if (frame.label) screen->getImageControl()->removeImage(frame.label); @@ -198,6 +196,25 @@ Toolbar::~Toolbar(void) { } +void Toolbar::mapToolbar() { + if (!screen->doHideToolbar()) { + //not hidden, so windows should not maximize over the toolbar + XMapSubwindows(display, frame.window); + XMapWindow(display, frame.window); + } + updateStrut(); +} + + +void Toolbar::unmapToolbar() { + if (toolbarmenu->isVisible()) + toolbarmenu->hide(); + //hidden so we can maximize over the toolbar + XUnmapWindow(display, frame.window); + updateStrut(); +} + + void Toolbar::saveOnTop(bool b) { on_top = b; config->setValue(toolbarstr + "onTop", on_top); @@ -511,14 +528,16 @@ void Toolbar::updateStrut(void) { // left and right are always 0 strut.top = strut.bottom = 0; - switch(placement) { - case TopLeft: - case TopCenter: - case TopRight: - strut.top = getExposedHeight() + (screen->getBorderWidth() * 2); - break; - default: - strut.bottom = getExposedHeight() + (screen->getBorderWidth() * 2); + if (! screen->doHideToolbar()) { + switch(placement) { + case TopLeft: + case TopCenter: + case TopRight: + strut.top = getExposedHeight() + (screen->getBorderWidth() * 2); + break; + default: + strut.bottom = getExposedHeight() + (screen->getBorderWidth() * 2); + } } screen->updateAvailableArea(); |
