wmaker: Add window snapping feature.

This patch adds the ability to "snap" a window to one side of the screen by
dragging it to that side.  It is enabled by setting WindowSnapping = "YES" in
~/GNUstep/Defaults/WindowMaker.

Note that window snapping is automatically disabled if DontLinkWorkspaces =
"NO", as this feature also involves dragging a window to one side of the
screen.
WPrefs.app: Add ability to enable or disable window snapping.
wmaker: Clear maximized flag of a maximized window when moved.

If a user moves a window which is currently maximized, the current behavior is
to keep the window geometry and maximized status unchanged.  This can lead to
peculiar behavior.  For example, suppose a user maximizes a window to the
right half of the screen (either through the window menu, keyboard shortcut, or
new snapping feature), then moves it, and then attempts maximize it to the
right half of the screen again.  Instead of the expected result, the window is
unmaximized and returned to its original geometry.

This patch changes the behavior by clearing the maximization flag when a
maximized window is moved.  Then, when a window is maximized and then moved, it
can be maximized again without issues.
wmaker: Add "unmaximize on move" feature.

This patch adds the ability to completely unmaximize, i.e., clear the maximized
flag and return to the original geometry, a maximized window that is moved.
This behavior mirrors that of other common desktop enviroments, e.g., GNOME,
Unity, and Windows.

To enable this feature, set "UnmaximizeOnMove = YES" in
~/GNUstep/Defaults/WindowMaker.
WPrefs.app: Add ability to enable or disable "unmaximize on move" feature.
NEWS: Add note about window snapping.
fix maximize when dock is set 'on top' and it should be covered

Window Maker was not correctly maximizing windows in some cases

"... do not cover dock" enabled with "Dock postion":
Normal             - maximizes ok
Auto raise & lower - maximizes ok
Keep on Top        - maximizes ok

"... do not cover dock" disabled with "Dock postion":
Normal             - maximizes ok
Auto raise & lower - maximizes ok
Keep on Top        - maximizes not covering dock

Reported-by: Johann Haarhoff <johann@haarhoff.org.za>
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>

THIS PATCH WAS MODIFIED BY Rodolfo García Peñas (kix) because cannot be
applied in the awmaker git without changes. This patch is based in the
original patch created by Amadeusz Sławiński <amade@asmblr.net>
wmaker: Add new options for dragging maximized windows.

You can now configure the behavior when dragging a maximized window by setting
DragMaximizedWindow in ~/GNUstep/Defaults/WindowMaker.  The options are:
- Move: Move the window and retain its maximized status and geometry (the
  current behavior and the default).
- RestoreGeometry: Move the window and unmaximize it, restoring its original
  geometry.
- Unmaximize: Move the window and unmaximize it, retaining its maximized
  geometry.
- NoMove: Don't move the window.
WPrefs.app: Add ability to set behavior when dragging a maximized window.

You can now set the behavior when dragging a maximized window, i.e., the
"DragMaximizedWindow" option from ~/GNUstep/Defaults/WindowMaker, from the
"Window Handling" tab of WPrefs.app.

Note that to make room for the pop-up button required to set this option, the
switch button to set the "OpenTransientOnOwnerWorkspace" option has been moved
to the "Expert User Preferences" tab and the "Edge Resistance" frame has been
made slightly smaller.
NEWS: Add note about dragging maximized windows.
wmaker: Add more directions for window snapping.

This patch adds the ability to "snap" a window to the top, bottom, or any of the
four corners of the screen.  It uses three new helper functions, drawSnapFrame,
getSnapDirection, and doSnap, to reduce code duplication and increase
readability.

It also updates NEWS to indicate the additional directions.
wmaker: Consistent whitespace in WindowMaker.h.

Previously, the whitespace in WindowMaker was inconsistent, with some
indentation using spaces and some using tabs, and a mixture of tabs and spaces
used to align comments at the ends of lines.  As a result, patches that touched
this file would often result in warnings from checkpatch.pl.

This patch fixes this so that indentation uses tabs and all other alignment uses
spaces.

THIS PATCH WAS MODIFIED BY Rodolfo García Peñas (kix) because cannot be
applied in the awmaker git without changes. This patch is based in the
original patch created by Doug Torrance <dtorrance@monmouthcollege.edu>