#include <strstream>
#include <string>
-using namespace std;
+using std::ends;
-Toolbar::Toolbar(BScreen &scrn, Resource &conf) : screen(scrn),
- openbox(scrn.getOpenbox()), config(conf)
+Toolbar::Toolbar(BScreen &scrn, Resource &conf) : openbox(scrn.getOpenbox()),
+ screen(scrn), config(conf)
{
load();
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");
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);
void Toolbar::setPlacement(int p) {
m_placement = p;
- ostrstream s;
+ std::ostrstream s;
s << "session.screen" << screen.getScreenNumber() << ".toolbar.placement"
<< ends;
const char *placement;
}
void Toolbar::load() {
- ostrstream rscreen, rname, rclass;
- string s;
+ std::ostrstream rscreen, rname, rclass;
+ std::string s;
bool b;
long l;
rscreen << "session.screen" << screen.getScreenNumber() << '.' << ends;
void Toolbar::redrawWindowLabel(Bool redraw) {
- if (screen.getOpenbox().focusedWindow()) {
+ OpenboxWindow *foc = screen.getOpenbox().focusedWindow();
+ if (foc == (OpenboxWindow *) 0) {
+ XClearWindow(display, frame.window_label);
+ } else {
if (redraw)
XClearWindow(display, frame.window_label);
- OpenboxWindow *foc = screen.getOpenbox().focusedWindow();
if (foc->getScreen() != &screen) return;
int dx = (frame.bevel_w * 2), dlen = strlen(*foc->getTitle());
else
XDrawString(display, frame.window_label, style->w_text_gc, dx,
(style->font->ascent + 1), *foc->getTitle(), dlen);
- } else {
- XClearWindow(display, frame.window_label);
}
}
if (openbox.focusedWindow()) {
openbox.focusedWindow()->setInputFocus();
openbox.focusedWindow()->setFocusFlag(True);
- } else {
- XSetInputFocus(display, PointerRoot, None, CurrentTime);
- }
+ } else
+ openbox.focusWindow((OpenboxWindow *) 0);
+
// check to make sure that new_name[0] != 0... otherwise we have a null
// workspace name which causes serious problems, especially for the
// Openbox::LoadRC() method.