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.
This commit is contained in:
parent
35753c7c3f
commit
09f99a4674
1 changed files with 1 additions and 1 deletions
|
@ -2455,7 +2455,7 @@ void FluxboxWindow::motionNotifyEvent(XMotionEvent &me) {
|
|||
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();
|
||||
|
|
Loading…
Reference in a new issue