X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2FToolbar.cc;h=12f778eba542523c8ebc4304e9e0bced9553ab9a;hb=18499a6920309d6ddfe70767f8a90e2778a96ba7;hp=d0753aab9bfc7575d4e0bf7e27af90641a6609d8;hpb=307da13fff916694f870ecb77aaf3ce0cf51d09e;p=chaz%2Fopenbox diff --git a/src/Toolbar.cc b/src/Toolbar.cc index d0753aab..12f778eb 100644 --- a/src/Toolbar.cc +++ b/src/Toolbar.cc @@ -68,11 +68,6 @@ Toolbar::Toolbar(BScreen &scrn, Resource &conf) : screen(scrn), openbox(scrn.getOpenbox()), config(conf) { - // default values - m_width_percent =66; - m_placement = BottomCenter; - m_ontop = false; - m_hidden = m_autohide = false; load(); // get the clock updating every minute @@ -220,30 +215,33 @@ Toolbar::~Toolbar() { void Toolbar::setOnTop(bool b) { m_ontop = b; - ostrstream s; + std::ostrstream s; s << "session.screen" << screen.getScreenNumber() << ".toolbar.onTop" << ends; config.setValue(s.str(), m_ontop ? "True" : "False"); + s.rdbuf()->freeze(0); } void Toolbar::setAutoHide(bool b) { m_autohide = b; - ostrstream s; + std::ostrstream s; s << "session.screen" << screen.getScreenNumber() << ".toolbar.autoHide" << ends; config.setValue(s.str(), m_autohide ? "True" : "False"); + s.rdbuf()->freeze(0); } void Toolbar::setWidthPercent(int w) { m_width_percent = w; - ostrstream s; + std::ostrstream s; s << "session.screen" << screen.getScreenNumber() << ".toolbar.widthPercent" << ends; config.setValue(s.str(), m_width_percent); + s.rdbuf()->freeze(0); } void Toolbar::setPlacement(int p) { m_placement = p; - ostrstream s; + std::ostrstream s; s << "session.screen" << screen.getScreenNumber() << ".toolbar.placement" << ends; const char *placement; @@ -256,6 +254,7 @@ void Toolbar::setPlacement(int p) { case BottomCenter: default: placement = "BottomCenter"; break; } config.setValue(s.str(), placement); + s.rdbuf()->freeze(0); } void Toolbar::save() { @@ -276,6 +275,8 @@ void Toolbar::load() { rclass << rscreen.str() << "Toolbar.WidthPercent" << ends; if (config.getValue(rname.str(), rclass.str(), l) && (l > 0 && l <= 100)) m_width_percent = l; + else + m_width_percent =66; rname.seekp(0); rclass.seekp(0); rname << rscreen.str() << "toolbar.placement" << ends; @@ -293,19 +294,28 @@ void Toolbar::load() { m_placement = BottomRight; else if ( 0 == strncasecmp(s.c_str(), "BottomCenter", s.length())) m_placement = BottomCenter; - } + } else + m_placement = BottomCenter; rname.seekp(0); rclass.seekp(0); rname << rscreen.str() << "toolbar.onTop" << ends; rclass << rscreen.str() << "Toolbar.OnTop" << ends; if (config.getValue(rname.str(), rclass.str(), b)) m_ontop = b; + else + m_ontop = false; rname.seekp(0); rclass.seekp(0); rname << rscreen.str() << "toolbar.autoHide" << ends; rclass << rscreen.str() << "Toolbar.AutoHide" << ends; if (config.getValue(rname.str(), rclass.str(), b)) m_hidden = m_autohide = b; + else + m_hidden = m_autohide = false; + + rscreen.rdbuf()->freeze(0); + rname.rdbuf()->freeze(0); + rclass.rdbuf()->freeze(0); } void Toolbar::reconfigure() {