Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/d90e82d3f1c0ed0cdd665899c754b655f661976d
...commit
http://git.netsurf-browser.org/netsurf.git/commit/d90e82d3f1c0ed0cdd665899c754b655f661976d
...tree
http://git.netsurf-browser.org/netsurf.git/tree/d90e82d3f1c0ed0cdd665899c754b655f661976d
The branch, master has been updated
via d90e82d3f1c0ed0cdd665899c754b655f661976d (commit)
via 4893a9f9af8013fb81cdb81a4d49043719d0b851 (commit)
via 6ba5edaede1a04db5e374d94e8fd8d4d1fbc3f0a (commit)
from 47379c04442c805af95ba16b9932fbdb549a7594 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=d90e82d3f1c0ed0cdd665899c754b655f661976d
commit d90e82d3f1c0ed0cdd665899c754b655f661976d
Author: Chris Young <[email protected]>
Commit: Chris Young <[email protected]>
Simplify closing of windows on quit
If they have a close callback it will be called.
Some windows are attached to browser windows and closed elsewhere without
using the callbacks.
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index 97b0271..b7e5faa 100644
--- a/frontends/amiga/gui.c
+++ b/frontends/amiga/gui.c
@@ -2958,7 +2958,6 @@ void ami_quit_netsurf(void)
struct nsObject *node;
struct nsObject *nnode;
struct ami_generic_window *w;
- struct gui_window_2 *gwin;
/* Disable the multiple tabs open warning */
nsoption_set_bool(tab_close_warn, false);
@@ -2970,26 +2969,12 @@ void ami_quit_netsurf(void)
nnode=(struct nsObject *)GetSucc((struct Node *)node);
w = node->objstruct;
- switch(node->Type) {
- case AMINS_TVWINDOW:
- w->tbl->close(w);
- break;
-
- case AMINS_WINDOW:
- /* This also closes windows that are
attached to the
- * gui_window, such as local history
and find. */
- gwin = (struct gui_window_2 *)w;
+ if(w->tbl->close != NULL) {
+ if(node->Type == AMINS_WINDOW) {
+ struct gui_window_2 *gwin = (struct
gui_window_2 *)w;
ShowWindow(gwin->win, WINDOW_BACKMOST);
// do we need this??
- w->tbl->close(w);
- break;
-
- case AMINS_GUIOPTSWINDOW:
- w->tbl->close(w);
- break;
-
- case AMINS_DLWINDOW:
- w->tbl->close(w);
- break;
+ }
+ w->tbl->close(w);
}
} while((node = nnode));
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=4893a9f9af8013fb81cdb81a4d49043719d0b851
commit 4893a9f9af8013fb81cdb81a4d49043719d0b851
Author: Chris Young <[email protected]>
Commit: Chris Young <[email protected]>
Update download window to use event callbacks
diff --git a/frontends/amiga/download.c b/frontends/amiga/download.c
index 3eba893..47485e0 100644
--- a/frontends/amiga/download.c
+++ b/frontends/amiga/download.c
@@ -69,7 +69,7 @@
#include "amiga/utf8.h"
struct gui_download_window {
- struct nsObject *node;
+ struct ami_generic_window w;
struct Window *win;
Object *objects[GID_LAST];
BPTR fh;
@@ -89,6 +89,14 @@ enum {
AMINS_DLOAD_ABORT,
};
+static void ami_download_window_abort(void *w);
+static BOOL ami_download_window_event(void *w);
+
+static const struct ami_win_event_table ami_download_table = {
+ ami_download_window_event,
+ ami_download_window_abort,
+};
+
static int downloads_in_progress = 0;
static struct gui_download_window *gui_download_window_create(download_context
*ctx,
@@ -190,8 +198,7 @@ static struct gui_download_window
*gui_download_window_create(download_context *
dw->win = (struct Window *)RA_OpenWindow(dw->objects[OID_MAIN]);
dw->ctx = ctx;
- dw->node = AddObject(window_list,AMINS_DLWINDOW);
- dw->node->objstruct = dw;
+ ami_gui_win_list_add(dw, AMINS_DLWINDOW, &ami_download_table);
downloads_in_progress++;
@@ -269,7 +276,7 @@ static void gui_download_window_done(struct
gui_download_window *dw)
downloads_in_progress--;
DisposeObject(dw->objects[OID_MAIN]);
- DelObject(dw->node);
+ ami_gui_win_list_remove(dw);
if(queuedl) {
nsurl *url;
if (nsurl_create(dln2->node.ln_Name, &url) != NSERROR_OK) {
@@ -296,16 +303,18 @@ static void gui_download_window_error(struct
gui_download_window *dw,
gui_download_window_done(dw);
}
-void ami_download_window_abort(struct gui_download_window *dw)
+static void ami_download_window_abort(void *w)
{
+ struct gui_download_window *dw = (struct gui_download_window *)dw;
download_context_abort(dw->ctx);
dw->result = AMINS_DLOAD_ABORT;
gui_download_window_done(dw);
}
-BOOL ami_download_window_event(struct gui_download_window *dw)
+static BOOL ami_download_window_event(void *w)
{
/* return TRUE if window destroyed */
+ struct gui_download_window *dw = (struct gui_download_window *)w;
ULONG result;
uint16 code;
diff --git a/frontends/amiga/download.h b/frontends/amiga/download.h
index 51981ed..b60b4f0 100755
--- a/frontends/amiga/download.h
+++ b/frontends/amiga/download.h
@@ -34,8 +34,6 @@ struct dlnode
char *filename;
};
-void ami_download_window_abort(struct gui_download_window *dw);
-BOOL ami_download_window_event(struct gui_download_window *dw);
void ami_free_download_list(struct List *dllist);
BOOL ami_download_check_overwrite(const char *file, struct Window *win, ULONG
size);
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index f5ae320..97b0271 100644
--- a/frontends/amiga/gui.c
+++ b/frontends/amiga/gui.c
@@ -1966,7 +1966,7 @@ static void ami_handle_msg(void)
continue;
}
} else if(node->Type == AMINS_DLWINDOW) {
- if(ami_download_window_event((struct
gui_download_window *)w)) {
+ if(w->tbl->event(w)) {
ami_try_quit();
break;
} else {
@@ -2988,7 +2988,7 @@ void ami_quit_netsurf(void)
break;
case AMINS_DLWINDOW:
- ami_download_window_abort((struct
gui_download_window *)w);
+ w->tbl->close(w);
break;
}
} while((node = nnode));
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=6ba5edaede1a04db5e374d94e8fd8d4d1fbc3f0a
commit 6ba5edaede1a04db5e374d94e8fd8d4d1fbc3f0a
Author: Chris Young <[email protected]>
Commit: Chris Young <[email protected]>
Update GUI options window to use event callback
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index e55e1da..f5ae320 100644
--- a/frontends/amiga/gui.c
+++ b/frontends/amiga/gui.c
@@ -1957,7 +1957,7 @@ static void ami_handle_msg(void)
continue;
}
} else if(node->Type == AMINS_GUIOPTSWINDOW) {
- if(ami_gui_opts_event()) {
+ if(w->tbl->event(w)) {
/* last window possibly closed, so exit with
conditions ;) */
if(scrn) ami_try_quit();
break;
@@ -2958,6 +2958,7 @@ void ami_quit_netsurf(void)
struct nsObject *node;
struct nsObject *nnode;
struct ami_generic_window *w;
+ struct gui_window_2 *gwin;
/* Disable the multiple tabs open warning */
nsoption_set_bool(tab_close_warn, false);
@@ -2977,12 +2978,13 @@ void ami_quit_netsurf(void)
case AMINS_WINDOW:
/* This also closes windows that are
attached to the
* gui_window, such as local history
and find. */
- //ShowWindow(gwin->win,
WINDOW_BACKMOST); // do we need this??
+ gwin = (struct gui_window_2 *)w;
+ ShowWindow(gwin->win, WINDOW_BACKMOST);
// do we need this??
w->tbl->close(w);
break;
case AMINS_GUIOPTSWINDOW:
- ami_gui_opts_close();
+ w->tbl->close(w);
break;
case AMINS_DLWINDOW:
diff --git a/frontends/amiga/gui_options.c b/frontends/amiga/gui_options.c
index fb5d1b1..698735b 100755
--- a/frontends/amiga/gui_options.c
+++ b/frontends/amiga/gui_options.c
@@ -220,7 +220,7 @@ enum {
};
struct ami_gui_opts_window {
- struct nsObject *node;
+ struct ami_generic_window w;
struct Window *win;
Object *objects[GID_OPTS_LAST];
#ifndef __amigaos4__
@@ -233,6 +233,14 @@ struct ami_gui_opts_window {
#endif
};
+static BOOL ami_gui_opts_event(void *w);
+static void ami_gui_opts_close(void *w);
+
+static const struct ami_win_event_table ami_guiopts_table = {
+ ami_gui_opts_event,
+ ami_gui_opts_close,
+};
+
static struct ami_gui_opts_window *gow = NULL;
static CONST_STRPTR tabs[OPTS_MAX_TABS];
@@ -1667,8 +1675,7 @@ void ami_gui_opts_open(void)
EndWindow;
gow->win = (struct Window
*)RA_OpenWindow(gow->objects[OID_MAIN]);
- gow->node = AddObject(window_list,AMINS_GUIOPTSWINDOW);
- gow->node->objstruct = gow;
+ ami_gui_win_list_add(gow, AMINS_GUIOPTSWINDOW,
&ami_guiopts_table);
}
ami_utf8_free(homepage_url_lc);
}
@@ -2063,15 +2070,15 @@ static void ami_gui_opts_use(bool save)
ami_update_pointer(gow->win, GUI_POINTER_DEFAULT);
}
-void ami_gui_opts_close(void)
+static void ami_gui_opts_close(void *w)
{
DisposeObject(gow->objects[OID_MAIN]);
ami_gui_opts_free(gow);
- DelObject(gow->node);
+ ami_gui_win_list_remove(gow);
gow = NULL;
}
-BOOL ami_gui_opts_event(void)
+static BOOL ami_gui_opts_event(void *w)
{
/* return TRUE if window destroyed */
ULONG result,data = 0;
@@ -2083,7 +2090,7 @@ BOOL ami_gui_opts_event(void)
switch(result & WMHI_CLASSMASK) // class
{
case WMHI_CLOSEWINDOW:
- ami_gui_opts_close();
+ ami_gui_opts_close(gow);
return TRUE;
break;
@@ -2102,7 +2109,7 @@ BOOL ami_gui_opts_event(void)
{
case GID_OPTS_SAVE:
ami_gui_opts_use(true);
- ami_gui_opts_close();
+ ami_gui_opts_close(gow);
return TRUE;
break;
@@ -2111,7 +2118,7 @@ BOOL ami_gui_opts_event(void)
// fall through
case GID_OPTS_CANCEL:
- ami_gui_opts_close();
+ ami_gui_opts_close(gow);
return TRUE;
break;
diff --git a/frontends/amiga/gui_options.h b/frontends/amiga/gui_options.h
index abb0b11..7de35cc 100755
--- a/frontends/amiga/gui_options.h
+++ b/frontends/amiga/gui_options.h
@@ -20,8 +20,6 @@
#define AMIGA_GUI_OPTIONS_H
/* Prefs GUI control */
void ami_gui_opts_open(void);
-BOOL ami_gui_opts_event(void);
-void ami_gui_opts_close(void);
/* Web search list */
struct List *ami_gui_opts_websearch(void);
-----------------------------------------------------------------------
Summary of changes:
frontends/amiga/download.c | 21 +++++++++++++++------
frontends/amiga/download.h | 2 --
frontends/amiga/gui.c | 29 ++++++++---------------------
frontends/amiga/gui_options.c | 25 ++++++++++++++++---------
frontends/amiga/gui_options.h | 2 --
5 files changed, 39 insertions(+), 40 deletions(-)
diff --git a/frontends/amiga/download.c b/frontends/amiga/download.c
index 3eba893..47485e0 100644
--- a/frontends/amiga/download.c
+++ b/frontends/amiga/download.c
@@ -69,7 +69,7 @@
#include "amiga/utf8.h"
struct gui_download_window {
- struct nsObject *node;
+ struct ami_generic_window w;
struct Window *win;
Object *objects[GID_LAST];
BPTR fh;
@@ -89,6 +89,14 @@ enum {
AMINS_DLOAD_ABORT,
};
+static void ami_download_window_abort(void *w);
+static BOOL ami_download_window_event(void *w);
+
+static const struct ami_win_event_table ami_download_table = {
+ ami_download_window_event,
+ ami_download_window_abort,
+};
+
static int downloads_in_progress = 0;
static struct gui_download_window *gui_download_window_create(download_context
*ctx,
@@ -190,8 +198,7 @@ static struct gui_download_window
*gui_download_window_create(download_context *
dw->win = (struct Window *)RA_OpenWindow(dw->objects[OID_MAIN]);
dw->ctx = ctx;
- dw->node = AddObject(window_list,AMINS_DLWINDOW);
- dw->node->objstruct = dw;
+ ami_gui_win_list_add(dw, AMINS_DLWINDOW, &ami_download_table);
downloads_in_progress++;
@@ -269,7 +276,7 @@ static void gui_download_window_done(struct
gui_download_window *dw)
downloads_in_progress--;
DisposeObject(dw->objects[OID_MAIN]);
- DelObject(dw->node);
+ ami_gui_win_list_remove(dw);
if(queuedl) {
nsurl *url;
if (nsurl_create(dln2->node.ln_Name, &url) != NSERROR_OK) {
@@ -296,16 +303,18 @@ static void gui_download_window_error(struct
gui_download_window *dw,
gui_download_window_done(dw);
}
-void ami_download_window_abort(struct gui_download_window *dw)
+static void ami_download_window_abort(void *w)
{
+ struct gui_download_window *dw = (struct gui_download_window *)dw;
download_context_abort(dw->ctx);
dw->result = AMINS_DLOAD_ABORT;
gui_download_window_done(dw);
}
-BOOL ami_download_window_event(struct gui_download_window *dw)
+static BOOL ami_download_window_event(void *w)
{
/* return TRUE if window destroyed */
+ struct gui_download_window *dw = (struct gui_download_window *)w;
ULONG result;
uint16 code;
diff --git a/frontends/amiga/download.h b/frontends/amiga/download.h
index 51981ed..b60b4f0 100755
--- a/frontends/amiga/download.h
+++ b/frontends/amiga/download.h
@@ -34,8 +34,6 @@ struct dlnode
char *filename;
};
-void ami_download_window_abort(struct gui_download_window *dw);
-BOOL ami_download_window_event(struct gui_download_window *dw);
void ami_free_download_list(struct List *dllist);
BOOL ami_download_check_overwrite(const char *file, struct Window *win, ULONG
size);
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index e55e1da..b7e5faa 100644
--- a/frontends/amiga/gui.c
+++ b/frontends/amiga/gui.c
@@ -1957,7 +1957,7 @@ static void ami_handle_msg(void)
continue;
}
} else if(node->Type == AMINS_GUIOPTSWINDOW) {
- if(ami_gui_opts_event()) {
+ if(w->tbl->event(w)) {
/* last window possibly closed, so exit with
conditions ;) */
if(scrn) ami_try_quit();
break;
@@ -1966,7 +1966,7 @@ static void ami_handle_msg(void)
continue;
}
} else if(node->Type == AMINS_DLWINDOW) {
- if(ami_download_window_event((struct
gui_download_window *)w)) {
+ if(w->tbl->event(w)) {
ami_try_quit();
break;
} else {
@@ -2969,25 +2969,12 @@ void ami_quit_netsurf(void)
nnode=(struct nsObject *)GetSucc((struct Node *)node);
w = node->objstruct;
- switch(node->Type) {
- case AMINS_TVWINDOW:
- w->tbl->close(w);
- break;
-
- case AMINS_WINDOW:
- /* This also closes windows that are
attached to the
- * gui_window, such as local history
and find. */
- //ShowWindow(gwin->win,
WINDOW_BACKMOST); // do we need this??
- w->tbl->close(w);
- break;
-
- case AMINS_GUIOPTSWINDOW:
- ami_gui_opts_close();
- break;
-
- case AMINS_DLWINDOW:
- ami_download_window_abort((struct
gui_download_window *)w);
- break;
+ if(w->tbl->close != NULL) {
+ if(node->Type == AMINS_WINDOW) {
+ struct gui_window_2 *gwin = (struct
gui_window_2 *)w;
+ ShowWindow(gwin->win, WINDOW_BACKMOST);
// do we need this??
+ }
+ w->tbl->close(w);
}
} while((node = nnode));
diff --git a/frontends/amiga/gui_options.c b/frontends/amiga/gui_options.c
index fb5d1b1..698735b 100755
--- a/frontends/amiga/gui_options.c
+++ b/frontends/amiga/gui_options.c
@@ -220,7 +220,7 @@ enum {
};
struct ami_gui_opts_window {
- struct nsObject *node;
+ struct ami_generic_window w;
struct Window *win;
Object *objects[GID_OPTS_LAST];
#ifndef __amigaos4__
@@ -233,6 +233,14 @@ struct ami_gui_opts_window {
#endif
};
+static BOOL ami_gui_opts_event(void *w);
+static void ami_gui_opts_close(void *w);
+
+static const struct ami_win_event_table ami_guiopts_table = {
+ ami_gui_opts_event,
+ ami_gui_opts_close,
+};
+
static struct ami_gui_opts_window *gow = NULL;
static CONST_STRPTR tabs[OPTS_MAX_TABS];
@@ -1667,8 +1675,7 @@ void ami_gui_opts_open(void)
EndWindow;
gow->win = (struct Window
*)RA_OpenWindow(gow->objects[OID_MAIN]);
- gow->node = AddObject(window_list,AMINS_GUIOPTSWINDOW);
- gow->node->objstruct = gow;
+ ami_gui_win_list_add(gow, AMINS_GUIOPTSWINDOW,
&ami_guiopts_table);
}
ami_utf8_free(homepage_url_lc);
}
@@ -2063,15 +2070,15 @@ static void ami_gui_opts_use(bool save)
ami_update_pointer(gow->win, GUI_POINTER_DEFAULT);
}
-void ami_gui_opts_close(void)
+static void ami_gui_opts_close(void *w)
{
DisposeObject(gow->objects[OID_MAIN]);
ami_gui_opts_free(gow);
- DelObject(gow->node);
+ ami_gui_win_list_remove(gow);
gow = NULL;
}
-BOOL ami_gui_opts_event(void)
+static BOOL ami_gui_opts_event(void *w)
{
/* return TRUE if window destroyed */
ULONG result,data = 0;
@@ -2083,7 +2090,7 @@ BOOL ami_gui_opts_event(void)
switch(result & WMHI_CLASSMASK) // class
{
case WMHI_CLOSEWINDOW:
- ami_gui_opts_close();
+ ami_gui_opts_close(gow);
return TRUE;
break;
@@ -2102,7 +2109,7 @@ BOOL ami_gui_opts_event(void)
{
case GID_OPTS_SAVE:
ami_gui_opts_use(true);
- ami_gui_opts_close();
+ ami_gui_opts_close(gow);
return TRUE;
break;
@@ -2111,7 +2118,7 @@ BOOL ami_gui_opts_event(void)
// fall through
case GID_OPTS_CANCEL:
- ami_gui_opts_close();
+ ami_gui_opts_close(gow);
return TRUE;
break;
diff --git a/frontends/amiga/gui_options.h b/frontends/amiga/gui_options.h
index abb0b11..7de35cc 100755
--- a/frontends/amiga/gui_options.h
+++ b/frontends/amiga/gui_options.h
@@ -20,8 +20,6 @@
#define AMIGA_GUI_OPTIONS_H
/* Prefs GUI control */
void ami_gui_opts_open(void);
-BOOL ami_gui_opts_event(void);
-void ami_gui_opts_close(void);
/* Web search list */
struct List *ami_gui_opts_websearch(void);
--
NetSurf Browser
_______________________________________________
netsurf-commits mailing list
[email protected]
http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org