ShellWindowTracker

ShellWindowTracker — Associate windows with applications

Synopsis

struct              ShellWindowTrackerClass;
ShellWindowTracker * shell_window_tracker_get_default   (void);
ShellApp *          shell_window_tracker_get_window_app (ShellWindowTracker *tracker,
                                                         MetaWindow *metawin);
ShellApp *          shell_window_tracker_get_app_from_pid
                                                        (ShellWindowTracker *tracker,
                                                         int pid);
gboolean            shell_window_tracker_is_window_interesting
                                                        (MetaWindow *window);
GSList *            shell_window_tracker_get_startup_sequences
                                                        (ShellWindowTracker *tracker);
const char *        shell_startup_sequence_get_id       (ShellStartupSequence *sequence);
ShellApp *          shell_startup_sequence_get_app      (ShellStartupSequence *sequence);
const char *        shell_startup_sequence_get_name     (ShellStartupSequence *sequence);
gboolean            shell_startup_sequence_get_completed
                                                        (ShellStartupSequence *sequence);
int                 shell_startup_sequence_get_workspace
                                                        (ShellStartupSequence *sequence);
ClutterActor *      shell_startup_sequence_create_icon  (ShellStartupSequence *sequence,
                                                         guint size);
                    ShellStartupSequence;

Object Hierarchy

  GBoxed
   +----ShellStartupSequence

Description

Maintains a mapping from windows to applications (.desktop file ids). It currently implements this with some heuristics on the WM_CLASS X11 property (and some static override regexps); in the future, we want to have it also track through startup-notification.

Details

struct ShellWindowTrackerClass

struct ShellWindowTrackerClass {
  GObjectClass parent_class;
};


shell_window_tracker_get_default ()

ShellWindowTracker * shell_window_tracker_get_default   (void);

Returns :

The global ShellWindowTracker instance. [transfer none]

shell_window_tracker_get_window_app ()

ShellApp *          shell_window_tracker_get_window_app (ShellWindowTracker *tracker,
                                                         MetaWindow *metawin);

tracker :

An app monitor instance

metawin :

A MetaWindow

Returns :

Application associated with window. [transfer full]

shell_window_tracker_get_app_from_pid ()

ShellApp *          shell_window_tracker_get_app_from_pid
                                                        (ShellWindowTracker *tracker,
                                                         int pid);

Look up the application corresponding to a process.

tracker :

A ShellAppSystem

pid :

A Unix process identifier

Returns :

A ShellApp, or NULL if none. [transfer none]

shell_window_tracker_is_window_interesting ()

gboolean            shell_window_tracker_is_window_interesting
                                                        (MetaWindow *window);

The ShellWindowTracker associates certain kinds of windows with applications; however, others we don't want to appear in places where we want to give a list of windows for an application, such as the alt-tab dialog.

An example of a window we don't want to show is the root desktop window. We skip all override-redirect types, and also exclude other window types like tooltip explicitly, though generally most of these should be override-redirect.

Returns :

TRUE iff a window is "interesting"

shell_window_tracker_get_startup_sequences ()

GSList *            shell_window_tracker_get_startup_sequences
                                                        (ShellWindowTracker *tracker);

Returns :

Currently active startup sequences. [transfer none][element-type ShellStartupSequence]

shell_startup_sequence_get_id ()

const char *        shell_startup_sequence_get_id       (ShellStartupSequence *sequence);


shell_startup_sequence_get_app ()

ShellApp *          shell_startup_sequence_get_app      (ShellStartupSequence *sequence);

sequence :

A ShellStartupSequence

Returns :

The application being launched, or NULL if unknown. [transfer none]

shell_startup_sequence_get_name ()

const char *        shell_startup_sequence_get_name     (ShellStartupSequence *sequence);


shell_startup_sequence_get_completed ()

gboolean            shell_startup_sequence_get_completed
                                                        (ShellStartupSequence *sequence);


shell_startup_sequence_get_workspace ()

int                 shell_startup_sequence_get_workspace
                                                        (ShellStartupSequence *sequence);


shell_startup_sequence_create_icon ()

ClutterActor *      shell_startup_sequence_create_icon  (ShellStartupSequence *sequence,
                                                         guint size);

size :

Size in pixels of icon

Returns :

A new ClutterTexture containing an icon for the sequence. [transfer none]

ShellStartupSequence

typedef struct _ShellStartupSequence ShellStartupSequence;