diff --git a/activation.cpp b/activation.cpp index 5cec4a8dc9..e038c0c9c8 100644 --- a/activation.cpp +++ b/activation.cpp @@ -885,6 +885,8 @@ void Client::startupIdChanged() desktop = asn_data.desktop(); if( !isOnAllDesktops()) workspace()->sendClientToDesktop( this, desktop, true ); + if( asn_data.xinerama() != -1 ) + workspace()->sendClientToScreen( this, asn_data.xinerama()); Time timestamp = asn_id.timestamp(); if( timestamp == 0 && asn_data.timestamp() != -1U ) timestamp = asn_data.timestamp(); diff --git a/manage.cpp b/manage.cpp index 66217c2055..3f49132e8d 100644 --- a/manage.cpp +++ b/manage.cpp @@ -205,7 +205,7 @@ bool Client::manage( Window w, bool isMapped ) { int screen = options->xineramaPlacementScreen; if( screen == -1 ) // active screen - screen = workspace()->activeScreen(); + screen = asn_data.xinerama() == -1 ? workspace()->activeScreen() : asn_data.xinerama(); area = workspace()->clientArea( PlacementArea, workspace()->screenGeometry( screen ).center(), desktop()); } else