tRename fullscreen() to togglefullscreen() - surf - customized build of surf, the suckless webkit browser
 (HTM) git clone git://src.adamsgaard.dk/surf
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit d6794e0d75128dda9be6bd4769e2cd81a57192c7
 (DIR) parent b4e78555d020bd33981c50805f5480da22c8136d
 (HTM) Author: Quentin Rameau <quinq@fifth.space>
       Date:   Fri, 20 Nov 2015 00:00:59 +0100
       
       Rename fullscreen() to togglefullscreen()
       
       And handle c->fullscreen value in winevent(). This way we keep track of
       fullscreen state even if we did not directly initiate the fullscreen.
       
       Diffstat:
         M config.def.h                        |       2 +-
         M surf.c                              |      17 +++++++++++++----
       
       2 files changed, 14 insertions(+), 5 deletions(-)
       ---
 (DIR) diff --git a/config.def.h b/config.def.h
       t@@ -107,7 +107,7 @@ static Key keys[] = {
                { MODKEY,                GDK_KEY_i,      scroll_h,   { .i = +1 } },
                { MODKEY,                GDK_KEY_u,      scroll_h,   { .i = -1 } },
        
       -        { 0,                     GDK_KEY_F11,    fullscreen, { 0 } },
       +        { 0,                     GDK_KEY_F11,    togglefullscreen, { 0 } },
                { 0,                     GDK_KEY_Escape, stop,       { 0 } },
                { MODKEY|GDK_SHIFT_MASK, GDK_KEY_o,      inspector,  { 0 } },
        
 (DIR) diff --git a/surf.c b/surf.c
       t@@ -127,7 +127,7 @@ static void die(const char *errstr, ...);
        static void evalscript(Client *c, const char *jsstr, ...);
        static void runscript(Client *c);
        static void find(Client *c, const Arg *arg);
       -static void fullscreen(Client *c, const Arg *arg);
       +static void togglefullscreen(Client *c, const Arg *a);
        static gboolean permissionrequested(WebKitWebView *v,
                        WebKitPermissionRequest *r, Client *c);
        static const char *getatom(Client *c, int a);
       t@@ -600,13 +600,13 @@ find(Client *c, const Arg *arg)
        }
        
        void
       -fullscreen(Client *c, const Arg *arg)
       +togglefullscreen(Client *c, const Arg *a)
        {
       +        /* toggling value is handled in winevent() */
                if (c->fullscreen)
                        gtk_window_unfullscreen(GTK_WINDOW(c->win));
                else
                        gtk_window_fullscreen(GTK_WINDOW(c->win));
       -        c->fullscreen = !c->fullscreen;
        }
        
        gboolean
       t@@ -1037,7 +1037,7 @@ showview(WebKitWebView *v, Client *c)
                        webkit_web_view_set_zoom_level(c->view, zoomlevel);
        
                if (runinfullscreen)
       -                fullscreen(c, NULL);
       +                togglefullscreen(c, NULL);
        
                setatom(c, AtomFind, "");
                setatom(c, AtomUri, "about:blank");
       t@@ -1127,6 +1127,8 @@ createwindow(Client *c)
                    G_CALLBACK(destroywin), c);
                g_signal_connect(G_OBJECT(w), "leave-notify-event",
                    G_CALLBACK(winevent), c);
       +        g_signal_connect(G_OBJECT(w), "window-state-event",
       +            G_CALLBACK(winevent), c);
        
                return w;
        }
       t@@ -1339,6 +1341,13 @@ winevent(GtkWidget *w, GdkEvent *e, Client *c)
                        c->targeturi = NULL;
                        updatetitle(c);
                        break;
       +        case GDK_WINDOW_STATE: /* fallthrough */
       +                if (e->window_state.changed_mask ==
       +                    GDK_WINDOW_STATE_FULLSCREEN) {
       +                        c->fullscreen = e->window_state.new_window_state &
       +                            GDK_WINDOW_STATE_FULLSCREEN;
       +                        break;
       +                }
                default:
                        return FALSE;
                }