Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(214)

Side by Side Diff: apps/shell_window.cc

Issue 89183002: Revert of Leave fullscreen mode in an app window when ESC key is pressed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « apps/shell_window.h ('k') | chrome/browser/apps/app_interactive_uitest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "apps/shell_window.h" 5 #include "apps/shell_window.h"
6 6
7 #include "apps/shell_window_geometry_cache.h" 7 #include "apps/shell_window_geometry_cache.h"
8 #include "apps/shell_window_registry.h" 8 #include "apps/shell_window_registry.h"
9 #include "apps/ui/native_app_window.h" 9 #include "apps/ui/native_app_window.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 WindowOpenDisposition disposition, 275 WindowOpenDisposition disposition,
276 const gfx::Rect& initial_pos, 276 const gfx::Rect& initial_pos,
277 bool user_gesture, 277 bool user_gesture,
278 bool* was_blocked) { 278 bool* was_blocked) {
279 DCHECK(Profile::FromBrowserContext(new_contents->GetBrowserContext()) == 279 DCHECK(Profile::FromBrowserContext(new_contents->GetBrowserContext()) ==
280 profile_); 280 profile_);
281 delegate_->AddNewContents(profile_, new_contents, disposition, 281 delegate_->AddNewContents(profile_, new_contents, disposition,
282 initial_pos, user_gesture, was_blocked); 282 initial_pos, user_gesture, was_blocked);
283 } 283 }
284 284
285 bool ShellWindow::PreHandleKeyboardEvent(
286 content::WebContents* source,
287 const content::NativeWebKeyboardEvent& event,
288 bool* is_keyboard_shortcut) {
289 // Here, we can handle a key event before the content gets it. When we are
290 // fullscreen, we want to allow the user to leave when ESC is pressed.
291 // However, if the application has the "overrideEscFullscreen" permission, we
292 // should let it override that behavior.
293 // ::HandleKeyboardEvent() will only be called if the KeyEvent's default
294 // action is not prevented.
295 // Thus, we should handle the KeyEvent here only if the permission is not set.
296 if (event.windowsKeyCode == ui::VKEY_ESCAPE &&
297 (fullscreen_types_ != FULLSCREEN_TYPE_NONE) &&
298 !extension_->HasAPIPermission(APIPermission::kOverrideEscFullscreen)) {
299 Restore();
300 return true;
301 }
302
303 return false;
304 }
305
306 void ShellWindow::HandleKeyboardEvent( 285 void ShellWindow::HandleKeyboardEvent(
307 WebContents* source, 286 WebContents* source,
308 const content::NativeWebKeyboardEvent& event) { 287 const content::NativeWebKeyboardEvent& event) {
309 // If the window is currently fullscreen, ESC should leave fullscreen.
310 // If this code is being called for ESC, that means that the KeyEvent's
311 // default behavior was not prevented by the content.
312 if (event.windowsKeyCode == ui::VKEY_ESCAPE &&
313 (fullscreen_types_ != FULLSCREEN_TYPE_NONE)) {
314 Restore();
315 return;
316 }
317
318 native_app_window_->HandleKeyboardEvent(event); 288 native_app_window_->HandleKeyboardEvent(event);
319 } 289 }
320 290
321 void ShellWindow::RequestToLockMouse(WebContents* web_contents, 291 void ShellWindow::RequestToLockMouse(WebContents* web_contents,
322 bool user_gesture, 292 bool user_gesture,
323 bool last_unlocked_by_target) { 293 bool last_unlocked_by_target) {
324 bool has_permission = IsExtensionWithPermissionOrSuggestInConsole( 294 bool has_permission = IsExtensionWithPermissionOrSuggestInConsole(
325 APIPermission::kPointerLock, 295 APIPermission::kPointerLock,
326 extension_, 296 extension_,
327 web_contents->GetRenderViewHost()); 297 web_contents->GetRenderViewHost());
(...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after
785 region.bounds.x(), 755 region.bounds.x(),
786 region.bounds.y(), 756 region.bounds.y(),
787 region.bounds.right(), 757 region.bounds.right(),
788 region.bounds.bottom(), 758 region.bounds.bottom(),
789 region.draggable ? SkRegion::kUnion_Op : SkRegion::kDifference_Op); 759 region.draggable ? SkRegion::kUnion_Op : SkRegion::kDifference_Op);
790 } 760 }
791 return sk_region; 761 return sk_region;
792 } 762 }
793 763
794 } // namespace apps 764 } // namespace apps
OLDNEW
« no previous file with comments | « apps/shell_window.h ('k') | chrome/browser/apps/app_interactive_uitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698