diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2010-04-09 22:38:51 +0000 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2010-04-09 22:38:51 +0000 |
commit | b6937419e17c80613f5b1436ce9833e24d6221fa (patch) | |
tree | b483965da833eda1620002d3fbcf3704683fa0e0 /amiga/download.c | |
parent | 4a4cc0d1bce9967fcd1fed4cea12c008702a38fc (diff) | |
download | netsurf-b6937419e17c80613f5b1436ce9833e24d6221fa.tar.gz netsurf-b6937419e17c80613f5b1436ce9833e24d6221fa.tar.bz2 |
Fix broken event handling.
Any structures attached to the window_list *must* have a struct nsObject * as their
first entry, and handle events outside of gui.c.
svn path=/trunk/netsurf/; revision=10332
Diffstat (limited to 'amiga/download.c')
-rw-r--r-- | amiga/download.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/amiga/download.c b/amiga/download.c index 1929d163f..712689b10 100644 --- a/amiga/download.c +++ b/amiga/download.c @@ -214,7 +214,7 @@ void gui_download_window_done(struct gui_download_window *dw) TAG_DONE); } - if(bw) bw->download = false; + download_context_destroy(dw->ctx); if(dln = dw->dln) { @@ -235,6 +235,30 @@ void gui_download_window_done(struct gui_download_window *dw) if(queuedl) browser_window_download(bw,dln2->node.ln_Name,NULL); } +BOOL ami_download_window_event(struct gui_download_window *dw) +{ + /* return TRUE if window destroyed */ + ULONG class,result,relevent = 0; + uint16 code; + + while((result = RA_HandleInput(dw->objects[OID_MAIN], &code)) != WMHI_LASTMSG) + { + switch(result & WMHI_CLASSMASK) // class + { + case WMHI_GADGETUP: + switch(result & WMHI_GADGETMASK) + { + case GID_CANCEL: + ami_download_window_abort(dw); + return TRUE; + break; + } + break; + } + } + return FALSE; +} + void ami_free_download_list(struct List *dllist) { struct dlnode *node; |