aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar keis <keijser@gmail.com>2011-02-25 15:43:54 +0100
committerGravatar keis <keijser@gmail.com>2011-02-25 15:45:09 +0100
commitb2001631c3a8eb8ea141b9589927facd0674a731 (patch)
treed54d340e62c01717153f0ba880a0cd42db21e6ec /src
parent5c292797c40da696e847f48676f02137a1f91441 (diff)
fix phantom scrollbars
Diffstat (limited to 'src')
-rw-r--r--src/callbacks.c22
-rw-r--r--src/callbacks.h3
-rw-r--r--src/uzbl-core.c16
-rw-r--r--src/uzbl-core.h2
4 files changed, 28 insertions, 15 deletions
diff --git a/src/callbacks.c b/src/callbacks.c
index d315a9e..a12d51c 100644
--- a/src/callbacks.c
+++ b/src/callbacks.c
@@ -339,15 +339,19 @@ cmd_javascript_windows() {
void
cmd_scrollbars_visibility() {
if(uzbl.gui.scrollbars_visible) {
- uzbl.gui.bar_h = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (uzbl.gui.scrolled_win));
- uzbl.gui.bar_v = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (uzbl.gui.scrolled_win));
+ gtk_scrolled_window_set_policy (
+ uzbl.gui.scrolled_win,
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC
+ );
}
else {
- uzbl.gui.bar_v = gtk_range_get_adjustment (GTK_RANGE (uzbl.gui.scbar_v));
- uzbl.gui.bar_h = gtk_range_get_adjustment (GTK_RANGE (uzbl.gui.scbar_h));
+ gtk_scrolled_window_set_policy (
+ uzbl.gui.scrolled_win,
+ GTK_POLICY_NEVER,
+ GTK_POLICY_NEVER
+ );
}
-
- set_webview_scroll_adjustments();
}
/* requires webkit >=1.1.14 */
@@ -1042,4 +1046,10 @@ populate_popup_cb(WebKitWebView *v, GtkMenu *m, void *c) {
}
}
+gboolean
+scrollbars_policy_cb(WebKitWebView *view) {
+ (void) view;
+ return TRUE;
+}
+
/* vi: set et ts=4: */
diff --git a/src/callbacks.h b/src/callbacks.h
index 13cb83d..a026f46 100644
--- a/src/callbacks.h
+++ b/src/callbacks.h
@@ -216,3 +216,6 @@ scroll_vert_cb(GtkAdjustment *adjust, void *w);
gboolean
scroll_horiz_cb(GtkAdjustment *adjust, void *w);
+
+gboolean
+scrollbars_policy_cb(WebKitWebView *view);
diff --git a/src/uzbl-core.c b/src/uzbl-core.c
index 638dd1f..ef509a4 100644
--- a/src/uzbl-core.c
+++ b/src/uzbl-core.c
@@ -1391,13 +1391,13 @@ update_title(void) {
}
}
-
void
create_scrolled_win() {
GUI* g = &uzbl.gui;
g->web_view = WEBKIT_WEB_VIEW(webkit_web_view_new());
g->scrolled_win = gtk_scrolled_window_new(NULL, NULL);
+ WebKitWebFrame *wf = webkit_web_view_get_main_frame (g->web_view);
gtk_scrolled_window_set_policy(
GTK_SCROLLED_WINDOW(g->scrolled_win),
@@ -1432,6 +1432,10 @@ create_scrolled_win() {
"signal::focus-in-event", (GCallback)focus_cb, NULL,
"signal::focus-out-event", (GCallback)focus_cb, NULL,
NULL);
+
+ g_object_connect (G_OBJECT (wf),
+ "signal::scrollbars-policy-changed", (GCallback)scrollbars_policy_cb, NULL,
+ NULL);
}
@@ -1651,12 +1655,12 @@ set_webview_scroll_adjustments() {
uzbl.gui.bar_h, uzbl.gui.bar_v);
#endif
- g_object_connect((GObject*)uzbl.gui.bar_v,
+ g_object_connect(G_OBJECT (uzbl.gui.bar_v),
"signal::value-changed", (GCallback)scroll_vert_cb, NULL,
"signal::changed", (GCallback)scroll_vert_cb, NULL,
NULL);
- g_object_connect((GObject*)uzbl.gui.bar_h,
+ g_object_connect(G_OBJECT (uzbl.gui.bar_h),
"signal::value-changed", (GCallback)scroll_horiz_cb, NULL,
"signal::changed", (GCallback)scroll_horiz_cb, NULL,
NULL);
@@ -1808,10 +1812,8 @@ main (int argc, char* argv[]) {
}
/* Scrolling */
- uzbl.gui.scbar_v = (GtkScrollbar*) gtk_vscrollbar_new (NULL);
- uzbl.gui.bar_v = gtk_range_get_adjustment((GtkRange*) uzbl.gui.scbar_v);
- uzbl.gui.scbar_h = (GtkScrollbar*) gtk_hscrollbar_new (NULL);
- uzbl.gui.bar_h = gtk_range_get_adjustment((GtkRange*) uzbl.gui.scbar_h);
+ uzbl.gui.bar_h = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (uzbl.gui.scrolled_win));
+ uzbl.gui.bar_v = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (uzbl.gui.scrolled_win));
set_webview_scroll_adjustments();
diff --git a/src/uzbl-core.h b/src/uzbl-core.h
index 1285e3a..484f670 100644
--- a/src/uzbl-core.h
+++ b/src/uzbl-core.h
@@ -67,8 +67,6 @@ typedef struct {
GtkWidget* mainbar_label_right;
/* Scrolling */
- GtkScrollbar* scbar_v; /* Horizontal and Vertical Scrollbar */
- GtkScrollbar* scbar_h; /* (These are still hidden) */
GtkAdjustment* bar_v; /* Information about document length */
GtkAdjustment* bar_h; /* and scrolling position */
int scrollbars_visible;