diff --git a/src/callbacks.c b/src/callbacks.c index a05f13f..3d7ce68 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -388,8 +388,7 @@ void on_back(GtkWidget * widget, gpointer data) { Surfer * surfer = data; - if(ghtml_go_back(surfer->view) != TRUE) - gtk_widget_set_sensitive(GTK_WIDGET(surfer->tb_back), FALSE); + surfer_go_back(surfer); } @@ -398,8 +397,7 @@ void on_forward(GtkWidget * widget, gpointer data) { Surfer * surfer = data; - if(ghtml_go_forward(surfer->view) != TRUE) - gtk_widget_set_sensitive(GTK_WIDGET(surfer->tb_forward), FALSE); + surfer_go_forward(surfer); } @@ -413,14 +411,14 @@ void on_fullscreen(GtkToggleToolButton * button, gpointer data) #ifndef FOR_EMBEDDED gtk_widget_hide(surfer->menubar); #endif - gtk_window_fullscreen(GTK_WINDOW(surfer->window)); + surfer_set_fullscreen(surfer, TRUE); } else { #ifndef FOR_EMBEDDED gtk_widget_show(surfer->menubar); #endif - gtk_window_unfullscreen(GTK_WINDOW(surfer->window)); + surfer_set_fullscreen(surfer, FALSE); } } @@ -431,7 +429,7 @@ void on_home(GtkWidget * widget, gpointer data) Surfer * surfer = data; /* FIXME query this from the preferences */ - ghtml_load_url(surfer->view, SURFER_DEFAULT_HOME); + surfer_open(surfer, SURFER_DEFAULT_HOME); } @@ -439,11 +437,12 @@ void on_home(GtkWidget * widget, gpointer data) void on_path_activate(GtkWidget * widget, gpointer data) { Surfer * surfer = data; - gchar * url; + GtkWidget * entry; + const gchar * url; - url = gtk_combo_box_get_active_text(GTK_COMBO_BOX(surfer->tb_path)); - ghtml_load_url(surfer->view, url); - g_free(url); + entry = gtk_bin_get_child(GTK_BIN(surfer->tb_path)); + url = gtk_entry_get_text(GTK_ENTRY(entry)); + surfer_open(surfer, url); } @@ -452,7 +451,7 @@ void on_refresh(GtkWidget * widget, gpointer data) { Surfer * surfer = data; - ghtml_refresh(surfer->view); + surfer_refresh(surfer); } @@ -461,5 +460,5 @@ void on_stop(GtkWidget * widget, gpointer data) { Surfer * surfer = data; - ghtml_stop(surfer->view); + surfer_stop(surfer); } diff --git a/src/ghtml-webkit.c b/src/ghtml-webkit.c index 168059a..5edf92d 100644 --- a/src/ghtml-webkit.c +++ b/src/ghtml-webkit.c @@ -327,7 +327,7 @@ static gboolean _on_web_view_ready(WebKitWebView * view, gpointer data) gtk_window_resize(GTK_WINDOW(surfer->window), w, h); g_object_get(G_OBJECT(features), "fullscreen", &b, NULL); if(b == TRUE) - gtk_window_fullscreen(GTK_WINDOW(surfer->window)); + surfer_set_fullscreen(surfer, TRUE); #ifndef FOR_EMBEDDED g_object_get(G_OBJECT(features), "menubar-visible", &b, NULL); if(b == FALSE) diff --git a/src/surfer.c b/src/surfer.c index 65ab9ac..0bca7ba 100644 --- a/src/surfer.c +++ b/src/surfer.c @@ -339,6 +339,16 @@ void surfer_delete(Surfer * surfer) /* accessors */ +/* surfer_set_fullscreen */ +void surfer_set_fullscreen(Surfer * surfer, gboolean fullscreen) +{ + if(fullscreen == TRUE) + gtk_window_fullscreen(GTK_WINDOW(surfer->window)); + else + gtk_window_unfullscreen(GTK_WINDOW(surfer->window)); +} + + /* surfer_set_location */ void surfer_set_location(Surfer * surfer, char const * url) { @@ -432,6 +442,28 @@ int surfer_error(Surfer * surfer, char const * message, int ret) } +/* surfer_go_back */ +gboolean surfer_go_back(Surfer * surfer) +{ + gboolean ret; + + ret = ghtml_go_back(surfer->view); + gtk_widget_set_sensitive(GTK_WIDGET(surfer->tb_back), ret); + return ret; +} + + +/* surfer_go_forward */ +gboolean surfer_go_forward(Surfer * surfer) +{ + gboolean ret; + + ret = ghtml_go_forward(surfer->view); + gtk_widget_set_sensitive(GTK_WIDGET(surfer->tb_forward), ret); + return ret; +} + + /* surfer_open */ void surfer_open(Surfer * surfer, char const * url) { diff --git a/src/surfer.h b/src/surfer.h index 95e05bb..71cc331 100644 --- a/src/surfer.h +++ b/src/surfer.h @@ -74,6 +74,7 @@ void surfer_delete(Surfer * surfer); /* accessors */ +void surfer_set_fullscreen(Surfer * surfer, gboolean fullscreen); void surfer_set_location(Surfer * surfer, char const * url); void surfer_set_progress(Surfer * surfer, gdouble fraction); void surfer_set_status(Surfer * surfer, char const * status); @@ -87,6 +88,9 @@ void surfer_warning(Surfer * surfer, char const * message); void surfer_open(Surfer * surfer, char const * url); void surfer_open_dialog(Surfer * surfer); +gboolean surfer_go_back(Surfer * surfer); +gboolean surfer_go_forward(Surfer * surfer); + void surfer_refresh(Surfer * surfer); void surfer_reload(Surfer * surfer); void surfer_stop(Surfer * surfer);