summaryrefslogtreecommitdiff
path: root/src/Toolbar.cc
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-05-27 05:06:04 +0000
committerDana Jansens <danakj@orodu.net>2002-05-27 05:06:04 +0000
commit5377e3fde108da56894185716d47c3058032b97f (patch)
treed66a373ef9bc2b609354271e3add0eea1115fd2c /src/Toolbar.cc
parentb0f8eab0e6be1448e54db56cbed9c01b3a79020e (diff)
added "Hide Toolbar" option.
Diffstat (limited to 'src/Toolbar.cc')
-rw-r--r--src/Toolbar.cc43
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();