diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-11 18:19:00 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-11 18:19:00 +0000 |
commit | 5bc8fe91607f20f2d43dc461ca188dd07b55d435 (patch) | |
tree | ca6551f9d816757942485ee7d3542c5aeb4d2fed /chrome/browser/gtk | |
parent | 3148c0ae4462e01f4b830b8d2150dcd7fee2cb3b (diff) | |
download | chromium_src-5bc8fe91607f20f2d43dc461ca188dd07b55d435.zip chromium_src-5bc8fe91607f20f2d43dc461ca188dd07b55d435.tar.gz chromium_src-5bc8fe91607f20f2d43dc461ca188dd07b55d435.tar.bz2 |
Allow users to close the find session and activate the current link via ctrl-enter.
this only hooks up ctrl-enter on gtk for now, but adding it on windows/mac should be trivial
webkit side, which needs to land first, is here:
https://bugs.webkit.org/show_bug.cgi?id=35407
This also enables the FindInPageControllerTest tests on linux/gtk.
BUG=29500
TEST=FindInPageControllerTest.ActivateLinkNavigatesPage
Review URL: http://codereview.chromium.org/660137
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41291 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk')
-rw-r--r-- | chrome/browser/gtk/find_bar_gtk.cc | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/chrome/browser/gtk/find_bar_gtk.cc b/chrome/browser/gtk/find_bar_gtk.cc index 300c6db..f99eb6f 100644 --- a/chrome/browser/gtk/find_bar_gtk.cc +++ b/chrome/browser/gtk/find_bar_gtk.cc @@ -539,7 +539,7 @@ void FindBarGtk::FindEntryTextInContents(bool forward_search) { false); // Not case sensitive. } else { // The textbox is empty so we reset. - tab_contents->StopFinding(true); // true = clear selection on page. + tab_contents->StopFinding(FindBarController::kClearSelection); UpdateUIForFindResult(find_bar_controller_->tab_contents()->find_result(), string16()); } @@ -695,10 +695,18 @@ gboolean FindBarGtk::OnKeyPressEvent(GtkWidget* widget, GdkEventKey* event, if (find_bar->MaybeForwardKeyEventToRenderer(event)) { return TRUE; } else if (GDK_Escape == event->keyval) { - find_bar->find_bar_controller_->EndFindSession(); + find_bar->find_bar_controller_->EndFindSession( + FindBarController::kKeepSelection); return TRUE; } else if (GDK_Return == event->keyval || GDK_KP_Enter == event->keyval) { + if ((event->state & gtk_accelerator_get_default_mod_mask()) == + GDK_CONTROL_MASK) { + find_bar->find_bar_controller_->EndFindSession( + FindBarController::kActivateSelection); + return TRUE; + } + bool forward = (event->state & gtk_accelerator_get_default_mod_mask()) != GDK_SHIFT_MASK; find_bar->FindEntryTextInContents(forward); @@ -716,7 +724,8 @@ gboolean FindBarGtk::OnKeyReleaseEvent(GtkWidget* widget, GdkEventKey* event, // static void FindBarGtk::OnClicked(GtkWidget* button, FindBarGtk* find_bar) { if (button == find_bar->close_button_->widget()) { - find_bar->find_bar_controller_->EndFindSession(); + find_bar->find_bar_controller_->EndFindSession( + FindBarController::kKeepSelection); } else if (button == find_bar->find_previous_button_->widget() || button == find_bar->find_next_button_->widget()) { find_bar->FindEntryTextInContents( |