Commit f0e4b231 authored by ananta@chromium.org's avatar ananta@chromium.org

Notify the Chrome metro driver component when a full screen toggle is...

Notify the Chrome metro driver component when a full screen toggle is occurring. The metro driver in its notification
would restore the original scroll position if the window was scrolled because it was covered by the OSK.

BUG=142439
R=sky
Review URL: https://chromiumcodereview.appspot.com/10823376

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151996 0039d316-1c4b-4281-b951-d872f2087c98
parent 2a46f0ee
......@@ -65,6 +65,7 @@ extern "C" {
typedef void (*SetFrameWindow)(HWND window);
typedef void (*CloseFrameWindow)(HWND window);
typedef void (*FlipFrameWindows)();
typedef void (*MetroSetFullscreen)(bool fullscreen);
}
#endif // USE_AURA
......@@ -289,6 +290,22 @@ void BrowserFrameWin::FrameTypeChanged() {
Show();
}
void BrowserFrameWin::SetFullscreen(bool fullscreen) {
if (base::win::IsMetroProcess()) {
HMODULE metro = base::win::GetMetroModule();
if (metro) {
MetroSetFullscreen set_full_screen = reinterpret_cast<MetroSetFullscreen>(
::GetProcAddress(metro, "SetFullscreen"));
DCHECK(set_full_screen);
if (set_full_screen)
set_full_screen(fullscreen);
} else {
NOTREACHED() << "Failed to get metro driver module";
}
}
views::NativeWidgetWin::SetFullscreen(fullscreen);
}
////////////////////////////////////////////////////////////////////////////////
// BrowserFrameWin, NativeBrowserFrame implementation:
......
......@@ -61,6 +61,7 @@ class BrowserFrameWin : public views::NativeWidgetWin,
virtual void Close() OVERRIDE;
virtual void OnActivate(UINT action, BOOL minimized, HWND window) OVERRIDE;
virtual void FrameTypeChanged() OVERRIDE;
virtual void SetFullscreen(bool fullscreen) OVERRIDE;
// Overridden from NativeBrowserFrame:
virtual views::NativeWidget* AsNativeWidget() OVERRIDE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment