changeset 1793:2cfbfccbbafe

Added code to disable Ubuntu overlay scrollbars for widgets created with dw_scrollbar_new() on GTK3.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Mon, 13 Aug 2012 05:45:25 +0000
parents b0bdec1b820c
children 97b1edb41d44
files config.h.in configure configure.in gtk3/dw.c
diffstat 4 files changed, 36 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/config.h.in	Sun Aug 05 13:47:57 2012 +0000
+++ b/config.h.in	Mon Aug 13 05:45:25 2012 +0000
@@ -57,3 +57,6 @@
 /* Define if USING GTK (but not on X11). */
 #undef DW_USE_GTK
 
+/* Define if we have Ubuntu overlay scrollbars */
+#undef HAVE_OVERLAY_SCROLLBARS
+
--- a/configure	Sun Aug 05 13:47:57 2012 +0000
+++ b/configure	Mon Aug 13 05:45:25 2012 +0000
@@ -5843,6 +5843,20 @@
 
 LIBS="$RPATH $LIBS $GTK_LIBS $PTHREAD_LIBS $GDK_IMLIB_LIBS $MOZEMBED_LIBS $PLATLIBS"
 
+for ac_func in ubuntu_overlay_scrollbar_set_enabled
+do :
+  ac_fn_c_check_func "$LINENO" "ubuntu_overlay_scrollbar_set_enabled" "ac_cv_func_ubuntu_overlay_scrollbar_set_enabled"
+if test "x$ac_cv_func_ubuntu_overlay_scrollbar_set_enabled" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_UBUNTU_OVERLAY_SCROLLBAR_SET_ENABLED 1
+_ACEOF
+
+$as_echo "#define HAVE_OVERLAY_SCROLLBARS 1" >>confdefs.h
+
+fi
+done
+
+
 RM="rm -f"
 LN="ln -s"
 CP="cp"
--- a/configure.in	Sun Aug 05 13:47:57 2012 +0000
+++ b/configure.in	Mon Aug 13 05:45:25 2012 +0000
@@ -322,6 +322,8 @@
 
 LIBS="$RPATH $LIBS $GTK_LIBS $PTHREAD_LIBS $GDK_IMLIB_LIBS $MOZEMBED_LIBS $PLATLIBS"
 
+AC_CHECK_FUNCS(ubuntu_overlay_scrollbar_set_enabled, AC_DEFINE(HAVE_OVERLAY_SCROLLBARS,1,Define if we have Ubuntu overlay scrollbars))
+
 RM="rm -f"
 LN="ln -s"
 CP="cp"
--- a/gtk3/dw.c	Sun Aug 05 13:47:57 2012 +0000
+++ b/gtk3/dw.c	Mon Aug 13 05:45:25 2012 +0000
@@ -4074,6 +4074,11 @@
    return tmp;
 }
 
+#ifdef HAVE_OVERLAY_SCROLLBARS
+gboolean ubuntu_overlay_scrollbar_get_enabled(void);
+void ubuntu_overlay_scrollbar_set_enabled(gboolean enabled);
+#endif
+
 /*
  * Create a new scrollbar window (widget) to be packed.
  * Parameters:
@@ -4086,10 +4091,20 @@
    GtkWidget *tmp;
    GtkAdjustment *adjustment;
    int _locked_by_me = FALSE;
-
-   DW_MUTEX_LOCK;
+#ifdef HAVE_OVERLAY_SCROLLBARS
+   gboolean overlaysb;
+#endif
+
+   DW_MUTEX_LOCK;
+#ifdef HAVE_OVERLAY_SCROLLBARS
+   overlaysb = ubuntu_overlay_scrollbar_get_enabled();
+   ubuntu_overlay_scrollbar_set_enabled(FALSE);
+#endif
    adjustment = (GtkAdjustment *)gtk_adjustment_new(0, 0, 0, 1, 1, 1);
    tmp = gtk_scrollbar_new(vertical ? GTK_ORIENTATION_VERTICAL : GTK_ORIENTATION_HORIZONTAL, adjustment);
+#ifdef HAVE_OVERLAY_SCROLLBARS
+   ubuntu_overlay_scrollbar_set_enabled(overlaysb);
+#endif
    gtk_widget_set_can_focus(tmp, FALSE);
    gtk_widget_show(tmp);
    g_object_set_data(G_OBJECT(tmp), "_dw_adjustment", (gpointer)adjustment);