all repos — fluxbox @ 0cba1e7dffae670d1a4bbaa6fb300d6888f1e7ce

custom fork of the fluxbox windowmanager

fixed the focusbug when deleting a window which calls Fluxbox::setFocusedWindow and the calls FluxboxWindow::setFocusFlag on the same window
fluxgen fluxgen
commit

0cba1e7dffae670d1a4bbaa6fb300d6888f1e7ce

parent

64faaa975e4df02bbf49bc19a96e25e6bc191f3e

2 files changed, 11 insertions(+), 10 deletions(-)

jump to
M src/Window.ccsrc/Window.cc

@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Window.cc,v 1.30 2002/02/26 22:35:58 fluxgen Exp $ +// $Id: Window.cc,v 1.31 2002/02/27 22:04:01 fluxgen Exp $ //use GNU extensions #ifndef _GNU_SOURCE

@@ -406,6 +406,7 @@

if (timer) { if (timer->isTiming()) timer->stop(); delete timer; + timer = 0; } if (windowmenu)

@@ -417,18 +418,18 @@

if (client.icon_title) delete [] client.icon_title; - if (tab) + if (tab!=0) delete tab; tab = 0; - if (client.mwm_hint) + if (client.mwm_hint!=0) XFree(client.mwm_hint); - if (client.blackbox_hint) + if (client.blackbox_hint!=0) XFree(client.blackbox_hint); //TODO: Move this to Workspace::removeWindow - if (client.transient_for) + if (client.transient_for!=0) fluxbox->setFocusedWindow(client.transient_for); if (client.window_group)

@@ -2433,7 +2434,7 @@ XSetWindowBorder(display, frame.plate, frame.uborder_pixel);

} if ((screen->isSloppyFocus() || screen->isSemiSloppyFocus()) && - screen->doAutoRaise()) + screen->doAutoRaise() && timer!=0 ) timer->stop(); }
M src/fluxbox.ccsrc/fluxbox.cc

@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: fluxbox.cc,v 1.36 2002/02/26 22:42:23 fluxgen Exp $ +// $Id: fluxbox.cc,v 1.37 2002/02/27 22:04:01 fluxgen Exp $ //Use some GNU extensions #ifndef _GNU_SOURCE

@@ -2475,7 +2475,7 @@ FluxboxWindow *old_win = 0;

Toolbar *old_tbar = 0, *tbar = 0; Workspace *old_wkspc = 0, *wkspc = 0; - if (focused_window) { + if (focused_window!=0) { old_win = focused_window; old_screen = old_win->getScreen();

@@ -2499,9 +2499,9 @@

} else focused_window = (FluxboxWindow *) 0; - if (tbar) + if (tbar!=0) tbar->redrawWindowLabel(True); - if (screen) + if (screen!=0) screen->updateNetizenWindowFocus(); if (old_tbar && old_tbar != tbar)