Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/bindings/gecko/gecko-browser.cpp
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-09-27 12:45:55 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-09-27 12:45:55 (GMT)
commitdf6dd4618bfdf4915229349a6dc967890fbf8470 (patch)
tree126bd51f763c6fd5ef5ffd2a6729ad4730f6d140 /bindings/gecko/gecko-browser.cpp
parent7443ee4c8ba36e1867fc7f89096c34d08c1c69da (diff)
Open "requested" popups in a new activity
Diffstat (limited to 'bindings/gecko/gecko-browser.cpp')
-rw-r--r--bindings/gecko/gecko-browser.cpp42
1 files changed, 41 insertions, 1 deletions
diff --git a/bindings/gecko/gecko-browser.cpp b/bindings/gecko/gecko-browser.cpp
index d262774..cab07f8 100644
--- a/bindings/gecko/gecko-browser.cpp
+++ b/bindings/gecko/gecko-browser.cpp
@@ -23,7 +23,7 @@
#include <nsServiceManagerUtils.h>
void
-gecko_startup(void)
+gecko_browser_startup(void)
{
nsCOMPtr<nsIPrefService> prefService;
@@ -36,3 +36,43 @@ gecko_startup(void)
pref->SetBoolPref ("dom.disable_open_during_load", TRUE);
}
+
+G_DEFINE_TYPE(GeckoBrowser, gecko_browser, GTK_TYPE_MOZ_EMBED)
+
+//static guint signals[N_SIGNALS];
+
+GeckoBrowser *
+gecko_browser_new(void)
+{
+ return GECKO_BROWSER(g_object_new(GECKO_TYPE_BROWSER, NULL));
+}
+
+static void
+gecko_browser_class_init(GeckoBrowserClass *browser_class)
+{
+}
+
+GeckoBrowser *
+gecko_browser_create_window(GeckoBrowser *browser)
+{
+ return GECKO_BROWSER_GET_CLASS(browser)->create_window(browser);
+}
+
+static void
+gecko_browser_new_window_cb(GtkMozEmbed *embed,
+ GtkMozEmbed **newEmbed,
+ guint chromemask)
+{
+ GeckoBrowser *browser;
+
+ browser = gecko_browser_create_window(GECKO_BROWSER(embed));
+
+ *newEmbed = GTK_MOZ_EMBED(browser);
+}
+
+static void
+gecko_browser_init(GeckoBrowser *browser)
+{
+ g_signal_connect(G_OBJECT(browser), "new-window",
+ G_CALLBACK(gecko_browser_new_window_cb), NULL);
+}