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

Side by Side Diff: chrome/browser/ui/cocoa/location_bar/autocomplete_text_field.mm

Issue 163913011: [OSX, OmniTheatre] Handle OriginChip click properly. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Account for becomeFirstResponder without corresponding event. Created 6 years, 9 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 | chrome/browser/ui/cocoa/location_bar/autocomplete_text_field_cell.h » ('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 (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 #import "chrome/browser/ui/cocoa/location_bar/autocomplete_text_field.h" 5 #import "chrome/browser/ui/cocoa/location_bar/autocomplete_text_field.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #import "chrome/browser/ui/cocoa/browser_window_controller.h" 8 #import "chrome/browser/ui/cocoa/browser_window_controller.h"
9 #import "chrome/browser/ui/cocoa/location_bar/autocomplete_text_field_cell.h" 9 #import "chrome/browser/ui/cocoa/location_bar/autocomplete_text_field_cell.h"
10 #import "chrome/browser/ui/cocoa/location_bar/autocomplete_text_field_editor.h" 10 #import "chrome/browser/ui/cocoa/location_bar/autocomplete_text_field_editor.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 // field editor area, and if so sets the selection to {0,0} to clear 72 // field editor area, and if so sets the selection to {0,0} to clear
73 // the selection before forwarding the event to the field editor for 73 // the selection before forwarding the event to the field editor for
74 // processing (it will set the cursor position). This also starts the 74 // processing (it will set the cursor position). This also starts the
75 // click-drag selection machinery. 75 // click-drag selection machinery.
76 // 76 //
77 // This code does the same thing for cases where the click was in the 77 // This code does the same thing for cases where the click was in the
78 // decoration area. This allows the user to click-drag starting from 78 // decoration area. This allows the user to click-drag starting from
79 // a decoration area and get the expected selection behaviour, 79 // a decoration area and get the expected selection behaviour,
80 // likewise for multiple clicks in those areas. 80 // likewise for multiple clicks in those areas.
81 - (void)mouseDown:(NSEvent*)theEvent { 81 - (void)mouseDown:(NSEvent*)theEvent {
82 // TODO(groby): Figure out if OnMouseDown needs to be postponed/skipped
83 // for button decorations.
82 if (observer_) 84 if (observer_)
83 observer_->OnMouseDown([theEvent buttonNumber]); 85 observer_->OnMouseDown([theEvent buttonNumber]);
84 86
85 // If the click was a Control-click, bring up the context menu. 87 // If the click was a Control-click, bring up the context menu.
86 // |NSTextField| handles these cases inconsistently if the field is 88 // |NSTextField| handles these cases inconsistently if the field is
87 // not already first responder. 89 // not already first responder.
88 if (([theEvent modifierFlags] & NSControlKeyMask) != 0) { 90 if (([theEvent modifierFlags] & NSControlKeyMask) != 0) {
89 NSText* editor = [self currentEditor]; 91 NSText* editor = [self currentEditor];
90 NSMenu* menu = [editor menuForEvent:theEvent]; 92 NSMenu* menu = [editor menuForEvent:theEvent];
91 [NSMenu popUpContextMenu:menu withEvent:theEvent forView:editor]; 93 [NSMenu popUpContextMenu:menu withEvent:theEvent forView:editor];
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 BOOL doAccept = [super becomeFirstResponder]; 363 BOOL doAccept = [super becomeFirstResponder];
362 if (doAccept) { 364 if (doAccept) {
363 [[BrowserWindowController browserWindowControllerForView:self] 365 [[BrowserWindowController browserWindowControllerForView:self]
364 lockBarVisibilityForOwner:self withAnimation:YES delay:NO]; 366 lockBarVisibilityForOwner:self withAnimation:YES delay:NO];
365 367
366 // Tells the observer that we get the focus. 368 // Tells the observer that we get the focus.
367 // But we can't call observer_->OnKillFocus() in resignFirstResponder:, 369 // But we can't call observer_->OnKillFocus() in resignFirstResponder:,
368 // because the first responder will be immediately set to the field editor 370 // because the first responder will be immediately set to the field editor
369 // when calling [super becomeFirstResponder], thus we won't receive 371 // when calling [super becomeFirstResponder], thus we won't receive
370 // resignFirstResponder: anymore when losing focus. 372 // resignFirstResponder: anymore when losing focus.
371 if (observer_) { 373 [[self cell] handleFocusEvent:[NSApp currentEvent] ofView:self];
372 NSEvent* theEvent = [NSApp currentEvent];
373 const bool controlDown = ([theEvent modifierFlags]&NSControlKeyMask) != 0;
374 observer_->OnSetFocus(controlDown);
375 }
376 } 374 }
377 return doAccept; 375 return doAccept;
378 } 376 }
379 377
380 // (Overridden from NSResponder) 378 // (Overridden from NSResponder)
381 - (BOOL)resignFirstResponder { 379 - (BOOL)resignFirstResponder {
382 BOOL doResign = [super resignFirstResponder]; 380 BOOL doResign = [super resignFirstResponder];
383 if (doResign) { 381 if (doResign) {
384 [[BrowserWindowController browserWindowControllerForView:self] 382 [[BrowserWindowController browserWindowControllerForView:self]
385 releaseBarVisibilityForOwner:self withAnimation:YES delay:YES]; 383 releaseBarVisibilityForOwner:self withAnimation:YES delay:YES];
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 NSMinY(frame), 469 NSMinY(frame),
472 suggestWidth, 470 suggestWidth,
473 NSHeight(frame)); 471 NSHeight(frame));
474 472
475 gfx::ScopedNSGraphicsContextSaveGState saveGState; 473 gfx::ScopedNSGraphicsContextSaveGState saveGState;
476 NSRectClip(suggestRect); 474 NSRectClip(suggestRect);
477 [cell drawInteriorWithFrame:frame inView:controlView]; 475 [cell drawInteriorWithFrame:frame inView:controlView];
478 } 476 }
479 477
480 } // namespace autocomplete_text_field 478 } // namespace autocomplete_text_field
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/cocoa/location_bar/autocomplete_text_field_cell.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698