OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/omnibox/omnibox_view_mac.h" | 5 #include "chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.h" |
6 | 6 |
7 #include <Carbon/Carbon.h> // kVK_Return | 7 #include <Carbon/Carbon.h> // kVK_Return |
8 | 8 |
9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
10 #include "base/mac/foundation_util.h" | 10 #include "base/mac/foundation_util.h" |
(...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
817 return model()->AcceptKeyword(KeywordModeEntryMethod::TAB); | 817 return model()->AcceptKeyword(KeywordModeEntryMethod::TAB); |
818 } | 818 } |
819 | 819 |
820 // |-noop:| is sent when the user presses Cmd+Return. Override the no-op | 820 // |-noop:| is sent when the user presses Cmd+Return. Override the no-op |
821 // behavior with the proper WindowOpenDisposition. | 821 // behavior with the proper WindowOpenDisposition. |
822 NSEvent* event = [NSApp currentEvent]; | 822 NSEvent* event = [NSApp currentEvent]; |
823 if (cmd == @selector(insertNewline:) || | 823 if (cmd == @selector(insertNewline:) || |
824 (cmd == @selector(noop:) && | 824 (cmd == @selector(noop:) && |
825 ([event type] == NSKeyDown || [event type] == NSKeyUp) && | 825 ([event type] == NSKeyDown || [event type] == NSKeyUp) && |
826 [event keyCode] == kVK_Return)) { | 826 [event keyCode] == kVK_Return)) { |
| 827 // If the user hasn't entered any text in keyword search mode, we need to |
| 828 // return early in order to avoid cancelling the search. |
| 829 if (GetTextLength() == 0) |
| 830 return true; |
| 831 |
827 WindowOpenDisposition disposition = | 832 WindowOpenDisposition disposition = |
828 ui::WindowOpenDispositionFromNSEvent(event); | 833 ui::WindowOpenDispositionFromNSEvent(event); |
829 model()->AcceptInput(disposition, false); | 834 model()->AcceptInput(disposition, false); |
| 835 // Opening a URL in a background tab should also revert the omnibox contents |
| 836 // to their original state. We cannot do a blanket revert in OpenURL() |
| 837 // because middle-clicks also open in a new background tab, but those should |
| 838 // not revert the omnibox text. |
| 839 RevertAll(); |
830 return true; | 840 return true; |
831 } | 841 } |
832 | 842 |
833 // Option-Return | 843 // Option-Return |
834 if (cmd == @selector(insertNewlineIgnoringFieldEditor:)) { | 844 if (cmd == @selector(insertNewlineIgnoringFieldEditor:)) { |
835 model()->AcceptInput(WindowOpenDisposition::NEW_FOREGROUND_TAB, false); | 845 model()->AcceptInput(WindowOpenDisposition::NEW_FOREGROUND_TAB, false); |
836 return true; | 846 return true; |
837 } | 847 } |
838 | 848 |
839 // When the user does Control-Enter, the existing content has "www." | 849 // When the user does Control-Enter, the existing content has "www." |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1084 display_text); | 1094 display_text); |
1085 NSDictionary* notification_info = @{ | 1095 NSDictionary* notification_info = @{ |
1086 NSAccessibilityAnnouncementKey : announcement, | 1096 NSAccessibilityAnnouncementKey : announcement, |
1087 NSAccessibilityPriorityKey : @(NSAccessibilityPriorityHigh) | 1097 NSAccessibilityPriorityKey : @(NSAccessibilityPriorityHigh) |
1088 }; | 1098 }; |
1089 NSAccessibilityPostNotificationWithUserInfo( | 1099 NSAccessibilityPostNotificationWithUserInfo( |
1090 [field_ window], | 1100 [field_ window], |
1091 NSAccessibilityAnnouncementRequestedNotification, | 1101 NSAccessibilityAnnouncementRequestedNotification, |
1092 notification_info); | 1102 notification_info); |
1093 } | 1103 } |
OLD | NEW |