diff options
author | fluxgen <fluxgen> | 2003-12-14 01:06:22 (GMT) |
---|---|---|
committer | fluxgen <fluxgen> | 2003-12-14 01:06:22 (GMT) |
commit | 521932e0a2885749e8e3fcf0254d6ff9180adf11 (patch) | |
tree | 24fc80fedc8bbaecc8729d9322037e6a1d384ebb | |
parent | 4e0150bf46be23b51155d3036739528aa104810e (diff) | |
download | fluxbox_pavel-521932e0a2885749e8e3fcf0254d6ff9180adf11.zip fluxbox_pavel-521932e0a2885749e8e3fcf0254d6ff9180adf11.tar.bz2 |
move client to drop zone when detaching client to root window
-rw-r--r-- | src/Window.cc | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/Window.cc b/src/Window.cc index ca69ff3..5adc484 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: Window.cc,v 1.252 2003/12/12 14:59:16 fluxgen Exp $ | 25 | // $Id: Window.cc,v 1.253 2003/12/14 01:06:22 fluxgen Exp $ |
26 | 26 | ||
27 | #include "Window.hh" | 27 | #include "Window.hh" |
28 | 28 | ||
@@ -1288,7 +1288,7 @@ void FluxboxWindow::deiconify(bool reassoc, bool do_raise) { | |||
1288 | (*client_it)->setEventMask(PropertyChangeMask | StructureNotifyMask | FocusChangeMask); | 1288 | (*client_it)->setEventMask(PropertyChangeMask | StructureNotifyMask | FocusChangeMask); |
1289 | } | 1289 | } |
1290 | 1290 | ||
1291 | frame().show(); | 1291 | show(); |
1292 | 1292 | ||
1293 | if (was_iconic && screen().doFocusNew()) | 1293 | if (was_iconic && screen().doFocusNew()) |
1294 | setInputFocus(); | 1294 | setInputFocus(); |
@@ -3008,9 +3008,17 @@ void FluxboxWindow::attachTo(int x, int y) { | |||
3008 | 3008 | ||
3009 | if (attach_to_win != this && | 3009 | if (attach_to_win != this && |
3010 | attach_to_win != 0) { | 3010 | attach_to_win != 0) { |
3011 | |||
3011 | attach_to_win->attachClient(*m_attaching_tab); | 3012 | attach_to_win->attachClient(*m_attaching_tab); |
3012 | } else if (attach_to_win != this) { // disconnect client if we didn't drop on a window | 3013 | |
3014 | } else if (attach_to_win != this) { | ||
3015 | // disconnect client if we didn't drop on a window | ||
3016 | WinClient &client = *m_attaching_tab; | ||
3013 | detachClient(*m_attaching_tab); | 3017 | detachClient(*m_attaching_tab); |
3018 | // move to drop zone | ||
3019 | if (client.m_win != 0) | ||
3020 | client.m_win->move(x, y); | ||
3021 | |||
3014 | } | 3022 | } |
3015 | 3023 | ||
3016 | } | 3024 | } |