save the sm_client_id just like saving other properties, dont query each time its needed

This commit is contained in:
Dana Jansens 2003-09-15 06:50:25 +00:00
parent 9e746b6439
commit 3e9d050ffe
2 changed files with 12 additions and 6 deletions

View file

@ -461,6 +461,7 @@ void client_unmanage(ObClient *self)
g_free(self->name); g_free(self->name);
g_free(self->class); g_free(self->class);
g_free(self->role); g_free(self->role);
g_free(self->sm_client_id);
g_free(self); g_free(self);
/* update the list hints */ /* update the list hints */
@ -677,6 +678,7 @@ static void client_get_all(ObClient *self)
client_update_title(self); client_update_title(self);
client_update_class(self); client_update_class(self);
client_update_sm_client_id(self);
client_update_strut(self); client_update_strut(self);
client_update_icons(self); client_update_icons(self);
} }
@ -2795,13 +2797,15 @@ ObClient *client_search_transient(ObClient *self, ObClient *search)
return NULL; return NULL;
} }
gchar* client_get_sm_client_id(ObClient *self) void client_update_sm_client_id(ObClient *self)
{ {
gchar *id = NULL; g_free(self->sm_client_id);
self->sm_client_id = NULL;
if (!PROP_GETS(self->window, sm_client_id, locale, &id) && self->group) if (!PROP_GETS(self->window, sm_client_id, locale, &self->sm_client_id) &&
PROP_GETS(self->group->leader, sm_client_id, locale, &id); self->group)
return id; PROP_GETS(self->group->leader, sm_client_id, locale,
&self->sm_client_id);
} }
/* finds the nearest edge in the given direction from the current client /* finds the nearest edge in the given direction from the current client

View file

@ -106,6 +106,8 @@ struct _ObClient
gchar *class; gchar *class;
/*! The specified role of the window, used for identification */ /*! The specified role of the window, used for identification */
gchar *role; gchar *role;
/*! The session client id for the window. *This can be NULL!* */
gchar *sm_client_id;
/*! The type of window (what its function is) */ /*! The type of window (what its function is) */
ObClientType type; ObClientType type;
@ -497,6 +499,6 @@ void client_set_layer(ObClient *self, int layer);
guint client_monitor(ObClient *self); guint client_monitor(ObClient *self);
gchar* client_get_sm_client_id(ObClient *self); void client_update_sm_client_id(ObClient *self);
#endif #endif