summaryrefslogtreecommitdiff
path: root/beos
diff options
context:
space:
mode:
authorFrançois Revel <mmu_man@netsurf-browser.org>2010-12-12 00:26:36 +0000
committerFrançois Revel <mmu_man@netsurf-browser.org>2010-12-12 00:26:36 +0000
commit84ca0e364bc80b63d6e74f7c7fde23846cb7a772 (patch)
tree761cf3baac0b5398256c17e93f7ea15863b6d7e8 /beos
parentafc6a62b7a3afca860757afeee50acfe79a31c54 (diff)
downloadnetsurf-84ca0e364bc80b63d6e74f7c7fde23846cb7a772.tar.gz
netsurf-84ca0e364bc80b63d6e74f7c7fde23846cb7a772.tar.bz2
Fix Replicant instanciation, though it doesn't get the url correctly yet, and leaves stuff behind when removed (like the main thread).
svn path=/trunk/netsurf/; revision=11028
Diffstat (limited to 'beos')
-rw-r--r--beos/beos_scaffolding.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/beos/beos_scaffolding.cpp b/beos/beos_scaffolding.cpp
index 3fb147f1f..f35caee93 100644
--- a/beos/beos_scaffolding.cpp
+++ b/beos/beos_scaffolding.cpp
@@ -161,6 +161,9 @@ static void nsbeos_window_update_back_forward(struct beos_scaffolding *);
static void nsbeos_throb(void *);
static int32 nsbeos_replicant_main_thread(void *_arg);
+// in beos_gui.cpp
+extern int main(int argc, char** argv);
+
#warning XXX
#if 0 /* GTK */
static gboolean nsbeos_window_url_activate_event(beosWidget *, gpointer);
@@ -339,6 +342,7 @@ NSBaseView::NSBaseView(BMessage *archive)
NSBaseView::~NSBaseView()
{
+ warn_user ("~NSBaseView()", NULL);
}
@@ -500,7 +504,7 @@ NSBaseView::Instantiate(BMessage *archive)
//TODO:FIXME: fix replicants
// netsurf_init() needs different args now...
//netsurf_init(2, info->args);
- return NULL;
+ //return NULL;
replicant_done_sem = create_sem(0, "NS Replicant created");
thread_id nsMainThread = spawn_thread(nsbeos_replicant_main_thread,
@@ -512,7 +516,7 @@ NSBaseView::Instantiate(BMessage *archive)
return NULL;
}
resume_thread(nsMainThread);
- //while (acquire_sem(replicant_done_sem) == EINTR);
+ while (acquire_sem(replicant_done_sem) == EINTR);
delete_sem(replicant_done_sem);
return view;
@@ -603,10 +607,12 @@ NSBrowserWindow::QuitRequested(void)
int32 nsbeos_replicant_main_thread(void *_arg)
{
struct replicant_thread_info *info = (struct replicant_thread_info *)_arg;
- netsurf_main_loop();
- netsurf_exit();
+ int32 ret;
+ ret = main(2, info->args);
+ //netsurf_main_loop();
+ //netsurf_exit();
delete info;
- return 0;
+ return ret;
}
@@ -1612,6 +1618,7 @@ nsbeos_scaffolding *nsbeos_new_scaffolding(struct gui_window *toplevel)
g->menu_bar = NULL;
g->window = NULL;
+printf ("repli: %p\n", replicant_view);
if (replicated && !replicant_view) {
warn_user("Error: No subwindow allowed when replicated.", NULL);