If workspaces are linked, then windows will only snap to the top or bottom
of the screen.

Suggested-by: Josip Deanovic <[email protected]>
---
 NEWS          | 8 ++++----
 src/moveres.c | 7 +++++--
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/NEWS b/NEWS
index 023ceb1..fb96dbb 100644
--- a/NEWS
+++ b/NEWS
@@ -12,10 +12,10 @@ screen, by dragging it to that side or corner.  It is 
enabled by setting
 "WindowSnapping = YES" in ~/GNUstep/Defaults/WindowMaker or selecting "Enable
 window snapping" under "Expert User Preferences" in WPrefs.app.
 
-Note that window snapping is automatically disabled if "Switch workspaces while
-dragging windows" is selected under "Workspace Preferences" in WPrefs.app, or
-if "DontLinkWorkspaces = NO" in  ~/GNUstep/Defaults/WindowMaker, as this 
feature
-also involves dragging a window to one side of the screen.
+Note that if "Switch workspaces while dragging windows" is selected under
+"Workspace Preferences" in WPrefs.app, or if "DontLinkWorkspaces = NO" in
+~/GNUstep/Defaults/WindowMaker, then you may only snap a window to the top or
+bottom of the screen.
 
 
 Dragging maximized windows
diff --git a/src/moveres.c b/src/moveres.c
index b271f32..4f10a18 100644
--- a/src/moveres.c
+++ b/src/moveres.c
@@ -1766,12 +1766,15 @@ int wMouseMoveWindow(WWindow * wwin, XEvent * ev)
                        break;
 
                case MotionNotify:
-                       if (IS_RESIZABLE(wwin) && wPreferences.window_snapping 
&& wPreferences.no_autowrap) {
+                       if (IS_RESIZABLE(wwin) && wPreferences.window_snapping) 
{
                                int snap_direction;
 
                                snap_direction = get_snap_direction(scr, 
moveData.mouseX, moveData.mouseY);
 
-                               if (moveData.snap != snap_direction) {
+                               if ((wPreferences.no_autowrap ||
+                                    snap_direction == SNAP_TOP ||
+                                    snap_direction == SNAP_BOTTOM) &&
+                                   moveData.snap != snap_direction) {
                                        /* erase old frame */
                                        if (moveData.snap)
                                                draw_snap_frame(wwin, 
moveData.snap);
-- 
2.1.4


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

Reply via email to