From 791fdd1eff1dea703e1160ad474ae294e4feb55b Mon Sep 17 00:00:00 2001 From: Doug Torrance Date: Sat, 20 Jun 2015 22:46:25 -0500 Subject: [PATCH] wmaker: Allow window snapping and linked workspaces simultaneously. If workspaces are linked, then windows will only snap to the top or bottom of the screen. Suggested-by: Josip Deanovic --- NEWS | 8 ++++---- src/moveres.c | 7 ++++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index 023ceb18..fb96dbbf 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 b271f324..cded064f 100644 --- a/src/moveres.c +++ b/src/moveres.c @@ -1766,11 +1766,16 @@ 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 (!wPreferences.no_autowrap && + snap_direction != SNAP_TOP && + snap_direction != SNAP_BOTTOM) + snap_direction = SNAP_NONE; + if (moveData.snap != snap_direction) { /* erase old frame */ if (moveData.snap) -- 2.11.4.GIT