| Index: chrome/browser/ui/gtk/browser_window_gtk.cc
|
| diff --git a/chrome/browser/ui/gtk/browser_window_gtk.cc b/chrome/browser/ui/gtk/browser_window_gtk.cc
|
| index 7d4846fe765d88c386e32a6fd13e1d5e83425d2b..c1eced4926a6baeb17f50ab4f0ce8e01dcc76f09 100644
|
| --- a/chrome/browser/ui/gtk/browser_window_gtk.cc
|
| +++ b/chrome/browser/ui/gtk/browser_window_gtk.cc
|
| @@ -687,7 +687,7 @@ void BrowserWindowGtk::SetBoundsImpl(const gfx::Rect& bounds,
|
|
|
| void BrowserWindowGtk::SetBounds(const gfx::Rect& bounds) {
|
| if (IsFullscreen())
|
| - SetFullscreen(false);
|
| + ExitFullscreen();
|
| SetBoundsImpl(bounds, true, true);
|
| }
|
|
|
| @@ -849,29 +849,38 @@ bool BrowserWindowGtk::ShouldDrawContentDropShadow() {
|
| return !IsMaximized() && UseCustomFrame();
|
| }
|
|
|
| -void BrowserWindowGtk::SetFullscreen(bool fullscreen) {
|
| +void BrowserWindowGtk::EnterFullscreen(const GURL& url, bool ask_permission) {
|
| // gtk_window_(un)fullscreen asks the window manager to toggle the EWMH
|
| // for fullscreen windows. Not all window managers support this.
|
| - if (fullscreen) {
|
| - gtk_window_fullscreen(window_);
|
| - } else {
|
| - // Work around a bug where if we try to unfullscreen, metacity immediately
|
| - // fullscreens us again. This is a little flickery and not necessary if
|
| - // there's a gnome-panel, but it's not easy to detect whether there's a
|
| - // panel or not.
|
| - std::string wm_name;
|
| - bool unmaximize_before_unfullscreen = IsMaximized() &&
|
| - ui::GetWindowManagerName(&wm_name) && wm_name == "Metacity";
|
| - if (unmaximize_before_unfullscreen)
|
| - UnMaximize();
|
| -
|
| - gtk_window_unfullscreen(window_);
|
| -
|
| - if (unmaximize_before_unfullscreen)
|
| - gtk_window_maximize(window_);
|
| + gtk_window_fullscreen(window_);
|
| + bool is_kiosk =
|
| + CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode);
|
| + if (!is_kiosk) {
|
| + fullscreen_exit_bubble_.reset(new FullscreenExitBubbleGtk(
|
| + GTK_FLOATING_CONTAINER(render_area_floating_container_),
|
| + browser(),
|
| + url,
|
| + ask_permission));
|
| }
|
| }
|
|
|
| +void BrowserWindowGtk::ExitFullscreen() {
|
| + // Work around a bug where if we try to unfullscreen, metacity immediately
|
| + // fullscreens us again. This is a little flickery and not necessary if
|
| + // there's a gnome-panel, but it's not easy to detect whether there's a
|
| + // panel or not.
|
| + std::string wm_name;
|
| + bool unmaximize_before_unfullscreen = IsMaximized() &&
|
| + ui::GetWindowManagerName(&wm_name) && wm_name == "Metacity";
|
| + if (unmaximize_before_unfullscreen)
|
| + UnMaximize();
|
| +
|
| + gtk_window_unfullscreen(window_);
|
| +
|
| + if (unmaximize_before_unfullscreen)
|
| + gtk_window_maximize(window_);
|
| +}
|
| +
|
| bool BrowserWindowGtk::IsFullscreen() const {
|
| return (state_ & GDK_WINDOW_STATE_FULLSCREEN);
|
| }
|
|
|