X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FSlit.cc;h=66cdc583809a5eaf5c14af1e35d92a7efbd250f0;hb=ae093dba2fb97124bb4af3eaf4070b46f07dfd74;hp=bbaeb1f150633af7f8bb56cf7c8c16bbb692116c;hpb=098fae70a6d8d15877938080437f0fc20f52bbf5;p=chaz%2Fopenbox diff --git a/src/Slit.cc b/src/Slit.cc index bbaeb1f1..66cdc583 100644 --- a/src/Slit.cc +++ b/src/Slit.cc @@ -43,10 +43,10 @@ #include #include -using namespace std; +using std::ends; -Slit::Slit(BScreen &scr, Resource &conf) : screen(scr), - openbox(scr.getOpenbox()), config(conf) +Slit::Slit(BScreen &scr, Resource &conf) : openbox(scr.getOpenbox()), + screen(scr), config(conf) { load(); @@ -54,7 +54,7 @@ Slit::Slit(BScreen &scr, Resource &conf) : screen(scr), frame.window = frame.pixmap = None; timer = new BTimer(openbox, *this); - timer->setTimeout(openbox.getAutoRaiseDelay()); + // the time out is set in ::reconfigure() timer->fireOnce(True); slitmenu = new Slitmenu(*this); @@ -212,7 +212,7 @@ void Slit::removeClient(Window w, Bool remap) { void Slit::setOnTop(bool b) { m_ontop = b; - ostrstream s; + std::ostrstream s; s << "session.screen" << screen.getScreenNumber() << ".slit.onTop" << ends; config.setValue(s.str(), m_ontop ? "True" : "False"); s.rdbuf()->freeze(0); @@ -220,7 +220,7 @@ void Slit::setOnTop(bool b) { void Slit::setAutoHide(bool b) { m_autohide = b; - ostrstream s; + std::ostrstream s; s << "session.screen" << screen.getScreenNumber() << ".slit.autoHide" << ends; config.setValue(s.str(), m_autohide ? "True" : "False"); s.rdbuf()->freeze(0); @@ -228,7 +228,7 @@ void Slit::setAutoHide(bool b) { void Slit::setPlacement(int p) { m_placement = p; - ostrstream s; + std::ostrstream s; s << "session.screen" << screen.getScreenNumber() << ".slit.placement" << ends; const char *placement; @@ -248,7 +248,7 @@ void Slit::setPlacement(int p) { void Slit::setDirection(int d) { m_direction = d; - ostrstream s; + std::ostrstream s; s << "session.screen" << screen.getScreenNumber() << ".slit.direction" << ends; config.setValue(s.str(), @@ -264,8 +264,8 @@ void Slit::save() { } void Slit::load() { - ostrstream rscreen, rname, rclass; - string s; + std::ostrstream rscreen, rname, rclass; + std::string s; bool b; rscreen << "session.screen" << screen.getScreenNumber() << '.' << ends; @@ -292,6 +292,7 @@ void Slit::load() { m_placement = CenterRight; rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "slit.direction" << ends; rclass << rscreen.str() << "Slit.Direction" << ends; if (config.getValue(rname.str(), rclass.str(), s)) { @@ -303,6 +304,7 @@ void Slit::load() { m_direction = Vertical; rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "slit.onTop" << ends; rclass << rscreen.str() << "Slit.OnTop" << ends; if (config.getValue(rname.str(), rclass.str(), b)) @@ -311,6 +313,7 @@ void Slit::load() { m_ontop = false; rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "slit.autoHide" << ends; rclass << rscreen.str() << "Slit.AutoHide" << ends; if (config.getValue(rname.str(), rclass.str(), b)) @@ -319,11 +322,12 @@ void Slit::load() { m_hidden = m_autohide = false; rscreen.rdbuf()->freeze(0); - rname.rdbuf()->freeze(0); - rclass.rdbuf()->freeze(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); } void Slit::reconfigure(void) { + timer->setTimeout(openbox.getAutoRaiseDelay()); + frame.area.setSize(0, 0); slitClientList::const_iterator it; @@ -798,6 +802,7 @@ void Slitmenu::Directionmenu::setValues() { void Slitmenu::Directionmenu::reconfigure() { setValues(); + Basemenu::reconfigure(); }