aboutsummaryrefslogtreecommitdiffstats
path: root/mousefunc.c
diff options
context:
space:
mode:
authorokan2011-06-24 06:06:24 +0000
committerokan2011-06-24 06:06:24 +0000
commitab4a3c9a9f59f702603e19f3eb3508a815521d6c (patch)
treeac1d554c262b5b74f3aaca048f357f87469c49c7 /mousefunc.c
parentc94e1a5dfb1df6ef5292efe8116084f95220d1a1 (diff)
downloadcwm-ab4a3c9a9f59f702603e19f3eb3508a815521d6c.tar.gz
introduce a new config option to snap to the screen edge. 'snapdist'
keyword taken from a diff from Sviatoslav Chagaev to do the same thing, but implemented in a completely way (based on some very old code from mk@). default set to 0, so no behavior change. ok oga@ (who would also like to take it further...)
Diffstat (limited to 'mousefunc.c')
-rw-r--r--mousefunc.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/mousefunc.c b/mousefunc.c
index 1ff2393..e38873e 100644
--- a/mousefunc.c
+++ b/mousefunc.c
@@ -16,7 +16,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $OpenBSD: mousefunc.c,v 1.28 2011/06/24 05:51:25 okan Exp $
+ * $OpenBSD: mousefunc.c,v 1.29 2011/06/24 06:06:24 okan Exp $
*/
#include <sys/param.h>
@@ -160,6 +160,13 @@ mousefunc_window_move(struct client_ctx *cc, void *arg)
cc->geom.x = ev.xmotion.x_root - px - cc->bwidth;
cc->geom.y = ev.xmotion.y_root - py - cc->bwidth;
+ cc->geom.x += client_snapcalc(cc->geom.x,
+ cc->geom.width, cc->sc->xmax,
+ cc->bwidth, Conf.snapdist);
+ cc->geom.y += client_snapcalc(cc->geom.y,
+ cc->geom.height, cc->sc->ymax,
+ cc->bwidth, Conf.snapdist);
+
/* don't move more than 60 times / second */
if ((ev.xmotion.time - time) > (1000 / 60)) {
time = ev.xmotion.time;