summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-11 18:19:00 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-11 18:19:00 +0000
commit5bc8fe91607f20f2d43dc461ca188dd07b55d435 (patch)
treeca6551f9d816757942485ee7d3542c5aeb4d2fed /chrome/browser/gtk
parent3148c0ae4462e01f4b830b8d2150dcd7fee2cb3b (diff)
downloadchromium_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.cc15
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(