diff options
author | keis <keijser@gmail.com> | 2011-02-25 15:43:54 +0100 |
---|---|---|
committer | keis <keijser@gmail.com> | 2011-02-25 15:45:09 +0100 |
commit | b2001631c3a8eb8ea141b9589927facd0674a731 (patch) | |
tree | d54d340e62c01717153f0ba880a0cd42db21e6ec /src | |
parent | 5c292797c40da696e847f48676f02137a1f91441 (diff) |
fix phantom scrollbars
Diffstat (limited to 'src')
-rw-r--r-- | src/callbacks.c | 22 | ||||
-rw-r--r-- | src/callbacks.h | 3 | ||||
-rw-r--r-- | src/uzbl-core.c | 16 | ||||
-rw-r--r-- | src/uzbl-core.h | 2 |
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; |