| Index: chrome/browser/ui/gtk/bookmarks/bookmark_utils_gtk.cc
|
| diff --git a/chrome/browser/ui/gtk/bookmarks/bookmark_utils_gtk.cc b/chrome/browser/ui/gtk/bookmarks/bookmark_utils_gtk.cc
|
| index f537a6544b5b73085c5b7942cacd1e9593a90163..4da5a629c7dabcea8af65a4d2c6bd517e09efee5 100644
|
| --- a/chrome/browser/ui/gtk/bookmarks/bookmark_utils_gtk.cc
|
| +++ b/chrome/browser/ui/gtk/bookmarks/bookmark_utils_gtk.cc
|
| @@ -34,6 +34,9 @@ const int kBitsInAByte = 8;
|
| // Maximum number of characters on a bookmark button.
|
| const size_t kMaxCharsOnAButton = 15;
|
|
|
| +// Maximum number of characters on a menu label.
|
| +const int kMaxCharsOnAMenuLabel = 50;
|
| +
|
| // Padding between the chrome button highlight border and the contents (favicon,
|
| // text).
|
| const int kButtonPaddingTop = 0;
|
| @@ -245,6 +248,21 @@ std::string BuildTooltipFor(const BookmarkNode* node) {
|
| return gtk_util::BuildTooltipTitleFor(node->GetTitle(), node->GetURL());
|
| }
|
|
|
| +std::string BuildMenuLabelFor(const BookmarkNode* node) {
|
| + // This breaks on word boundaries. Ideally we would break on character
|
| + // boundaries.
|
| + std::string elided_name = UTF16ToUTF8(
|
| + l10n_util::TruncateString(node->GetTitle(), kMaxCharsOnAMenuLabel));
|
| +
|
| + if (elided_name.empty()) {
|
| + elided_name = UTF16ToUTF8(l10n_util::TruncateString(
|
| + UTF8ToUTF16(node->GetURL().possibly_invalid_spec()),
|
| + kMaxCharsOnAMenuLabel));
|
| + }
|
| +
|
| + return elided_name;
|
| +}
|
| +
|
| const BookmarkNode* BookmarkNodeForWidget(GtkWidget* widget) {
|
| return reinterpret_cast<const BookmarkNode*>(
|
| g_object_get_data(G_OBJECT(widget), bookmark_utils::kBookmarkNode));
|
|
|