XfwScreen

XfwScreen — An object representing a logical screen

Stability Level

Unstable, unless otherwise indicated

Functions

Properties

XfwWindow * active-window Read
GdkScreen * gdk-screen Read / Write / Construct Only
gboolean show-desktop Read / Write
XfwWorkspaceManager * workspace-manager Read

Signals

void active-window-changed Run Last
void monitor-added Run Last
void monitor-removed Run Last
void monitors-changed Run Last
void seat-added Run Last
void seat-removed Run Last
void window-closed Run Last
void window-manager-changed Run Last
void window-opened Run Last
void window-stacking-changed Run Last

Types and Values

Object Hierarchy

    GObject
    ╰── XfwScreen

Includes

#include <libxfce4windowing/libxfce4windowing.h>

Description

XfwScreen represents a logical screen. On most windowing environments, this doesn't necessarily correspond to a single monitor, but might span multiple monitors. These days, most windowing environments will only have a single screen, even if (API-wise) more than one can be represented.

The XfwScreen instance is the main entry point into this library. You can obtain an instance using xfw_screen_get_default(). From there, you can enumerate toplevel windows, or examine workspace groups and workspaces.

Note that XfwScreen is actually an interface; when obtaining an instance, an instance of a windowing-environment-specific object that implements this interface will be returned.

Functions

xfw_screen_get_default ()

XfwScreen *
xfw_screen_get_default (void);

Retrieves the XfwScreen instance corresponding to the default GdkScreen.

Returns

an XfwScreen instance, with a reference owned by the caller.

[not nullable][transfer full]


xfw_screen_get_seats ()

GList *
xfw_screen_get_seats (XfwScreen *screen);

Returns the list of all XfwSeat instances available on screen .

Parameters

screen

an XfwScreen.

 

Returns

a list of XfwSeat. The list and its contents are owned by screen .

[nullable][element-type XfwSeat][transfer none]


xfw_screen_get_workspace_manager ()

XfwWorkspaceManager *
xfw_screen_get_workspace_manager (XfwScreen *screen);

Retrieves this screen's XfwWorkspaceManager instance, which can be used to inspect and interact with screen 's workspace groups and workspaces.

Parameters

screen

an XfwScreen.

 

Returns

a XfwWorkspaceManager instance. This instance is a singleton and is owned by screen .

[not nullable][transfer none]


xfw_screen_get_windows ()

GList *
xfw_screen_get_windows (XfwScreen *screen);

Retrieves the list of windows currently displayed on screen .

The list and its contents are owned by screen .

Parameters

screen

an XfwScreen.

 

Returns

the list of XfwWindow on screen , or NULL if there are no windows. The list and its contents are owned by screen .

[nullable][element-type XfwWindow][transfer none]


xfw_screen_get_windows_stacked ()

GList *
xfw_screen_get_windows_stacked (XfwScreen *screen);

Retrieves the list of windows currently displayed on screen , in stacking order, with the bottom-most window first in the returned list.

Parameters

screen

an XfwScreen.

 

Returns

the list of XfwWindow on screen , in stacking order, or NULL if there are no windows. The list and its contents are owned by screen .

[nullable][element-type XfwWindow][transfer none]


xfw_screen_get_active_window ()

XfwWindow *
xfw_screen_get_active_window (XfwScreen *screen);

Retrieves the window on screen that is currently active.

Parameters

screen

an XfwScreen.

 

Returns

an XfwWindow, or NULL if no window is active on screen .

[nullable][transfer none]


xfw_screen_get_monitors ()

GList *
xfw_screen_get_monitors (XfwScreen *screen);

Retrieves the list of monitors currently attached and enabled on screen .

Parameters

screen

an XfwScreen.

 

Returns

the list of XfwMonitor on screen , or NULL if there are no connected/enabled monitors. The list and its contents are owned by screen .

[nullable][element-type XfwMonitor][transfer none]

Since: 4.19.4


xfw_screen_get_primary_monitor ()

XfwMonitor *
xfw_screen_get_primary_monitor (XfwScreen *screen);

Returns the monitor designated as "primary".

This function will do its best to return something other than NULL. If the windowing system has no concept of a primary monitor, or if the primary monitor is unset, a likely candidate will be chosen from the list of available monitors.

However, if no monitors are connected, NULL can still be returned.

Parameters

screen

an XfwScreen.

 

Returns

screen 's primary XfwMonitor, or NULL.

[nullable][transfer none]

Since: 4.19.4


xfw_screen_get_show_desktop ()

gboolean
xfw_screen_get_show_desktop (XfwScreen *screen);

Parameters

screen

an XfwScreen.

 

Returns

TRUE if the desktop is shown, FALSE otherwise.


xfw_screen_set_show_desktop ()

void
xfw_screen_set_show_desktop (XfwScreen *screen,
                             gboolean show);

Showing the desktop minimizes the windows not minimized at the time of the query. The reverse process unminimizes those same windows, if they have not already been unminimized or destroyed. The desktop show state can be tracked via “show-desktop”.

The state of the previously active window is always restored upon unminimization, but there is no guarantee for the rest of the window stacking order on Wayland.

A request to switch to the current state is silently ignored.

Parameters

screen

an XfwScreen.

 

show

TRUE to show the desktop, FALSE to restore the previous state.

 

Types and Values

XfwScreen

typedef struct _XfwScreen XfwScreen;

Property Details

The “active-window” property

  “active-window”            XfwWindow *

The currently-active window.

Owner: XfwScreen

Flags: Read


The “gdk-screen” property

  “gdk-screen”               GdkScreen *

The GdkScreen instance used to construct this XfwScreen.

Owner: XfwScreen

Flags: Read / Write / Construct Only


The “show-desktop” property

  “show-desktop”             gboolean

Whether or not to show the desktop.

Owner: XfwScreen

Flags: Read / Write

Default value: FALSE


The “workspace-manager” property

  “workspace-manager”        XfwWorkspaceManager *

The XfwWorkspaceManager that manages and describes workspace groups and workspaces on this screen instance.

Owner: XfwScreen

Flags: Read

Signal Details

The “active-window-changed” signal

void
user_function (XfwScreen *screen,
               XfwWindow *window,
               gpointer   user_data)

Emitted when a new window becomes the active window. Often the active window will receive keyboard focus. While window is the previously-active window (if any, and may be NULL), the newly-active window can be retrieved via xfw_screen_get_active_window().

Parameters

screen

the object which received the signal.

 

window

the previously-active window.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “monitor-added” signal

void
user_function (XfwScreen  *screen,
               XfwMonitor *monitor,
               gpointer    user_data)

Emitted when a monitor is added to screen .

Parameters

screen

the object which received the signal.

 

monitor

the monitor that was added.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 4.19.4


The “monitor-removed” signal

void
user_function (XfwScreen  *screen,
               XfwMonitor *monitor,
               gpointer    user_data)

Emitted when a monitor is removed from screen .

Parameters

screen

the object which received the signal.

 

monitor

the monitor that was removed.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 4.19.4


The “monitors-changed” signal

void
user_function (XfwScreen *screen,
               gpointer   user_data)

Emitted when one of the following has changed about the monitors attached to screen :

  • A monitor was added.

  • A monitor was removed.

  • A monitor's resolution changed (including if the scale factor changed).

  • A monitor was re-positioned in the global screen space.

  • Which monitor is primary has changed.

Note that changes such as the subpixel layout or model name will not result in the emission of this signal. Connect to the propert notify signals on XfwMonitor to be notified of changes in other aspects of the monitor.

Parameters

screen

the object which received the signal.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last

Since: 4.19.4


The “seat-added” signal

void
user_function (XfwScreen *screen,
               XfwSeat   *seat,
               gpointer   user_data)

Emitted when seat has been added to screen .

Parameters

screen

the object which received the signal.

 

seat

the new XfwSeat that was added.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “seat-removed” signal

void
user_function (XfwScreen *screen,
               XfwSeat   *seat,
               gpointer   user_data)

Emitted when seat has been added to screen .

Parameters

screen

the object which received the signal.

 

seat

the XfwSeat that was removed.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “window-closed” signal

void
user_function (XfwScreen *screen,
               XfwWindow *window,
               gpointer   user_data)

Emitted when a window is closed on the screen.

Parameters

screen

the object that received the signal.

 

window

the window that has been closed.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “window-manager-changed” signal

void
user_function (XfwScreen *screen,
               gpointer   user_data)

Emitted when the window manager on screen has changed.

Note that currently this signal is not emitted on Wayland.

Parameters

screen

the object which received the signal.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “window-opened” signal

void
user_function (XfwScreen *screen,
               XfwWindow *window,
               gpointer   user_data)

Emitted when a new window is opened on the screen.

Parameters

screen

the object which received the signal.

 

window

the new window that was opened.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “window-stacking-changed” signal

void
user_function (XfwScreen *screen,
               gpointer   user_data)

Emitted when the order of the windows as displayed on the screen has changed. Windows, in stacking order, can be retrieved via xfw_screen_get_windows_stacked().

Note that currently this signal is not emitted on Wayland.

Parameters

screen

the object which received the signal.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last