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

Side by Side Diff: chrome/browser/ui/cocoa/apps/native_app_window_cocoa.mm

Issue 23618036: Merge NOTIFICATION_RENDER_VIEW_HOST_CHANGED into NOTIFICATION_WEB_CONTENTS_SWAPPED. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 7 years, 2 months 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 | Annotate | Revision Log
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 "chrome/browser/ui/cocoa/apps/native_app_window_cocoa.h" 5 #include "chrome/browser/ui/cocoa/apps/native_app_window_cocoa.h"
6 6
7 #include "apps/app_shim/extension_app_shim_handler_mac.h" 7 #include "apps/app_shim/extension_app_shim_handler_mac.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/mac/mac_util.h" 9 #include "base/mac/mac_util.h"
10 #include "base/strings/sys_string_conversions.h" 10 #include "base/strings/sys_string_conversions.h"
11 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/ui/cocoa/browser_window_utils.h" 12 #include "chrome/browser/ui/cocoa/browser_window_utils.h"
13 #import "chrome/browser/ui/cocoa/chrome_event_processing_window.h" 13 #import "chrome/browser/ui/cocoa/chrome_event_processing_window.h"
14 #include "chrome/browser/ui/cocoa/extensions/extension_keybinding_registry_cocoa .h" 14 #include "chrome/browser/ui/cocoa/extensions/extension_keybinding_registry_cocoa .h"
15 #include "chrome/browser/ui/cocoa/extensions/extension_view_mac.h" 15 #include "chrome/browser/ui/cocoa/extensions/extension_view_mac.h"
16 #include "chrome/common/chrome_switches.h" 16 #include "chrome/common/chrome_switches.h"
17 #include "chrome/common/extensions/extension.h" 17 #include "chrome/common/extensions/extension.h"
18 #include "content/public/browser/native_web_keyboard_event.h" 18 #include "content/public/browser/native_web_keyboard_event.h"
19 #include "content/public/browser/notification_source.h"
20 #include "content/public/browser/notification_types.h"
21 #include "content/public/browser/render_widget_host_view.h" 19 #include "content/public/browser/render_widget_host_view.h"
22 #include "content/public/browser/web_contents.h" 20 #include "content/public/browser/web_contents.h"
23 #include "content/public/browser/web_contents_view.h" 21 #include "content/public/browser/web_contents_view.h"
24 #include "third_party/skia/include/core/SkRegion.h" 22 #include "third_party/skia/include/core/SkRegion.h"
25 23
26 // NOTE: State Before Update. 24 // NOTE: State Before Update.
27 // 25 //
28 // Internal state, such as |is_maximized_|, must be set before the window 26 // Internal state, such as |is_maximized_|, must be set before the window
29 // state is changed so that it is accurate when e.g. a resize results in a call 27 // state is changed so that it is accurate when e.g. a resize results in a call
30 // to |OnNativeWindowChanged|. 28 // to |OnNativeWindowChanged|.
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 ShellWindow* shell_window, 248 ShellWindow* shell_window,
251 const ShellWindow::CreateParams& params) 249 const ShellWindow::CreateParams& params)
252 : shell_window_(shell_window), 250 : shell_window_(shell_window),
253 has_frame_(params.frame == ShellWindow::FRAME_CHROME), 251 has_frame_(params.frame == ShellWindow::FRAME_CHROME),
254 is_hidden_(false), 252 is_hidden_(false),
255 is_hidden_with_app_(false), 253 is_hidden_with_app_(false),
256 is_maximized_(false), 254 is_maximized_(false),
257 is_fullscreen_(false), 255 is_fullscreen_(false),
258 attention_request_id_(0), 256 attention_request_id_(0),
259 use_system_drag_(true) { 257 use_system_drag_(true) {
258 Observe(web_contents());
259
260 // Flip coordinates based on the primary screen. 260 // Flip coordinates based on the primary screen.
261 NSRect main_screen_rect = [[[NSScreen screens] objectAtIndex:0] frame]; 261 NSRect main_screen_rect = [[[NSScreen screens] objectAtIndex:0] frame];
262 NSRect cocoa_bounds = NSMakeRect(params.bounds.x(), 262 NSRect cocoa_bounds = NSMakeRect(params.bounds.x(),
263 NSHeight(main_screen_rect) - params.bounds.y() - params.bounds.height(), 263 NSHeight(main_screen_rect) - params.bounds.y() - params.bounds.height(),
264 params.bounds.width(), params.bounds.height()); 264 params.bounds.width(), params.bounds.height());
265 265
266 // If coordinates are < 0, center window on primary screen 266 // If coordinates are < 0, center window on primary screen.
267 if (params.bounds.x() == INT_MIN) { 267 if (params.bounds.x() == INT_MIN) {
268 cocoa_bounds.origin.x = 268 cocoa_bounds.origin.x =
269 floor((NSWidth(main_screen_rect) - NSWidth(cocoa_bounds)) / 2); 269 floor((NSWidth(main_screen_rect) - NSWidth(cocoa_bounds)) / 2);
270 } 270 }
271 if (params.bounds.y() == INT_MIN) { 271 if (params.bounds.y() == INT_MIN) {
272 cocoa_bounds.origin.y = 272 cocoa_bounds.origin.y =
273 floor((NSHeight(main_screen_rect) - NSHeight(cocoa_bounds)) / 2); 273 floor((NSHeight(main_screen_rect) - NSHeight(cocoa_bounds)) / 2);
274 } 274 }
275 275
276 // Initialize |restored_bounds_| after |cocoa_bounds| have been sanitized. 276 // Initialize |restored_bounds_| after |cocoa_bounds| have been sanitized.
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after
775 } else { 775 } else {
776 [NSApp cancelUserAttentionRequest:attention_request_id_]; 776 [NSApp cancelUserAttentionRequest:attention_request_id_];
777 attention_request_id_ = 0; 777 attention_request_id_ = 0;
778 } 778 }
779 } 779 }
780 780
781 bool NativeAppWindowCocoa::IsAlwaysOnTop() const { 781 bool NativeAppWindowCocoa::IsAlwaysOnTop() const {
782 return false; 782 return false;
783 } 783 }
784 784
785 void NativeAppWindowCocoa::RenderViewHostChanged() { 785 void NativeAppWindowCocoa::RenderViewHostChanged(
786 content::RenderViewHost* old_host,
787 content::RenderViewHost* new_host) {
786 web_contents()->GetView()->Focus(); 788 web_contents()->GetView()->Focus();
787 } 789 }
788 790
789 gfx::Insets NativeAppWindowCocoa::GetFrameInsets() const { 791 gfx::Insets NativeAppWindowCocoa::GetFrameInsets() const {
790 if (!has_frame_) 792 if (!has_frame_)
791 return gfx::Insets(); 793 return gfx::Insets();
792 794
793 // Flip the coordinates based on the main screen. 795 // Flip the coordinates based on the main screen.
794 NSInteger screen_height = 796 NSInteger screen_height =
795 NSHeight([[[NSScreen screens] objectAtIndex:0] frame]); 797 NSHeight([[[NSScreen screens] objectAtIndex:0] frame]);
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
953 ShellNSWindow* NativeAppWindowCocoa::window() const { 955 ShellNSWindow* NativeAppWindowCocoa::window() const {
954 NSWindow* window = [window_controller_ window]; 956 NSWindow* window = [window_controller_ window];
955 CHECK(!window || [window isKindOfClass:[ShellNSWindow class]]); 957 CHECK(!window || [window isKindOfClass:[ShellNSWindow class]]);
956 return static_cast<ShellNSWindow*>(window); 958 return static_cast<ShellNSWindow*>(window);
957 } 959 }
958 960
959 void NativeAppWindowCocoa::UpdateRestoredBounds() { 961 void NativeAppWindowCocoa::UpdateRestoredBounds() {
960 if (IsRestored(*this)) 962 if (IsRestored(*this))
961 restored_bounds_ = [window() frame]; 963 restored_bounds_ = [window() frame];
962 } 964 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/apps/native_app_window_cocoa.h ('k') | chrome/browser/ui/gtk/apps/native_app_window_gtk.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698