Details
META_VIRTUAL_CORE_POINTER_ID
#define META_VIRTUAL_CORE_POINTER_ID 2
 
META_VIRTUAL_CORE_KEYBOARD_ID
#define META_VIRTUAL_CORE_KEYBOARD_ID 3
 
enum MetaFrameFlags
typedef enum {
  META_FRAME_ALLOWS_DELETE            = 1 << 0,
  META_FRAME_ALLOWS_MENU              = 1 << 1,
  META_FRAME_ALLOWS_MINIMIZE          = 1 << 2,
  META_FRAME_ALLOWS_MAXIMIZE          = 1 << 3,
  META_FRAME_ALLOWS_VERTICAL_RESIZE   = 1 << 4,
  META_FRAME_ALLOWS_HORIZONTAL_RESIZE = 1 << 5,
  META_FRAME_HAS_FOCUS                = 1 << 6,
  META_FRAME_SHADED                   = 1 << 7,
  META_FRAME_STUCK                    = 1 << 8,
  META_FRAME_MAXIMIZED                = 1 << 9,
  META_FRAME_ALLOWS_SHADE             = 1 << 10,
  META_FRAME_ALLOWS_MOVE              = 1 << 11,
  META_FRAME_FULLSCREEN               = 1 << 12,
  META_FRAME_IS_FLASHING              = 1 << 13,
  META_FRAME_ABOVE                    = 1 << 14,
  META_FRAME_TILED_LEFT               = 1 << 15,
  META_FRAME_TILED_RIGHT              = 1 << 16
} MetaFrameFlags;
| META_FRAME_ALLOWS_DELETE
 | frame allows delete | 
| META_FRAME_ALLOWS_MENU
 | frame allows menu | 
| META_FRAME_ALLOWS_MINIMIZE
 | frame allows minimize | 
| META_FRAME_ALLOWS_MAXIMIZE
 | frame allows maximize | 
| META_FRAME_ALLOWS_VERTICAL_RESIZE
 | frame allows vertical resize | 
| META_FRAME_ALLOWS_HORIZONTAL_RESIZE
 | frame allows horizontal resize | 
| META_FRAME_HAS_FOCUS
 | frame has focus | 
| META_FRAME_SHADED
 | frame is shaded | 
| META_FRAME_STUCK
 | frame is stuck | 
| META_FRAME_MAXIMIZED
 | frame is maximized | 
| META_FRAME_ALLOWS_SHADE
 | frame allows shade | 
| META_FRAME_ALLOWS_MOVE
 | frame allows move | 
| META_FRAME_FULLSCREEN
 | frame allows fullscreen | 
| META_FRAME_IS_FLASHING
 | frame is flashing | 
| META_FRAME_ABOVE
 | frame is above | 
| META_FRAME_TILED_LEFT
 | frame is tiled to the left | 
| META_FRAME_TILED_RIGHT
 | frame is tiled to the right | 
 
enum MetaMenuOp
typedef enum {
  META_MENU_OP_NONE        = 0,
  META_MENU_OP_DELETE      = 1 << 0,
  META_MENU_OP_MINIMIZE    = 1 << 1,
  META_MENU_OP_UNMAXIMIZE  = 1 << 2,
  META_MENU_OP_MAXIMIZE    = 1 << 3,
  META_MENU_OP_UNSHADE     = 1 << 4,
  META_MENU_OP_SHADE       = 1 << 5,
  META_MENU_OP_UNSTICK     = 1 << 6,
  META_MENU_OP_STICK       = 1 << 7,
  META_MENU_OP_WORKSPACES  = 1 << 8,
  META_MENU_OP_MOVE        = 1 << 9,
  META_MENU_OP_RESIZE      = 1 << 10,
  META_MENU_OP_ABOVE       = 1 << 11,
  META_MENU_OP_UNABOVE     = 1 << 12,
  META_MENU_OP_MOVE_LEFT   = 1 << 13,
  META_MENU_OP_MOVE_RIGHT  = 1 << 14,
  META_MENU_OP_MOVE_UP     = 1 << 15,
  META_MENU_OP_MOVE_DOWN   = 1 << 16,
  META_MENU_OP_RECOVER     = 1 << 17
} MetaMenuOp;
| META_MENU_OP_NONE
 | No menu operation | 
| META_MENU_OP_DELETE
 | Menu operation delete | 
| META_MENU_OP_MINIMIZE
 | Menu operation minimize | 
| META_MENU_OP_UNMAXIMIZE
 | Menu operation unmaximize | 
| META_MENU_OP_MAXIMIZE
 | Menu operation maximize | 
| META_MENU_OP_UNSHADE
 | Menu operation unshade | 
| META_MENU_OP_SHADE
 | Menu operation shade | 
| META_MENU_OP_UNSTICK
 | Menu operation unstick | 
| META_MENU_OP_STICK
 | Menu operation stick | 
| META_MENU_OP_WORKSPACES
 | Menu operation workspaces | 
| META_MENU_OP_MOVE
 | Menu operation move | 
| META_MENU_OP_RESIZE
 | Menu operation resize | 
| META_MENU_OP_ABOVE
 | Menu operation above | 
| META_MENU_OP_UNABOVE
 | Menu operation unabove | 
| META_MENU_OP_MOVE_LEFT
 | Menu operation left | 
| META_MENU_OP_MOVE_RIGHT
 | Menu operation right | 
| META_MENU_OP_MOVE_UP
 | Menu operation up | 
| META_MENU_OP_MOVE_DOWN
 | Menu operation down | 
| META_MENU_OP_RECOVER
 | Menu operation recover | 
 
MetaWindowMenuFunc ()
void                (*MetaWindowMenuFunc)               (MetaWindowMenu *menu,
                                                         Display *xdisplay,
                                                         Window client_xwindow,
                                                         guint32 timestamp,
                                                         MetaMenuOp op,
                                                         int workspace,
                                                         gpointer user_data);
 
enum MetaGrabOp
typedef enum {
  META_GRAB_OP_NONE,
  /* Mouse ops */
  META_GRAB_OP_MOVING,
  META_GRAB_OP_RESIZING_SE,
  META_GRAB_OP_RESIZING_S,
  META_GRAB_OP_RESIZING_SW,
  META_GRAB_OP_RESIZING_N,
  META_GRAB_OP_RESIZING_NE,
  META_GRAB_OP_RESIZING_NW,
  META_GRAB_OP_RESIZING_W,
  META_GRAB_OP_RESIZING_E,
  /* Keyboard ops */
  META_GRAB_OP_KEYBOARD_MOVING,
  META_GRAB_OP_KEYBOARD_RESIZING_UNKNOWN,
  META_GRAB_OP_KEYBOARD_RESIZING_S,
  META_GRAB_OP_KEYBOARD_RESIZING_N,
  META_GRAB_OP_KEYBOARD_RESIZING_W,
  META_GRAB_OP_KEYBOARD_RESIZING_E,
  META_GRAB_OP_KEYBOARD_RESIZING_SE,
  META_GRAB_OP_KEYBOARD_RESIZING_NE,
  META_GRAB_OP_KEYBOARD_RESIZING_SW,
  META_GRAB_OP_KEYBOARD_RESIZING_NW,
  /* Alt+Tab */
  META_GRAB_OP_KEYBOARD_TABBING_NORMAL,
  META_GRAB_OP_KEYBOARD_TABBING_DOCK,
  /* Alt+Esc */
  META_GRAB_OP_KEYBOARD_ESCAPING_NORMAL,
  META_GRAB_OP_KEYBOARD_ESCAPING_DOCK,
  META_GRAB_OP_KEYBOARD_ESCAPING_GROUP,
  
  /* Alt+F6 */
  META_GRAB_OP_KEYBOARD_TABBING_GROUP,
  
  META_GRAB_OP_KEYBOARD_WORKSPACE_SWITCHING,
  
  /* Frame button ops */
  META_GRAB_OP_CLICKING_MINIMIZE,
  META_GRAB_OP_CLICKING_MAXIMIZE,
  META_GRAB_OP_CLICKING_UNMAXIMIZE,
  META_GRAB_OP_CLICKING_DELETE,
  META_GRAB_OP_CLICKING_MENU,
  META_GRAB_OP_CLICKING_SHADE,
  META_GRAB_OP_CLICKING_UNSHADE,
  META_GRAB_OP_CLICKING_ABOVE,
  META_GRAB_OP_CLICKING_UNABOVE,
  META_GRAB_OP_CLICKING_STICK,
  META_GRAB_OP_CLICKING_UNSTICK,
  /* Special grab op when the compositor asked for a grab */
  META_GRAB_OP_COMPOSITOR
} MetaGrabOp;
| META_GRAB_OP_NONE
 | None | 
| META_GRAB_OP_MOVING
 | Moving with pointer | 
| META_GRAB_OP_RESIZING_SE
 | Resizing SE with pointer | 
| META_GRAB_OP_RESIZING_S
 | Resizing S with pointer | 
| META_GRAB_OP_RESIZING_SW
 | Resizing SW with pointer | 
| META_GRAB_OP_RESIZING_N
 | Resizing N with pointer | 
| META_GRAB_OP_RESIZING_NE
 | Resizing NE with pointer | 
| META_GRAB_OP_RESIZING_NW
 | Resizing NW with pointer | 
| META_GRAB_OP_RESIZING_W
 | Resizing W with pointer | 
| META_GRAB_OP_RESIZING_E
 | Resizing E with pointer | 
| META_GRAB_OP_KEYBOARD_MOVING
 | Moving with keyboard | 
| META_GRAB_OP_KEYBOARD_RESIZING_UNKNOWN
 | Resizing with keyboard | 
| META_GRAB_OP_KEYBOARD_RESIZING_S
 | Resizing S with keyboard | 
| META_GRAB_OP_KEYBOARD_RESIZING_N
 | Resizing N with keyboard | 
| META_GRAB_OP_KEYBOARD_RESIZING_W
 | Resizing W with keyboard | 
| META_GRAB_OP_KEYBOARD_RESIZING_E
 | Resizing E with keyboard | 
| META_GRAB_OP_KEYBOARD_RESIZING_SE
 | Resizing SE with keyboard | 
| META_GRAB_OP_KEYBOARD_RESIZING_NE
 | Resizing NE with keyboard | 
| META_GRAB_OP_KEYBOARD_RESIZING_SW
 | Resizing SW with keyboard | 
| META_GRAB_OP_KEYBOARD_RESIZING_NW
 | Resizing NS with keyboard | 
| META_GRAB_OP_KEYBOARD_TABBING_NORMAL
 | Tabbing | 
| META_GRAB_OP_KEYBOARD_TABBING_DOCK
 | Tabbing through docks | 
| META_GRAB_OP_KEYBOARD_ESCAPING_NORMAL
 | Escaping | 
| META_GRAB_OP_KEYBOARD_ESCAPING_DOCK
 | Escaping through docks | 
| META_GRAB_OP_KEYBOARD_ESCAPING_GROUP
 | Escaping through groups | 
| META_GRAB_OP_KEYBOARD_TABBING_GROUP
 | Tabbing through groups | 
| META_GRAB_OP_KEYBOARD_WORKSPACE_SWITCHING
 | Switch to another workspace | 
| META_GRAB_OP_CLICKING_MINIMIZE
 | Clicked minimize button | 
| META_GRAB_OP_CLICKING_MAXIMIZE
 | Clicked maximize button | 
| META_GRAB_OP_CLICKING_UNMAXIMIZE
 | Clicked unmaximize button | 
| META_GRAB_OP_CLICKING_DELETE
 | Clicked delete button | 
| META_GRAB_OP_CLICKING_MENU
 | Clicked on menu | 
| META_GRAB_OP_CLICKING_SHADE
 | Clicked shade button | 
| META_GRAB_OP_CLICKING_UNSHADE
 | Clicked unshade button | 
| META_GRAB_OP_CLICKING_ABOVE
 | Clicked above button | 
| META_GRAB_OP_CLICKING_UNABOVE
 | Clicked unabove button | 
| META_GRAB_OP_CLICKING_STICK
 | Clicked stick button | 
| META_GRAB_OP_CLICKING_UNSTICK
 | Clicked unstick button | 
| META_GRAB_OP_COMPOSITOR
 | Compositor asked for grab | 
 
enum MetaCursor
typedef enum {
  META_CURSOR_DEFAULT,
  META_CURSOR_NORTH_RESIZE,
  META_CURSOR_SOUTH_RESIZE,
  META_CURSOR_WEST_RESIZE,
  META_CURSOR_EAST_RESIZE,
  META_CURSOR_SE_RESIZE,
  META_CURSOR_SW_RESIZE,
  META_CURSOR_NE_RESIZE,
  META_CURSOR_NW_RESIZE,
  META_CURSOR_MOVE_OR_RESIZE_WINDOW,
  META_CURSOR_BUSY,
  META_CURSOR_DND_IN_DRAG,
  META_CURSOR_DND_MOVE,
  META_CURSOR_DND_COPY,
  META_CURSOR_DND_UNSUPPORTED_TARGET,
  META_CURSOR_POINTING_HAND,
  META_CURSOR_CROSSHAIR,
  META_CURSOR_IBEAM,
  META_CURSOR_LAST
} MetaCursor;
| META_CURSOR_DEFAULT
 | Default cursor | 
| META_CURSOR_NORTH_RESIZE
 | Resize northern edge cursor | 
| META_CURSOR_SOUTH_RESIZE
 | Resize southern edge cursor | 
| META_CURSOR_WEST_RESIZE
 | Resize western edge cursor | 
| META_CURSOR_EAST_RESIZE
 | Resize eastern edge cursor | 
| META_CURSOR_SE_RESIZE
 | Resize south-eastern corner cursor | 
| META_CURSOR_SW_RESIZE
 | Resize south-western corner cursor | 
| META_CURSOR_NE_RESIZE
 | Resize north-eastern corner cursor | 
| META_CURSOR_NW_RESIZE
 | Resize north-western corner cursor | 
| META_CURSOR_MOVE_OR_RESIZE_WINDOW
 | Move or resize cursor | 
| META_CURSOR_BUSY
 | Busy cursor | 
| META_CURSOR_DND_IN_DRAG
 | DND in drag cursor | 
| META_CURSOR_DND_MOVE
 | DND move cursor | 
| META_CURSOR_DND_COPY
 | DND copy cursor | 
| META_CURSOR_DND_UNSUPPORTED_TARGET
 | DND unsupported target | 
| META_CURSOR_POINTING_HAND
 | pointing hand | 
| META_CURSOR_CROSSHAIR
 | crosshair (action forbidden) | 
| META_CURSOR_IBEAM
 | I-beam (text input) | 
| META_CURSOR_LAST
 |  | 
 
enum MetaFrameType
typedef enum {
  META_FRAME_TYPE_NORMAL,
  META_FRAME_TYPE_DIALOG,
  META_FRAME_TYPE_MODAL_DIALOG,
  META_FRAME_TYPE_UTILITY,
  META_FRAME_TYPE_MENU,
  META_FRAME_TYPE_BORDER,
  META_FRAME_TYPE_ATTACHED,
  META_FRAME_TYPE_LAST
} MetaFrameType;
| META_FRAME_TYPE_NORMAL
 | Normal frame | 
| META_FRAME_TYPE_DIALOG
 | Dialog frame | 
| META_FRAME_TYPE_MODAL_DIALOG
 | Modal dialog frame | 
| META_FRAME_TYPE_UTILITY
 | Utility frame | 
| META_FRAME_TYPE_MENU
 | Menu frame | 
| META_FRAME_TYPE_BORDER
 | Border frame | 
| META_FRAME_TYPE_ATTACHED
 | Attached frame | 
| META_FRAME_TYPE_LAST
 | Marks the end of the MetaFrameType enumeration | 
 
enum MetaVirtualModifier
typedef enum {
  /* Create gratuitous divergence from regular
   * X mod bits, to be sure we find bugs
   */
  META_VIRTUAL_SHIFT_MASK    = 1 << 5,
  META_VIRTUAL_CONTROL_MASK  = 1 << 6,
  META_VIRTUAL_ALT_MASK      = 1 << 7,  
  META_VIRTUAL_META_MASK     = 1 << 8,
  META_VIRTUAL_SUPER_MASK    = 1 << 9,
  META_VIRTUAL_HYPER_MASK    = 1 << 10,
  META_VIRTUAL_MOD2_MASK     = 1 << 11,
  META_VIRTUAL_MOD3_MASK     = 1 << 12,
  META_VIRTUAL_MOD4_MASK     = 1 << 13,
  META_VIRTUAL_MOD5_MASK     = 1 << 14
} MetaVirtualModifier;
| META_VIRTUAL_SHIFT_MASK
 | Shift mask | 
| META_VIRTUAL_CONTROL_MASK
 | Control mask | 
| META_VIRTUAL_ALT_MASK
 | Alt mask | 
| META_VIRTUAL_META_MASK
 | Meta mask | 
| META_VIRTUAL_SUPER_MASK
 | Super mask | 
| META_VIRTUAL_HYPER_MASK
 | Hyper mask | 
| META_VIRTUAL_MOD2_MASK
 | Mod2 mask | 
| META_VIRTUAL_MOD3_MASK
 | Mod3 mask | 
| META_VIRTUAL_MOD4_MASK
 | Mod4 mask | 
| META_VIRTUAL_MOD5_MASK
 | Mod5 mask | 
 
enum MetaDirection
typedef enum {
  META_DIRECTION_LEFT       = 1 << 0,
  META_DIRECTION_RIGHT      = 1 << 1,
  META_DIRECTION_TOP        = 1 << 2,
  META_DIRECTION_BOTTOM     = 1 << 3,
  /* Some aliases for making code more readable for various circumstances. */
  META_DIRECTION_UP         = META_DIRECTION_TOP,
  META_DIRECTION_DOWN       = META_DIRECTION_BOTTOM,
  /* A few more definitions using aliases */
  META_DIRECTION_HORIZONTAL = META_DIRECTION_LEFT | META_DIRECTION_RIGHT,
  META_DIRECTION_VERTICAL   = META_DIRECTION_UP   | META_DIRECTION_DOWN,
} MetaDirection;
| META_DIRECTION_LEFT
 | Left | 
| META_DIRECTION_RIGHT
 | Right | 
| META_DIRECTION_TOP
 | Top | 
| META_DIRECTION_BOTTOM
 | Bottom | 
| META_DIRECTION_UP
 | Up | 
| META_DIRECTION_DOWN
 | Down | 
| META_DIRECTION_HORIZONTAL
 | Horizontal | 
| META_DIRECTION_VERTICAL
 | Vertical | 
 
enum MetaMotionDirection
typedef enum {
  META_MOTION_UP = -1,
  META_MOTION_DOWN = -2,
  META_MOTION_LEFT = -3,
  META_MOTION_RIGHT = -4,
  /* These are only used for effects */
  META_MOTION_UP_LEFT = -5,
  META_MOTION_UP_RIGHT = -6,
  META_MOTION_DOWN_LEFT = -7,
  META_MOTION_DOWN_RIGHT = -8
} MetaMotionDirection;
| META_MOTION_UP
 | Upwards motion | 
| META_MOTION_DOWN
 | Downwards motion | 
| META_MOTION_LEFT
 | Motion to the left | 
| META_MOTION_RIGHT
 | Motion to the right | 
| META_MOTION_UP_LEFT
 | Motion up and to the left | 
| META_MOTION_UP_RIGHT
 | Motion up and to the right | 
| META_MOTION_DOWN_LEFT
 | Motion down and to the left | 
| META_MOTION_DOWN_RIGHT
 | Motion down and to the right | 
 
enum MetaSide
typedef enum {
  META_SIDE_LEFT            = META_DIRECTION_LEFT,
  META_SIDE_RIGHT           = META_DIRECTION_RIGHT,
  META_SIDE_TOP             = META_DIRECTION_TOP,
  META_SIDE_BOTTOM          = META_DIRECTION_BOTTOM
} MetaSide;
| META_SIDE_LEFT
 | Left side | 
| META_SIDE_RIGHT
 | Right side | 
| META_SIDE_TOP
 | Top side | 
| META_SIDE_BOTTOM
 | Bottom side | 
 
enum MetaButtonFunction
typedef enum {
  META_BUTTON_FUNCTION_MENU,
  META_BUTTON_FUNCTION_MINIMIZE,
  META_BUTTON_FUNCTION_MAXIMIZE,
  META_BUTTON_FUNCTION_CLOSE,
  META_BUTTON_FUNCTION_SHADE,
  META_BUTTON_FUNCTION_ABOVE,
  META_BUTTON_FUNCTION_STICK,
  META_BUTTON_FUNCTION_UNSHADE,
  META_BUTTON_FUNCTION_UNABOVE,
  META_BUTTON_FUNCTION_UNSTICK,
  META_BUTTON_FUNCTION_LAST
} MetaButtonFunction;
Function a window button can have.  Note, you can't add stuff here
without extending the theme format to draw a new function and
breaking all existing themes.
| META_BUTTON_FUNCTION_MENU
 | Menu | 
| META_BUTTON_FUNCTION_MINIMIZE
 | Minimize | 
| META_BUTTON_FUNCTION_MAXIMIZE
 | Maximize | 
| META_BUTTON_FUNCTION_CLOSE
 | Close | 
| META_BUTTON_FUNCTION_SHADE
 | Shade | 
| META_BUTTON_FUNCTION_ABOVE
 | Above | 
| META_BUTTON_FUNCTION_STICK
 | Stick | 
| META_BUTTON_FUNCTION_UNSHADE
 | Unshade | 
| META_BUTTON_FUNCTION_UNABOVE
 | Unabove | 
| META_BUTTON_FUNCTION_UNSTICK
 | Unstick | 
| META_BUTTON_FUNCTION_LAST
 | Marks the end of the MetaButtonFunction enumeration | 
 
MAX_BUTTONS_PER_CORNER
#define MAX_BUTTONS_PER_CORNER META_BUTTON_FUNCTION_LAST
 
struct MetaButtonLayout
struct MetaButtonLayout {
  /* buttons in the group on the left side */
  MetaButtonFunction left_buttons[MAX_BUTTONS_PER_CORNER];
  gboolean left_buttons_has_spacer[MAX_BUTTONS_PER_CORNER];
  /* buttons in the group on the right side */
  MetaButtonFunction right_buttons[MAX_BUTTONS_PER_CORNER];
  gboolean right_buttons_has_spacer[MAX_BUTTONS_PER_CORNER];
};
| MetaButtonFunction left_buttons[MAX_BUTTONS_PER_CORNER]; | . [array fixed-size=10] | 
| gboolean left_buttons_has_spacer[MAX_BUTTONS_PER_CORNER]; | . [array fixed-size=10] | 
| MetaButtonFunction right_buttons[MAX_BUTTONS_PER_CORNER]; | . [array fixed-size=10] | 
| gboolean right_buttons_has_spacer[MAX_BUTTONS_PER_CORNER]; | . [array fixed-size=10] | 
 
struct MetaFrameBorders
struct MetaFrameBorders {
  /* The frame border is made up of two pieces - an inner visible portion
   * and an outer portion that is invisible but responds to events.
   */
  GtkBorder visible;
  GtkBorder invisible;
  /* For convenience, we have a "total" border which is equal to the sum
   * of the two borders above. */
  GtkBorder total;
};
| GtkBorder visible; | inner visible portion of frame border | 
| GtkBorder invisible; | outer invisible portion of frame border | 
| GtkBorder total; | sum of the two borders above | 
 
meta_frame_borders_clear ()
void                meta_frame_borders_clear            (MetaFrameBorders *self);
 
META_ICON_WIDTH
#define META_ICON_WIDTH 96
 
META_ICON_HEIGHT
#define META_ICON_HEIGHT 96
 
META_MINI_ICON_WIDTH
#define META_MINI_ICON_WIDTH 16
 
META_MINI_ICON_HEIGHT
#define META_MINI_ICON_HEIGHT 16
 
META_DEFAULT_ICON_NAME
#define META_DEFAULT_ICON_NAME "window"
 
META_PRIORITY_RESIZE
#define META_PRIORITY_RESIZE    (G_PRIORITY_HIGH_IDLE + 15)
 
META_PRIORITY_BEFORE_REDRAW
#define META_PRIORITY_BEFORE_REDRAW  (G_PRIORITY_HIGH_IDLE + 40)
 
META_PRIORITY_REDRAW
#define META_PRIORITY_REDRAW    (G_PRIORITY_HIGH_IDLE + 50)
 
META_PRIORITY_PREFS_NOTIFY
#define META_PRIORITY_PREFS_NOTIFY   (G_PRIORITY_DEFAULT_IDLE + 10)
 
POINT_IN_RECT()
#define             POINT_IN_RECT(xcoord, ycoord, rect)
 
enum MetaStackLayer
typedef enum {
  META_LAYER_DESKTOP	       = 0,
  META_LAYER_BOTTOM	       = 1,
  META_LAYER_NORMAL	       = 2,
  META_LAYER_TOP	       = 4, /* Same as DOCK; see EWMH and bug 330717 */
  META_LAYER_DOCK	       = 4,
  META_LAYER_FULLSCREEN	       = 5,
  META_LAYER_FOCUSED_WINDOW    = 6,
  META_LAYER_OVERRIDE_REDIRECT = 7,
  META_LAYER_LAST	       = 8
} MetaStackLayer;
Layers a window can be in.
These MUST be in the order of stacking.
| META_LAYER_DESKTOP
 | Desktop layer | 
| META_LAYER_BOTTOM
 | Bottom layer | 
| META_LAYER_NORMAL
 | Normal layer | 
| META_LAYER_TOP
 | Top layer | 
| META_LAYER_DOCK
 | Dock layer | 
| META_LAYER_FULLSCREEN
 | Fullscreen layer | 
| META_LAYER_FOCUSED_WINDOW
 | Focused window layer | 
| META_LAYER_OVERRIDE_REDIRECT
 | Override-redirect layer | 
| META_LAYER_LAST
 | Marks the end of the MetaStackLayer enumeration | 
 
MetaWindowMenu
typedef struct _MetaWindowMenu MetaWindowMenu;
 
MetaResizePopup
typedef struct _MetaResizePopup MetaResizePopup;