diff options
author | johnnyg@chromium.org <johnnyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-04 22:12:02 +0000 |
---|---|---|
committer | johnnyg@chromium.org <johnnyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-04 22:12:02 +0000 |
commit | b71f818c64df5a5d8501a37da84ce4c7cae494fa (patch) | |
tree | ee3ca693c1b349f6ccc0d340346811e2f1f681c5 /views/widget/widget_win.cc | |
parent | 177ac431c361d9bcec1350d3f622ae82b471f1ae (diff) | |
download | chromium_src-b71f818c64df5a5d8501a37da84ce4c7cae494fa.zip chromium_src-b71f818c64df5a5d8501a37da84ce4c7cae494fa.tar.gz chromium_src-b71f818c64df5a5d8501a37da84ce4c7cae494fa.tar.bz2 |
On Windows, detect the WM_DISPLAYCHANGE message which indicates the desktop size is changing. Pass this event using the NotificationService, and listen for it in desktop notification code in order to adjust metrics properly for the corner of the screen.
BUG=35464
TEST=resize desktop after starting chrome; create notifications.
Review URL: http://codereview.chromium.org/606007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40670 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/widget/widget_win.cc')
-rw-r--r-- | views/widget/widget_win.cc | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/views/widget/widget_win.cc b/views/widget/widget_win.cc index 5fb5cf8..5527190 100644 --- a/views/widget/widget_win.cc +++ b/views/widget/widget_win.cc @@ -20,6 +20,7 @@ #include "views/widget/default_theme_provider.h" #include "views/widget/drop_target_win.h" #include "views/widget/root_view.h" +#include "views/widget/widget_delegate.h" #include "views/window/window_win.h" namespace views { @@ -55,7 +56,8 @@ WidgetWin::WidgetWin() last_mouse_event_was_move_(false), is_mouse_down_(false), is_window_(false), - restore_focus_when_enabled_(false) { + restore_focus_when_enabled_(false), + delegate_(NULL) { } WidgetWin::~WidgetWin() { @@ -160,6 +162,14 @@ void WidgetWin::Init(gfx::NativeView parent, const gfx::Rect& bounds) { ImmAssociateContextEx(hwnd(), NULL, 0); } +WidgetDelegate* WidgetWin::GetWidgetDelegate() { + return delegate_; +} + +void WidgetWin::SetWidgetDelegate(WidgetDelegate* delegate) { + delegate_ = delegate; +} + void WidgetWin::SetContentsView(View* view) { root_view_->SetContentsView(view); } @@ -534,6 +544,11 @@ void WidgetWin::OnDestroy() { RemoveProp(hwnd(), kRootViewWindowProperty); } +void WidgetWin::OnDisplayChange(UINT bits_per_pixel, CSize screen_size) { + if (GetWidgetDelegate()) + GetWidgetDelegate()->DisplayChanged(); +} + LRESULT WidgetWin::OnDwmCompositionChanged(UINT msg, WPARAM w_param, LPARAM l_param) { |