mutter_window_get_description()
Human redable description useful for debugging, now accessible to plugins and and also for override redirect windows.
This commit is contained in:
parent
b2fe0097e6
commit
ce2bfc008d
@ -173,6 +173,8 @@ struct _MutterWindowPrivate
|
|||||||
|
|
||||||
guint8 opacity;
|
guint8 opacity;
|
||||||
|
|
||||||
|
gchar * desc;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* These need to be counters rather than flags, since more plugins
|
* These need to be counters rather than flags, since more plugins
|
||||||
* can implement same effect; the practicality of stacking effects
|
* can implement same effect; the practicality of stacking effects
|
||||||
@ -390,6 +392,8 @@ mutter_window_dispose (GObject *object)
|
|||||||
info->windows = g_list_remove (info->windows, (gconstpointer) self);
|
info->windows = g_list_remove (info->windows, (gconstpointer) self);
|
||||||
g_hash_table_remove (info->windows_by_xid, (gpointer) priv->xwindow);
|
g_hash_table_remove (info->windows_by_xid, (gpointer) priv->xwindow);
|
||||||
|
|
||||||
|
g_free (priv->desc);
|
||||||
|
|
||||||
G_OBJECT_CLASS (mutter_window_parent_class)->dispose (object);
|
G_OBJECT_CLASS (mutter_window_parent_class)->dispose (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -734,6 +738,25 @@ mutter_window_is_override_redirect (MutterWindow *mcw)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *mutter_window_get_description (MutterWindow *mcw)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* For windows managed by the WM, we just defer to the WM for the window
|
||||||
|
* description. For override-redirect windows, we create the description
|
||||||
|
* ourselves, but only on demand.
|
||||||
|
*/
|
||||||
|
if (mcw->priv->window)
|
||||||
|
return meta_window_get_description (mcw->priv->window);
|
||||||
|
|
||||||
|
if (G_UNLIKELY (mcw->priv->desc == NULL))
|
||||||
|
{
|
||||||
|
mcw->priv->desc = g_strdup_printf ("Override Redirect (0x%x)",
|
||||||
|
(guint) mcw->priv->xwindow);
|
||||||
|
}
|
||||||
|
|
||||||
|
return mcw->priv->desc;
|
||||||
|
}
|
||||||
|
|
||||||
gint
|
gint
|
||||||
mutter_window_get_workspace (MutterWindow *mcw)
|
mutter_window_get_workspace (MutterWindow *mcw)
|
||||||
{
|
{
|
||||||
|
@ -8293,3 +8293,11 @@ meta_window_is_hidden (MetaWindow *window)
|
|||||||
return window->hidden;
|
return window->hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *
|
||||||
|
meta_window_get_description (MetaWindow *window)
|
||||||
|
{
|
||||||
|
if (!window)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return window->desc;
|
||||||
|
}
|
||||||
|
@ -64,6 +64,7 @@ gboolean mutter_window_is_hidden (MutterWindow *mcw);
|
|||||||
MetaWindow * mutter_window_get_meta_window (MutterWindow *mcw);
|
MetaWindow * mutter_window_get_meta_window (MutterWindow *mcw);
|
||||||
ClutterActor * mutter_window_get_texture (MutterWindow *mcw);
|
ClutterActor * mutter_window_get_texture (MutterWindow *mcw);
|
||||||
gboolean mutter_window_is_override_redirect (MutterWindow *mcw);
|
gboolean mutter_window_is_override_redirect (MutterWindow *mcw);
|
||||||
|
const char * mutter_window_get_description (MutterWindow *mcw);
|
||||||
|
|
||||||
/* Compositor API */
|
/* Compositor API */
|
||||||
MetaCompositor *mutter_new (MetaDisplay *display);
|
MetaCompositor *mutter_new (MetaDisplay *display);
|
||||||
|
@ -63,5 +63,6 @@ void meta_window_activate (MetaWindow *window,guint32 current_time);
|
|||||||
void meta_window_activate_with_workspace (MetaWindow *window,
|
void meta_window_activate_with_workspace (MetaWindow *window,
|
||||||
guint32 current_time,
|
guint32 current_time,
|
||||||
MetaWorkspace *workspace);
|
MetaWorkspace *workspace);
|
||||||
|
const char * meta_window_get_description (MetaWindow *window);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user