I think this should be instead

```python
                        if window in self._windows:
                                self._windows.remove(window)
                                self._windows[-1].hide()
                                self._windows.append(window)
                                window.show(**kwargs)
                        else:
                                self.open(window, **kwargs)
```

so that ```Window.open()``` is only called if the window wasn't in the stack before.