diff -r 561d9db3aae4 surf.c
--- a/surf.c	Thu Sep 17 13:03:58 2009 +0200
+++ b/surf.c	Fri Sep 18 20:32:45 2009 +0100
@@ -28,6 +28,8 @@
 
 typedef struct Client {
 	GtkWidget *win, *scroll, *vbox, *urlbar, *searchbar, *indicator;
+	GtkEntryCompletion *urlcomplete;
+	GtkListStore *completeliststore;
 	WebKitWebView *view;
 	WebKitDownload *download;
 	gchar *title;
@@ -414,6 +416,32 @@
 	gtk_entry_set_has_frame(GTK_ENTRY(c->urlbar), FALSE);
 	g_signal_connect(G_OBJECT(c->urlbar), "focus-out-event", G_CALLBACK(unfocusbar), c);
 
+	/* completeliststore */
+	c->completeliststore = gtk_list_store_new(1,G_TYPE_STRING);
+	GtkTreeIter iter;
+	int len = 0;
+	char buf[1024];
+	FILE* urlf;
+	
+	if (( urlf = g_fopen(g_strconcat(workdir,"/urls.txt",NULL),"r")))
+	{
+		while (fgets(buf,sizeof buf,urlf))
+		{
+			len = strlen(buf);
+			if (buf[len - 1] == '\n')
+				buf[len - 1] = 0;
+			gtk_list_store_append(c->completeliststore,&iter);
+			gtk_list_store_set(c->completeliststore,&iter,0,buf,-1);
+		}
+	}
+	fclose(urlf);
+
+	/* urlcomplete */
+	c->urlcomplete = gtk_entry_completion_new();
+	gtk_entry_completion_set_model(GTK_ENTRY_COMPLETION(c->urlcomplete),GTK_TREE_MODEL(c->completeliststore));
+	gtk_entry_completion_set_text_column(GTK_ENTRY_COMPLETION(c->urlcomplete),0);
+	gtk_entry_set_completion(GTK_ENTRY(c->urlbar),GTK_ENTRY_COMPLETION(c->urlcomplete));
+
 	/* searchbar */
 	c->searchbar = gtk_entry_new();
 	gtk_entry_set_has_frame(GTK_ENTRY(c->searchbar), FALSE);
@@ -433,6 +461,10 @@
 	gtk_container_add(GTK_CONTAINER(c->vbox), c->urlbar);
 	gtk_container_add(GTK_CONTAINER(c->vbox), c->indicator);
 
+	/* Hints */
+	GdkGeometry hints = {1,1};
+	gtk_window_set_geometry_hints(GTK_WINDOW(c->win),NULL,&hints,GDK_HINT_MIN_SIZE);	
+
 	/* Setup */
 	gtk_box_set_child_packing(GTK_BOX(c->vbox), c->urlbar, FALSE, FALSE, 0, GTK_PACK_START);
 	gtk_box_set_child_packing(GTK_BOX(c->vbox), c->searchbar, FALSE, FALSE, 0, GTK_PACK_START);
