Reposition client
Floating clients should be repositionable using both key bindings and mouse bindings. In the case of key bindings, it should be possible to move the client left/right/up/down by a specified number of pixels (clamping at screen boundaries) and in the case of mouse bindings it should be possible to drag clients.
Currently motion events are not being picked up in XcbConnection but I'm not
sure why. They did work previously when implementing the existing mouse
functionality but something now seems to be suppressing them. This will likely
need addressing before the mouse handling of this issue can be implemented in a
non-horrifying way.
If a tiled client is repositioned, it should be popped out of the current layout and made floating. This should trigger a re-application of the current layout (minus the now floating client).
A/C
- [ ] Motion notify events are passed through to the WindowManager
- [ ] Method for moving a client a given number of pixels in a given direction
- [ ] Method for dragging a client in response to motion events
- [ ] Method for reinserting a floating client (insert at current insert point)