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

Side by Side Diff: chrome/browser/views/tabs/tab_strip.cc

Issue 21268: Solved 2 bugs which caused Chrome to maximize itself when... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 10 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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/views/tabs/tab_strip.h" 5 #include "chrome/browser/views/tabs/tab_strip.h"
6 6
7 #include "base/gfx/size.h" 7 #include "base/gfx/size.h"
8 #include "grit/theme_resources.h" 8 #include "grit/theme_resources.h"
9 #include "chrome/browser/metrics/user_metrics.h" 9 #include "chrome/browser/metrics/user_metrics.h"
10 #include "chrome/browser/profile.h" 10 #include "chrome/browser/profile.h"
(...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 } 522 }
523 523
524 bool TabStrip::PointIsWithinWindowCaption(const gfx::Point& point) { 524 bool TabStrip::PointIsWithinWindowCaption(const gfx::Point& point) {
525 views::View* v = GetViewForPoint(point); 525 views::View* v = GetViewForPoint(point);
526 526
527 // If there is no control at this location, claim the hit was in the title 527 // If there is no control at this location, claim the hit was in the title
528 // bar to get a move action. 528 // bar to get a move action.
529 if (v == this) 529 if (v == this)
530 return true; 530 return true;
531 531
532 // If the point is within the bounds of a Tab, the point can be considered
533 // part of the caption if there are no available drag operations for the Tab.
534 if (v->GetClassName() == Tab::kTabClassName && !HasAvailableDragActions())
535 return true;
536
537 // Check to see if the point is within the non-button parts of the new tab 532 // Check to see if the point is within the non-button parts of the new tab
538 // button. The button has a non-rectangular shape, so if it's not in the 533 // button. The button has a non-rectangular shape, so if it's not in the
539 // visual portions of the button we treat it as a click to the caption. 534 // visual portions of the button we treat it as a click to the caption.
540 gfx::Point point_in_newtab_coords(point); 535 gfx::Point point_in_newtab_coords(point);
541 View::ConvertPointToView(this, newtab_button_, &point_in_newtab_coords); 536 View::ConvertPointToView(this, newtab_button_, &point_in_newtab_coords);
542 if (newtab_button_->bounds().Contains(point) && 537 if (newtab_button_->bounds().Contains(point) &&
543 !newtab_button_->HitTest(point_in_newtab_coords)) { 538 !newtab_button_->HitTest(point_in_newtab_coords)) {
544 return true; 539 return true;
545 } 540 }
546 541
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after
1020 // a TabStrip animation when the mouse button is down. In this case we should 1015 // a TabStrip animation when the mouse button is down. In this case we should
1021 // _not_ continue the drag because it can lead to weird bugs. 1016 // _not_ continue the drag because it can lead to weird bugs.
1022 if (drag_controller_.get()) 1017 if (drag_controller_.get())
1023 drag_controller_->Drag(); 1018 drag_controller_->Drag();
1024 } 1019 }
1025 1020
1026 bool TabStrip::EndDrag(bool canceled) { 1021 bool TabStrip::EndDrag(bool canceled) {
1027 return drag_controller_.get() ? drag_controller_->EndDrag(canceled) : false; 1022 return drag_controller_.get() ? drag_controller_->EndDrag(canceled) : false;
1028 } 1023 }
1029 1024
1025 bool TabStrip::ContainsExactlyOneTab() const {
1026 return GetTabCount() == 1;
1027 }
1028
1030 /////////////////////////////////////////////////////////////////////////////// 1029 ///////////////////////////////////////////////////////////////////////////////
1031 // TabStrip, views::BaseButton::ButtonListener implementation: 1030 // TabStrip, views::BaseButton::ButtonListener implementation:
1032 1031
1033 void TabStrip::ButtonPressed(views::BaseButton* sender) { 1032 void TabStrip::ButtonPressed(views::BaseButton* sender) {
1034 if (sender == newtab_button_) 1033 if (sender == newtab_button_)
1035 model_->AddBlankTab(true); 1034 model_->AddBlankTab(true);
1036 } 1035 }
1037 1036
1038 /////////////////////////////////////////////////////////////////////////////// 1037 ///////////////////////////////////////////////////////////////////////////////
1039 // TabStrip, MessageLoop::Observer implementation: 1038 // TabStrip, MessageLoop::Observer implementation:
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after
1533 return last_tab->x() + last_tab->width(); 1532 return last_tab->x() + last_tab->width();
1534 } 1533 }
1535 1534
1536 bool TabStrip::IsPointInTab(Tab* tab, 1535 bool TabStrip::IsPointInTab(Tab* tab,
1537 const gfx::Point& point_in_tabstrip_coords) { 1536 const gfx::Point& point_in_tabstrip_coords) {
1538 gfx::Point point_in_tab_coords(point_in_tabstrip_coords); 1537 gfx::Point point_in_tab_coords(point_in_tabstrip_coords);
1539 View::ConvertPointToView(this, tab, &point_in_tab_coords); 1538 View::ConvertPointToView(this, tab, &point_in_tab_coords);
1540 return tab->HitTest(point_in_tab_coords); 1539 return tab->HitTest(point_in_tab_coords);
1541 } 1540 }
1542 1541
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698