diff options
author | Marco Pesenti Gritti <marco@gnome.org> | 2004-02-28 18:47:03 +0800 |
---|---|---|
committer | Marco Pesenti Gritti <marco@src.gnome.org> | 2004-02-28 18:47:03 +0800 |
commit | 5af89a28e1d5302f351a714a711ddc4ead5320b0 (patch) | |
tree | df2fccd503b13c3928834db0f8f1d8544e7c574b /embed | |
parent | c5cb67fcff408482f964020079910dc3475fef25 (diff) | |
download | gsoc2013-epiphany-5af89a28e1d5302f351a714a711ddc4ead5320b0.tar gsoc2013-epiphany-5af89a28e1d5302f351a714a711ddc4ead5320b0.tar.gz gsoc2013-epiphany-5af89a28e1d5302f351a714a711ddc4ead5320b0.tar.bz2 gsoc2013-epiphany-5af89a28e1d5302f351a714a711ddc4ead5320b0.tar.lz gsoc2013-epiphany-5af89a28e1d5302f351a714a711ddc4ead5320b0.tar.xz gsoc2013-epiphany-5af89a28e1d5302f351a714a711ddc4ead5320b0.tar.zst gsoc2013-epiphany-5af89a28e1d5302f351a714a711ddc4ead5320b0.zip |
Use getInterface to get the dom window from the docshell, not
2004-02-28 Marco Pesenti Gritti <marco@gnome.org>
* embed/mozilla/ContentHandler.cpp:
Use getInterface to get the dom window from the
docshell, not queryInterface. (Bug #121160)
* embed/mozilla/MozillaPrivate.cpp:
Do not fallback to the active window if
the parent cannot be found. It just hides problems
and cause more annoying behaviors (like dialogs
parented on the wrong window).
Diffstat (limited to 'embed')
-rw-r--r-- | embed/mozilla/ContentHandler.cpp | 9 | ||||
-rw-r--r-- | embed/mozilla/MozillaPrivate.cpp | 24 |
2 files changed, 12 insertions, 21 deletions
diff --git a/embed/mozilla/ContentHandler.cpp b/embed/mozilla/ContentHandler.cpp index 622c95ca7..a92965638 100644 --- a/embed/mozilla/ContentHandler.cpp +++ b/embed/mozilla/ContentHandler.cpp @@ -34,8 +34,7 @@ #include "nsIURL.h" #include "nsILocalFile.h" #include "nsIMIMEInfo.h" - -#include "nsIWebNavigation.h" // Needed to create the LoadType flag +#include "nsIInterfaceRequestorUtils.h" #include "ephy-prefs.h" #include "eel-gconf-extensions.h" @@ -129,7 +128,7 @@ NS_IMETHODIMP GContentHandler::PromptForSaveToFile( _retval); } - nsCOMPtr<nsIDOMWindow> parentDOMWindow = do_QueryInterface (aWindowContext); + nsCOMPtr<nsIDOMWindow> parentDOMWindow = do_GetInterface (aWindowContext); GtkWidget *parentWindow = GTK_WIDGET (MozillaFindGtkParent (parentDOMWindow)); dialog = ephy_file_chooser_new (_("Save"), parentWindow, @@ -257,7 +256,7 @@ NS_METHOD GContentHandler::MIMEConfirmAction (PRBool autoDownload) char *text; int response; - nsCOMPtr<nsIDOMWindow> parentDOMWindow = do_QueryInterface (mContext); + nsCOMPtr<nsIDOMWindow> parentDOMWindow = do_GetInterface (mContext); GtkWindow *parentWindow = GTK_WINDOW (MozillaFindGtkParent(parentDOMWindow)); dialog = gtk_dialog_new_with_buttons @@ -278,8 +277,6 @@ NS_METHOD GContentHandler::MIMEConfirmAction (PRBool autoDownload) gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, TRUE, TRUE, 0); - g_print ("AAA %d %p", mPermission, mHelperApp); - if (mPermission == EPHY_MIME_PERMISSION_UNSAFE && mHelperApp) { text = g_strdup_printf ("<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s", diff --git a/embed/mozilla/MozillaPrivate.cpp b/embed/mozilla/MozillaPrivate.cpp index d83509119..aacb2c629 100644 --- a/embed/mozilla/MozillaPrivate.cpp +++ b/embed/mozilla/MozillaPrivate.cpp @@ -35,27 +35,21 @@ GtkWidget *MozillaFindEmbed (nsIDOMWindow *aDOMWindow) { + if (!aDOMWindow) return nsnull; + nsCOMPtr<nsIWindowWatcher> wwatch (do_GetService("@mozilla.org/embedcomp/window-watcher;1")); NS_ENSURE_TRUE (wwatch, nsnull); - nsCOMPtr<nsIDOMWindow> domWindow; - if (aDOMWindow) - { - /* this DOM window may belong to some inner frame, we need - * to get the topmost DOM window to get the embed - */ - aDOMWindow->GetTop (getter_AddRefs (domWindow)); - } - else - { - /* get the active window */ - wwatch->GetActiveWindow (getter_AddRefs(domWindow)); - } - NS_ENSURE_TRUE (domWindow, nsnull); + /* this DOM window may belong to some inner frame, we need + * to get the topmost DOM window to get the embed + */ + nsCOMPtr<nsIDOMWindow> topWindow; + aDOMWindow->GetTop (getter_AddRefs (topWindow)); + if (!topWindow) return nsnull; nsCOMPtr<nsIWebBrowserChrome> windowChrome; - wwatch->GetChromeForWindow (domWindow, getter_AddRefs(windowChrome)); + wwatch->GetChromeForWindow (topWindow, getter_AddRefs(windowChrome)); NS_ENSURE_TRUE (windowChrome, nsnull); nsCOMPtr<nsIEmbeddingSiteWindow> window (do_QueryInterface(windowChrome)); |