about summary refs log tree commit diff stats
path: root/xombrero.c
diff options
context:
space:
mode:
authorJosh Rickmar <jrick@devio.us>2012-07-11 16:04:05 -0400
committerJosh Rickmar <jrick@devio.us>2012-07-11 16:04:05 -0400
commit958f63e109c4ad9bd395f1c22b4cf0acb7f97b7d (patch)
tree4b085fecd5a71741012f2c4fa90fba7ffff1f277 /xombrero.c
parent4c05ef647d9a2038a4ba63ad6e3558bba996e4e9 (diff)
downloadxombrero-958f63e109c4ad9bd395f1c22b4cf0acb7f97b7d.tar.gz
Add a show_scrollbars option to disable showing of scrollbars. Enable
(keep current behavior) for gui_mode = normal, and disable for
gui_mode = minimal.  Requires GTK3.
Diffstat (limited to 'xombrero.c')
-rw-r--r--xombrero.c33
1 files changed, 32 insertions, 1 deletions
diff --git a/xombrero.c b/xombrero.c
index b5a61e8..0f8ea5a 100644
--- a/xombrero.c
+++ b/xombrero.c
@@ -124,6 +124,7 @@ TAILQ_HEAD(command_list, command_entry);
 #define XT_CSS_YELLOW		"yellow"
 #define XT_CSS_GREEN		"green"
 #define XT_CSS_BLUE		"blue"
+#define XT_CSS_HIDDEN		"hidden"
 
 #define XT_PROTO_DELIM		"://"
 
@@ -582,6 +583,31 @@ buffers(struct tab *t, struct karg *args)
 	return (0);
 }
 
+int
+set_scrollbar_visibility(struct tab *t, int visible)
+{
+#if GTK_CHECK_VERSION(3, 0, 0)
+	GtkWidget		*h_scrollbar, *v_scrollbar;
+
+	h_scrollbar = gtk_scrolled_window_get_hscrollbar(
+	    GTK_SCROLLED_WINDOW(t->browser_win));
+	v_scrollbar = gtk_scrolled_window_get_vscrollbar(
+	    GTK_SCROLLED_WINDOW(t->browser_win));
+
+	if (visible == 0) {
+		gtk_widget_set_name(h_scrollbar, XT_CSS_HIDDEN);
+		gtk_widget_set_name(v_scrollbar, XT_CSS_HIDDEN);
+	} else {
+		gtk_widget_set_name(h_scrollbar, "");
+		gtk_widget_set_name(v_scrollbar, "");
+	}
+
+	return (0);
+#else
+	return (visible == 0);
+#endif
+}
+
 void
 hide_oops(struct tab *t)
 {
@@ -6851,8 +6877,12 @@ create_browser(struct tab *t)
 	    GTK_SCROLLED_WINDOW(w));
 	t->adjust_v = gtk_scrolled_window_get_vadjustment(
 	    GTK_SCROLLED_WINDOW(w));
+#if GTK_CHECK_VERSION(3, 0, 0)
+#else
 	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(w),
-	    GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); /* XXX not needed in gtk3? */
+	    GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+#endif
+
 
 	t->wv = WEBKIT_WEB_VIEW(webkit_web_view_new());
 	gtk_container_add(GTK_CONTAINER(w), GTK_WIDGET(t->wv));
@@ -7546,6 +7576,7 @@ create_new_tab(char *title, struct undo *u, int focus, int position)
 
 	/* browser */
 	t->browser_win = create_browser(t);
+	set_scrollbar_visibility(t, show_scrollbars);
 	gtk_box_pack_start(GTK_BOX(t->vbox), t->browser_win, TRUE, TRUE, 0);
 
 	/* oops message for user feedback */