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 "chrome/browser/views/find_bar_view.h" | 5 #include "chrome/browser/views/find_bar_view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "app/gfx/canvas.h" | 9 #include "app/gfx/canvas.h" |
10 #include "app/l10n_util.h" | 10 #include "app/l10n_util.h" |
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
399 if (event.IsMouseEvent()) { | 399 if (event.IsMouseEvent()) { |
400 // If mouse event, we move the focus back to the text-field, so that the | 400 // If mouse event, we move the focus back to the text-field, so that the |
401 // user doesn't have to click on the text field to change the search. We | 401 // user doesn't have to click on the text field to change the search. We |
402 // don't want to do this for keyboard clicks on the button, since the | 402 // don't want to do this for keyboard clicks on the button, since the |
403 // user is more likely to press FindNext again than change the search | 403 // user is more likely to press FindNext again than change the search |
404 // query. | 404 // query. |
405 find_text_->RequestFocus(); | 405 find_text_->RequestFocus(); |
406 } | 406 } |
407 break; | 407 break; |
408 case CLOSE_TAG: | 408 case CLOSE_TAG: |
409 find_bar_host()->GetFindBarController()->EndFindSession(); | 409 find_bar_host()->GetFindBarController()->EndFindSession( |
| 410 FindBarController::kKeepSelection); |
410 break; | 411 break; |
411 default: | 412 default: |
412 NOTREACHED() << L"Unknown button"; | 413 NOTREACHED() << L"Unknown button"; |
413 break; | 414 break; |
414 } | 415 } |
415 } | 416 } |
416 | 417 |
417 //////////////////////////////////////////////////////////////////////////////// | 418 //////////////////////////////////////////////////////////////////////////////// |
418 // FindBarView, views::Textfield::Controller implementation: | 419 // FindBarView, views::Textfield::Controller implementation: |
419 | 420 |
420 void FindBarView::ContentsChanged(views::Textfield* sender, | 421 void FindBarView::ContentsChanged(views::Textfield* sender, |
421 const string16& new_contents) { | 422 const string16& new_contents) { |
422 FindBarController* controller = find_bar_host()->GetFindBarController(); | 423 FindBarController* controller = find_bar_host()->GetFindBarController(); |
423 DCHECK(controller); | 424 DCHECK(controller); |
424 // We must guard against a NULL tab_contents, which can happen if the text | 425 // We must guard against a NULL tab_contents, which can happen if the text |
425 // in the Find box is changed right after the tab is destroyed. Otherwise, it | 426 // in the Find box is changed right after the tab is destroyed. Otherwise, it |
426 // can lead to crashes, as exposed by automation testing in issue 8048. | 427 // can lead to crashes, as exposed by automation testing in issue 8048. |
427 if (!controller->tab_contents()) | 428 if (!controller->tab_contents()) |
428 return; | 429 return; |
429 | 430 |
430 // When the user changes something in the text box we check the contents and | 431 // When the user changes something in the text box we check the contents and |
431 // if the textbox contains something we set it as the new search string and | 432 // if the textbox contains something we set it as the new search string and |
432 // initiate search (even though old searches might be in progress). | 433 // initiate search (even though old searches might be in progress). |
433 if (!new_contents.empty()) { | 434 if (!new_contents.empty()) { |
434 // The last two params here are forward (true) and case sensitive (false). | 435 // The last two params here are forward (true) and case sensitive (false). |
435 controller->tab_contents()->StartFinding(new_contents, true, false); | 436 controller->tab_contents()->StartFinding(new_contents, true, false); |
436 } else { | 437 } else { |
437 // The textbox is empty so we reset. true = clear selection on page. | 438 controller->tab_contents()->StopFinding(FindBarController::kClearSelection); |
438 controller->tab_contents()->StopFinding(true); | |
439 UpdateForResult(controller->tab_contents()->find_result(), string16()); | 439 UpdateForResult(controller->tab_contents()->find_result(), string16()); |
440 } | 440 } |
441 } | 441 } |
442 | 442 |
443 bool FindBarView::HandleKeystroke(views::Textfield* sender, | 443 bool FindBarView::HandleKeystroke(views::Textfield* sender, |
444 const views::Textfield::Keystroke& key) { | 444 const views::Textfield::Keystroke& key) { |
445 // If the dialog is not visible, there is no reason to process keyboard input. | 445 // If the dialog is not visible, there is no reason to process keyboard input. |
446 if (!host()->IsVisible()) | 446 if (!host()->IsVisible()) |
447 return false; | 447 return false; |
448 | 448 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
491 | 491 |
492 void FindBarView::ThemeChanged() { | 492 void FindBarView::ThemeChanged() { |
493 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 493 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
494 if (GetThemeProvider()) { | 494 if (GetThemeProvider()) { |
495 close_button_->SetBackground( | 495 close_button_->SetBackground( |
496 GetThemeProvider()->GetColor(BrowserThemeProvider::COLOR_TAB_TEXT), | 496 GetThemeProvider()->GetColor(BrowserThemeProvider::COLOR_TAB_TEXT), |
497 rb.GetBitmapNamed(IDR_CLOSE_BAR), | 497 rb.GetBitmapNamed(IDR_CLOSE_BAR), |
498 rb.GetBitmapNamed(IDR_CLOSE_BAR_MASK)); | 498 rb.GetBitmapNamed(IDR_CLOSE_BAR_MASK)); |
499 } | 499 } |
500 } | 500 } |
OLD | NEW |