mozilla-kde.patch
branchfirefox52
changeset 972 d9b28dbb04f2
parent 957 b28ad21f195e
equal deleted inserted replaced
971:58f5b7e6c79e 972:d9b28dbb04f2
     1 # HG changeset patch
     1 # HG changeset patch
     2 # Parent  5f1979729aa3c6bc50f7097202991e73be677e5e
     2 # Parent  aff14a54f25dc3146ba7a64408ceb9f486a832db
     3 Description: Add KDE integration to Firefox (toolkit parts)
     3 Description: Add KDE integration to Firefox (toolkit parts)
     4 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
     4 Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
     5 Author: Lubos Lunak <lunak@suse.com>
     5 Author: Lubos Lunak <lunak@suse.com>
     6 Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751
     6 Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751
     7      https://bugzilla.novell.com/show_bug.cgi?id=170055
     7      https://bugzilla.novell.com/show_bug.cgi?id=170055
  3345    CopyUTF16toUTF8(aFilter, filter);
  3345    CopyUTF16toUTF8(aFilter, filter);
  3346    CopyUTF16toUTF8(aTitle, name);
  3346    CopyUTF16toUTF8(aTitle, name);
  3347  
  3347  
  3348    mFilters.AppendElement(filter);
  3348    mFilters.AppendElement(filter);
  3349    mFilterNames.AppendElement(name);
  3349    mFilterNames.AppendElement(name);
  3350 @@ -371,16 +375,32 @@ nsFilePicker::Show(int16_t *aReturn)
  3350 @@ -371,16 +375,34 @@ nsFilePicker::Show(int16_t *aReturn)
  3351  
  3351  
  3352  NS_IMETHODIMP
  3352  NS_IMETHODIMP
  3353  nsFilePicker::Open(nsIFilePickerShownCallback *aCallback)
  3353  nsFilePicker::Open(nsIFilePickerShownCallback *aCallback)
  3354  {
  3354  {
  3355    // Can't show two dialogs concurrently with the same filepicker
  3355    // Can't show two dialogs concurrently with the same filepicker
  3359 +  // KDE file picker is not handled via callback
  3359 +  // KDE file picker is not handled via callback
  3360 +  if( nsKDEUtils::kdeSupport()) {
  3360 +  if( nsKDEUtils::kdeSupport()) {
  3361 +    int16_t result;
  3361 +    int16_t result;
  3362 +    mCallback = aCallback;
  3362 +    mCallback = aCallback;
  3363 +    mRunning = true;
  3363 +    mRunning = true;
       
  3364 +    NS_ADDREF_THIS();
  3364 +    kdeFileDialog(&result);
  3365 +    kdeFileDialog(&result);
  3365 +    if (mCallback) {
  3366 +    if (mCallback) {
  3366 +      mCallback->Done(result);
  3367 +      mCallback->Done(result);
  3367 +      mCallback = nullptr;
  3368 +      mCallback = nullptr;
  3368 +    } else {
  3369 +    } else {
  3369 +      mResult = result;
  3370 +      mResult = result;
  3370 +    }
  3371 +    }
  3371 +    mRunning = false;
  3372 +    mRunning = false;
       
  3373 +    NS_RELEASE_THIS();
  3372 +    return NS_OK;
  3374 +    return NS_OK;
  3373 +  }
  3375 +  }
  3374 +
  3376 +
  3375    nsXPIDLCString title;
  3377    nsXPIDLCString title;
  3376    title.Adopt(ToNewUTF8String(mTitle));
  3378    title.Adopt(ToNewUTF8String(mTitle));
  3378    GtkWindow *parent_widget =
  3380    GtkWindow *parent_widget =
  3379      GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET));
  3381      GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET));
  3380  
  3382  
  3381    GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
  3383    GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
  3382  
  3384  
  3383 @@ -603,8 +623,235 @@ nsFilePicker::Done(GtkWidget* file_choos
  3385 @@ -603,8 +625,235 @@ nsFilePicker::Done(GtkWidget* file_choos
  3384    if (mCallback) {
  3386    if (mCallback) {
  3385      mCallback->Done(result);
  3387      mCallback->Done(result);
  3386      mCallback = nullptr;
  3388      mCallback = nullptr;
  3387    } else {
  3389    } else {
  3388      mResult = result;
  3390      mResult = result;