summaryrefslogtreecommitdiff
path: root/amiga/download.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2010-04-09 22:38:51 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2010-04-09 22:38:51 +0000
commitb6937419e17c80613f5b1436ce9833e24d6221fa (patch)
treeb483965da833eda1620002d3fbcf3704683fa0e0 /amiga/download.c
parent4a4cc0d1bce9967fcd1fed4cea12c008702a38fc (diff)
downloadnetsurf-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.c26
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;