This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project wmaker-crm.git.

The branch, next has been updated
       via  7efeca43e8b63fc42bafe18f94d4e011cb3bc3b9 (commit)
      from  3c5533bec25a4f94c42ffaf7f77c27db6ddb7ac7 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://repo.or.cz/w/wmaker-crm.git/commit/7efeca43e8b63fc42bafe18f94d4e011cb3bc3b9

commit 7efeca43e8b63fc42bafe18f94d4e011cb3bc3b9
Author: Doug Torrance <[email protected]>
Date:   Mon Jun 22 09:50:51 2015 -0500

    wmaker: Allow configuration of window snapping detect distances.
    
    This patch introduces two new configuration values, SnapEdgeDetect and
    SnapCornerDetect, which users can set to change the distance from an edge
    or corner at which window snapping will begin.  The defaults are 1 and 10,
    respectively.
    
    Suggested-by: Josip Deanovic <[email protected]>

diff --git a/NEWS b/NEWS
index fb96dbb..d60603c 100644
--- a/NEWS
+++ b/NEWS
@@ -17,6 +17,11 @@ Note that if "Switch workspaces while dragging windows" is 
selected under
 ~/GNUstep/Defaults/WindowMaker, then you may only snap a window to the top or
 bottom of the screen.
 
+You may set the distance (in pixels) from the edge or corner of the screen at
+which a window will begin snapping using "SnapEdgeDetect" and 
"SnapCornerDetect"
+in ~/GNUstep/Defaults/WindowMaker.  (The defaults are 1 pixel and 10 pixels,
+respectively).
+
 
 Dragging maximized windows
 --------------------------
diff --git a/src/WindowMaker.h b/src/WindowMaker.h
index 37e3fc0..99751ff 100644
--- a/src/WindowMaker.h
+++ b/src/WindowMaker.h
@@ -360,6 +360,8 @@ extern struct WPreferences {
        char no_animations;                /* enable/disable animations */
        char no_autowrap;                  /* wrap workspace when window is 
moved to the edge */
        char window_snapping;              /* enable window snapping */
+       int snap_edge_detect;              /* how far from edge to begin snap */
+       int snap_corner_detect;            /* how far from corner to begin snap 
*/
        char drag_maximized_window;        /* behavior when a maximized window 
is dragged */
 
        char highlight_active_app;         /* show the focused app by 
highlighting its icon */
diff --git a/src/defaults.c b/src/defaults.c
index c5a94c6..6f9edfd 100644
--- a/src/defaults.c
+++ b/src/defaults.c
@@ -474,6 +474,10 @@ WDefaultEntry optionList[] = {
            &wPreferences.no_autowrap, getBool, NULL, NULL, NULL},
        {"WindowSnapping", "NO", NULL,
            &wPreferences.window_snapping, getBool, NULL, NULL, NULL},
+       {"SnapEdgeDetect", "1", NULL,
+           &wPreferences.snap_edge_detect, getInt, NULL, NULL, NULL},
+       {"SnapCornerDetect", "10", NULL,
+           &wPreferences.snap_corner_detect, getInt, NULL, NULL, NULL},
        {"DragMaximizedWindow", "Move", seDragMaximizedWindow,
            &wPreferences.drag_maximized_window, getEnum, NULL, NULL, NULL},
        {"HighlightActiveApp", "YES", NULL,
diff --git a/src/moveres.c b/src/moveres.c
index cded064..e8883c8 100644
--- a/src/moveres.c
+++ b/src/moveres.c
@@ -1240,23 +1240,28 @@ static void draw_snap_frame(WWindow *wwin, int 
direction)
 
 static int get_snap_direction(WScreen *scr, int x, int y)
 {
-       if (x < 1) {
-               if (y < 1)
-                       return SNAP_TOPLEFT;
-               if (y > scr->scr_height - 2)
-                       return SNAP_BOTTOMLEFT;
+       int edge, corner;
+
+       edge = wPreferences.snap_edge_detect;
+       corner = wPreferences.snap_corner_detect;
+
+       if (x < corner && y < corner)
+               return SNAP_TOPLEFT;
+       if (x < corner && y >= scr->scr_height - corner)
+               return SNAP_BOTTOMLEFT;
+       if (x < edge)
                return SNAP_LEFT;
-       }
-       if (x > scr->scr_width - 2) {
-               if (y < 1)
-                       return SNAP_TOPRIGHT;
-               if (y > scr->scr_height - 2)
-                       return SNAP_BOTTOMRIGHT;
+
+       if (x >= scr->scr_width - corner && y < corner)
+               return SNAP_TOPRIGHT;
+       if (x >= scr->scr_width - corner && y >= scr->scr_height - corner)
+               return SNAP_BOTTOMRIGHT;
+       if (x >= scr->scr_width - edge)
                return SNAP_RIGHT;
-       }
-       if (y < 1)
+
+       if (y < edge)
                return SNAP_TOP;
-       if (y > scr->scr_height - 2)
+       if (y >= scr->scr_height - edge)
                return SNAP_BOTTOM;
        return SNAP_NONE;
 }

-----------------------------------------------------------------------

Summary of changes:
 NEWS              |  5 +++++
 src/WindowMaker.h |  2 ++
 src/defaults.c    |  4 ++++
 src/moveres.c     | 33 +++++++++++++++++++--------------
 4 files changed, 30 insertions(+), 14 deletions(-)


repo.or.cz automatic notification. Contact project admin [email protected]
if you want to unsubscribe, or site admin [email protected] if you receive
no reply.
-- 
wmaker-crm.git ("The Window Maker window manager")


-- 
To unsubscribe, send mail to [email protected].

Reply via email to