diff options
author | markt <markt> | 2006-06-28 00:54:40 (GMT) |
---|---|---|
committer | markt <markt> | 2006-06-28 00:54:40 (GMT) |
commit | 03631ca98e7e20ff4b0b0f162e4720e0282dc7e4 (patch) | |
tree | e26bab1e7cdae944c1504ba4bccbda6fbdd76150 /src/Window.cc | |
parent | 5459e88035ac09dee7af2169f1f8bc502311e2d4 (diff) | |
download | fluxbox-03631ca98e7e20ff4b0b0f162e4720e0282dc7e4.zip fluxbox-03631ca98e7e20ff4b0b0f162e4720e0282dc7e4.tar.bz2 |
Fix some focus issues on detach and restart
Diffstat (limited to 'src/Window.cc')
-rw-r--r-- | src/Window.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/Window.cc b/src/Window.cc index 2016ab9..0ca7ba9 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -766,7 +766,6 @@ bool FluxboxWindow::detachClient(WinClient &client) { | |||
766 | // otherwise this wouldn't be here (refer numClients() <= 1 return) | 766 | // otherwise this wouldn't be here (refer numClients() <= 1 return) |
767 | client.setFluxboxWindow(screen().createWindow(client)); | 767 | client.setFluxboxWindow(screen().createWindow(client)); |
768 | m_client->raise(); | 768 | m_client->raise(); |
769 | setInputFocus(); | ||
770 | return true; | 769 | return true; |
771 | } | 770 | } |
772 | 771 | ||
@@ -776,8 +775,10 @@ void FluxboxWindow::detachCurrentClient() { | |||
776 | return; | 775 | return; |
777 | WinClient &client = *m_client; | 776 | WinClient &client = *m_client; |
778 | detachClient(*m_client); | 777 | detachClient(*m_client); |
779 | if (client.fbwindow() != 0) | 778 | if (client.fbwindow() != 0) { |
780 | client.fbwindow()->show(); | 779 | client.fbwindow()->show(); |
780 | FocusControl::setFocusedWindow(&client); | ||
781 | } | ||
781 | } | 782 | } |
782 | 783 | ||
783 | /// removes client from client list, does not create new fluxboxwindow for it | 784 | /// removes client from client list, does not create new fluxboxwindow for it |
@@ -3660,6 +3661,7 @@ void FluxboxWindow::attachTo(int x, int y, bool interrupted) { | |||
3660 | if (client.fbwindow() != 0) { | 3661 | if (client.fbwindow() != 0) { |
3661 | client.fbwindow()->move(frame().x() - m_last_resize_x + x, frame().y() - m_last_resize_y + y); | 3662 | client.fbwindow()->move(frame().x() - m_last_resize_x + x, frame().y() - m_last_resize_y + y); |
3662 | client.fbwindow()->show(); | 3663 | client.fbwindow()->show(); |
3664 | FocusControl::setFocusedWindow(&client); | ||
3663 | } | 3665 | } |
3664 | } else if( attach_to_win == this && attach_to_win->isTabable()) { | 3666 | } else if( attach_to_win == this && attach_to_win->isTabable()) { |
3665 | //reording of tabs within a frame | 3667 | //reording of tabs within a frame |