constraints.c File Reference

Go to the source code of this file.

Data Structures

struct  ConstraintInfo
struct  Constraint

Typedefs

typedef gboolean(* ConstraintFunc )(MetaWindow *window, ConstraintInfo *info, ConstraintPriority priority, gboolean check_only)

Enumerations

enum  ConstraintPriority {
  PRIORITY_MINIMUM = 0, PRIORITY_ASPECT_RATIO = 0, PRIORITY_ENTIRELY_VISIBLE_ON_SINGLE_XINERAMA = 0, PRIORITY_ENTIRELY_VISIBLE_ON_WORKAREA = 1,
  PRIORITY_SIZE_HINTS_INCREMENTS = 1, PRIORITY_MAXIMIZATION = 2, PRIORITY_FULLSCREEN = 2, PRIORITY_SIZE_HINTS_LIMITS = 3,
  PRIORITY_TITLEBAR_VISIBLE = 4, PRIORITY_PARTIALLY_VISIBLE_ON_WORKAREA = 4, PRIORITY_MAXIMUM = 4
}
enum  ActionType { ACTION_MOVE, ACTION_RESIZE, ACTION_MOVE_AND_RESIZE }

Functions

static gboolean constrain_maximization (MetaWindow *window, ConstraintInfo *info, ConstraintPriority priority, gboolean check_only)
static gboolean constrain_fullscreen (MetaWindow *window, ConstraintInfo *info, ConstraintPriority priority, gboolean check_only)
static gboolean constrain_size_increments (MetaWindow *window, ConstraintInfo *info, ConstraintPriority priority, gboolean check_only)
static gboolean constrain_size_limits (MetaWindow *window, ConstraintInfo *info, ConstraintPriority priority, gboolean check_only)
static gboolean constrain_aspect_ratio (MetaWindow *window, ConstraintInfo *info, ConstraintPriority priority, gboolean check_only)
static gboolean constrain_to_single_xinerama (MetaWindow *window, ConstraintInfo *info, ConstraintPriority priority, gboolean check_only)
static gboolean constrain_fully_onscreen (MetaWindow *window, ConstraintInfo *info, ConstraintPriority priority, gboolean check_only)
static gboolean constrain_titlebar_visible (MetaWindow *window, ConstraintInfo *info, ConstraintPriority priority, gboolean check_only)
static gboolean constrain_partially_onscreen (MetaWindow *window, ConstraintInfo *info, ConstraintPriority priority, gboolean check_only)
static void setup_constraint_info (ConstraintInfo *info, MetaWindow *window, MetaFrameGeometry *orig_fgeom, MetaMoveResizeFlags flags, int resize_gravity, const MetaRectangle *orig, MetaRectangle *new)
static void place_window_if_needed (MetaWindow *window, ConstraintInfo *info)
static void update_onscreen_requirements (MetaWindow *window, ConstraintInfo *info)
static void extend_by_frame (MetaRectangle *rect, const MetaFrameGeometry *fgeom)
static void unextend_by_frame (MetaRectangle *rect, const MetaFrameGeometry *fgeom)
static void get_size_limits (const MetaWindow *window, const MetaFrameGeometry *fgeom, gboolean include_frame, MetaRectangle *min_size, MetaRectangle *max_size)
static gboolean do_all_constraints (MetaWindow *window, ConstraintInfo *info, ConstraintPriority priority, gboolean check_only)
void meta_window_constrain (MetaWindow *window, MetaFrameGeometry *orig_fgeom, MetaMoveResizeFlags flags, int resize_gravity, const MetaRectangle *orig, MetaRectangle *new)
static gboolean do_screen_and_xinerama_relative_constraints (MetaWindow *window, GList *region_spanning_rectangles, ConstraintInfo *info, gboolean check_only)

Variables

static const Constraint all_constraints []


Typedef Documentation

typedef gboolean(* ConstraintFunc)(MetaWindow *window, ConstraintInfo *info, ConstraintPriority priority, gboolean check_only)

Definition at line 201 of file constraints.c.


Enumeration Type Documentation

enum ActionType

Enumerator:
ACTION_MOVE 
ACTION_RESIZE 
ACTION_MOVE_AND_RESIZE 

Definition at line 107 of file constraints.c.

Enumerator:
PRIORITY_MINIMUM 
PRIORITY_ASPECT_RATIO 
PRIORITY_ENTIRELY_VISIBLE_ON_SINGLE_XINERAMA 
PRIORITY_ENTIRELY_VISIBLE_ON_WORKAREA 
PRIORITY_SIZE_HINTS_INCREMENTS 
PRIORITY_MAXIMIZATION 
PRIORITY_FULLSCREEN 
PRIORITY_SIZE_HINTS_LIMITS 
PRIORITY_TITLEBAR_VISIBLE 
PRIORITY_PARTIALLY_VISIBLE_ON_WORKAREA 
PRIORITY_MAXIMUM 

Definition at line 92 of file constraints.c.


Function Documentation

static gboolean constrain_aspect_ratio ( MetaWindow window,
ConstraintInfo info,
ConstraintPriority  priority,
gboolean  check_only 
) [static]

static gboolean constrain_fullscreen ( MetaWindow window,
ConstraintInfo info,
ConstraintPriority  priority,
gboolean  check_only 
) [static]

static gboolean constrain_fully_onscreen ( MetaWindow window,
ConstraintInfo info,
ConstraintPriority  priority,
gboolean  check_only 
) [static]

static gboolean constrain_maximization ( MetaWindow window,
ConstraintInfo info,
ConstraintPriority  priority,
gboolean  check_only 
) [static]

static gboolean constrain_partially_onscreen ( MetaWindow window,
ConstraintInfo info,
ConstraintPriority  priority,
gboolean  check_only 
) [static]

static gboolean constrain_size_increments ( MetaWindow window,
ConstraintInfo info,
ConstraintPriority  priority,
gboolean  check_only 
) [static]

static gboolean constrain_size_limits ( MetaWindow window,
ConstraintInfo info,
ConstraintPriority  priority,
gboolean  check_only 
) [static]

static gboolean constrain_titlebar_visible ( MetaWindow window,
ConstraintInfo info,
ConstraintPriority  priority,
gboolean  check_only 
) [static]

static gboolean constrain_to_single_xinerama ( MetaWindow window,
ConstraintInfo info,
ConstraintPriority  priority,
gboolean  check_only 
) [static]

static gboolean do_all_constraints ( MetaWindow window,
ConstraintInfo info,
ConstraintPriority  priority,
gboolean  check_only 
) [static]

static gboolean do_screen_and_xinerama_relative_constraints ( MetaWindow window,
GList *  region_spanning_rectangles,
ConstraintInfo info,
gboolean  check_only 
) [static]

static void extend_by_frame ( MetaRectangle rect,
const MetaFrameGeometry fgeom 
) [static]

static void get_size_limits ( const MetaWindow window,
const MetaFrameGeometry fgeom,
gboolean  include_frame,
MetaRectangle min_size,
MetaRectangle max_size 
) [inline, static]

void meta_window_constrain ( MetaWindow window,
MetaFrameGeometry orig_fgeom,
MetaMoveResizeFlags  flags,
int  resize_gravity,
const MetaRectangle orig,
MetaRectangle new 
)

static void place_window_if_needed ( MetaWindow window,
ConstraintInfo info 
) [static]

static void setup_constraint_info ( ConstraintInfo info,
MetaWindow window,
MetaFrameGeometry orig_fgeom,
MetaMoveResizeFlags  flags,
int  resize_gravity,
const MetaRectangle orig,
MetaRectangle new 
) [static]

static void unextend_by_frame ( MetaRectangle rect,
const MetaFrameGeometry fgeom 
) [static]

static void update_onscreen_requirements ( MetaWindow window,
ConstraintInfo info 
) [static]


Variable Documentation

const Constraint all_constraints[] [static]

Initial value:

 {
  {constrain_maximization,       "constrain_maximization"},
  {constrain_fullscreen,         "constrain_fullscreen"},
  {constrain_size_increments,    "constrain_size_increments"},
  {constrain_size_limits,        "constrain_size_limits"},
  {constrain_aspect_ratio,       "constrain_aspect_ratio"},
  {constrain_to_single_xinerama, "constrain_to_single_xinerama"},
  {constrain_fully_onscreen,     "constrain_fully_onscreen"},
  {constrain_titlebar_visible,   "constrain_titlebar_visible"},
  {constrain_partially_onscreen, "constrain_partially_onscreen"},
  {NULL,                         NULL}
}

Definition at line 211 of file constraints.c.


Generated on Sat Aug 23 22:04:19 2008 for metacity by  doxygen 1.5.5