changeset 1794:97b1edb41d44

Added code to disable Ubuntu overlay scrollbars for widgets created with dw_scrollbar_new() on GTK2.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Mon, 13 Aug 2012 06:18:30 +0000
parents 2cfbfccbbafe
children 9304241b7b33
files config.h.in configure configure.in gtk/dw.c
diffstat 4 files changed, 34 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/config.h.in	Mon Aug 13 05:45:25 2012 +0000
+++ b/config.h.in	Mon Aug 13 06:18:30 2012 +0000
@@ -60,3 +60,6 @@
 /* Define if we have Ubuntu overlay scrollbars */
 #undef HAVE_OVERLAY_SCROLLBARS
 
+/* Define if we have Ubuntu overlay scrollbars (GTK2) */
+#undef HAVE_OVERLAY_SCROLLBARS2
+
--- a/configure	Mon Aug 13 05:45:25 2012 +0000
+++ b/configure	Mon Aug 13 06:18:30 2012 +0000
@@ -5856,6 +5856,19 @@
 fi
 done
 
+for ac_func in ubuntu_gtk_set_use_overlay_scrollbar
+do :
+  ac_fn_c_check_func "$LINENO" "ubuntu_gtk_set_use_overlay_scrollbar" "ac_cv_func_ubuntu_gtk_set_use_overlay_scrollbar"
+if test "x$ac_cv_func_ubuntu_gtk_set_use_overlay_scrollbar" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_UBUNTU_GTK_SET_USE_OVERLAY_SCROLLBAR 1
+_ACEOF
+
+$as_echo "#define HAVE_OVERLAY_SCROLLBARS2 1" >>confdefs.h
+
+fi
+done
+
 
 RM="rm -f"
 LN="ln -s"
--- a/configure.in	Mon Aug 13 05:45:25 2012 +0000
+++ b/configure.in	Mon Aug 13 06:18:30 2012 +0000
@@ -323,6 +323,7 @@
 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))
+AC_CHECK_FUNCS(ubuntu_gtk_set_use_overlay_scrollbar, AC_DEFINE(HAVE_OVERLAY_SCROLLBARS2,1,Define if we have Ubuntu overlay scrollbars))
 
 RM="rm -f"
 LN="ln -s"
--- a/gtk/dw.c	Mon Aug 13 05:45:25 2012 +0000
+++ b/gtk/dw.c	Mon Aug 13 06:18:30 2012 +0000
@@ -4752,6 +4752,11 @@
    return tmp;
 }
 
+#ifdef HAVE_OVERLAY_SCROLLBARS2
+gboolean ubuntu_gtk_get_use_overlay_scrollbar(void);
+void ubuntu_gtk_set_use_overlay_scrollbar(gboolean enabled);
+#endif
+
 /*
  * Create a new scrollbar window (widget) to be packed.
  * Parameters:
@@ -4764,13 +4769,23 @@
    GtkWidget *tmp;
    GtkAdjustment *adjustment;
    int _locked_by_me = FALSE;
-
-   DW_MUTEX_LOCK;
+#ifdef HAVE_OVERLAY_SCROLLBARS2
+   gboolean overlaysb;
+#endif
+
+   DW_MUTEX_LOCK;
+#ifdef HAVE_OVERLAY_SCROLLBARS2
+   overlaysb = ubuntu_gtk_get_use_overlay_scrollbar();
+   ubuntu_gtk_set_use_overlay_scrollbar(FALSE);
+#endif
    adjustment = (GtkAdjustment *)gtk_adjustment_new(0, 0, 0, 1, 1, 1);
    if(vertical)
       tmp = gtk_vscrollbar_new(adjustment);
    else
       tmp = gtk_hscrollbar_new(adjustment);
+#ifdef HAVE_OVERLAY_SCROLLBARS2
+   ubuntu_gtk_set_use_overlay_scrollbar(overlaysb);
+#endif
    GTK_WIDGET_UNSET_FLAGS(tmp, GTK_CAN_FOCUS);
    gtk_widget_show(tmp);
    gtk_object_set_data(GTK_OBJECT(tmp), "_dw_adjustment", (gpointer)adjustment);