X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2FScreen.cc;h=29a7a69d5f95309793913084a9de53b85a38078c;hb=a0dbb0e13f19ac4cc2dddf3d94723174971df6d2;hp=a5c6c793711e3337e2a236c7ae4f15722fec480f;hpb=20cd70c4665de85ffe3a04f9aa47acb9666e4f39;p=chaz%2Fopenbox diff --git a/src/Screen.cc b/src/Screen.cc index a5c6c793..29a7a69d 100644 --- a/src/Screen.cc +++ b/src/Screen.cc @@ -103,6 +103,7 @@ #include #include #include +using namespace std; static Bool running = True; @@ -214,6 +215,7 @@ BScreen::BScreen(Openbox &ob, int scrn, Resource &conf) : ScreenInfo(ob, scrn), resource.tstyle.fontset = resource.wstyle.fontset = NULL; resource.mstyle.t_font = resource.mstyle.f_font = resource.tstyle.font = resource.wstyle.font = NULL; + resource.root_command = NULL; #ifdef SLIT slit = NULL; @@ -234,8 +236,6 @@ BScreen::BScreen(Openbox &ob, int scrn, Resource &conf) : ScreenInfo(ob, scrn), workspaceNames = new LinkedList; workspacesList = new LinkedList; - rootmenuList = new LinkedList; - netizenList = new LinkedList; iconList = new LinkedList; image_control = @@ -402,15 +402,14 @@ BScreen::BScreen(Openbox &ob, int scrn, Resource &conf) : ScreenInfo(ob, scrn), for (int i = 0; i < resource.workspaces; ++i) { wkspc = new Workspace(*this, workspacesList->count()); workspacesList->insert(wkspc); - saveWorkspaceNames(); workspacemenu->insert(wkspc->getName(), wkspc->getMenu()); } } else { wkspc = new Workspace(*this, workspacesList->count()); workspacesList->insert(wkspc); - saveWorkspaceNames(); workspacemenu->insert(wkspc->getName(), wkspc->getMenu()); } + saveWorkspaceNames(); workspacemenu->insert(i18n->getMessage(IconSet, IconIcons, "Icons"), iconmenu); @@ -483,9 +482,8 @@ BScreen::BScreen(Openbox &ob, int scrn, Resource &conf) : ScreenInfo(ob, scrn), } } - if (! resource.sloppy_focus) - XSetInputFocus(getBaseDisplay().getXDisplay(), toolbar->getWindowID(), - RevertToParent, CurrentTime); + XSetInputFocus(getBaseDisplay().getXDisplay(), + PointerRoot, None, CurrentTime); XFree(children); XFlush(getBaseDisplay().getXDisplay()); @@ -506,14 +504,14 @@ BScreen::~BScreen(void) { while (workspacesList->count()) delete workspacesList->remove(0); - while (rootmenuList->count()) - rootmenuList->remove(0); + while (!rootmenuList.empty()) + rootmenuList.erase(rootmenuList.begin()); while (iconList->count()) delete iconList->remove(0); - while (netizenList->count()) - delete netizenList->remove(0); + while (!netizenList.empty()) + netizenList.erase(netizenList.begin()); #ifdef HAVE_STRFTIME if (resource.strftime_format) @@ -534,9 +532,7 @@ BScreen::~BScreen(void) { delete workspacesList; delete workspaceNames; - delete rootmenuList; delete iconList; - delete netizenList; if (resource.wstyle.fontset) XFreeFontSet(getBaseDisplay().getXDisplay(), resource.wstyle.fontset); @@ -798,7 +794,7 @@ void BScreen::readDatabaseColor(const char *rname, const char *rclass, if (resource.styleconfig.getValue(rname, rclass, s)) image_control->parseColor(color, s.c_str()); else { - // parsing with no color string just deallocates the color, if it has + // parsing with no color std::string just deallocates the color, if it has // been previously allocated image_control->parseColor(color); color->setPixel(default_pixel); @@ -929,7 +925,7 @@ XFontSet BScreen::createFontSet(const char *fontname) { void BScreen::setSloppyFocus(bool b) { resource.sloppy_focus = b; - std::ostrstream s; + ostrstream s; s << "session.screen" << getScreenNumber() << ".focusModel" << ends; config.setValue(s.str(), (resource.sloppy_focus ? @@ -941,7 +937,7 @@ void BScreen::setSloppyFocus(bool b) { void BScreen::setAutoRaise(bool a) { resource.auto_raise = a; - std::ostrstream s; + ostrstream s; s << "session.screen" << getScreenNumber() << ".focusModel" << ends; config.setValue(s.str(), (resource.sloppy_focus ? @@ -952,20 +948,19 @@ void BScreen::setAutoRaise(bool a) { void BScreen::setImageDither(bool d, bool reconfig) { - resource.image_dither = d; image_control->setDither(d); - std::ostrstream s; + ostrstream s; s << "session.screen" << getScreenNumber() << ".imageDither" << ends; - config.setValue(s.str(), resource.image_dither); - s.rdbuf()->freeze(0); + config.setValue(s.str(), imageDither()); if (reconfig) reconfigure(); + s.rdbuf()->freeze(0); } void BScreen::setOpaqueMove(bool o) { resource.opaque_move = o; - std::ostrstream s; + ostrstream s; s << "session.screen" << getScreenNumber() << ".opaqueMove" << ends; config.setValue(s.str(), resource.opaque_move); s.rdbuf()->freeze(0); @@ -974,7 +969,7 @@ void BScreen::setOpaqueMove(bool o) { void BScreen::setFullMax(bool f) { resource.full_max = f; - std::ostrstream s; + ostrstream s; s << "session.screen" << getScreenNumber() << ".fullMaximization" << ends; config.setValue(s.str(), resource.full_max); s.rdbuf()->freeze(0); @@ -983,7 +978,7 @@ void BScreen::setFullMax(bool f) { void BScreen::setFocusNew(bool f) { resource.focus_new = f; - std::ostrstream s; + ostrstream s; s << "session.screen" << getScreenNumber() << ".focusNewWindows" << ends; config.setValue(s.str(), resource.focus_new); s.rdbuf()->freeze(0); @@ -992,7 +987,7 @@ void BScreen::setFocusNew(bool f) { void BScreen::setFocusLast(bool f) { resource.focus_last = f; - std::ostrstream s; + ostrstream s; s << "session.screen" << getScreenNumber() << ".focusLastWindow" << ends; config.setValue(s.str(), resource.focus_last); s.rdbuf()->freeze(0); @@ -1001,7 +996,7 @@ void BScreen::setFocusLast(bool f) { void BScreen::setWindowZones(int z) { resource.zones = z; - std::ostrstream s; + ostrstream s; s << "session.screen" << getScreenNumber() << ".windowZones" << ends; config.setValue(s.str(), resource.zones); s.rdbuf()->freeze(0); @@ -1010,7 +1005,7 @@ void BScreen::setWindowZones(int z) { void BScreen::setWorkspaceCount(int w) { resource.workspaces = w; - std::ostrstream s; + ostrstream s; s << "session.screen" << getScreenNumber() << ".workspaces" << ends; config.setValue(s.str(), resource.workspaces); s.rdbuf()->freeze(0); @@ -1019,7 +1014,7 @@ void BScreen::setWorkspaceCount(int w) { void BScreen::setPlacementPolicy(int p) { resource.placement_policy = p; - std::ostrstream s; + ostrstream s; s << "session.screen" << getScreenNumber() << ".windowPlacement" << ends; const char *placement; switch (resource.placement_policy) { @@ -1027,6 +1022,7 @@ void BScreen::setPlacementPolicy(int p) { case BestFitPlacement: placement = "BestFitPlacement"; break; case ColSmartPlacement: placement = "ColSmartPlacement"; break; case UnderMousePlacement: placement = "UnderMousePlacement"; break; + case ClickMousePlacement: placement = "ClickMousePlacement"; break; default: case RowSmartPlacement: placement = "RowSmartPlacement"; break; } @@ -1037,7 +1033,7 @@ void BScreen::setPlacementPolicy(int p) { void BScreen::setEdgeSnapThreshold(int t) { resource.edge_snap_threshold = t; - std::ostrstream s; + ostrstream s; s << "session.screen" << getScreenNumber() << ".edgeSnapThreshold" << ends; config.setValue(s.str(), resource.edge_snap_threshold); s.rdbuf()->freeze(0); @@ -1046,9 +1042,8 @@ void BScreen::setEdgeSnapThreshold(int t) { void BScreen::setRowPlacementDirection(int d) { resource.row_direction = d; - std::ostrstream s; - s << "session.screen" << getScreenNumber() << ".rowPlacementDirection" << - ends; + ostrstream s; + s << "session.screen" << getScreenNumber() << ".rowPlacementDirection" << ends; config.setValue(s.str(), resource.row_direction == LeftRight ? "LeftToRight" : "RightToLeft"); @@ -1058,9 +1053,8 @@ void BScreen::setRowPlacementDirection(int d) { void BScreen::setColPlacementDirection(int d) { resource.col_direction = d; - std::ostrstream s; - s << "session.screen" << getScreenNumber() << ".colPlacementDirection" << - ends; + ostrstream s; + s << "session.screen" << getScreenNumber() << ".colPlacementDirection" << ends; config.setValue(s.str(), resource.col_direction == TopBottom ? "TopToBottom" : "BottomToTop"); @@ -1087,7 +1081,7 @@ void BScreen::setStrftimeFormat(const char *f) { delete [] resource.strftime_format; resource.strftime_format = bstrdup(f); - std::ostrstream s; + ostrstream s; s << "session.screen" << getScreenNumber() << ".strftimeFormat" << ends; config.setValue(s.str(), resource.strftime_format); s.rdbuf()->freeze(0); @@ -1096,7 +1090,7 @@ void BScreen::setStrftimeFormat(const char *f) { #else // !HAVE_STRFTIME void BScreen::setDateFormat(int f) { resource.date_format = f; - std::ostrstream s; + ostrstream s; s << "session.screen" << getScreenNumber() << ".dateFormat" << ends; config.setValue(s.str(), resource.date_format == B_EuropeanDate ? "European" : "American"); @@ -1105,7 +1099,7 @@ void BScreen::setDateFormat(int f) { void BScreen::setClock24Hour(Bool c) { resource.clock24hour = c; - std::ostrstream s; + ostrstream s; s << "session.screen" << getScreenNumber() << ".clockFormat" << ends; config.setValue(s.str(), resource.clock24hour ? 24 : 12); s.rdbuf()->freeze(0); @@ -1118,21 +1112,21 @@ void BScreen::setHideToolbar(bool b) { getToolbar()->unMapToolbar(); else getToolbar()->mapToolbar(); - std::ostrstream s; + ostrstream s; s << "session.screen" << getScreenNumber() << ".hideToolbar" << ends; config.setValue(s.str(), resource.hide_toolbar ? "True" : "False"); s.rdbuf()->freeze(0); } void BScreen::saveWorkspaceNames() { - std::ostrstream rc, names; + ostrstream rc, names; for (int i = 0; i < resource.workspaces; i++) { Workspace *w = getWorkspace(i); if (w != NULL) { names << w->getName(); if (i < resource.workspaces-1) - names << ','; + names << ","; } } names << ends; @@ -1146,7 +1140,7 @@ void BScreen::saveWorkspaceNames() { void BScreen::save() { setSloppyFocus(resource.sloppy_focus); setAutoRaise(resource.auto_raise); - setImageDither(resource.image_dither, false); + setImageDither(imageDither(), false); setOpaqueMove(resource.opaque_move); setFullMax(resource.full_max); setFocusNew(resource.focus_new); @@ -1170,8 +1164,9 @@ void BScreen::save() { setHideToolbar(resource.hide_toolbar); } + void BScreen::load() { - std::ostrstream rscreen, rname, rclass; + ostrstream rscreen, rname, rclass; std::string s; bool b; long l; @@ -1192,6 +1187,7 @@ void BScreen::load() { } rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "fullMaximization" << ends; rclass << rscreen.str() << "FullMaximization" << ends; if (config.getValue(rname.str(), rclass.str(), b)) @@ -1200,6 +1196,7 @@ void BScreen::load() { resource.full_max = false; rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "focusNewWindows" << ends; rclass << rscreen.str() << "FocusNewWindows" << ends; if (config.getValue(rname.str(), rclass.str(), b)) @@ -1208,6 +1205,7 @@ void BScreen::load() { resource.focus_new = false; rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "focusLastWindow" << ends; rclass << rscreen.str() << "FocusLastWindow" << ends; if (config.getValue(rname.str(), rclass.str(), b)) @@ -1216,6 +1214,7 @@ void BScreen::load() { resource.focus_last = false; rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "rowPlacementDirection" << ends; rclass << rscreen.str() << "RowPlacementDirection" << ends; if (config.getValue(rname.str(), rclass.str(), s)) { @@ -1227,6 +1226,7 @@ void BScreen::load() { resource.row_direction = LeftRight; rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "colPlacementDirection" << ends; rclass << rscreen.str() << "ColPlacementDirection" << ends; if (config.getValue(rname.str(), rclass.str(), s)) { @@ -1238,21 +1238,23 @@ void BScreen::load() { resource.col_direction = TopBottom; rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "workspaces" << ends; rclass << rscreen.str() << "Workspaces" << ends; - if (config.getValue(rname.str(), rclass.str(), l)) + if (config.getValue(rname.str(), rclass.str(), l)) { resource.workspaces = l; - else + } else resource.workspaces = 1; removeWorkspaceNames(); rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "workspaceNames" << ends; rclass << rscreen.str() << "WorkspaceNames" << ends; if (config.getValue(rname.str(), rclass.str(), s)) { - std::string::const_iterator it = s.begin(), end = s.end(); + string::const_iterator it = s.begin(), end = s.end(); while(1) { - std::string::const_iterator tmp = it;// current string.begin() + string::const_iterator tmp = it;// current string.begin() it = std::find(tmp, end, ','); // look for comma between tmp and end std::string name(tmp, it); // name = s[tmp:it] addWorkspaceName(name.c_str()); @@ -1263,6 +1265,7 @@ void BScreen::load() { } rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "focusModel" << ends; rclass << rscreen.str() << "FocusModel" << ends; if (config.getValue(rname.str(), rclass.str(), s)) { @@ -1283,6 +1286,7 @@ void BScreen::load() { } rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "windowZones" << ends; rclass << rscreen.str() << "WindowZones" << ends; if (config.getValue(rname.str(), rclass.str(), l)) @@ -1291,6 +1295,7 @@ void BScreen::load() { resource.zones = 4; rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "windowPlacement" << ends; rclass << rscreen.str() << "WindowPlacement" << ends; if (config.getValue(rname.str(), rclass.str(), s)) { @@ -1302,6 +1307,8 @@ void BScreen::load() { resource.placement_policy = BestFitPlacement; else if (0 == strncasecmp(s.c_str(), "UnderMousePlacement", s.length())) resource.placement_policy = UnderMousePlacement; + else if (0 == strncasecmp(s.c_str(), "ClickMousePlacement", s.length())) + resource.placement_policy = ClickMousePlacement; else //if (0 == strncasecmp(s.c_str(), "CascadePlacement", s.length())) resource.placement_policy = CascadePlacement; } else @@ -1309,6 +1316,7 @@ void BScreen::load() { #ifdef HAVE_STRFTIME rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "strftimeFormat" << ends; rclass << rscreen.str() << "StrftimeFormat" << ends; @@ -1321,6 +1329,7 @@ void BScreen::load() { resource.strftime_format = bstrdup("%I:%M %p"); #else // !HAVE_STRFTIME rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "dateFormat" << ends; rclass << rscreen.str() << "DateFormat" << ends; if (config.getValue(rname.str(), rclass.str(), s)) { @@ -1332,6 +1341,7 @@ void BScreen::load() { resource.date_format = B_AmericanDate; rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "clockFormat" << ends; rclass << rscreen.str() << "ClockFormat" << ends; if (config.getValue(rname.str(), rclass.str(), l)) { @@ -1344,6 +1354,7 @@ void BScreen::load() { #endif // HAVE_STRFTIME rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "edgeSnapThreshold" << ends; rclass << rscreen.str() << "EdgeSnapThreshold" << ends; if (config.getValue(rname.str(), rclass.str(), l)) @@ -1352,14 +1363,16 @@ void BScreen::load() { resource.edge_snap_threshold = 4; rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "imageDither" << ends; rclass << rscreen.str() << "ImageDither" << ends; if (config.getValue(rname.str(), rclass.str(), b)) - resource.image_dither = b; + image_control->setDither(b); else - resource.image_dither = true; + image_control->setDither(true); rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "rootCommand" << ends; rclass << rscreen.str() << "RootCommand" << ends; @@ -1372,6 +1385,7 @@ void BScreen::load() { resource.root_command = NULL; rname.seekp(0); rclass.seekp(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); rname << rscreen.str() << "opaqueMove" << ends; rclass << rscreen.str() << "OpaqueMove" << ends; if (config.getValue(rname.str(), rclass.str(), b)) @@ -1380,8 +1394,7 @@ void BScreen::load() { resource.opaque_move = false; rscreen.rdbuf()->freeze(0); - rname.rdbuf()->freeze(0); - rclass.rdbuf()->freeze(0); + rname.rdbuf()->freeze(0); rclass.rdbuf()->freeze(0); } void BScreen::reconfigure(void) { @@ -1917,6 +1930,7 @@ OpenboxWindow *BScreen::getIcon(int index) { int BScreen::addWorkspace(void) { Workspace *wkspc = new Workspace(*this, workspacesList->count()); workspacesList->insert(wkspc); + setWorkspaceCount(workspaceCount()+1); saveWorkspaceNames(); workspacemenu->insert(wkspc->getName(), wkspc->getMenu(), @@ -1947,6 +1961,8 @@ int BScreen::removeLastWorkspace(void) { workspacesList->remove(wkspc); delete wkspc; + setWorkspaceCount(workspaceCount()-1); + saveWorkspaceNames(); toolbar->reconfigure(); @@ -1965,11 +1981,11 @@ void BScreen::changeWorkspaceID(int id) { workspacemenu->setItemSelected(current_workspace->getWorkspaceID() + 2, False); - if (openbox.getFocusedWindow() && - openbox.getFocusedWindow()->getScreen() == this && - (! openbox.getFocusedWindow()->isStuck())) { - current_workspace->setLastFocusedWindow(openbox.getFocusedWindow()); - openbox.setFocusedWindow(NULL); + if (openbox.focusedWindow() && + openbox.focusedWindow()->getScreen() == this && + (! openbox.focusedWindow()->isStuck())) { + current_workspace->setLastFocusedWindow(openbox.focusedWindow()); + openbox.focusWindow((OpenboxWindow *) 0); } current_workspace = getWorkspace(id); @@ -1991,7 +2007,7 @@ void BScreen::changeWorkspaceID(int id) { void BScreen::addNetizen(Netizen *n) { - netizenList->insert(n); + netizenList.push_back(n); n->sendWorkspaceCount(); n->sendCurrentWorkspace(); @@ -2003,87 +2019,86 @@ void BScreen::addNetizen(Netizen *n) { w->getWorkspaceID()); } - Window f = ((openbox.getFocusedWindow()) ? - openbox.getFocusedWindow()->getClientWindow() : None); + Window f = ((openbox.focusedWindow()) ? + openbox.focusedWindow()->getClientWindow() : None); n->sendWindowFocus(f); } void BScreen::removeNetizen(Window w) { - LinkedListIterator it(netizenList); + netList::iterator it; int i = 0; - for (Netizen *n = it.current(); n; it++, i++, n = it.current()) - if (n->getWindowID() == w) { - Netizen *tmp = netizenList->remove(i); + for (it = netizenList.begin(); it != netizenList.end(); ++it) + if ((*it)->getWindowID() == w) { + Netizen *tmp = *it; + netizenList.erase(it); delete tmp; - break; } } void BScreen::updateNetizenCurrentWorkspace(void) { - LinkedListIterator it(netizenList); - for (Netizen *n = it.current(); n; it++, n = it.current()) - n->sendCurrentWorkspace(); + netList::iterator it; + for (it = netizenList.begin(); it != netizenList.end(); ++it) + (*it)->sendCurrentWorkspace(); } void BScreen::updateNetizenWorkspaceCount(void) { - LinkedListIterator it(netizenList); - for (Netizen *n = it.current(); n; it++, n = it.current()) - n->sendWorkspaceCount(); + netList::iterator it; + for (it = netizenList.begin(); it != netizenList.end(); ++it) + (*it)->sendWorkspaceCount(); } void BScreen::updateNetizenWindowFocus(void) { - Window f = ((openbox.getFocusedWindow()) ? - openbox.getFocusedWindow()->getClientWindow() : None); - LinkedListIterator it(netizenList); - for (Netizen *n = it.current(); n; it++, n = it.current()) - n->sendWindowFocus(f); + Window f = ((openbox.focusedWindow()) ? + openbox.focusedWindow()->getClientWindow() : None); + netList::iterator it; + for (it = netizenList.begin(); it != netizenList.end(); ++it) + (*it)->sendWindowFocus(f); } - void BScreen::updateNetizenWindowAdd(Window w, unsigned long p) { - LinkedListIterator it(netizenList); - for (Netizen *n = it.current(); n; it++, n = it.current()) - n->sendWindowAdd(w, p); + netList::iterator it; + for (it = netizenList.begin(); it != netizenList.end(); ++it) + (*it)->sendWindowAdd(w, p); } void BScreen::updateNetizenWindowDel(Window w) { - LinkedListIterator it(netizenList); - for (Netizen *n = it.current(); n; it++, n = it.current()) - n->sendWindowDel(w); + netList::iterator it; + for (it = netizenList.begin(); it != netizenList.end(); ++it) + (*it)->sendWindowDel(w); } void BScreen::updateNetizenWindowRaise(Window w) { - LinkedListIterator it(netizenList); - for (Netizen *n = it.current(); n; it++, n = it.current()) - n->sendWindowRaise(w); + netList::iterator it; + for (it = netizenList.begin(); it != netizenList.end(); ++it) + (*it)->sendWindowRaise(w); } void BScreen::updateNetizenWindowLower(Window w) { - LinkedListIterator it(netizenList); - for (Netizen *n = it.current(); n; it++, n = it.current()) - n->sendWindowLower(w); + netList::iterator it; + for (it = netizenList.begin(); it != netizenList.end(); ++it) + (*it)->sendWindowLower(w); } void BScreen::updateNetizenConfigNotify(XEvent *e) { - LinkedListIterator it(netizenList); - for (Netizen *n = it.current(); n; it++, n = it.current()) - n->sendConfigNotify(e); + netList::iterator it; + for (it = netizenList.begin(); it != netizenList.end(); ++it) + (*it)->sendConfigNotify(e); } void BScreen::raiseWindows(Window *workspace_stack, int num) { Window *session_stack = new - Window[(num + workspacesList->count() + rootmenuList->count() + 13)]; + Window[(num + workspacesList->count() + rootmenuList.size() + 13)]; int i = 0, k = num; XRaiseWindow(getBaseDisplay().getXDisplay(), iconmenu->getWindowID()); @@ -2109,9 +2124,9 @@ void BScreen::raiseWindows(Window *workspace_stack, int num) { toolbar->getMenu()->getPlacementmenu()->getWindowID(); *(session_stack + i++) = toolbar->getMenu()->getWindowID(); - LinkedListIterator rit(rootmenuList); - for (Rootmenu *tmp = rit.current(); tmp; rit++, tmp = rit.current()) - *(session_stack + i++) = tmp->getWindowID(); + menuList::iterator rit; + for (rit = rootmenuList.begin(); rit != rootmenuList.end(); ++rit) + *(session_stack + i++) = (*rit)->getWindowID(); *(session_stack + i++) = rootmenu->getWindowID(); if (toolbar->onTop()) @@ -2172,11 +2187,11 @@ void BScreen::nextFocus(void) { int focused_window_number = -1; OpenboxWindow *next; - if (openbox.getFocusedWindow()) { - if (openbox.getFocusedWindow()->getScreen()->getScreenNumber() == + if (openbox.focusedWindow()) { + if (openbox.focusedWindow()->getScreen()->getScreenNumber() == getScreenNumber()) { have_focused = True; - focused_window_number = openbox.getFocusedWindow()->getWindowNumber(); + focused_window_number = openbox.focusedWindow()->getWindowNumber(); } } @@ -2206,11 +2221,11 @@ void BScreen::prevFocus(void) { int focused_window_number = -1; OpenboxWindow *prev; - if (openbox.getFocusedWindow()) { - if (openbox.getFocusedWindow()->getScreen()->getScreenNumber() == + if (openbox.focusedWindow()) { + if (openbox.focusedWindow()->getScreen()->getScreenNumber() == getScreenNumber()) { have_focused = True; - focused_window_number = openbox.getFocusedWindow()->getWindowNumber(); + focused_window_number = openbox.focusedWindow()->getWindowNumber(); } } @@ -2239,24 +2254,24 @@ void BScreen::raiseFocus(void) { Bool have_focused = False; int focused_window_number = -1; - if (openbox.getFocusedWindow()) { - if (openbox.getFocusedWindow()->getScreen()->getScreenNumber() == + if (openbox.focusedWindow()) { + if (openbox.focusedWindow()->getScreen()->getScreenNumber() == getScreenNumber()) { have_focused = True; - focused_window_number = openbox.getFocusedWindow()->getWindowNumber(); + focused_window_number = openbox.focusedWindow()->getWindowNumber(); } } if ((getCurrentWorkspace()->getCount() > 1) && have_focused) - getWorkspace(openbox.getFocusedWindow()->getWorkspaceNumber())-> - raiseWindow(openbox.getFocusedWindow()); + getWorkspace(openbox.focusedWindow()->getWorkspaceNumber())-> + raiseWindow(openbox.focusedWindow()); } void BScreen::InitMenu(void) { if (rootmenu) { - while (rootmenuList->count()) - rootmenuList->remove(0); + while (!rootmenuList.empty()) + rootmenuList.erase(rootmenuList.begin()); while (rootmenu->getCount()) rootmenu->remove(0); @@ -2559,7 +2574,7 @@ Bool BScreen::parseMenuFile(FILE *file, Rootmenu *menu) { parseMenuFile(file, submenu); submenu->update(); menu->insert(label, submenu); - rootmenuList->insert(submenu); + rootmenuList.push_back(submenu); } break; @@ -2659,7 +2674,7 @@ Bool BScreen::parseMenuFile(FILE *file, Rootmenu *menu) { closedir(d); - std::sort(ls, ls + entries, dcmp()); + std::sort(ls, ls + entries, dcmp()); int n, slen = strlen(stylesdir); for (n = 0; n < entries; n++) { @@ -2685,7 +2700,7 @@ Bool BScreen::parseMenuFile(FILE *file, Rootmenu *menu) { if (newmenu) { stylesmenu->setLabel(label); menu->insert(label, stylesmenu); - rootmenuList->insert(stylesmenu); + rootmenuList.push_back(stylesmenu); } openbox.setMenuFilename(stylesdir);