summaryrefslogtreecommitdiff
path: root/libwnck/screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'libwnck/screen.c')
-rw-r--r--libwnck/screen.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/libwnck/screen.c b/libwnck/screen.c
index 35d33c2..1d3c040 100644
--- a/libwnck/screen.c
+++ b/libwnck/screen.c
@@ -1388,8 +1388,8 @@ update_client_list (WnckScreen *screen)
{
Window leader;
WnckApplication *app;
- const char *res_class;
- WnckClassGroup *class_group;
+ const char *res_class;
+ WnckClassGroup *class_group;
window = _wnck_window_create (mapping[i],
screen,
@@ -1397,11 +1397,16 @@ update_client_list (WnckScreen *screen)
created = g_list_prepend (created, window);
- /* Application */
-
leader = wnck_window_get_group_leader (window);
+ res_class = wnck_window_get_class_group_name (window);
+ /* Application */
app = wnck_handle_get_application (screen->priv->handle, leader);
+
+ if (app == NULL)
+ app = _wnck_handle_get_application_from_res_class (screen->priv->handle,
+ res_class);
+
if (app == NULL)
{
app = _wnck_application_create (leader, screen);
@@ -1412,8 +1417,6 @@ update_client_list (WnckScreen *screen)
/* Class group */
- res_class = wnck_window_get_class_group_name (window);
-
class_group = wnck_handle_get_class_group (screen->priv->handle, res_class);
if (class_group == NULL)
{