summaryrefslogtreecommitdiff
path: root/surf.c
diff options
context:
space:
mode:
authorQuentin Rameau <quinq@fifth.space>2015-11-19 14:38:23 +0100
committerQuentin Rameau <quinq@fifth.space>2015-11-20 00:34:22 +0100
commitbb1fc4195f4fa3be5625d0f663e537a22ccf1877 (patch)
tree4121b64499bdb6e37b3764115abc56cbf0777a0b /surf.c
parent2e1fb873613b3917b97c954f0c085ea05016bdce (diff)
downloadsurf-bb1fc4195f4fa3be5625d0f663e537a22ccf1877.tar.gz
surf-bb1fc4195f4fa3be5625d0f663e537a22ccf1877.tar.bz2
surf-bb1fc4195f4fa3be5625d0f663e537a22ccf1877.zip
Add createwindow() for GtkWindow creation
Move there window creation from showview().
Diffstat (limited to 'surf.c')
-rw-r--r--surf.c64
1 files changed, 37 insertions, 27 deletions
diff --git a/surf.c b/surf.c
index 6bf7989..d6d644d 100644
--- 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)
{