OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 <Carbon/Carbon.h> | 5 #include <Carbon/Carbon.h> |
6 | 6 |
7 #include "base/mac_util.h" | 7 #include "base/mac_util.h" |
8 #include "base/scoped_nsdisable_screen_updates.h" | 8 #include "base/scoped_nsdisable_screen_updates.h" |
9 #import "base/scoped_nsobject.h" | 9 #import "base/scoped_nsobject.h" |
10 #include "base/sys_string_conversions.h" | 10 #include "base/sys_string_conversions.h" |
(...skipping 892 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
903 } | 903 } |
904 | 904 |
905 - (void)setFullscreen:(BOOL)fullscreen { | 905 - (void)setFullscreen:(BOOL)fullscreen { |
906 if (![self supportsFullscreen]) | 906 if (![self supportsFullscreen]) |
907 return; | 907 return; |
908 | 908 |
909 fullscreen_ = fullscreen; | 909 fullscreen_ = fullscreen; |
910 if (fullscreen) { | 910 if (fullscreen) { |
911 // Move content to a new fullscreen window | 911 // Move content to a new fullscreen window |
912 NSView* content = [[self window] contentView]; | 912 NSView* content = [[self window] contentView]; |
| 913 // Disable autoresizing of subviews while we move views around. This |
| 914 // prevents spurious renderer resizes. |
| 915 [content setAutoresizesSubviews:NO]; |
913 fullscreen_window_.reset([[self fullscreenWindow] retain]); | 916 fullscreen_window_.reset([[self fullscreenWindow] retain]); |
914 [content removeFromSuperview]; | 917 [content removeFromSuperview]; |
915 [fullscreen_window_ setContentView:content]; | 918 [fullscreen_window_ setContentView:content]; |
916 [self setWindow:fullscreen_window_.get()]; | 919 [self setWindow:fullscreen_window_.get()]; |
917 // Minimize our UI. This call triggers a relayout, so it needs to come | 920 // Minimize our UI. This call triggers a relayout, so it needs to come |
918 // after we move the contentview to the new window. | 921 // after we move the contentview to the new window. |
919 [self adjustUIForFullscreen:fullscreen]; | 922 [self adjustUIForFullscreen:fullscreen]; |
920 // Show one window, hide the other. | 923 // Show one window, hide the other. |
921 [fullscreen_window_ makeKeyAndOrderFront:self]; | 924 [fullscreen_window_ makeKeyAndOrderFront:self]; |
| 925 [content setAutoresizesSubviews:YES]; |
922 [content setNeedsDisplay:YES]; | 926 [content setNeedsDisplay:YES]; |
923 [window_ orderOut:self]; | 927 [window_ orderOut:self]; |
924 } else { | 928 } else { |
925 NSView* content = [fullscreen_window_ contentView]; | 929 NSView* content = [fullscreen_window_ contentView]; |
| 930 // Disable autoresizing of subviews while we move views around. This |
| 931 // prevents spurious renderer resizes. |
| 932 [content setAutoresizesSubviews:NO]; |
926 [content removeFromSuperview]; | 933 [content removeFromSuperview]; |
927 [window_ setContentView:content]; | 934 [window_ setContentView:content]; |
928 [self setWindow:window_.get()]; | 935 [self setWindow:window_.get()]; |
929 // This call triggers a relayout, so it needs to come after we move the | 936 // This call triggers a relayout, so it needs to come after we move the |
930 // contentview to the new window. | 937 // contentview to the new window. |
931 [self adjustUIForFullscreen:fullscreen]; | 938 [self adjustUIForFullscreen:fullscreen]; |
| 939 [content setAutoresizesSubviews:YES]; |
932 [content setNeedsDisplay:YES]; | 940 [content setNeedsDisplay:YES]; |
933 | 941 |
934 // With this call, valgrind yells at me about "Conditional jump or | 942 // With this call, valgrind yells at me about "Conditional jump or |
935 // move depends on uninitialised value(s)". The error happens in | 943 // move depends on uninitialised value(s)". The error happens in |
936 // -[NSThemeFrame drawOverlayRect:]. I'm pretty convinced this is | 944 // -[NSThemeFrame drawOverlayRect:]. I'm pretty convinced this is |
937 // an Apple bug, but there is no visual impact. I have been | 945 // an Apple bug, but there is no visual impact. I have been |
938 // unable to tickle it away with other window or view manipulation | 946 // unable to tickle it away with other window or view manipulation |
939 // Cocoa calls. Stack added to suppressions_mac.txt. | 947 // Cocoa calls. Stack added to suppressions_mac.txt. |
940 [window_ makeKeyAndOrderFront:self]; | 948 [window_ makeKeyAndOrderFront:self]; |
941 | 949 |
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1414 provider->GetNSColor(BrowserThemeProvider::COLOR_TOOLBAR); | 1422 provider->GetNSColor(BrowserThemeProvider::COLOR_TOOLBAR); |
1415 [theme setValue:toolbarBackgroundColor | 1423 [theme setValue:toolbarBackgroundColor |
1416 forAttribute:@"backgroundColor" | 1424 forAttribute:@"backgroundColor" |
1417 style:GTMThemeStyleToolBar | 1425 style:GTMThemeStyleToolBar |
1418 state:GTMThemeStateActiveWindow]; | 1426 state:GTMThemeStateActiveWindow]; |
1419 | 1427 |
1420 return theme; | 1428 return theme; |
1421 } | 1429 } |
1422 @end | 1430 @end |
1423 | 1431 |
OLD | NEW |