diff options
author | Mark Tiefenbruck <mark@fluxbox.org> | 2009-06-28 10:40:50 (GMT) |
---|---|---|
committer | Mark Tiefenbruck <mark@fluxbox.org> | 2009-06-28 10:40:50 (GMT) |
commit | fe92b6b39bc007bffacc2fb57bee511b1626939e (patch) | |
tree | 49caa394eea6590b3d2cd1a02dc23e8de218ab14 /src/FbTk/Container.cc | |
parent | 02e0f9321cce4f331ce2523621830e3102c04493 (diff) | |
download | fluxbox-fe92b6b39bc007bffacc2fb57bee511b1626939e.zip fluxbox-fe92b6b39bc007bffacc2fb57bee511b1626939e.tar.bz2 |
revert to relative iconbar alignment when too many windows are open
Diffstat (limited to 'src/FbTk/Container.cc')
-rw-r--r-- | src/FbTk/Container.cc | 39 |
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 | ||
412 | unsigned int Container::maxWidthPerClient() const { | 412 | unsigned 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 | ||
440 | void Container::for_each(std::mem_fun_t<void, FbWindow> function) { | 433 | void Container::for_each(std::mem_fun_t<void, FbWindow> function) { |