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

Side by Side Diff: chrome/browser/views/frame/glass_browser_frame_view.cc

Issue 660410: Fix issue 29996 (Closed)
Patch Set: get reset icon on StopThrobber per brettw Created 10 years, 9 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
« 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/frame/glass_browser_frame_view.h" 5 #include "chrome/browser/views/frame/glass_browser_frame_view.h"
6 6
7 #include "app/gfx/canvas.h" 7 #include "app/gfx/canvas.h"
8 #include "app/gfx/icon_util.h"
8 #include "app/resource_bundle.h" 9 #include "app/resource_bundle.h"
9 #include "app/theme_provider.h" 10 #include "app/theme_provider.h"
10 #include "chrome/app/chrome_dll_resource.h" 11 #include "chrome/app/chrome_dll_resource.h"
11 #include "chrome/browser/browser_theme_provider.h" 12 #include "chrome/browser/browser_theme_provider.h"
12 #include "chrome/browser/views/frame/browser_view.h" 13 #include "chrome/browser/views/frame/browser_view.h"
13 #include "chrome/browser/views/tabs/side_tab_strip.h" 14 #include "chrome/browser/views/tabs/side_tab_strip.h"
14 #include "chrome/browser/views/tabs/tab_strip.h" 15 #include "chrome/browser/views/tabs/tab_strip.h"
15 #include "grit/app_resources.h" 16 #include "grit/app_resources.h"
16 #include "grit/theme_resources.h" 17 #include "grit/theme_resources.h"
17 #include "views/window/client_view.h" 18 #include "views/window/client_view.h"
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 SendMessage(frame_->GetWindow()->GetNativeWindow(), WM_SETICON, 405 SendMessage(frame_->GetWindow()->GetNativeWindow(), WM_SETICON,
405 static_cast<WPARAM>(ICON_SMALL), 406 static_cast<WPARAM>(ICON_SMALL),
406 reinterpret_cast<LPARAM>(throbber_icons_[throbber_frame_])); 407 reinterpret_cast<LPARAM>(throbber_icons_[throbber_frame_]));
407 } 408 }
408 } 409 }
409 410
410 void GlassBrowserFrameView::StopThrobber() { 411 void GlassBrowserFrameView::StopThrobber() {
411 if (throbber_running_) { 412 if (throbber_running_) {
412 throbber_running_ = false; 413 throbber_running_ = false;
413 414
415 HICON frame_icon = NULL;
416
417 // Check if hosted BrowserView has a window icon to use.
418 if (browser_view_->ShouldShowWindowIcon()) {
419 SkBitmap icon = browser_view_->GetWindowIcon();
420 if (!icon.isNull())
421 frame_icon = IconUtil::CreateHICONFromSkBitmap(icon);
422 }
423
424 // Fallback to class icon.
425 if (!frame_icon) {
426 frame_icon = reinterpret_cast<HICON>(GetClassLongPtr(
427 frame_->GetWindow()->GetNativeWindow(), GCLP_HICONSM));
428 }
429
414 // This will reset the small icon which we set in the throbber code. 430 // This will reset the small icon which we set in the throbber code.
415 // Windows will then pick up the default icon from the window class. 431 // WM_SETICON with NULL icon restores the icon for title bar but not
432 // for taskbar. See http://crbug.com/29996
416 SendMessage(frame_->GetWindow()->GetNativeWindow(), WM_SETICON, 433 SendMessage(frame_->GetWindow()->GetNativeWindow(), WM_SETICON,
417 static_cast<WPARAM>(ICON_SMALL), NULL); 434 static_cast<WPARAM>(ICON_SMALL),
435 reinterpret_cast<LPARAM>(frame_icon));
418 } 436 }
419 } 437 }
420 438
421 void GlassBrowserFrameView::DisplayNextThrobberFrame() { 439 void GlassBrowserFrameView::DisplayNextThrobberFrame() {
422 throbber_frame_ = (throbber_frame_ + 1) % kThrobberIconCount; 440 throbber_frame_ = (throbber_frame_ + 1) % kThrobberIconCount;
423 SendMessage(frame_->GetWindow()->GetNativeWindow(), WM_SETICON, 441 SendMessage(frame_->GetWindow()->GetNativeWindow(), WM_SETICON,
424 static_cast<WPARAM>(ICON_SMALL), 442 static_cast<WPARAM>(ICON_SMALL),
425 reinterpret_cast<LPARAM>(throbber_icons_[throbber_frame_])); 443 reinterpret_cast<LPARAM>(throbber_icons_[throbber_frame_]));
426 } 444 }
427 445
(...skipping 15 matching lines...) Expand all
443 static bool initialized = false; 461 static bool initialized = false;
444 if (!initialized) { 462 if (!initialized) {
445 #if defined(GOOGLE_CHROME_BUILD) 463 #if defined(GOOGLE_CHROME_BUILD)
446 distributor_logo_ = ResourceBundle::GetSharedInstance(). 464 distributor_logo_ = ResourceBundle::GetSharedInstance().
447 GetBitmapNamed(IDR_DISTRIBUTOR_LOGO); 465 GetBitmapNamed(IDR_DISTRIBUTOR_LOGO);
448 #endif 466 #endif
449 467
450 initialized = true; 468 initialized = true;
451 } 469 }
452 } 470 }
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