Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > main-backports-src > by-pkgid > 7d8f808e47240b235732924df64766c6 > files > 15

mozilla-thunderbird-3.1.7-0.1mdv2010.2.src.rpm

diff -p -up comm-1.9.2/mozilla/widget/src/gtk2/nsDragService.cpp.gtk-settings comm-1.9.2/mozilla/widget/src/gtk2/nsDragService.cpp
--- comm-1.9.2/mozilla/widget/src/gtk2/nsDragService.cpp.gtk-settings	2010-07-13 18:29:48.000000000 -0300
+++ comm-1.9.2/mozilla/widget/src/gtk2/nsDragService.cpp	2010-07-20 17:28:59.285040675 -0300
@@ -59,6 +59,8 @@
 #include <gtk/gtk.h>
 #include <gdk/gdkx.h>
 #include "nsCRT.h"
+#include "nsIPrefService.h"
+#include "nsIPrefBranch.h"
 
 #include "gfxASurface.h"
 #include "gfxXlibSurface.h"
@@ -110,8 +112,13 @@ nsDragService::nsDragService()
 {
     // We have to destroy the hidden widget before the event loop stops
     // running.
+    nsCOMPtr<nsIPrefService> prefs = do_GetService("@mozilla.org/preferences-service;1");
+    PRInt32 dnd_threshold=-1;
+    PRInt32 double_click_timeout=-1;
+
     nsCOMPtr<nsIObserverService> obsServ =
         do_GetService("@mozilla.org/observer-service;1");
+
     obsServ->AddObserver(this, "quit-application", PR_FALSE);
 
     // our hidden source widget
@@ -146,6 +153,63 @@ nsDragService::nsDragService()
     mTargetDragDataReceived = PR_FALSE;
     mTargetDragData = 0;
     mTargetDragDataLen = 0;
+
+    if (prefs) {
+        nsresult rv; 
+        nsCOMPtr<nsIPrefBranch> prefBranch;
+        prefs->GetBranch(nsnull, getter_AddRefs(prefBranch));
+        if (prefBranch) {
+            PRInt32 tmp = -1;
+            PRInt32 tmp1 = -1;
+            rv = prefBranch->GetIntPref("widget.gtk2.dnd.threshold", &tmp);
+            if(!NS_FAILED(rv) && tmp>0) {
+                dnd_threshold = tmp;
+            }
+
+            rv = prefBranch->GetIntPref("widget.gtk2.double_click_timeout", &tmp);
+            if(!NS_FAILED(rv) && tmp>0) {
+                double_click_timeout = tmp;
+            }
+        }
+    }
+
+
+
+    // MAKE gtk settings below 
+
+    GtkSettings* settings = gtk_settings_get_default();
+
+    /* DEBUG output */
+    {
+        gint double_click;
+        g_object_get(
+                     G_OBJECT(settings), 
+                     "gtk-double-click-time", &double_click,
+                     NULL
+                     );
+        printf("DOUBLE-CLICK: %d --> %d ",double_click, double_click_timeout);
+    }
+
+
+    {
+        gint threshold;
+        g_object_get(
+                     G_OBJECT(settings), 
+                     "gtk-dnd-drag-threshold", &threshold,
+                     NULL
+                     );
+        printf("THRESHOLD: %d --> %d ", threshold, dnd_threshold);
+    }
+    /**/
+
+
+    if(dnd_threshold>-1) {
+        gtk_settings_set_long_property(settings, "gtk-dnd-drag-threshold", dnd_threshold , "someline");
+    }
+
+    if(double_click_timeout>-1) {
+        gtk_settings_set_long_property(settings, "gtk-double-click-time", double_click_timeout, "someline");
+    }
 }
 
 nsDragService::~nsDragService()