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;
                    ShellWindowTracker;

Object Hierarchy

  GBoxed
   +----ShellStartupSequence
  GObject
   +----ShellWindowTracker

Properties

  "focus-app"                ShellApp*             : Read

Signals

  "startup-sequence-changed"                       : Run Last
  "tracked-windows-changed"                        : Run Last

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;

ShellWindowTracker

typedef struct _ShellWindowTracker ShellWindowTracker;

Property Details

The "focus-app" property

  "focus-app"                ShellApp*             : Read

Focused application.

Signal Details

The "startup-sequence-changed" signal

void                user_function                      (ShellWindowTracker   *shellwindowtracker,
                                                        ShellStartupSequence *arg1,
                                                        gpointer              user_data)               : Run Last

The "tracked-windows-changed" signal

void                user_function                      (ShellWindowTracker *shellwindowtracker,
                                                        gpointer            user_data)               : Run Last