From b3460f7aa01262374c014092b618407de5cb0390 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20G=C3=A2teau?= Date: Wed, 28 Sep 2011 16:19:18 +0200 Subject: [PATCH] Use ubuntu_gtk_disable_overlay_scrollbar() to get rid of overlay scrollbars Forwarded: no This is more robust than using the LIBOVERLAY_SCROLLBAR environment variable as some programs (vlc) do not let us set variables. --- src/gui/styles/qgtkstyle_p.cpp | 4 ++++ src/gui/styles/qgtkstyle_p.h | 2 ++ 2 files changed, 6 insertions(+) --- a/src/gui/styles/qgtkstyle_p.cpp +++ b/src/gui/styles/qgtkstyle_p.cpp @@ -84,6 +84,7 @@ Ptr_gtk_container_forall QGtkStylePrivate::gtk_container_forall = 0; Ptr_gtk_init QGtkStylePrivate::gtk_init = 0; +Ptr_ubuntu_gtk_set_use_overlay_scrollbar QGtkStylePrivate::ubuntu_gtk_set_use_overlay_scrollbar = 0; Ptr_gtk_style_attach QGtkStylePrivate::gtk_style_attach = 0; Ptr_gtk_window_new QGtkStylePrivate::gtk_window_new = 0; Ptr_gtk_widget_destroy QGtkStylePrivate::gtk_widget_destroy = 0; @@ -316,6 +317,7 @@ libgtk.setLoadHints(QLibrary::ImprovedSearchHeuristics); gtk_init = (Ptr_gtk_init)libgtk.resolve("gtk_init"); + ubuntu_gtk_set_use_overlay_scrollbar = (Ptr_ubuntu_gtk_set_use_overlay_scrollbar)libgtk.resolve("ubuntu_gtk_set_use_overlay_scrollbar"); gtk_window_new = (Ptr_gtk_window_new)libgtk.resolve("gtk_window_new"); gtk_style_attach = (Ptr_gtk_style_attach)libgtk.resolve("gtk_style_attach"); gtk_widget_destroy = (Ptr_gtk_widget_destroy)libgtk.resolve("gtk_widget_destroy"); @@ -520,6 +522,8 @@ x11ErrorHandler qt_x_errhandler = XSetErrorHandler(0); QGtkStylePrivate::gtk_init (NULL, NULL); XSetErrorHandler(qt_x_errhandler); + if (QGtkStylePrivate::ubuntu_gtk_set_use_overlay_scrollbar) + QGtkStylePrivate::ubuntu_gtk_set_use_overlay_scrollbar(false); // make a window GtkWidget* gtkWindow = QGtkStylePrivate::gtk_window_new(GTK_WINDOW_POPUP); --- a/src/gui/styles/qgtkstyle_p.h +++ b/src/gui/styles/qgtkstyle_p.h @@ -137,6 +137,7 @@ typedef bool (*Ptr_gconf_client_get_bool)(GConfClient*, const char*, GError **); typedef void (*Ptr_gtk_init)(int *, char ***); +typedef void (*Ptr_ubuntu_gtk_set_use_overlay_scrollbar) (gboolean); typedef GtkWidget* (*Ptr_gtk_window_new) (GtkWindowType); typedef GtkStyle* (*Ptr_gtk_style_attach)(GtkStyle *, GdkWindow *); typedef void (*Ptr_gtk_widget_destroy) (GtkWidget *); @@ -358,6 +359,7 @@ static Ptr_gtk_container_forall gtk_container_forall; static Ptr_gtk_init gtk_init; + static Ptr_ubuntu_gtk_set_use_overlay_scrollbar ubuntu_gtk_set_use_overlay_scrollbar; static Ptr_gtk_style_attach gtk_style_attach; static Ptr_gtk_window_new gtk_window_new; static Ptr_gtk_widget_destroy gtk_widget_destroy;