diff -up surf_orig/config.def.h surf/config.def.h --- surf_orig/config.def.h 2012-12-03 20:34:56.395583317 +0100 +++ surf/config.def.h 2012-12-03 20:38:07.085389213 +0100 @@ -66,6 +66,7 @@ static Key keys[] = { { MODKEY, GDK_i, scroll_h, { .i = +1 } }, { MODKEY, GDK_u, scroll_h, { .i = -1 } }, + { 0, GDK_F11, fullscreen, { 0 } }, { 0, GDK_Escape, stop, { 0 } }, { MODKEY, GDK_o, source, { 0 } }, diff -up surf_orig/surf.c surf/surf.c --- surf_orig/surf.c 2012-12-03 20:34:56.395583317 +0100 +++ surf/surf.c 2012-12-03 20:37:38.712715758 +0100 @@ -46,7 +46,7 @@ typedef struct Client { gint progress; gboolean sslfailed; struct Client *next; - gboolean zoomed; + gboolean zoomed, fullscreen; } Client; typedef struct { @@ -101,6 +101,7 @@ static void die(char *str); static void drawindicator(Client *c); static gboolean exposeindicator(GtkWidget *w, GdkEventExpose *e, Client *c); static void find(Client *c, const Arg *arg); +static void fullscreen(Client *c, const Arg *arg); static const char *getatom(Client *c, int a); static char *geturi(Client *c); static gboolean initdownload(WebKitWebView *v, WebKitDownload *o, Client *c); @@ -399,6 +400,15 @@ find(Client *c, const Arg *arg) { webkit_web_view_search_text(c->view, s, FALSE, forward, TRUE); } +void +fullscreen(Client *c, const Arg *arg) { + if(c->fullscreen) + gtk_window_unfullscreen(GTK_WINDOW(c->win)); + else + gtk_window_fullscreen(GTK_WINDOW(c->win)); + c->fullscreen = !c->fullscreen; +} + const char * getatom(Client *c, int a) { static char buf[BUFSIZ];