| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/gtk/bookmark_bar_gtk.h" | 5 #include "chrome/browser/gtk/bookmark_bar_gtk.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "app/gfx/text_elider.h" | 9 #include "app/gfx/text_elider.h" |
| 10 #include "app/gtk_dnd_util.h" | 10 #include "app/gtk_dnd_util.h" |
| (...skipping 959 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 970 return TRUE; | 970 return TRUE; |
| 971 } | 971 } |
| 972 | 972 |
| 973 // MenuBarHelper::Delegate implementation -------------------------------------- | 973 // MenuBarHelper::Delegate implementation -------------------------------------- |
| 974 void BookmarkBarGtk::PopupForButton(GtkWidget* button) { | 974 void BookmarkBarGtk::PopupForButton(GtkWidget* button) { |
| 975 const BookmarkNode* node = GetNodeForToolButton(button); | 975 const BookmarkNode* node = GetNodeForToolButton(button); |
| 976 DCHECK(node); | 976 DCHECK(node); |
| 977 DCHECK(page_navigator_); | 977 DCHECK(page_navigator_); |
| 978 | 978 |
| 979 int first_hidden = GetFirstHiddenBookmark(0, NULL); | 979 int first_hidden = GetFirstHiddenBookmark(0, NULL); |
| 980 if (button != overflow_button_ && button != other_bookmarks_button_ && | 980 if (first_hidden == -1) { |
| 981 node->GetParent()->IndexOfChild(node) >= first_hidden) { | 981 // No overflow exists: don't show anything for the overflow button. |
| 982 return; | 982 if (button == overflow_button_) |
| 983 return; |
| 984 } else { |
| 985 // Overflow exists: don't show anything for an overflowed folder button. |
| 986 if (button != overflow_button_ && button != other_bookmarks_button_ && |
| 987 node->GetParent()->IndexOfChild(node) >= first_hidden) { |
| 988 return; |
| 989 } |
| 983 } | 990 } |
| 984 | 991 |
| 985 current_menu_.reset( | 992 current_menu_.reset( |
| 986 new BookmarkMenuController(browser_, profile_, | 993 new BookmarkMenuController(browser_, profile_, |
| 987 page_navigator_, | 994 page_navigator_, |
| 988 GTK_WINDOW(gtk_widget_get_toplevel(button)), | 995 GTK_WINDOW(gtk_widget_get_toplevel(button)), |
| 989 node, | 996 node, |
| 990 button == overflow_button_ ? | 997 button == overflow_button_ ? |
| 991 first_hidden : 0, | 998 first_hidden : 0, |
| 992 false)); | 999 false)); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1016 break; | 1023 break; |
| 1017 } | 1024 } |
| 1018 } | 1025 } |
| 1019 DCHECK_NE(button_idx, -1); | 1026 DCHECK_NE(button_idx, -1); |
| 1020 | 1027 |
| 1021 // Find the GtkWidget* for the actual target button. | 1028 // Find the GtkWidget* for the actual target button. |
| 1022 int shift = dir == GTK_MENU_DIR_PARENT ? -1 : 1; | 1029 int shift = dir == GTK_MENU_DIR_PARENT ? -1 : 1; |
| 1023 button_idx = (button_idx + shift + folder_list.size()) % folder_list.size(); | 1030 button_idx = (button_idx + shift + folder_list.size()) % folder_list.size(); |
| 1024 PopupForButton(folder_list[button_idx]); | 1031 PopupForButton(folder_list[button_idx]); |
| 1025 } | 1032 } |
| OLD | NEW |