summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMark Tiefenbruck <mark@fluxbox.org>2009-06-28 10:40:50 (GMT)
committerMark Tiefenbruck <mark@fluxbox.org>2009-06-28 10:40:50 (GMT)
commitfe92b6b39bc007bffacc2fb57bee511b1626939e (patch)
tree49caa394eea6590b3d2cd1a02dc23e8de218ab14 /src
parent02e0f9321cce4f331ce2523621830e3102c04493 (diff)
downloadfluxbox_lack-fe92b6b39bc007bffacc2fb57bee511b1626939e.zip
fluxbox_lack-fe92b6b39bc007bffacc2fb57bee511b1626939e.tar.bz2
revert to relative iconbar alignment when too many windows are open
Diffstat (limited to 'src')
-rw-r--r--src/FbTk/Container.cc39
1 files changed, 16 insertions, 23 deletions
diff --git a/src/FbTk/Container.cc b/src/FbTk/Container.cc
index 3374266..6a8f2a3 100644
--- a/src/FbTk/Container.cc
+++ b/src/FbTk/Container.cc
@@ -410,31 +410,24 @@ void Container::repositionItems() {
410 410
411 411
412unsigned int Container::maxWidthPerClient() const { 412unsigned int Container::maxWidthPerClient() const {
413 switch (alignment()) { 413 unsigned int max_relative_size;
414 case RIGHT: 414 if (size() == 0)
415 case CENTER: 415 max_relative_size = width();
416 case LEFT: 416 else {
417 return m_max_size_per_client; 417 unsigned int borderW = m_item_list.front()->borderWidth();
418 break; 418 // there're count-1 borders to fit in with the windows
419 case RELATIVE: 419 // -> 1 per window plus end
420 if (size() == 0) 420 unsigned int w = width(), h = height();
421 return width(); 421 translateSize(m_orientation, w, h);
422 else { 422 max_relative_size = w < (size()-1)*borderW ? 1 :
423 unsigned int borderW = m_item_list.front()->borderWidth(); 423 (w - (size() - 1) * borderW) / size();
424 // there're count-1 borders to fit in with the windows
425 // -> 1 per window plus end
426 unsigned int w = width(), h = height();
427 translateSize(m_orientation, w, h);
428 if (w < (size()-1)*borderW)
429 return 1;
430 else
431 return (w - (size() - 1) * borderW) / size();
432 }
433 break;
434 } 424 }
435 425
436 // this will never happen anyway 426 if (alignment() == RELATIVE)
437 return 1; 427 return max_relative_size;
428
429 return (m_max_size_per_client < max_relative_size ?
430 m_max_size_per_client : max_relative_size);
438} 431}
439 432
440void Container::for_each(std::mem_fun_t<void, FbWindow> function) { 433void Container::for_each(std::mem_fun_t<void, FbWindow> function) {