mozilla-kde.patch
branchfirefox122
changeset 1200 2a0735b1eb92
parent 1199 4c520ebe1ad7
child 1202 28ebbea625bd
--- a/mozilla-kde.patch	Tue Jan 23 17:32:46 2024 +0100
+++ b/mozilla-kde.patch	Thu Feb 22 20:31:18 2024 +0100
@@ -50,7 +50,7 @@
 diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
 --- a/modules/libpref/Preferences.cpp
 +++ b/modules/libpref/Preferences.cpp
-@@ -91,16 +91,17 @@
+@@ -90,16 +90,17 @@
  #include "PLDHashTable.h"
  #include "prdtoa.h"
  #include "prlink.h"
@@ -1235,7 +1235,7 @@
  #  include "Units.h"
  extern mozilla::LazyLogModule gWidgetLog;
  #  define LOG(args) MOZ_LOG(gWidgetLog, mozilla::LogLevel::Debug, args)
-@@ -305,17 +308,18 @@ nsFilePicker::AppendFilters(int32_t aFil
+@@ -302,17 +305,18 @@ nsFilePicker::AppendFilters(int32_t aFil
    mAllowURLs = !!(aFilterMask & filterAllowURLs);
    return nsBaseFilePicker::AppendFilters(aFilterMask);
  }
@@ -1255,19 +1255,18 @@
  
    mFilters.AppendElement(filter);
    mFilterNames.AppendElement(name);
-@@ -415,16 +419,41 @@ nsresult nsFilePicker::Show(nsIFilePicke
+@@ -412,16 +416,39 @@ nsresult nsFilePicker::Show(nsIFilePicke
    return NS_OK;
  }
  
  NS_IMETHODIMP
  nsFilePicker::Open(nsIFilePickerShownCallback* aCallback) {
    // Can't show two dialogs concurrently with the same filepicker
-   if (mRunning) return NS_ERROR_NOT_AVAILABLE;
+   if (mFileChooser) return NS_ERROR_NOT_AVAILABLE;
  
 +  // KDE file picker is not handled via callback
 +  if (nsKDEUtils::kdeSupport()) {
 +    mCallback = aCallback;
-+    mRunning = true;
 +    NS_ADDREF_THIS();
 +    g_idle_add(
 +        [](gpointer data) -> gboolean {
@@ -1280,7 +1279,6 @@
 +          } else {
 +            queuedPicker->mResult = result;
 +          }
-+          queuedPicker->mRunning = false;
 +          NS_RELEASE(queuedPicker);
 +          return G_SOURCE_REMOVE;
 +        },
@@ -1297,7 +1295,7 @@
    GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
  
    const gchar* accept_button;
-@@ -696,16 +725,215 @@ void nsFilePicker::Done(void* file_choos
+@@ -703,16 +730,215 @@ void nsFilePicker::Done(void* file_choos
      mCallback->Done(result);
      mCallback = nullptr;
    } else {