Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-8873

Implement an Aero Snap-like «window snapping» feature

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Resolved
    • Priority: Minor
    • Resolution: Duplicate
    • Fix Version/s: None
    • Component/s: Shell
    • Labels:
      None

      Description

      If ReactOS is going for the improved Windows, I think resizing/maximizing windows snapping them against the screen borders is a good idea, as it was one of the most useful additions of Windows 7.

      After inductively testing in Windows 7 I've managed to elucidate the following behavior:

      Definitions

      Work area: Rectangular zone specified by explorer.exe used as the available space used for moving and displaying windows. Normally is equal to the screen size minus the taskbar. This is specially apparent if the taskbar is moved to the top border.

      Current screen: Display that contains most of the area of the current window.

      Basic Behavior

      1. Snap a resizable window against the top border of the combined work area (the sum of all the monitors) to maximize in the monitor that owns that border.
      1b. The same behavior can be triggered with the <Windows key + up arrow key> combination but affects only the current screen.

      2. Snap a resizable window against the left or right borders of the combined work area (the sum of all the monitors) to resize it, making it fit on that half of the current screen.
      2b. The same behavior can be triggered with the <Windows key + left/right arrow key> combinations, but this time it affects the current screen only. This combination can be used to position a window covering the half in the passable border between two screens, where the cursor snapping doesn't work.

      Advanced Behavior

      3. When moving a window by its title bar, Aero Snap does not trigger until the mouse pointer hits the actual work area border. It first shows a preview of the would-be size and position, which gets confirmed when releasing the left mouse button.
      4. To cancel the preview it has a safe distance from every display border; an inner frame, of the same size as the title bar height, no matter if the border is vertical or horizontal.
      5. If the window is in the intersection between two displays the selected display is the one with the bigger portion of the window, the "Current Screen".

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                bug zilla Bug Zilla
                Reporter:
                Swyter Swyter
              • Votes:
                10 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: