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

Reply via email to