summaryrefslogtreecommitdiffstats
path: root/views/widget/widget_win.cc
diff options
context:
space:
mode:
authorjohnnyg@chromium.org <johnnyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-04 22:12:02 +0000
committerjohnnyg@chromium.org <johnnyg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-04 22:12:02 +0000
commitb71f818c64df5a5d8501a37da84ce4c7cae494fa (patch)
treeee3ca693c1b349f6ccc0d340346811e2f1f681c5 /views/widget/widget_win.cc
parent177ac431c361d9bcec1350d3f622ae82b471f1ae (diff)
downloadchromium_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.cc17
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) {