forked from pool/MozillaFirefox
- fix KDE integration for file dialogs
OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=305
This commit is contained in:
parent
662e67c339
commit
b4e0dbd99d
@ -1,3 +1,8 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Nov 26 11:11:38 UTC 2012 - wr@rosenauer.org
|
||||||
|
|
||||||
|
- fix KDE integration for file dialogs
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Nov 20 19:52:02 UTC 2012 - wr@rosenauer.org
|
Tue Nov 20 19:52:02 UTC 2012 - wr@rosenauer.org
|
||||||
|
|
||||||
|
@ -3106,27 +3106,40 @@ diff --git a/widget/gtk2/nsFilePicker.cpp b/widget/gtk2/nsFilePicker.cpp
|
|||||||
|
|
||||||
mFilters.AppendElement(filter);
|
mFilters.AppendElement(filter);
|
||||||
mFilterNames.AppendElement(name);
|
mFilterNames.AppendElement(name);
|
||||||
@@ -369,16 +373,19 @@ nsFilePicker::GetFiles(nsISimpleEnumerat
|
@@ -388,16 +392,32 @@ nsFilePicker::Show(int16_t *aReturn)
|
||||||
return NS_ERROR_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsFilePicker::Show(int16_t *aReturn)
|
nsFilePicker::Open(nsIFilePickerShownCallback *aCallback)
|
||||||
{
|
{
|
||||||
NS_ENSURE_ARG_POINTER(aReturn);
|
// Can't show two dialogs concurrently with the same filepicker
|
||||||
|
if (mRunning)
|
||||||
|
return NS_ERROR_NOT_AVAILABLE;
|
||||||
|
|
||||||
+ if( nsKDEUtils::kdeSupport())
|
+ // KDE file picker is not handled via callback
|
||||||
+ return kdeFileDialog(aReturn);
|
+ if( nsKDEUtils::kdeSupport()) {
|
||||||
|
+ int16_t result;
|
||||||
|
+ mCallback = aCallback;
|
||||||
|
+ mRunning = true;
|
||||||
|
+ kdeFileDialog(&result);
|
||||||
|
+ if (mCallback) {
|
||||||
|
+ mCallback->Done(result);
|
||||||
|
+ mCallback = nullptr;
|
||||||
|
+ } else {
|
||||||
|
+ mResult = result;
|
||||||
|
+ }
|
||||||
|
+ mRunning = false;
|
||||||
|
+ return NS_OK;
|
||||||
|
+ }
|
||||||
+
|
+
|
||||||
nsresult rv = Open(nullptr);
|
nsXPIDLCString title;
|
||||||
if (NS_FAILED(rv))
|
title.Adopt(ToNewUTF8String(mTitle));
|
||||||
return rv;
|
|
||||||
|
|
||||||
while (mRunning) {
|
GtkWindow *parent_widget = get_gtk_window_for_nsiwidget(mParentWidget);
|
||||||
g_main_context_iteration(nullptr, TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -587,8 +594,235 @@ nsFilePicker::Done(GtkWidget* file_choos
|
GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
|
||||||
|
const gchar *accept_button = (action == GTK_FILE_CHOOSER_ACTION_SAVE)
|
||||||
|
? GTK_STOCK_SAVE : GTK_STOCK_OPEN;
|
||||||
|
@@ -587,8 +607,235 @@ nsFilePicker::Done(GtkWidget* file_choos
|
||||||
if (mCallback) {
|
if (mCallback) {
|
||||||
mCallback->Done(result);
|
mCallback->Done(result);
|
||||||
mCallback = nullptr;
|
mCallback = nullptr;
|
||||||
|
Loading…
Reference in New Issue
Block a user