DestroyNotify, &ev) ||
XCheckTypedWindowEvent(_epist->getXDisplay(), e.xany.window,
UnmapNotify, &ev)) {
- processEvent(ev);
+
+ XWindow *win = _epist->findWindow(e.xany.window);
+ if (win) win->processEvent(ev);
}
updateClientList();
if (it == end) { // didn't already exist
if (doAddWindow(rootclients[i])) {
// cout << "Added window: 0x" << hex << rootclients[i] << dec << endl;
- if (_stacked_cycling) {
- // insert new clients after the active window
- _clients.insert(insert_point, new XWindow(_epist, this,
- rootclients[i]));
- } else {
- // insert new clients at the front of the list
- _clients.push_front(new XWindow(_epist, this, rootclients[i]));
- }
+ // insert new clients after the active window
+ _clients.insert(insert_point, new XWindow(_epist, this,
+ rootclients[i]));
}
}
}
WindowList::const_iterator it, end = _clients.end();
for (it = _clients.begin(); it != end; ++it)
if ((*it)->getScreen() == this && ! (*it)->iconic() &&
- ((*it)->desktop() == 0xffffffff || (*it)->desktop() == _active_desktop))
+ (*it)->canFocus() &&
+ ((*it)->desktop() == 0xffffffff ||
+ (*it)->desktop() == _active_desktop))
return *it;
// no windows on this screen