turlbar and searchbar are working. - surf - customized build of surf, the suckl… | |
git clone git://src.adamsgaard.dk/surf | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 58322c0b11dc9eccc71d70c260ac1005e19674bb | |
parent 37deb47b84ba1382fe8b217f6c08935e6c59a7cb | |
Author: Enno Boland (Gottox) <[email protected]> | |
Date: Sat, 6 Jun 2009 17:12:16 +0200 | |
urlbar and searchbar are working. | |
Diffstat: | |
M surf.c | 39 ++++++++++++++++++++++++-----… | |
1 file changed, 31 insertions(+), 8 deletions(-) | |
--- | |
diff --git a/surf.c b/surf.c | |
t@@ -154,6 +154,7 @@ loadcommit(WebKitWebView *view, WebKitWebFrame *f, gpointe… | |
XChangeProperty(dpy, GDK_WINDOW_XID(GTK_WIDGET(c->win)->window), urlpr… | |
XA_STRING, 8, PropModeReplace, (unsigned char *)uri, | |
strlen(uri) + 1); | |
+ gtk_entry_set_text(GTK_ENTRY(c->urlbar), uri); | |
} | |
void | |
t@@ -215,8 +216,9 @@ gboolean | |
keypress(GtkWidget* w, GdkEventKey *ev, gpointer d) { | |
Client *c = (Client *)d; | |
- if(ev->type == GDK_KEY_PRESS && (ev->state == GDK_CONTROL_MASK | |
- || ev->state == (GDK_CONTROL_MASK | GDK_SHIFT_MASK))) { | |
+ if(ev->type != GDK_KEY_PRESS) | |
+ return FALSE; | |
+ if(ev->state == GDK_CONTROL_MASK || ev->state == (GDK_CONTROL_MASK | G… | |
switch(ev->keyval) { | |
case GDK_r: | |
case GDK_R: | |
t@@ -230,10 +232,12 @@ keypress(GtkWidget* w, GdkEventKey *ev, gpointer d) { | |
case GDK_g: | |
gtk_widget_hide(c->searchbar); | |
gtk_widget_show(c->urlbar); | |
+ gtk_widget_grab_focus(c->urlbar); | |
return TRUE; | |
case GDK_slash: | |
gtk_widget_hide(c->urlbar); | |
gtk_widget_show(c->searchbar); | |
+ gtk_widget_grab_focus(c->searchbar); | |
return TRUE; | |
case GDK_Left: | |
webkit_web_view_go_back(c->view); | |
t@@ -243,10 +247,30 @@ keypress(GtkWidget* w, GdkEventKey *ev, gpointer d) { | |
return TRUE; | |
} | |
} | |
- else if(ev->type == GDK_KEY_PRESS && ev->keyval == GDK_Escape) { | |
- gtk_widget_hide(c->urlbar); | |
- gtk_widget_hide(c->searchbar); | |
- return TRUE; | |
+ else { | |
+ switch(ev->keyval) { | |
+ case GDK_Escape: | |
+ if(!GTK_WIDGET_HAS_FOCUS(c->searchbar) && !GTK_WIDGET_… | |
+ return FALSE; | |
+ gtk_widget_hide(c->urlbar); | |
+ gtk_widget_hide(c->searchbar); | |
+ gtk_widget_grab_focus(GTK_WIDGET(c->view)); | |
+ return TRUE; | |
+ case GDK_Return: | |
+ if(GTK_WIDGET_HAS_FOCUS(c->urlbar)) { | |
+ loaduri(c, gtk_entry_get_text(GTK_ENTRY(c->url… | |
+ gtk_widget_hide(c->urlbar); | |
+ gtk_widget_grab_focus(GTK_WIDGET(c->view)); | |
+ return TRUE; | |
+ } | |
+ else if(GTK_WIDGET_HAS_FOCUS(c->searchbar)) { | |
+ webkit_web_view_search_text(c->view, | |
+ gtk_entry_get_text(GTK_ENTRY(c… | |
+ FALSE, | |
+ !(ev->state & GDK_SHIFT_MASK), | |
+ TRUE); | |
+ } | |
+ } | |
} | |
return FALSE; | |
} | |
t@@ -288,7 +312,6 @@ newclient(void) { | |
/* webview */ | |
c->view = WEBKIT_WEB_VIEW(webkit_web_view_new()); | |
- | |
g_signal_connect(G_OBJECT(c->view), "title-changed", G_CALLBACK(titlec… | |
g_signal_connect(G_OBJECT(c->view), "load-progress-changed", G_CALLBAC… | |
g_signal_connect(G_OBJECT(c->view), "load-committed", G_CALLBACK(loadc… | |
t@@ -306,8 +329,8 @@ newclient(void) { | |
/* Arranging */ | |
gtk_container_add(GTK_CONTAINER(c->scroll), GTK_WIDGET(c->view)); | |
- gtk_container_add(GTK_CONTAINER(c->vbox), c->scroll); | |
gtk_container_add(GTK_CONTAINER(c->win), c->vbox); | |
+ gtk_container_add(GTK_CONTAINER(c->vbox), c->scroll); | |
gtk_container_add(GTK_CONTAINER(c->vbox), c->searchbar); | |
gtk_container_add(GTK_CONTAINER(c->vbox), c->urlbar); | |