Don't read most properties for override-redirect windows
Skipping handling of properties for override redirect windows has two advantages: first it reduces the amount of work needed to get an override-redirect window (menu, tooltip, drag icon) onto the screen. But more importantly, it reduces the number of code-paths for an override-redirect to get into some code portion where it isn't expected. * Integrate the list of properties we load initially with the list of property hooks; this avoids having two separate lists that we have to keep in sync. * Add a flag to MetaWindowPropHooks to indicate whether the property should be handled for override-redirect windows; currently we load a) properties that identify the window - useful for debugging purposes b) WM_TRANSIENT_FOR (could be used to associate menus with toplevels.) * For properties that aren't always loaded through window-props.c, add !window->override checks to places that trigger loading, and add g_return_if_fail(!window->override) to the load functions as a double-check. http://bugzilla.gnome.org/show_bug.cgi?id=582639
This commit is contained in:
@@ -52,6 +52,7 @@ typedef struct _MetaStack MetaStack;
|
||||
typedef struct _MetaUISlave MetaUISlave;
|
||||
|
||||
typedef struct _MetaGroupPropHooks MetaGroupPropHooks;
|
||||
typedef struct _MetaWindowPropHooks MetaWindowPropHooks;
|
||||
|
||||
typedef struct MetaEdgeResistanceData MetaEdgeResistanceData;
|
||||
|
||||
@@ -235,8 +236,9 @@ struct _MetaDisplay
|
||||
MetaWindow *window_with_menu;
|
||||
|
||||
/* Managed by window-props.c */
|
||||
gpointer *prop_hooks_table;
|
||||
MetaWindowPropHooks *prop_hooks_table;
|
||||
GHashTable *prop_hooks;
|
||||
int n_prop_hooks;
|
||||
|
||||
/* Managed by group-props.c */
|
||||
MetaGroupPropHooks *group_prop_hooks;
|
||||
|
Reference in New Issue
Block a user