intermediate fix for segfault when warping transient windows to different workspace, see #3088856 warping a transient window to the next workspace creates a cycle between BScreen::changeWorkspaceID(), BScreen::reassociateWindow(), Workspace::removeWindow(), FocusControl::unfocusWindow(), FluxboxWindow::setCurrentClient(), FluxboxWindow::focus() and so on. for now we just stop allowing transient windows to be warped, it is most likely a bad idea anyway having the modal dialog on one workspace and the (dead) main window on another one. this issue must be analyzed further, since there might be a deeper problem with the way the focus code works.
Mathias Gumz akira at fluxbox dot org
1 files changed,
1 insertions(+),
1 deletions(-)
jump to
M
src/Window.cc
→
src/Window.cc
@@ -2455,7 +2455,7 @@ frame().width() + 2*frame().window().borderWidth()-1,
frame().height() + 2*frame().window().borderWidth()-1); } - if (moved_x && screen().isWorkspaceWarping()) { + if (moved_x && screen().isWorkspaceWarping() && !isTransient() ) { unsigned int cur_id = screen().currentWorkspaceID(); unsigned int new_id = cur_id; const int warpPad = screen().getEdgeSnapThreshold();