MetaScreen: Muffin Reference Manual

## MetaScreen MetaScreen — Muffin X screen handler |

## Functions

int | meta_screen_get_screen_number ()
MetaDisplay * | meta_screen_get_display ()
Window | meta_screen_get_xroot ()
void | meta_screen_get_size ()
gpointer | meta_screen_get_compositor_data ()
void | meta_screen_set_compositor_data ()
MetaScreen * | meta_screen_for_x_screen ()
void | meta_screen_set_cm_selection ()
void | meta_screen_unset_cm_selection ()
GSList * | meta_screen_get_startup_sequences ()
GList * | meta_screen_get_workspaces ()
int | meta_screen_get_n_workspaces ()
MetaWorkspace * | meta_screen_get_workspace_by_index ()
void | meta_screen_remove_workspace ()
MetaWorkspace * | meta_screen_append_new_workspace ()
int | meta_screen_get_active_workspace_index ()
MetaWorkspace * | meta_screen_get_active_workspace ()
void | meta_screen_show_desktop ()
void | meta_screen_toggle_desktop ()
void | meta_screen_unshow_desktop ()
int | meta_screen_get_n_monitors ()
int | meta_screen_get_primary_monitor ()
int | meta_screen_get_current_monitor ()
void | meta_screen_get_monitor_geometry ()
gboolean | meta_screen_get_monitor_in_fullscreen ()
int | meta_screen_get_monitor_index_for_rect ()
MetaWindow * | meta_screen_get_mouse_window ()
void | meta_screen_override_workspace_layout ()

## Types and Values

enum | MetaScreenCorner

## Description

## Functions

### meta_screen_get_screen_number ()

    int
    meta_screen_get_screen_number (MetaScreen *screen);

### meta_screen_get_display ()

    MetaDisplay *
    meta_screen_get_display (MetaScreen *screen);

#### Parameters

screen | A MetaScreen |

#### Returns

Display.

[transfer none]

### meta_screen_get_xroot ()

    Window
    meta_screen_get_xroot (MetaScreen *screen);

[skip]

### meta_screen_get_size ()

    void
    meta_screen_get_size (MetaScreen *screen,
                          int *width,
                          int *height);

Retrieve the size of the screen.

#### Parameters

screen | A MetaScreen |
width | The width of the screen. | [out]
height | The height of the screen. | [out]

### meta_screen_get_compositor_data ()

    gpointer
    meta_screen_get_compositor_data (MetaScreen *screen);

[skip]

### meta_screen_set_compositor_data ()

    void
    meta_screen_set_compositor_data (MetaScreen *screen,
                                     gpointer info);

### meta_screen_for_x_screen ()

    MetaScreen *
    meta_screen_for_x_screen (Screen *xscreen);

Gets the MetaScreen corresponding to an X screen structure.

#### Parameters

xscreen | an X screen structure. |

#### Returns

the MetaScreen for the X screen `NULL` if Metacity is not managing the screen.

[transfer none]

### meta_screen_set_cm_selection ()

    void
    meta_screen_set_cm_selection (MetaScreen *screen);

### meta_screen_unset_cm_selection ()

    void
    meta_screen_unset_cm_selection (MetaScreen *screen);

### meta_screen_get_startup_sequences ()

    GSList *
    meta_screen_get_startup_sequences (MetaScreen *screen);

[skip]

#### Returns

Currently active SnStartupSequence items.

[transfer none]

### meta_screen_get_workspaces ()

    GList *
    meta_screen_get_workspaces (MetaScreen *screen);

[skip]

#### Parameters

screen | a MetaScreen |

#### Returns

The workspaces for `screen` .

[transfer none][element-type Meta.Workspace]

### meta_screen_get_n_workspaces ()

    int
    meta_screen_get_n_workspaces (MetaScreen *screen);

### meta_screen_get_workspace_by_index ()

    MetaWorkspace *
    meta_screen_get_workspace_by_index (MetaScreen *screen,
                                        int index);

Gets the workspace object for one of a screen's workspaces given the workspace index. It's valid to call this function with an out-of-range index and it will robustly return `NULL`.

#### Parameters

screen | a MetaScreen |
index | index of one of the screen's workspaces |

#### Returns

the workspace object with specified index, or `NULL` if the index is out of range.

[transfer none]

### meta_screen_remove_workspace ()

    void
    meta_screen_remove_workspace (MetaScreen *screen,
                                  MetaWorkspace *workspace,
                                  guint32 timestamp);

### meta_screen_append_new_workspace ()

    MetaWorkspace *
    meta_screen_append_new_workspace (MetaScreen *screen,
                                      gboolean activate,
                                      guint32 timestamp);

Append a new workspace to the screen and (optionally) switch to that screen.

#### Parameters

screen | a MetaScreen |
activate | `TRUE` if the workspace should be switched to after creation |
timestamp | if switching to a new workspace, timestamp to be used when focusing a window on the new workspace. (Doesn't hurt to pass a valid timestamp when available even if not switching workspaces.) |

#### Returns

the newly appended workspace.

[transfer none]

### meta_screen_get_active_workspace_index ()

    int
    meta_screen_get_active_workspace_index
                                   (MetaScreen *screen);

### meta_screen_get_active_workspace ()

    MetaWorkspace *
    meta_screen_get_active_workspace (MetaScreen *screen);

#### Returns

The current workspace.

[transfer none]

### meta_screen_show_desktop ()

    void
    meta_screen_show_desktop (MetaScreen *screen,
                              guint32 timestamp);

### meta_screen_toggle_desktop ()

    void
    meta_screen_toggle_desktop (MetaScreen *screen,
                                guint32 timestamp);

### meta_screen_unshow_desktop ()

    void
    meta_screen_unshow_desktop (MetaScreen *screen);

### meta_screen_get_n_monitors ()

    int
    meta_screen_get_n_monitors (MetaScreen *screen);

Gets the number of monitors that are joined together to form `screen` .

#### Parameters

screen | a MetaScreen |

#### Returns

the number of monitors

### meta_screen_get_primary_monitor ()

    int
    meta_screen_get_primary_monitor (MetaScreen *screen);

Gets the index of the primary monitor on this `screen` .

#### Parameters

screen | a MetaScreen |

#### Returns

a monitor index

### meta_screen_get_current_monitor ()

    int
    meta_screen_get_current_monitor (MetaScreen *screen);

Gets the index of the monitor that currently has the mouse pointer.

#### Parameters

screen | a MetaScreen |

#### Returns

a monitor index

### meta_screen_get_monitor_geometry ()

    void
    meta_screen_get_monitor_geometry (MetaScreen *screen,
                                      int monitor,
                                      MetaRectangle *geometry);

Stores the location and size of the indicated monitor in `geometry` .

#### Parameters

screen | a MetaScreen |
monitor | the monitor number |
geometry | location to store the monitor geometry. | [out]

### meta_screen_get_monitor_in_fullscreen ()

    gboolean
    meta_screen_get_monitor_in_fullscreen (MetaScreen *screen,
                                           int monitor);

Determines whether there is a fullscreen window obscuring the specified monitor. If there is a fullscreen window, the desktop environment will typically hide any controls that might obscure the fullscreen window.

You can get notification when this changes by connecting to MetaScreen::in-fullscreen-changed.

#### Parameters

screen | a MetaScreen |
monitor | the monitor number |

#### Returns

`TRUE` if there is a fullscreen window covering the specified monitor.

### meta_screen_get_monitor_index_for_rect ()

    int
    meta_screen_get_monitor_index_for_rect
                                   (MetaScreen *screen,
                                    MetaRectangle *rect);

### meta_screen_get_mouse_window ()

    MetaWindow *
    meta_screen_get_mouse_window (MetaScreen *screen,
                                  MetaWindow *not_this_one);

Gets the MetaWindow pointed by the mouse

#### Parameters

screen | an X screen structure. |
not_this_one | window to be excluded. | [allow-none]

#### Returns

the MetaWindow pointed by the mouse `NULL` when window not found.

[transfer none]

### meta_screen_override_workspace_layout ()

    void
    meta_screen_override_workspace_layout (MetaScreen *screen,
                                           MetaScreenCorner starting_corner,
                                           gboolean vertical_layout,
                                           int n_rows,
                                           int n_columns);

Explicitly set the layout of workspaces. Once this has been called, the contents of the _NET_DESKTOP_LAYOUT property on the root window are completely ignored.

#### Parameters

screen | a MetaScreen |
starting_corner | the corner at which the first workspace is found |
vertical_layout | if `TRUE` the workspaces are laid out in columns rather than rows |
n_rows | number of rows of workspaces, or -1 to determine the number of rows from `n_columns` and the total number of workspaces |
n_columns | number of columns of workspaces, or -1 to determine the number of columns from `n_rows` and the total number of workspaces |

## Types and Values

### enum MetaScreenCorner

#### Members

META_SCREEN_TOPLEFT |  |
META_SCREEN_TOPRIGHT |  |
META_SCREEN_BOTTOMLEFT |  |
META_SCREEN_BOTTOMRIGHT |  |