From 8d7690f2abceae861211d1d76d6b7c1cc863ac2f Mon Sep 17 00:00:00 2001 From: fluxgen Date: Fri, 14 Jun 2002 09:59:49 +0000 Subject: fixed transient check --- src/Window.cc | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/Window.cc b/src/Window.cc index b7ecd9b..5f2ea74 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -22,7 +22,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Window.cc,v 1.59 2002/06/04 09:50:58 fluxgen Exp $ +// $Id: Window.cc,v 1.60 2002/06/14 09:59:49 fluxgen Exp $ #include "Window.hh" @@ -3701,9 +3701,14 @@ void FluxboxWindow::checkTransient() { FluxboxWindow *tr; if ((tr = fluxbox->searchWindow(win))) { - while (tr->client.transient) + while (tr->client.transient) { tr = tr->client.transient; - + if (tr == tr->client.transient) { //ops! something is wrong with transient + tr->client.transient = 0; + } + } + + client.transient_for = tr; tr->client.transient = this; stuck = client.transient_for->stuck; @@ -3711,8 +3716,12 @@ void FluxboxWindow::checkTransient() { } else if (win == client.window_group) { if ((tr = fluxbox->searchGroup(win, this))) { - while (tr->client.transient) + while (tr->client.transient) { tr = tr->client.transient; + if (tr == tr->client.transient) { //ops! somehtin is wrong with transient + tr->client.transient = 0; + } + } client.transient_for = tr; tr->client.transient = this; -- cgit v0.11.2