Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Side by Side Diff: chrome/browser/ui/gtk/tabs/tab_strip_gtk.cc

Issue 8800029: GTK: Add TRACE_EVENTs around gtk ui events. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: fix nit Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/ui/gtk/tabs/tab_strip_gtk.h" 5 #include "chrome/browser/ui/gtk/tabs/tab_strip_gtk.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/debug/trace_event.h"
10 #include "base/i18n/rtl.h" 11 #include "base/i18n/rtl.h"
11 #include "base/string_util.h" 12 #include "base/string_util.h"
12 #include "base/utf_string_conversions.h" 13 #include "base/utf_string_conversions.h"
13 #include "chrome/browser/autocomplete/autocomplete.h" 14 #include "chrome/browser/autocomplete/autocomplete.h"
14 #include "chrome/browser/autocomplete/autocomplete_classifier.h" 15 #include "chrome/browser/autocomplete/autocomplete_classifier.h"
15 #include "chrome/browser/autocomplete/autocomplete_match.h" 16 #include "chrome/browser/autocomplete/autocomplete_match.h"
16 #include "chrome/browser/profiles/profile.h" 17 #include "chrome/browser/profiles/profile.h"
17 #include "chrome/browser/tabs/tab_strip_model_delegate.h" 18 #include "chrome/browser/tabs/tab_strip_model_delegate.h"
18 #include "chrome/browser/themes/theme_service.h" 19 #include "chrome/browser/themes/theme_service.h"
19 #include "chrome/browser/ui/browser.h" 20 #include "chrome/browser/ui/browser.h"
(...skipping 934 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 955
955 return NULL; 956 return NULL;
956 } 957 }
957 958
958 //////////////////////////////////////////////////////////////////////////////// 959 ////////////////////////////////////////////////////////////////////////////////
959 // TabStripGtk, TabStripModelObserver implementation: 960 // TabStripGtk, TabStripModelObserver implementation:
960 961
961 void TabStripGtk::TabInsertedAt(TabContentsWrapper* contents, 962 void TabStripGtk::TabInsertedAt(TabContentsWrapper* contents,
962 int index, 963 int index,
963 bool foreground) { 964 bool foreground) {
965 TRACE_EVENT0("ui::gtk", "TabStripGtk::TabInsertedAt");
966
964 DCHECK(contents); 967 DCHECK(contents);
965 DCHECK(index == TabStripModel::kNoTab || model_->ContainsIndex(index)); 968 DCHECK(index == TabStripModel::kNoTab || model_->ContainsIndex(index));
966 969
967 StopAnimation(); 970 StopAnimation();
968 971
969 bool contains_tab = false; 972 bool contains_tab = false;
970 TabGtk* tab = NULL; 973 TabGtk* tab = NULL;
971 // First see if this Tab is one that was dragged out of this TabStrip and is 974 // First see if this Tab is one that was dragged out of this TabStrip and is
972 // now being dragged back in. In this case, the DraggedTabController actually 975 // now being dragged back in. In this case, the DraggedTabController actually
973 // has the Tab already constructed and we can just insert it into our list 976 // has the Tab already constructed and we can just insert it into our list
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1027 // Have to do this _after_ calling StartRemoveTabAnimation, so that any 1030 // Have to do this _after_ calling StartRemoveTabAnimation, so that any
1028 // previous remove is completed fully and index is valid in sync with the 1031 // previous remove is completed fully and index is valid in sync with the
1029 // model index. 1032 // model index.
1030 GetTabAt(index)->set_closing(true); 1033 GetTabAt(index)->set_closing(true);
1031 } 1034 }
1032 1035
1033 void TabStripGtk::ActiveTabChanged(TabContentsWrapper* old_contents, 1036 void TabStripGtk::ActiveTabChanged(TabContentsWrapper* old_contents,
1034 TabContentsWrapper* new_contents, 1037 TabContentsWrapper* new_contents,
1035 int index, 1038 int index,
1036 bool user_gesture) { 1039 bool user_gesture) {
1040 TRACE_EVENT0("ui::gtk", "TabStripGtk::ActiveTabChanged");
1037 ReStack(); 1041 ReStack();
1038 } 1042 }
1039 1043
1040 void TabStripGtk::TabSelectionChanged(TabStripModel* tab_strip_model, 1044 void TabStripGtk::TabSelectionChanged(TabStripModel* tab_strip_model,
1041 const TabStripSelectionModel& old_model) { 1045 const TabStripSelectionModel& old_model) {
1042 // We have "tiny tabs" if the tabs are so tiny that the unselected ones are 1046 // We have "tiny tabs" if the tabs are so tiny that the unselected ones are
1043 // a different size to the selected ones. 1047 // a different size to the selected ones.
1044 bool tiny_tabs = current_unselected_width_ != current_selected_width_; 1048 bool tiny_tabs = current_unselected_width_ != current_selected_width_;
1045 if (!IsAnimating() && (!needs_resize_layout_ || tiny_tabs)) 1049 if (!IsAnimating() && (!needs_resize_layout_ || tiny_tabs))
1046 Layout(); 1050 Layout();
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after
1597 GdkScreen* screen = gdk_screen_get_default(); 1601 GdkScreen* screen = gdk_screen_get_default();
1598 GdkDisplay* display = gdk_screen_get_display(screen); 1602 GdkDisplay* display = gdk_screen_get_display(screen);
1599 gint x, y; 1603 gint x, y;
1600 gdk_display_get_pointer(display, NULL, &x, &y, NULL); 1604 gdk_display_get_pointer(display, NULL, &x, &y, NULL);
1601 gfx::Point cursor_point(x, y); 1605 gfx::Point cursor_point(x, y);
1602 1606
1603 return bds.Contains(cursor_point); 1607 return bds.Contains(cursor_point);
1604 } 1608 }
1605 1609
1606 void TabStripGtk::ReStack() { 1610 void TabStripGtk::ReStack() {
1611 TRACE_EVENT0("ui::gtk", "TabStripGtk::ReStack");
1612
1607 if (!gtk_widget_get_realized(tabstrip_.get())) { 1613 if (!gtk_widget_get_realized(tabstrip_.get())) {
1608 // If the window isn't realized yet, we can't stack them yet. It will be 1614 // If the window isn't realized yet, we can't stack them yet. It will be
1609 // done by the OnMap signal handler. 1615 // done by the OnMap signal handler.
1610 return; 1616 return;
1611 } 1617 }
1612 int tab_count = GetTabCount(); 1618 int tab_count = GetTabCount();
1613 TabGtk* active_tab = NULL; 1619 TabGtk* active_tab = NULL;
1614 for (int i = tab_count - 1; i >= 0; --i) { 1620 for (int i = tab_count - 1; i >= 0; --i) {
1615 TabGtk* tab = GetTabAt(i); 1621 TabGtk* tab = GetTabAt(i);
1616 if (tab->IsActive()) 1622 if (tab->IsActive())
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
1793 CreateContainer(); 1799 CreateContainer();
1794 drop_arrow = GetDropArrowImage(point_down); 1800 drop_arrow = GetDropArrowImage(point_down);
1795 } 1801 }
1796 1802
1797 TabStripGtk::DropInfo::~DropInfo() { 1803 TabStripGtk::DropInfo::~DropInfo() {
1798 DestroyContainer(); 1804 DestroyContainer();
1799 } 1805 }
1800 1806
1801 gboolean TabStripGtk::DropInfo::OnExposeEvent(GtkWidget* widget, 1807 gboolean TabStripGtk::DropInfo::OnExposeEvent(GtkWidget* widget,
1802 GdkEventExpose* event) { 1808 GdkEventExpose* event) {
1809 TRACE_EVENT0("ui::gtk", "TabStripGtk::DropInfo::OnExposeEvent");
1810
1803 if (ui::IsScreenComposited()) { 1811 if (ui::IsScreenComposited()) {
1804 SetContainerTransparency(); 1812 SetContainerTransparency();
1805 } else { 1813 } else {
1806 SetContainerShapeMask(); 1814 SetContainerShapeMask();
1807 } 1815 }
1808 1816
1809 gdk_pixbuf_render_to_drawable(drop_arrow, 1817 gdk_pixbuf_render_to_drawable(drop_arrow,
1810 container->window, 1818 container->window,
1811 0, 0, 0, 1819 0, 0, 0,
1812 0, 0, 1820 0, 0,
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
1977 1985
1978 if (layout) 1986 if (layout)
1979 Layout(); 1987 Layout();
1980 } 1988 }
1981 1989
1982 void TabStripGtk::OnMap(GtkWidget* widget) { 1990 void TabStripGtk::OnMap(GtkWidget* widget) {
1983 ReStack(); 1991 ReStack();
1984 } 1992 }
1985 1993
1986 gboolean TabStripGtk::OnExpose(GtkWidget* widget, GdkEventExpose* event) { 1994 gboolean TabStripGtk::OnExpose(GtkWidget* widget, GdkEventExpose* event) {
1995 TRACE_EVENT0("ui::gtk", "TabStripGtk::OnExpose");
1996
1987 if (gdk_region_empty(event->region)) 1997 if (gdk_region_empty(event->region))
1988 return TRUE; 1998 return TRUE;
1989 1999
1990 // If we're only repainting favicons, optimize the paint path and only draw 2000 // If we're only repainting favicons, optimize the paint path and only draw
1991 // the favicons. 2001 // the favicons.
1992 GdkRectangle* rects; 2002 GdkRectangle* rects;
1993 gint num_rects; 2003 gint num_rects;
1994 gdk_region_get_rectangles(event->region, &rects, &num_rects); 2004 gdk_region_get_rectangles(event->region, &rects, &num_rects);
1995 qsort(rects, num_rects, sizeof(GdkRectangle), CompareGdkRectangles); 2005 qsort(rects, num_rects, sizeof(GdkRectangle), CompareGdkRectangles);
1996 std::vector<int> tabs_to_repaint; 2006 std::vector<int> tabs_to_repaint;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
2056 // Paint the selected tab last, so it overlaps all the others. 2066 // Paint the selected tab last, so it overlaps all the others.
2057 if (selected_tab) { 2067 if (selected_tab) {
2058 gtk_container_propagate_expose(GTK_CONTAINER(tabstrip_.get()), 2068 gtk_container_propagate_expose(GTK_CONTAINER(tabstrip_.get()),
2059 selected_tab->widget(), event); 2069 selected_tab->widget(), event);
2060 } 2070 }
2061 2071
2062 return TRUE; 2072 return TRUE;
2063 } 2073 }
2064 2074
2065 void TabStripGtk::OnSizeAllocate(GtkWidget* widget, GtkAllocation* allocation) { 2075 void TabStripGtk::OnSizeAllocate(GtkWidget* widget, GtkAllocation* allocation) {
2076 TRACE_EVENT0("ui::gtk", "TabStripGtk::OnSizeAllocate");
2077
2066 gfx::Rect bounds = gfx::Rect(allocation->x, allocation->y, 2078 gfx::Rect bounds = gfx::Rect(allocation->x, allocation->y,
2067 allocation->width, allocation->height); 2079 allocation->width, allocation->height);
2068 2080
2069 // Nothing to do if the bounds are the same. If we don't catch this, we'll 2081 // Nothing to do if the bounds are the same. If we don't catch this, we'll
2070 // get an infinite loop of size-allocate signals. 2082 // get an infinite loop of size-allocate signals.
2071 if (bounds_ == bounds) 2083 if (bounds_ == bounds)
2072 return; 2084 return;
2073 2085
2074 SetBounds(bounds); 2086 SetBounds(bounds);
2075 2087
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
2222 } 2234 }
2223 2235
2224 void TabStripGtk::SetNewTabButtonBackground() { 2236 void TabStripGtk::SetNewTabButtonBackground() {
2225 SkColor color = theme_service_->GetColor( 2237 SkColor color = theme_service_->GetColor(
2226 ThemeService::COLOR_BUTTON_BACKGROUND); 2238 ThemeService::COLOR_BUTTON_BACKGROUND);
2227 SkBitmap* background = theme_service_->GetBitmapNamed( 2239 SkBitmap* background = theme_service_->GetBitmapNamed(
2228 IDR_THEME_WINDOW_CONTROL_BACKGROUND); 2240 IDR_THEME_WINDOW_CONTROL_BACKGROUND);
2229 SkBitmap* mask = theme_service_->GetBitmapNamed(IDR_NEWTAB_BUTTON_MASK); 2241 SkBitmap* mask = theme_service_->GetBitmapNamed(IDR_NEWTAB_BUTTON_MASK);
2230 newtab_button_->SetBackground(color, background, mask); 2242 newtab_button_->SetBackground(color, background, mask);
2231 } 2243 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698