Chromium Code Reviews| Index: chrome/browser/ui/panels/panel_browser_view.cc |
| =================================================================== |
| --- chrome/browser/ui/panels/panel_browser_view.cc (revision 104349) |
| +++ chrome/browser/ui/panels/panel_browser_view.cc (working copy) |
| @@ -75,6 +75,28 @@ |
| ::BrowserView::Close(); |
| } |
| +void PanelBrowserView::Deactivate() { |
| + if (!IsActive()) |
| + return; |
| + |
| +#if defined(OS_WIN) |
| + gfx::NativeWindow native_window = NULL; |
| + BrowserWindow* browser_window = |
| + panel_->manager()->GetNextPanelToActivate(panel_.get()); |
|
Dmitry Titov
2011/10/07 20:29:15
This can be split in 2 methods - platform-independ
jianli
2011/10/07 22:01:54
As discussed, we keep as it is since the only thin
|
| + if (browser_window) |
| + native_window = browser_window->GetNativeHandle(); |
| + else |
| + native_window = ::GetDesktopWindow(); |
| + if (native_window) |
| + ::SetForegroundWindow(native_window); |
| + else |
| + ::SetFocus(NULL); |
| +#else |
| + // TODO(jianli): to be implemented for other platform. |
| + BrowserView::Deactivate(); |
| +#endif |
| +} |
| + |
| bool PanelBrowserView::CanResize() const { |
| return false; |
| } |
| @@ -449,8 +471,8 @@ |
| virtual void CancelDragTitlebar() OVERRIDE; |
| virtual void FinishDragTitlebar() OVERRIDE; |
| virtual bool VerifyDrawingAttention() const OVERRIDE; |
| + virtual bool VerifyTitlebarPaintedAsActive(bool as_active) OVERRIDE; |
| - |
| PanelBrowserView* panel_browser_view_; |
| }; |
| @@ -497,3 +519,16 @@ |
| PanelBrowserFrameView::PAINT_FOR_ATTENTION); |
| return attention_color == frame_view->title_label_->GetColor(); |
| } |
| + |
| +bool NativePanelTestingWin::VerifyTitlebarPaintedAsActive(bool as_active) { |
| + PanelBrowserFrameView* frame_view = panel_browser_view_->GetFrameView(); |
| + |
| + PanelBrowserFrameView::PaintState expected_paint_state = |
| + as_active ? PanelBrowserFrameView::PAINT_AS_ACTIVE |
| + : PanelBrowserFrameView::PAINT_AS_INACTIVE; |
| + if (frame_view->paint_state_ != expected_paint_state) |
| + return false; |
| + |
| + SkColor expected_color = frame_view->GetTitleColor(expected_paint_state); |
| + return expected_color == frame_view->title_label_->GetColor(); |
| +} |