mirror of
https://github.com/brl/mutter.git
synced 2025-02-16 21:34:09 +00:00
Add meta_window_get_stable_sequence
Useful for plugins which want to order windows in a stable fashion. https://bugzilla.gnome.org/show_bug.cgi?id=595882
This commit is contained in:
parent
ac3eac7154
commit
d399141d13
@ -150,6 +150,15 @@ struct _MetaDisplay
|
|||||||
|
|
||||||
guint32 current_time;
|
guint32 current_time;
|
||||||
|
|
||||||
|
/* We maintain a sequence counter, incremented for each #MetaWindow
|
||||||
|
* created. This is exposed by meta_window_get_stable_sequence()
|
||||||
|
* but is otherwise not used inside mutter.
|
||||||
|
*
|
||||||
|
* It can be useful to plugins which want to sort windows in a
|
||||||
|
* stable fashion.
|
||||||
|
*/
|
||||||
|
guint32 window_sequence_counter;
|
||||||
|
|
||||||
/* Pings which we're waiting for a reply from */
|
/* Pings which we're waiting for a reply from */
|
||||||
GSList *pending_pings;
|
GSList *pending_pings;
|
||||||
|
|
||||||
|
@ -316,6 +316,9 @@ struct _MetaWindow
|
|||||||
*/
|
*/
|
||||||
int unmaps_pending;
|
int unmaps_pending;
|
||||||
|
|
||||||
|
/* See docs for meta_window_get_stable_sequence() */
|
||||||
|
guint32 stable_sequence;
|
||||||
|
|
||||||
/* set to the most recent user-interaction event timestamp that we
|
/* set to the most recent user-interaction event timestamp that we
|
||||||
know about for this window */
|
know about for this window */
|
||||||
guint32 net_wm_user_time;
|
guint32 net_wm_user_time;
|
||||||
|
@ -802,6 +802,10 @@ meta_window_new_with_attrs (MetaDisplay *display,
|
|||||||
|
|
||||||
meta_display_register_x_window (display, &window->xwindow, window);
|
meta_display_register_x_window (display, &window->xwindow, window);
|
||||||
|
|
||||||
|
/* Assign this #MetaWindow a sequence number which can be used
|
||||||
|
* for sorting.
|
||||||
|
*/
|
||||||
|
window->stable_sequence = ++display->window_sequence_counter;
|
||||||
|
|
||||||
/* assign the window to its group, or create a new group if needed
|
/* assign the window to its group, or create a new group if needed
|
||||||
*/
|
*/
|
||||||
@ -8532,6 +8536,26 @@ meta_window_set_user_time (MetaWindow *window,
|
|||||||
g_object_notify (G_OBJECT (window), "user-time");
|
g_object_notify (G_OBJECT (window), "user-time");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* meta_window_get_stable_sequence:
|
||||||
|
* @window: A #MetaWindow
|
||||||
|
*
|
||||||
|
* The stable sequence number is a monotonicially increasing
|
||||||
|
* unique integer assigned to each #MetaWindow upon creation.
|
||||||
|
*
|
||||||
|
* This number can be useful for sorting windows in a stable
|
||||||
|
* fashion.
|
||||||
|
*
|
||||||
|
* Returns: Internal sequence number for this window
|
||||||
|
*/
|
||||||
|
guint32
|
||||||
|
meta_window_get_stable_sequence (MetaWindow *window)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (META_IS_WINDOW (window), 0);
|
||||||
|
|
||||||
|
return window->stable_sequence;
|
||||||
|
}
|
||||||
|
|
||||||
/* Sets the demands_attention hint on a window, but only
|
/* Sets the demands_attention hint on a window, but only
|
||||||
* if it's at least partially obscured (see #305882).
|
* if it's at least partially obscured (see #305882).
|
||||||
*/
|
*/
|
||||||
|
@ -118,6 +118,7 @@ const char *meta_window_get_title (MetaWindow *window);
|
|||||||
MetaWindow *meta_window_get_transient_for (MetaWindow *window);
|
MetaWindow *meta_window_get_transient_for (MetaWindow *window);
|
||||||
void meta_window_delete (MetaWindow *window,
|
void meta_window_delete (MetaWindow *window,
|
||||||
guint32 timestamp);
|
guint32 timestamp);
|
||||||
|
guint meta_window_get_stable_sequence (MetaWindow *window);
|
||||||
guint32 meta_window_get_user_time (MetaWindow *window);
|
guint32 meta_window_get_user_time (MetaWindow *window);
|
||||||
int meta_window_get_pid (MetaWindow *window);
|
int meta_window_get_pid (MetaWindow *window);
|
||||||
const char *meta_window_get_client_machine (MetaWindow *window);
|
const char *meta_window_get_client_machine (MetaWindow *window);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user