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(); |
+} |