diff --git a/group.cpp b/group.cpp index 79d4a2dd39..5f856e42d1 100644 --- a/group.cpp +++ b/group.cpp @@ -211,8 +211,15 @@ bool Client::belongToSameApplication( const Client* c1, const Client* c2, bool a ; // different apps else if( !sameAppWindowRoleMatch( c1, c2, active_hack )) ; // "different" apps + else if( c1->wmClientLeader() == c2->wmClientLeader() + && c1->wmClientLeader() != c1->window() // if WM_CLIENT_LEADER is not set, it returns window(), + && c2->wmClientLeader() != c2->window()) // don't use in this test then + same_app = true; // same client leader + else if( c1->group() == c2->group()) + same_app = true; // same group else if( c1->pid() == 0 || c2->pid() == 0 ) ; // old apps that don't have _NET_WM_PID, consider them different + // if they weren't found to match above else same_app = true; // looks like it's the same app return same_app;