diff options
Diffstat (limited to 'src/Window.cc')
-rw-r--r-- | src/Window.cc | 56 |
1 files changed, 24 insertions, 32 deletions
diff --git a/src/Window.cc b/src/Window.cc index 24e4e45..3ec9543 100644 --- a/src/Window.cc +++ b/src/Window.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: Window.cc,v 1.101 2002/11/23 16:07:19 rathnor Exp $ | 25 | // $Id: Window.cc,v 1.102 2002/11/26 16:44:48 fluxgen Exp $ |
26 | 26 | ||
27 | #include "Window.hh" | 27 | #include "Window.hh" |
28 | 28 | ||
@@ -2426,44 +2426,36 @@ void FluxboxWindow::redrawLabel() { | |||
2426 | XClearWindow(display, frame.label); | 2426 | XClearWindow(display, frame.label); |
2427 | 2427 | ||
2428 | //no need to draw the title if we don't have any | 2428 | //no need to draw the title if we don't have any |
2429 | if (getTitle().size() != 0) { | 2429 | if (getTitle().size() == 0) |
2430 | GC gc = ((focused) ? screen->getWindowStyle()->l_text_focus_gc : | 2430 | return; |
2431 | screen->getWindowStyle()->l_text_unfocus_gc); | ||
2432 | unsigned int l = client.title_text_w; | ||
2433 | int dlen = getTitle().size(); | ||
2434 | int dx = frame.bevel_w; | ||
2435 | FbTk::Font &font = screen->getWindowStyle()->font; | ||
2436 | if (l > frame.label_w) { | ||
2437 | for (; dlen >= 0; dlen--) { | ||
2438 | l = font.textWidth(getTitle().c_str(), dlen) + frame.bevel_w*4; | ||
2439 | if (l < frame.label_w) | ||
2440 | break; | ||
2441 | } | ||
2442 | } | ||
2443 | switch (screen->getWindowStyle()->justify) { | ||
2444 | case DrawUtil::Font::RIGHT: | ||
2445 | dx += frame.label_w - l; | ||
2446 | break; | ||
2447 | case DrawUtil::Font::CENTER: | ||
2448 | dx += (frame.label_w - l)/2; | ||
2449 | break; | ||
2450 | } | ||
2451 | 2431 | ||
2452 | font.drawText( | 2432 | GC gc = ((focused) ? screen->getWindowStyle()->l_text_focus_gc : |
2453 | frame.label, | 2433 | screen->getWindowStyle()->l_text_unfocus_gc); |
2454 | screen->getScreenNumber(), | 2434 | |
2455 | gc, | 2435 | size_t newlen = getTitle().size(); |
2456 | getTitle().c_str(), getTitle().size(), | 2436 | const char *labeltext = getTitle().c_str(); |
2457 | dx, screen->getWindowStyle()->font.ascent() + 1); | 2437 | FbTk::Font &font = screen->getWindowStyle()->font; |
2458 | } | 2438 | |
2439 | int align_x = DrawUtil::doAlignment( | ||
2440 | frame.label_w, frame.bevel_w*2, | ||
2441 | screen->getWindowStyle()->justify, | ||
2442 | font, | ||
2443 | labeltext, newlen, newlen); | ||
2444 | |||
2445 | font.drawText( | ||
2446 | frame.label, | ||
2447 | screen->getScreenNumber(), | ||
2448 | gc, | ||
2449 | labeltext, newlen, | ||
2450 | align_x, font.ascent() + 1); | ||
2459 | } | 2451 | } |
2460 | 2452 | ||
2461 | 2453 | ||
2462 | void FluxboxWindow::redrawAllButtons() { | 2454 | void FluxboxWindow::redrawAllButtons() { |
2463 | for (unsigned int i=0; i<buttonlist.size(); i++) | 2455 | for (unsigned int i=0; i<buttonlist.size(); i++) { |
2464 | if (buttonlist[i].draw) | 2456 | if (buttonlist[i].draw) |
2465 | buttonlist[i].draw(this, buttonlist[i].win, false); | 2457 | buttonlist[i].draw(this, buttonlist[i].win, false); |
2466 | 2458 | } | |
2467 | } | 2459 | } |
2468 | 2460 | ||
2469 | void FluxboxWindow::mapRequestEvent(XMapRequestEvent *re) { | 2461 | void FluxboxWindow::mapRequestEvent(XMapRequestEvent *re) { |