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

Side by Side Diff: chrome/browser/ui/cocoa/status_bubble_mac.mm

Issue 7129048: Zero-sized windows are bad. Don't. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 6 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/status_bubble_mac.h" 5 #include "chrome/browser/ui/cocoa/status_bubble_mac.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 SetFrameAvoidingMouse([window_ frame], location); 345 SetFrameAvoidingMouse([window_ frame], location);
346 } 346 }
347 347
348 void StatusBubbleMac::UpdateDownloadShelfVisibility(bool visible) { 348 void StatusBubbleMac::UpdateDownloadShelfVisibility(bool visible) {
349 UpdateSizeAndPosition(); 349 UpdateSizeAndPosition();
350 } 350 }
351 351
352 void StatusBubbleMac::Create() { 352 void StatusBubbleMac::Create() {
353 DCHECK(!window_); 353 DCHECK(!window_);
354 354
355 window_ = [[NSWindow alloc] initWithContentRect:NSZeroRect 355 window_ = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 1, 1)
356 styleMask:NSBorderlessWindowMask 356 styleMask:NSBorderlessWindowMask
357 backing:NSBackingStoreBuffered 357 backing:NSBackingStoreBuffered
358 defer:YES]; 358 defer:YES];
359 [window_ setMovableByWindowBackground:NO]; 359 [window_ setMovableByWindowBackground:NO];
360 [window_ setBackgroundColor:[NSColor clearColor]]; 360 [window_ setBackgroundColor:[NSColor clearColor]];
361 [window_ setLevel:NSNormalWindowLevel]; 361 [window_ setLevel:NSNormalWindowLevel];
362 [window_ setOpaque:NO]; 362 [window_ setOpaque:NO];
363 [window_ setHasShadow:NO]; 363 [window_ setHasShadow:NO];
364 364
365 // We do not need to worry about the bubble outliving |parent_| because our 365 // We do not need to worry about the bubble outliving |parent_| because our
366 // teardown sequence in BWC guarantees that |parent_| outlives the status 366 // teardown sequence in BWC guarantees that |parent_| outlives the status
367 // bubble and that the StatusBubble is torn down completely prior to the 367 // bubble and that the StatusBubble is torn down completely prior to the
368 // window going away. 368 // window going away.
369 scoped_nsobject<BubbleView> view( 369 scoped_nsobject<BubbleView> view(
370 [[BubbleView alloc] initWithFrame:NSZeroRect themeProvider:parent_]); 370 [[BubbleView alloc] initWithFrame:NSMakeRect(0, 0, 1, 1)
sail 2011/06/10 01:04:24 Are you sure we need this? I create zero rect view
Avi (use Gerrit) 2011/06/10 01:20:27 Zero-rect views are fine. I wanted to change this
371 themeProvider:parent_]);
371 [window_ setContentView:view]; 372 [window_ setContentView:view];
372 373
373 [window_ setAlphaValue:0.0]; 374 [window_ setAlphaValue:0.0];
374 375
375 // Set a delegate for the fade-in and fade-out transitions to be notified 376 // Set a delegate for the fade-in and fade-out transitions to be notified
376 // when fades are complete. The ownership model is for window_ to own 377 // when fades are complete. The ownership model is for window_ to own
377 // animation_dictionary, which owns animation, which owns 378 // animation_dictionary, which owns animation, which owns
378 // animation_delegate. 379 // animation_delegate.
379 CAAnimation* animation = [[window_ animationForKey:kFadeAnimationKey] copy]; 380 CAAnimation* animation = [[window_ animationForKey:kFadeAnimationKey] copy];
380 [animation autorelease]; 381 [animation autorelease];
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 SetState(kBubbleHidden); 430 SetState(kBubbleHidden);
430 } 431 }
431 } 432 }
432 } 433 }
433 434
434 void StatusBubbleMac::SetState(StatusBubbleState state) { 435 void StatusBubbleMac::SetState(StatusBubbleState state) {
435 if (state == state_) 436 if (state == state_)
436 return; 437 return;
437 438
438 if (state == kBubbleHidden) 439 if (state == kBubbleHidden)
439 [window_ setFrame:NSZeroRect display:YES]; 440 [window_ setFrame:NSMakeRect(0, 0, 1, 1) display:YES];
sail 2011/06/10 01:04:24 will this be visible?
Avi (use Gerrit) 2011/06/10 01:20:27 No, I checked. The bubble's faded to zero opacity
440 441
441 if ([delegate_ respondsToSelector:@selector(statusBubbleWillEnterState:)]) 442 if ([delegate_ respondsToSelector:@selector(statusBubbleWillEnterState:)])
442 [delegate_ statusBubbleWillEnterState:state]; 443 [delegate_ statusBubbleWillEnterState:state];
443 444
444 state_ = state; 445 state_ = state;
445 } 446 }
446 447
447 void StatusBubbleMac::Fade(bool show) { 448 void StatusBubbleMac::Fade(bool show) {
448 DCHECK([NSThread isMainThread]); 449 DCHECK([NSThread isMainThread]);
449 450
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 684
684 if (expanded_width) { 685 if (expanded_width) {
685 size.width = screenRect.size.width; 686 size.width = screenRect.size.width;
686 } else { 687 } else {
687 size.width = kWindowWidthPercent * screenRect.size.width; 688 size.width = kWindowWidthPercent * screenRect.size.width;
688 } 689 }
689 690
690 screenRect.size = size; 691 screenRect.size = size;
691 return screenRect; 692 return screenRect;
692 } 693 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698