diff options
author | sail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-12 20:49:26 +0000 |
---|---|---|
committer | sail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-12 20:49:26 +0000 |
commit | 401ef2912a7550b5fdb9b777d3b52f945760c04a (patch) | |
tree | b9acac8d9b39f724cbcb6e2be5c3cc675317857d /ui | |
parent | b7b50ed01fbfa8f83a421aa1c88dcbce955810d9 (diff) | |
download | chromium_src-401ef2912a7550b5fdb9b777d3b52f945760c04a.zip chromium_src-401ef2912a7550b5fdb9b777d3b52f945760c04a.tar.gz chromium_src-401ef2912a7550b5fdb9b777d3b52f945760c04a.tar.bz2 |
Revert 141723 - First pass at making Chrome support metro snap mode. It creates a fullscreen-alike mode that Chrome may enter when in metro snap mode.
This mode removes the chrome parts of Chrome as well as disabling the F11 key, while clamping Chrome to the size of the snap view portion of the screen.
BUG=130623
TEST=NONE
Review URL: https://chromiumcodereview.appspot.com/10446106
TBR=robertshield@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10534123
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141728 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rw-r--r-- | ui/views/widget/native_widget_win.cc | 72 | ||||
-rw-r--r-- | ui/views/widget/native_widget_win.h | 22 |
2 files changed, 12 insertions, 82 deletions
diff --git a/ui/views/widget/native_widget_win.cc b/ui/views/widget/native_widget_win.cc index b143228..d7a98f0 100644 --- a/ui/views/widget/native_widget_win.cc +++ b/ui/views/widget/native_widget_win.cc @@ -422,7 +422,6 @@ NativeWidgetWin::NativeWidgetWin(internal::NativeWidgetDelegate* delegate) accessibility_view_events_(kMaxAccessibilityViewEvents), previous_cursor_(NULL), fullscreen_(false), - metro_snap_(false), force_hidden_count_(0), lock_updates_count_(0), ignore_window_pos_changes_(false), @@ -991,40 +990,7 @@ void NativeWidgetWin::Restore() { void NativeWidgetWin::SetFullscreen(bool fullscreen) { if (fullscreen_ == fullscreen) - return; - - gfx::Rect window_rect; - if (fullscreen) { - MONITORINFO monitor_info; - monitor_info.cbSize = sizeof(monitor_info); - GetMonitorInfo(MonitorFromWindow(GetNativeView(), MONITOR_DEFAULTTONEAREST), - &monitor_info); - window_rect = monitor_info.rcMonitor; - } - - SetFullscreenInternal(fullscreen, window_rect); -} - -void NativeWidgetWin::SetMetroSnapFullscreen(bool metro_snap) { - if (metro_snap_ == metro_snap) - return; - - metro_snap_ = metro_snap; - - gfx::Rect window_rect; - if (!metro_snap) { - MONITORINFO monitor_info; - monitor_info.cbSize = sizeof(monitor_info); - GetMonitorInfo(MonitorFromWindow(GetNativeView(), MONITOR_DEFAULTTONEAREST), - &monitor_info); - window_rect = monitor_info.rcMonitor; - } - - SetFullscreenInternal(metro_snap, window_rect); -} - -void NativeWidgetWin::SetFullscreenInternal(bool fullscreen, - const gfx::Rect& window_rect) { + return; // Nothing to do. // Reduce jankiness during the following position changes by hiding the window // until it's in the final position. @@ -1047,35 +1013,26 @@ void NativeWidgetWin::SetFullscreenInternal(bool fullscreen, if (fullscreen_) { // Set new window style and size. + MONITORINFO monitor_info; + monitor_info.cbSize = sizeof(monitor_info); + GetMonitorInfo(MonitorFromWindow(GetNativeView(), MONITOR_DEFAULTTONEAREST), + &monitor_info); + gfx::Rect monitor_rect(monitor_info.rcMonitor); SetWindowLong(GWL_STYLE, saved_window_info_.style & ~(WS_CAPTION | WS_THICKFRAME)); SetWindowLong(GWL_EXSTYLE, saved_window_info_.ex_style & ~(WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE | WS_EX_STATICEDGE)); - - // On expand, if we're given a window_rect, grow to it, otherwise do - // not resize. - if (window_rect.width() > 0) { - SetWindowPos(NULL, window_rect.x(), window_rect.y(), - window_rect.width(), window_rect.height(), - SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED); - } + SetWindowPos(NULL, monitor_rect.x(), monitor_rect.y(), + monitor_rect.width(), monitor_rect.height(), + SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED); } else { // Reset original window style and size. The multiple window size/moves // here are ugly, but if SetWindowPos() doesn't redraw, the taskbar won't be // repainted. Better-looking methods welcome. + gfx::Rect new_rect(saved_window_info_.window_rect); SetWindowLong(GWL_STYLE, saved_window_info_.style); SetWindowLong(GWL_EXSTYLE, saved_window_info_.ex_style); - - // On restore, if we're given a window_rect resize to that, otherwise - // resize to the previous saved rect size. - gfx::Rect new_rect; - if (window_rect.width() > 0) { - new_rect = window_rect; - } else { - new_rect = saved_window_info_.window_rect; - } - SetWindowPos(NULL, new_rect.x(), new_rect.y(), new_rect.width(), new_rect.height(), SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED); @@ -1091,10 +1048,6 @@ bool NativeWidgetWin::IsFullscreen() const { return fullscreen_; } -bool NativeWidgetWin::IsInMetroSnapMode() const { - return metro_snap_; -} - void NativeWidgetWin::SetOpacity(unsigned char opacity) { layered_alpha_ = static_cast<BYTE>(opacity); GetWidget()->GetRootView()->SchedulePaint(); @@ -2154,10 +2107,9 @@ void NativeWidgetWin::OnWindowPosChanging(WINDOWPOS* window_pos) { gfx::Rect monitor_rect, work_area; if (GetWindowRect(&window_rect) && GetMonitorAndRects(window_rect, &monitor, &monitor_rect, &work_area)) { - bool work_area_changed = (monitor_rect == last_monitor_rect_) && - (work_area != last_work_area_); if (monitor && (monitor == last_monitor_) && - ((IsFullscreen() && !metro_snap_) || work_area_changed)) { + (IsFullscreen() || ((monitor_rect == last_monitor_rect_) && + (work_area != last_work_area_)))) { // A rect for the monitor we're on changed. Normally Windows notifies // us about this (and thus we're reaching here due to the SetWindowPos() // call in OnSettingChange() above), but with some software (e.g. diff --git a/ui/views/widget/native_widget_win.h b/ui/views/widget/native_widget_win.h index 868c24b..d584390 100644 --- a/ui/views/widget/native_widget_win.h +++ b/ui/views/widget/native_widget_win.h @@ -115,13 +115,6 @@ class VIEWS_EXPORT NativeWidgetWin : public ui::WindowImpl, // the top of the stack. See PushForceHidden. void PopForceHidden(); - // Places the window in a pseudo-fullscreen mode where it looks and acts as - // like a fullscreen window except that it remains within the boundaries - // of the metro snap divider. - void SetMetroSnapFullscreen(bool metro_snap); - - bool IsInMetroSnapMode() const; - BOOL IsWindow() const { return ::IsWindow(GetNativeView()); } @@ -538,18 +531,6 @@ class VIEWS_EXPORT NativeWidgetWin : public ui::WindowImpl, // Overridden from internal::InputMethodDelegate virtual void DispatchKeyEventPostIME(const KeyEvent& key) OVERRIDE; - // Common implementation of fullscreen-related code. This method handles - // changing from windowed mode to a display mode (dubbed fullscreen mode) - // where the window occupies a fixed portion (possibly 100%) of the screen. - // |fullscreen| specifies whether we are entering or leaving fullscreen mode. - // |window_rect| contains sizing information that describes the portion of the - // screen to be occupied. |window_rect| may be a rect of width - // 0, which indicates that sizing should be skipped when - // entering fullscreen mode and previously-stored size should - // be used when exiting fullscreen mode. - void SetFullscreenInternal(bool fullscreen, - const gfx::Rect& window_rect); - // A delegate implementation that handles events received here. // See class documentation for Widget in widget.h for a note about ownership. internal::NativeWidgetDelegate* delegate_; @@ -631,9 +612,6 @@ class VIEWS_EXPORT NativeWidgetWin : public ui::WindowImpl, // True if we're in fullscreen mode. bool fullscreen_; - // True if we're in metro snap mode. - bool metro_snap_; - // If this is greater than zero, we should prevent attempts to make the window // visible when we handle WM_WINDOWPOSCHANGING. Some calls like // ShowWindow(SW_RESTORE) make the window visible in addition to restoring it, |