60 lines
2.8 KiB
Diff
60 lines
2.8 KiB
Diff
From b3460f7aa01262374c014092b618407de5cb0390 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Aur=C3=A9lien=20G=C3=A2teau?= <aurelien.gateau@canonical.com>
|
|
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;
|