diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Workspace.cc | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/Workspace.cc b/src/Workspace.cc index 89efbf5..4b75803 100644 --- a/src/Workspace.cc +++ b/src/Workspace.cc | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: Workspace.cc,v 1.72 2003/06/13 20:50:49 fluxgen Exp $ | 25 | // $Id: Workspace.cc,v 1.73 2003/06/15 19:34:34 fluxgen Exp $ |
26 | 26 | ||
27 | #include "Workspace.hh" | 27 | #include "Workspace.hh" |
28 | 28 | ||
@@ -331,7 +331,7 @@ class FindInGroup { | |||
331 | public: | 331 | public: |
332 | FindInGroup(const FluxboxWindow &w):m_w(w) { } | 332 | FindInGroup(const FluxboxWindow &w):m_w(w) { } |
333 | bool operator ()(const string &name) { | 333 | bool operator ()(const string &name) { |
334 | return (name == m_w.instanceName()); | 334 | return (name == m_w.winClient().getWMClassName()); |
335 | } | 335 | } |
336 | private: | 336 | private: |
337 | const FluxboxWindow &m_w; | 337 | const FluxboxWindow &m_w; |
@@ -341,9 +341,10 @@ private: | |||
341 | 341 | ||
342 | //Note: this function doesn't check if the window is groupable | 342 | //Note: this function doesn't check if the window is groupable |
343 | bool Workspace::checkGrouping(FluxboxWindow &win) { | 343 | bool Workspace::checkGrouping(FluxboxWindow &win) { |
344 | if (win.numClients() == 0) | ||
345 | return false; | ||
344 | #ifdef DEBUG | 346 | #ifdef DEBUG |
345 | cerr<<__FILE__<<"("<<__LINE__<<"): Checking grouping. ("<<win.instanceName()<<"/"<< | 347 | cerr<<__FILE__<<"("<<__LINE__<<"): Checking grouping. ("<<win.title()<<")"<<endl; |
346 | win.className()<<")"<<endl; | ||
347 | #endif // DEBUG | 348 | #endif // DEBUG |
348 | if (!win.isGroupable()) { // make sure this window can hold a tab | 349 | if (!win.isGroupable()) { // make sure this window can hold a tab |
349 | #ifdef DEBUG | 350 | #ifdef DEBUG |
@@ -352,6 +353,8 @@ bool Workspace::checkGrouping(FluxboxWindow &win) { | |||
352 | return false; | 353 | return false; |
353 | } | 354 | } |
354 | 355 | ||
356 | string instance_name = win.winClient().getWMClassName(); | ||
357 | |||
355 | // go throu every group and search for matching win instancename | 358 | // go throu every group and search for matching win instancename |
356 | GroupList::iterator g(m_groups.begin()); | 359 | GroupList::iterator g(m_groups.begin()); |
357 | GroupList::iterator g_end(m_groups.end()); | 360 | GroupList::iterator g_end(m_groups.end()); |
@@ -360,7 +363,7 @@ bool Workspace::checkGrouping(FluxboxWindow &win) { | |||
360 | Group::iterator name_end((*g).end()); | 363 | Group::iterator name_end((*g).end()); |
361 | for (; name != name_end; ++name) { | 364 | for (; name != name_end; ++name) { |
362 | 365 | ||
363 | if ((*name) != win.instanceName()) | 366 | if ((*name) != instance_name) |
364 | continue; | 367 | continue; |
365 | 368 | ||
366 | // find a window with the specific name | 369 | // find a window with the specific name |
@@ -368,7 +371,7 @@ bool Workspace::checkGrouping(FluxboxWindow &win) { | |||
368 | Windows::iterator wit_end(m_windowlist.end()); | 371 | Windows::iterator wit_end(m_windowlist.end()); |
369 | for (; wit != wit_end; ++wit) { | 372 | for (; wit != wit_end; ++wit) { |
370 | #ifdef DEBUG | 373 | #ifdef DEBUG |
371 | cerr<<__FILE__<<" check group with : "<<(*wit)->instanceName()<<endl; | 374 | cerr<<__FILE__<<" check group with : "<<(*wit)->winClient().getWMClassName()<<endl; |
372 | #endif // DEBUG | 375 | #endif // DEBUG |
373 | if (find_if((*g).begin(), | 376 | if (find_if((*g).begin(), |
374 | (*g).end(), | 377 | (*g).end(), |
@@ -381,7 +384,9 @@ bool Workspace::checkGrouping(FluxboxWindow &win) { | |||
381 | #endif // DEBUG | 384 | #endif // DEBUG |
382 | (*wit)->attachClient(win.winClient()); | 385 | (*wit)->attachClient(win.winClient()); |
383 | return true; // grouping done | 386 | return true; // grouping done |
387 | |||
384 | } | 388 | } |
389 | |||
385 | } | 390 | } |
386 | 391 | ||
387 | } | 392 | } |