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

Side by Side Diff: chrome/browser/views/browser_actions_container.cc

Issue 341015: Fix paint glitch on load/unload browser action (Closed)
Patch Set: Created 11 years, 1 month 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/views/browser_actions_container.h" 5 #include "chrome/browser/views/browser_actions_container.h"
6 6
7 #include "app/gfx/canvas.h" 7 #include "app/gfx/canvas.h"
8 #include "app/resource_bundle.h" 8 #include "app/resource_bundle.h"
9 #include "base/stl_util-inl.h" 9 #include "base/stl_util-inl.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 "Asked to add a browser action view for an extension that already " 268 "Asked to add a browser action view for an extension that already "
269 "exists."; 269 "exists.";
270 } 270 }
271 #endif 271 #endif
272 if (!extension->browser_action()) 272 if (!extension->browser_action())
273 return; 273 return;
274 274
275 BrowserActionView* view = new BrowserActionView(extension, this); 275 BrowserActionView* view = new BrowserActionView(extension, this);
276 browser_action_views_.push_back(view); 276 browser_action_views_.push_back(view);
277 AddChildView(view); 277 AddChildView(view);
278 if (GetParent())
279 GetParent()->SchedulePaint();
278 } 280 }
279 281
280 void BrowserActionsContainer::RemoveBrowserAction(Extension* extension) { 282 void BrowserActionsContainer::RemoveBrowserAction(Extension* extension) {
281 if (!extension->browser_action()) 283 if (!extension->browser_action())
282 return; 284 return;
283 285
284 for (std::vector<BrowserActionView*>::iterator iter = 286 for (std::vector<BrowserActionView*>::iterator iter =
285 browser_action_views_.begin(); iter != browser_action_views_.end(); 287 browser_action_views_.begin(); iter != browser_action_views_.end();
286 ++iter) { 288 ++iter) {
287 if ((*iter)->button()->extension() == extension) { 289 if ((*iter)->button()->extension() == extension) {
288 RemoveChildView(*iter); 290 RemoveChildView(*iter);
289 browser_action_views_.erase(iter); 291 browser_action_views_.erase(iter);
292 if (GetParent())
293 GetParent()->SchedulePaint();
290 return; 294 return;
291 } 295 }
292 } 296 }
293 297
294 NOTREACHED() << "Asked to remove a browser action view that doesn't exist."; 298 NOTREACHED() << "Asked to remove a browser action view that doesn't exist.";
295 } 299 }
296 300
297 void BrowserActionsContainer::DeleteBrowserActionViews() { 301 void BrowserActionsContainer::DeleteBrowserActionViews() {
298 if (!browser_action_views_.empty()) { 302 if (!browser_action_views_.empty()) {
299 for (size_t i = 0; i < browser_action_views_.size(); ++i) 303 for (size_t i = 0; i < browser_action_views_.size(); ++i)
300 RemoveChildView(browser_action_views_[i]); 304 RemoveChildView(browser_action_views_[i]);
301 STLDeleteContainerPointers(browser_action_views_.begin(), 305 STLDeleteContainerPointers(browser_action_views_.begin(),
302 browser_action_views_.end()); 306 browser_action_views_.end());
303 browser_action_views_.clear(); 307 browser_action_views_.clear();
304 } 308 }
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 std::min(static_cast<int>(browser_action_views_.size()), 456 std::min(static_cast<int>(browser_action_views_.size()),
453 kMinimumNumberOfVisibleBrowserActions) * kButtonSize; 457 kMinimumNumberOfVisibleBrowserActions) * kButtonSize;
454 458
455 // Even if available_width is <= 0, we still return at least the |min_width|. 459 // Even if available_width is <= 0, we still return at least the |min_width|.
456 if (available_width <= 0) 460 if (available_width <= 0)
457 return min_width; 461 return min_width;
458 462
459 return std::max(min_width, available_width - available_width % kButtonSize + 463 return std::max(min_width, available_width - available_width % kButtonSize +
460 kHorizontalPadding * 2); 464 kHorizontalPadding * 2);
461 } 465 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698