Constify gtk_moz_emged_load_url. If the widget aint realized on url load,

save the url for later.


git-svn-id: svn://10.0.0.236/trunk@65575 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
ramiro%fateware.com
2000-04-10 22:52:54 +00:00
parent 65fa28da33
commit 27ffb75a2e
2 changed files with 23 additions and 2 deletions

View File

@@ -17,6 +17,7 @@
*
* Contributor(s):
* Christopher Blizzard <blizzard@mozilla.org>
* Ramiro Estrugo <ramiro@eazel.com>
*/
#include "gtkmozembed.h"
#include "nsIWebBrowser.h"
@@ -42,6 +43,7 @@ public:
nsCOMPtr<nsISupportsArray> topLevelWindowWebShells;
nsVoidArray topLevelWindows;
GdkSuperWin *superwin;
nsCString mInitialURL;
};
static void
@@ -198,7 +200,7 @@ gtk_moz_embed_new(void)
}
void
gtk_moz_embed_load_url(GtkWidget *widget, char *url)
gtk_moz_embed_load_url(GtkWidget *widget, const char *url)
{
GtkMozEmbed *embed;
GtkMozEmbedPrivate *embed_private;
@@ -207,7 +209,17 @@ gtk_moz_embed_load_url(GtkWidget *widget, char *url)
g_return_if_fail (GTK_IS_MOZ_EMBED(widget));
embed = GTK_MOZ_EMBED(widget);
embed_private = (GtkMozEmbedPrivate *)embed->data;
// If the widget aint realized, save the url for later
if (!GTK_WIDGET_REALIZED(widget))
{
embed_private->mInitialURL = url;
return;
}
nsCOMPtr<nsIWebNavigation> navigation = do_QueryInterface(embed_private->webBrowser);
if (!navigation)
g_print("Warning: failed to QI webBrowser to nsIWebNavigation\n");
@@ -282,6 +294,14 @@ gtk_moz_embed_realize(GtkWidget *widget)
nsCOMPtr<nsIURIContentListener> uriListener;
uriListener = do_QueryInterface(embed_private->embed);
embed_private->webBrowser->SetParentURIContentListener(uriListener);
// If an initial url was stored, load it
if (embed_private->mInitialURL)
{
const char * foo = (const char *) embed_private->mInitialURL;
gtk_moz_embed_load_url (widget, foo);
embed_private->mInitialURL = "";
}
}
void

View File

@@ -17,6 +17,7 @@
*
* Contributor(s):
* Christopher Blizzard <blizzard@mozilla.org>
* Ramiro Estrugo <ramiro@eazel.com>
*/
#ifndef gtkmozembed_h
@@ -50,7 +51,7 @@ struct _GtkMozEmbedClass
extern GtkType gtk_moz_embed_get_type(void);
extern GtkWidget *gtk_moz_embed_new(void);
extern void gtk_moz_embed_load_url(GtkWidget *widget, char *url);
extern void gtk_moz_embed_load_url(GtkWidget *widget, const char *url);
#ifdef __cplusplus
}