URI: 
       Add createwindow() for GtkWindow creation - surf - [fork] surf browser, a WebKit based browser
  HTML git clone git@git.drkhsh.at/surf.git
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit bb1fc4195f4fa3be5625d0f663e537a22ccf1877
   DIR parent 2e1fb873613b3917b97c954f0c085ea05016bdce
  HTML Author: Quentin Rameau <quinq@fifth.space>
       Date:   Thu, 19 Nov 2015 14:38:23 +0100
       
       Add createwindow() for GtkWindow creation
       
       Move there window creation from showview().
       
       Diffstat:
         M surf.c                              |      64 ++++++++++++++++++-------------
       
       1 file changed, 37 insertions(+), 27 deletions(-)
       ---
   DIR diff --git a/surf.c b/surf.c
       @@ -161,6 +161,7 @@ static Client *newclient(Client *c);
        static WebKitWebView *newview(Client *c, WebKitWebView *rv);
        static void showview(WebKitWebView *v, Client *c);
        static void newwindow(Client *c, const Arg *arg, gboolean noembed);
       +static GtkWidget *createwindow(Client *c);
        static void pasteuri(GtkClipboard *clipboard, const char *text, gpointer d);
        static void print(Client *c, const Arg *arg);
        static GdkFilterReturn processx(GdkXEvent *xevent, GdkEvent *event,
       @@ -1017,33 +1018,7 @@ showview(WebKitWebView *v, Client *c)
                GdkRGBA bgcolor = { 0 };
                GdkWindow *gwin;
        
       -        /* Window */
       -        if (embed) {
       -                c->win = gtk_plug_new(embed);
       -        } else {
       -                c->win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
       -
       -                /* TA:  20091214:  Despite what the GNOME docs say, the ICCCM
       -                 * is always correct, so we should still call this function.
       -                 * But when doing so, we *must* differentiate between a
       -                 * WM_CLASS and a resource on the window.  By convention, the
       -                 * window class (WM_CLASS) is capped, while the resource is in
       -                 * lowercase.   Both these values come as a pair.
       -                 */
       -                gtk_window_set_wmclass(GTK_WINDOW(c->win), "surf", "Surf");
       -
       -                /* TA:  20091214:  And set the role here as well -- so that
       -                 * sessions can pick this up.
       -                 */
       -                gtk_window_set_role(GTK_WINDOW(c->win), "Surf");
       -        }
       -        gtk_window_set_default_size(GTK_WINDOW(c->win), 800, 600);
       -        g_signal_connect(G_OBJECT(c->win),
       -                         "destroy",
       -                         G_CALLBACK(destroywin), c);
       -        g_signal_connect(G_OBJECT(c->win),
       -                         "leave_notify_event",
       -                         G_CALLBACK(titlechangeleave), c);
       +        c->win = createwindow(c);
        
                if (!kioskmode)
                        addaccelgroup(c);
       @@ -1128,6 +1103,41 @@ newwindow(Client *c, const Arg *arg, gboolean noembed)
                spawn(NULL, &a);
        }
        
       +GtkWidget *
       +createwindow(Client *c)
       +{
       +        GtkWidget *w;
       +
       +        if (embed) {
       +                w = gtk_plug_new(embed);
       +        } else {
       +                w = gtk_window_new(GTK_WINDOW_TOPLEVEL);
       +
       +                /* TA:  20091214:  Despite what the GNOME docs say, the ICCCM
       +                 * is always correct, so we should still call this function.
       +                 * But when doing so, we *must* differentiate between a
       +                 * WM_CLASS and a resource on the window.  By convention, the
       +                 * window class (WM_CLASS) is capped, while the resource is in
       +                 * lowercase.   Both these values come as a pair.
       +                 */
       +                gtk_window_set_wmclass(GTK_WINDOW(w), "surf", "Surf");
       +
       +                /* TA:  20091214:  And set the role here as well -- so that
       +                 * sessions can pick this up.
       +                 */
       +                gtk_window_set_role(GTK_WINDOW(w), "Surf");
       +
       +                gtk_window_set_default_size(GTK_WINDOW(w), 800, 600);
       +        }
       +
       +        g_signal_connect(G_OBJECT(w), "destroy",
       +            G_CALLBACK(destroywin), c);
       +        g_signal_connect(G_OBJECT(w), "leave_notify_event",
       +            G_CALLBACK(titlechangeleave), c);
       +
       +        return w;
       +}
       +
        void
        pasteuri(GtkClipboard *clipboard, const char *text, gpointer d)
        {