General layout of a window:
Titlebar: Gives the name of the application, document or window. It's color (usually) indicates the focus state (active or inactive window). I say (usually) because some styles and themes do not provide different colors for focused or unfocused windows - although this is rare (and, I might add, cruel!).
Miniaturize button: Clicking on the left button of the titlebar iconifies the window.
Close button: Clicking on the right button of the titlebar closes the window or kills the application.
Resizebar: The bottom part of the window. Dragging the resizebar with the mouse resizes the window.
Client area: The window content. It can be an application, some text, a picture...
A window can be in two states: focused or unfocused. The focused window is the active window, the one receiving keystrokes. It's titlebar has a differentiated color (usually!). Dialog windows or panels opened from a main window, automatically get the focus. As soon as they are closed, the main window gets the focus back.
Two modes are available to focus a window:
Click to focus mode: clicking on any part of the window activates it.
Focus follows mouse mode: moving the mouse pointer over the window activates it.
Windows can overlap other windows, in which case some will hide all or part of others. Clicking on the titlebar or resizebar with the left mouse button brings a window to the "front" (gives that window focus). Selecting a window from the window list menu does the same.
Some key bindings are provided and are very useful when a window is hidden behind others.
Meta key + click on the titlebar with left mouse button-
sends the window to the back and gives focus to the topmost window.
Meta key + click on the client area with left mouse button-
brings the window to the front and focuses it.
Meta key + Up Arrow key-
brings the current focused window to the front.
Meta key + Down Arrow key-
sends the current focused window to the back.
Many window attributes can be modified from the attributes panel in the window commands menu (clicking the right mouse button on the titlebar). From version 0.62.0, window cycling was changed to Windows style (Alt-Tab).
Clicking on the titlebar of a window and dragging it with the left mouse button pressed moves the window. The little box in the middle indicates the current position in pixels relative to the top left corner of the screen (+0 +0). Extra key bindings give more flexibility.
Dragging the titlebar with middle mouse button: moves the window without changing it's stacking order.
Dragging the titlebar + Ctrl key: moves the window without focusing it.
Dragging the client area or the resizebar + Meta key: moves the window.
Double-clicking the titlebar while holding the Ctrl key resizes the window's height to full screen.
Double-clicking the titlebar while holding the Shift key resizes the window's width to full screen.
Double-clicking the titlebar while holding both Ctrl and Shift keys resizes the window's height and width to full screen. Double-clicking the titlebar while holding Ctrl or Shift key restores the initial size of the window.
To prevent a maximized window from covering the dock, the "Keep on top" option must be selected from the dock menu.
Clicking the miniaturize button (the left one on the titlebar) shrinks the window into a miniwindow with an icon and a title and places it at the bottom of the screen. Hitting the assigned shortcut does the same. (Default is Meta + m.)
The miniwindow is different from the application icon in that the miniwindow cannot be docked.
Double-clicking in the miniwindow restores a miniaturized window. Double-clicking in an application icon with the middle mouse button restores all miniaturized and hidden windows of this application.
The resizebar, at the bottom of the window, is divided into three regions: left end region, middle region and right end region.
Depending upon the region you click, the resize operation is constrained to one direction.
Clicking in the middle region of the resizebar and dragging it vertically changes the window's height.
Clicking in either the left or right region of the resizebar and dragging it horizontally changes the window's width.
Dragging with Shift key pressed gives the same result. Clicking in either end region of the resizebar and dragging it diagonally changes both height and width.
Key bindings give more options.
Dragging the window in the client area with the right mouse button + Meta key resizes the window.
Dragging the resizebar with the middle mouse button resizes the window without bringing it to the front.
Dragging the resizebar + Ctrl key resizes the window without focusing it.
Double-clicking on the titlebar of a window shades it. This means the window rolls up to it's titlebar. A shaded window has almost the same properties as a normal window. It can be miniaturized or closed.
From version 0.80.0, you can shade/unshade a window using a mouse wheel on its titlebar. This of course, assumes your system is able to manage a mouse wheel. The WMGLOBAL file in you $HOME/GNUstep/Defaults should contain two new directives : MouseWheelUp and MouseWheelDown.
Clicking the the miniaturize button (the left one on the titlebar) with the right mouse button hides the application. Using the middle mouse button unhides the application, simultaneously opening the windows list menu and selecting the hidden application. (Pressing both buttons at once with a two buttons mouse does the same on some OSes.) If this doesn't work, use the F11 key binding (the default) to open the windows list menu.
Clicking the close button (the right one on the titlebar) closes the window. When the close button has a different form (not an X), it means an application is running in that window. Double-clicking in this close button kills the application. This can be done too with Ctrl key + clicking the close button.
Usually, it's much better to exit an application from inside (through it's menu, for instance).