From 5f0b1800dc89d4dfff7309e2219f91683816bfcc Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Fri, 6 Mar 2009 18:27:00 +0000 Subject: [PATCH] Handling the CTRL+L keyboard shortcut to enter a new location --- src/callbacks.c | 9 +++++++++ src/callbacks.h | 1 + src/surfer.c | 10 ++++++++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/callbacks.c b/src/callbacks.c index 78e7214..4401f0d 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -82,6 +82,15 @@ void on_file_open(GtkWidget * widget, gpointer data) } +/* on_file_open_url */ +void on_file_open_url(GtkWidget * widget, gpointer data) +{ + Surfer * surfer = data; + + surfer_open(surfer, NULL); +} + + /* edit menu */ /* on_edit_preferences */ void on_edit_preferences(GtkWidget * widget, gpointer data) diff --git a/src/callbacks.h b/src/callbacks.h index b998c98..79b6a13 100644 --- a/src/callbacks.h +++ b/src/callbacks.h @@ -29,6 +29,7 @@ gboolean on_closex(GtkWidget * widget, GdkEvent * event, gpointer data); void on_file_close(GtkWidget * widget, gpointer data); void on_file_new_window(GtkWidget * widget, gpointer data); void on_file_open(GtkWidget * widget, gpointer data); +void on_file_open_url(GtkWidget * widget, gpointer data); /* edit menu */ void on_edit_preferences(GtkWidget * widget, gpointer data); diff --git a/src/surfer.c b/src/surfer.c index 752c8db..6531b96 100644 --- a/src/surfer.c +++ b/src/surfer.c @@ -50,6 +50,7 @@ static struct _menu _menu_file[] = GDK_N }, { "_Open...", G_CALLBACK(on_file_open), GTK_STOCK_OPEN, GDK_O }, + { "_Open URL...", G_CALLBACK(on_file_open_url), NULL, GDK_L }, { "", NULL, NULL, 0 }, { "_Close", G_CALLBACK(on_file_close), GTK_STOCK_CLOSE, GDK_W }, @@ -388,8 +389,13 @@ int surfer_error(Surfer * surfer, char const * message, int ret) /* surfer_open */ void surfer_open(Surfer * surfer, char const * url) { - ghtml_stop(surfer->view); - ghtml_load_url(surfer->view, url); + if(url != NULL) + { + ghtml_stop(surfer->view); + ghtml_load_url(surfer->view, url); + } + else + gtk_widget_grab_focus(surfer->tb_path); }