From 63a4690e72a92f208cd927c316e95b989af18ff9 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Thu, 18 Dec 2014 14:27:45 +0100 Subject: [PATCH] Notification: truncate long lines This happens only if the word-wrapping couldn't fit them (because there is a very long word in the text) Fixes #11494. --- src/servers/notification/NotificationView.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/servers/notification/NotificationView.cpp b/src/servers/notification/NotificationView.cpp index 8568e99f4b..bc81f69595 100644 --- a/src/servers/notification/NotificationView.cpp +++ b/src/servers/notification/NotificationView.cpp @@ -240,7 +240,7 @@ NotificationView::Draw(BRect updateRect) // Icon size float iconSize = (float)fParent->IconSize(); - + BRect stripeRect = Bounds(); stripeRect.right = kIconStripeWidth; SetHighColor(tint_color(ui_color(B_PANEL_BACKGROUND_COLOR), @@ -250,7 +250,7 @@ NotificationView::Draw(BRect updateRect) SetHighColor(fStripeColor); stripeRect.right = 2; FillRect(stripeRect); - + SetHighColor(ui_color(B_PANEL_TEXT_COLOR)); // Rectangle for icon and overlay icon BRect iconRect(0, 0, 0, 0); @@ -277,6 +277,10 @@ NotificationView::Draw(BRect updateRect) LineInfo *l = (*lIt); SetFont(&l->font); + // Truncate the string. We have already line-wrapped the text but if + // there is a very long 'word' we can only truncate it. + TruncateString(&(l->text), B_TRUNCATE_END, + Bounds().Width() - l->location.x - 8); DrawString(l->text.String(), l->text.Length(), l->location); }