Gitweb links:

...log 
http://git.netsurf-browser.org/netsurf.git/shortlog/5841e373e5d0cb6ae8bb2f6bee776cae1fcf6384
...commit 
http://git.netsurf-browser.org/netsurf.git/commit/5841e373e5d0cb6ae8bb2f6bee776cae1fcf6384
...tree 
http://git.netsurf-browser.org/netsurf.git/tree/5841e373e5d0cb6ae8bb2f6bee776cae1fcf6384

The branch, vince/gtk-tab-restyle has been updated
       via  5841e373e5d0cb6ae8bb2f6bee776cae1fcf6384 (commit)
      from  702f9f2219fd9041419b5f83bf179f15db82fe03 (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=5841e373e5d0cb6ae8bb2f6bee776cae1fcf6384
commit 5841e373e5d0cb6ae8bb2f6bee776cae1fcf6384
Author: Vincent Sanders <[email protected]>
Commit: Vincent Sanders <[email protected]>

    another five handlers and fix menu sensitivity on throbber state change

diff --git a/frontends/gtk/gui.c b/frontends/gtk/gui.c
index 2c23364..ba37413 100644
--- a/frontends/gtk/gui.c
+++ b/frontends/gtk/gui.c
@@ -249,7 +249,7 @@ static nserror set_defaults(struct nsoption_s *defaults)
                nsoption_set_int(button_type, 2);
                break;
        }
-       
+
        return NSERROR_OK;
 }
 
@@ -261,7 +261,7 @@ static nserror set_defaults(struct nsoption_s *defaults)
  *
  * \param argc The number of arguments on the command line
  * \param argv A string vector of command line arguments.
- * \respath A string vector of the path elements of resources 
+ * \respath A string vector of the path elements of resources
  */
 static nserror nsgtk_init(int argc, char** argv, char **respath)
 {
@@ -1204,7 +1204,7 @@ int main(int argc, char** argv)
                NSLOG(netsurf, INFO, "Unable to load translated messages");
                /** \todo decide if message load faliure should be fatal */
        }
-       
+
        /* Locate the correct user cache directory path */
        ret = get_cache_home(&cache_home);
        if (ret == NSERROR_NOT_FOUND) {
diff --git a/frontends/gtk/scaffolding.c b/frontends/gtk/scaffolding.c
index 685b5d4..62b9c4f 100644
--- a/frontends/gtk/scaffolding.c
+++ b/frontends/gtk/scaffolding.c
@@ -927,160 +927,46 @@ nsgtk_on_toolbar_activate_menu(GtkMenuItem *widget, 
gpointer data)
        return TRUE;
 }
 
-MULTIHANDLER(downloads)
-{
-       nsgtk_download_show(g->window);
-
-       return TRUE;
-}
-
-MULTIHANDLER(savewindowsize)
-{
-       int x,y,w,h;
-       char *choices = NULL;
-
-       gtk_window_get_position(g->window, &x, &y);
-       gtk_window_get_size(g->window, &w, &h);
-
-       nsoption_set_int(window_width, w);
-       nsoption_set_int(window_height, h);
-       nsoption_set_int(window_x, x);
-       nsoption_set_int(window_y, y);
-
-       netsurf_mkpath(&choices, NULL, 2, nsgtk_config_home, "Choices");
-       if (choices != NULL) {
-               nsoption_write(choices, NULL, NULL);
-               free(choices);
-       }
-
-       return TRUE;
-}
-
-MULTIHANDLER(toggledebugging)
-{
-       struct browser_window *bw;
-
-       bw = nsgtk_get_browser_window(g->top_level);
-
-       browser_window_debug(bw, CONTENT_DEBUG_REDRAW);
-
-       nsgtk_reflow_all_windows();
-
-       return TRUE;
-}
-
-MULTIHANDLER(debugboxtree)
-{
-       gchar *fname;
-       gint handle;
-       FILE *f;
-       struct browser_window *bw;
-
-       handle = g_file_open_tmp("nsgtkboxtreeXXXXXX", &fname, NULL);
-       if ((handle == -1) || (fname == NULL)) {
-               return TRUE;
-       }
-       close(handle); /* in case it was binary mode */
-
-       /* save data to temporary file */
-       f = fopen(fname, "w");
-       if (f == NULL) {
-               nsgtk_warning("Error saving box tree dump.",
-                         "Unable to open file for writing.");
-               unlink(fname);
-               return TRUE;
-       }
-
-       bw = nsgtk_get_browser_window(g->top_level);
-
-       browser_window_debug_dump(bw, f, CONTENT_DEBUG_RENDER);
-
-       fclose(f);
-
-       nsgtk_viewfile("Box Tree Debug", "boxtree", fname);
-
-       g_free(fname);
-
-       return TRUE;
-}
-
-MULTIHANDLER(debugdomtree)
-{
-       gchar *fname;
-       gint handle;
-       FILE *f;
-       struct browser_window *bw;
-
-       handle = g_file_open_tmp("nsgtkdomtreeXXXXXX", &fname, NULL);
-       if ((handle == -1) || (fname == NULL)) {
-               return TRUE;
-       }
-       close(handle); /* in case it was binary mode */
-
-       /* save data to temporary file */
-       f = fopen(fname, "w");
-       if (f == NULL) {
-               nsgtk_warning("Error saving box tree dump.",
-                         "Unable to open file for writing.");
-               unlink(fname);
-               return TRUE;
-       }
-
-       bw = nsgtk_get_browser_window(g->top_level);
-
-       browser_window_debug_dump(bw, f, CONTENT_DEBUG_DOM);
-
-       fclose(f);
-
-       nsgtk_viewfile("DOM Tree Debug", "domtree", fname);
-
-       g_free(fname);
-
-       return TRUE;
-}
-
-
-MULTIHANDLER(stop)
-{
-       struct browser_window *bw =
-                       nsgtk_get_browser_window(g->top_level);
-
-       browser_window_stop(bw);
-
-       return TRUE;
-}
-
-MULTIHANDLER(reload)
-{
-       struct browser_window *bw =
-                       nsgtk_get_browser_window(g->top_level);
-       if (bw == NULL)
-               return TRUE;
+/**
+ * menu signal handler for activation on downloads item
+ */
+MENUHANDLER(downloads, DOWNLOADS_BUTTON);
 
-       /* clear potential search effects */
-       browser_window_search_clear(bw);
+/**
+ * menu signal handler for activation on save window size item
+ */
+MENUHANDLER(savewindowsize, SAVEWINDOWSIZE_BUTTON);
 
-       browser_window_reload(bw, true);
+/**
+ * menu signal handler for activation on toggle debug render item
+ */
+MENUHANDLER(toggledebugging, TOGGLEDEBUGGING_BUTTON);
 
-       return TRUE;
-}
+/**
+ * menu signal handler for activation on debug box tree item
+ */
+MENUHANDLER(debugboxtree, SAVEBOXTREE_BUTTON);
 
-MULTIHANDLER(back)
-{
-       struct browser_window *bw =
-                       nsgtk_get_browser_window(g->top_level);
+/**
+ * menu signal handler for activation on debug dom tree item
+ */
+MENUHANDLER(debugdomtree, SAVEDOMTREE_BUTTON);
 
-       if ((bw == NULL) || (!browser_window_history_back_available(bw)))
-               return TRUE;
+/**
+ * menu signal handler for activation on stop item
+ */
+MENUHANDLER(stop, STOP_BUTTON);
 
-       /* clear potential search effects */
-       browser_window_search_clear(bw);
+/**
+ * menu signal handler for activation on reload item
+ */
+MENUHANDLER(reload, RELOAD_BUTTON);
 
-       browser_window_history_back(bw, false);
-       scaffolding_update_context(g);
+/**
+ * menu signal handler for activation on back item
+ */
+MENUHANDLER(back, BACK_BUTTON);
 
-       return TRUE;
-}
 
 MULTIHANDLER(forward)
 {
@@ -1675,39 +1561,21 @@ void nsgtk_window_set_title(struct gui_window *gw, 
const char *title)
 }
 
 
-
-
-#if 0
-static nserror gui_window_start_throbber(struct gui_window* gw)
-{
-       struct nsgtk_scaffolding *g = nsgtk_get_scaffold(_g);
-       g->buttons[STOP_BUTTON]->sensitivity = true;
-       g->buttons[RELOAD_BUTTON]->sensitivity = false;
-       nsgtk_scaffolding_set_sensitivity(g);
-
-       scaffolding_update_context(g);
-}
-
-static nserror gui_window_stop_throbber(struct gui_window* gw)
+/* exported interface documented in scaffolding.h */
+nserror nsgtk_scaffolding_throbber(struct gui_window* gw, bool active)
 {
-       nserror res;
-       GdkPixbuf *pixbuf;
-       struct nsgtk_scaffolding *g = nsgtk_get_scaffold(_g);
-
-       if (g == NULL) {
-               return;
+       struct nsgtk_scaffolding *gs = nsgtk_get_scaffold(gw);
+       if (active) {
+               gs->menus[STOP_BUTTON].sensitivity = true;
+               gs->menus[RELOAD_BUTTON].sensitivity = false;
+       } else {
+               gs->menus[STOP_BUTTON].sensitivity = false;
+               gs->menus[RELOAD_BUTTON].sensitivity = true;
        }
+       scaffolding_update_context(gs);
 
-
-       if (g->buttons[STOP_BUTTON] != NULL)
-               g->buttons[STOP_BUTTON]->sensitivity = false;
-       if (g->buttons[RELOAD_BUTTON] != NULL)
-               g->buttons[RELOAD_BUTTON]->sensitivity = true;
-
-       nsgtk_scaffolding_set_sensitivity(g);
-
+       return NSERROR_OK;
 }
-#endif
 
 
 static void
diff --git a/frontends/gtk/scaffolding.h b/frontends/gtk/scaffolding.h
index 0f19a24..666bc50 100644
--- a/frontends/gtk/scaffolding.h
+++ b/frontends/gtk/scaffolding.h
@@ -64,6 +64,11 @@ struct nsgtk_scaffolding *nsgtk_new_scaffolding(struct 
gui_window *gw);
 nserror nsgtk_scaffolding_destroy_all(void);
 
 /**
+ * Update scaffolding window when throbber state changes
+ */
+nserror nsgtk_scaffolding_throbber(struct gui_window* gw, bool active);
+
+/**
  * Obtain the most recently used scaffolding element.
  *
  * This allows tabs to be opened in the most recently used window
diff --git a/frontends/gtk/tabs.c b/frontends/gtk/tabs.c
index 04bd69f..3d21c65 100644
--- a/frontends/gtk/tabs.c
+++ b/frontends/gtk/tabs.c
@@ -180,7 +180,7 @@ nsgtk_tab_switch_page_after(GtkNotebook *notebook,
                        srcpage = gtk_notebook_get_nth_page(notebook, 
srcpagenum);
                        gw = g_object_get_data(G_OBJECT(srcpage), "gui_window");
                        if ((gw != NULL) && (nsgtk_get_scaffold(gw) != NULL)) {
-                               error = nsgtk_window_item_activate(gw, 
NEWTAB_BUTTON);
+                               error = nsgtk_window_item_activate(gw, 
NEWTAB_BUTTON);
                                if (error != NSERROR_OK) {
                                        NSLOG(netsurf, INFO,
                                              "Failed to open new tab.");
diff --git a/frontends/gtk/toolbar.c b/frontends/gtk/toolbar.c
index 8fbdfa1..03e07b9 100644
--- a/frontends/gtk/toolbar.c
+++ b/frontends/gtk/toolbar.c
@@ -2820,7 +2820,7 @@ fullscreen_button_clicked_cb(GtkWidget *widget, gpointer 
data)
 
 
 /**
- * handler for full screen tool bar item clicked signal
+ * handler for view source tool bar item clicked signal
  *
  * \param widget The widget the signal is being delivered to.
  * \param data The toolbar context passed when the signal was connected
@@ -2848,6 +2848,172 @@ viewsource_button_clicked_cb(GtkWidget *widget, 
gpointer data)
 
 
 /**
+ * handler for show downloads tool bar item clicked signal
+ *
+ * \param widget The widget the signal is being delivered to.
+ * \param data The toolbar context passed when the signal was connected
+ * \return TRUE
+ */
+static gboolean
+downloads_button_clicked_cb(GtkWidget *widget, gpointer data)
+{
+       GtkWindow *gtkwindow; /* gtk window widget is in */
+       gtkwindow = GTK_WINDOW(gtk_widget_get_ancestor(widget,GTK_TYPE_WINDOW));
+       nsgtk_download_show(gtkwindow);
+       return TRUE;
+}
+
+
+/**
+ * handler for show downloads tool bar item clicked signal
+ *
+ * \param widget The widget the signal is being delivered to.
+ * \param data The toolbar context passed when the signal was connected
+ * \return TRUE
+ */
+static gboolean
+savewindowsize_button_clicked_cb(GtkWidget *widget, gpointer data)
+{
+       GtkWindow *gtkwindow; /* gtk window widget is in */
+       int x,y,w,h;
+       char *choices = NULL;
+
+       gtkwindow = GTK_WINDOW(gtk_widget_get_ancestor(widget,GTK_TYPE_WINDOW));
+
+       gtk_window_get_position(gtkwindow, &x, &y);
+       gtk_window_get_size(gtkwindow, &w, &h);
+
+       nsoption_set_int(window_width, w);
+       nsoption_set_int(window_height, h);
+       nsoption_set_int(window_x, x);
+       nsoption_set_int(window_y, y);
+
+       netsurf_mkpath(&choices, NULL, 2, nsgtk_config_home, "Choices");
+       if (choices != NULL) {
+               nsoption_write(choices, NULL, NULL);
+               free(choices);
+       }
+
+       return TRUE;
+}
+
+
+/**
+ * handler for show downloads tool bar item clicked signal
+ *
+ * \param widget The widget the signal is being delivered to.
+ * \param data The toolbar context passed when the signal was connected
+ * \return TRUE
+ */
+static gboolean
+toggledebugging_button_clicked_cb(GtkWidget *widget, gpointer data)
+{
+       struct nsgtk_toolbar *tb = (struct nsgtk_toolbar *)data;
+       struct browser_window *bw;
+
+       bw = tb->get_bw(tb->get_bw_ctx);
+
+       browser_window_debug(bw, CONTENT_DEBUG_REDRAW);
+
+       nsgtk_reflow_all_windows();
+
+       return TRUE;
+
+}
+
+
+/**
+ * handler for debug box tree tool bar item clicked signal
+ *
+ * \param widget The widget the signal is being delivered to.
+ * \param data The toolbar context passed when the signal was connected
+ * \return TRUE
+ */
+static gboolean
+debugboxtree_button_clicked_cb(GtkWidget *widget, gpointer data)
+{
+       struct nsgtk_toolbar *tb = (struct nsgtk_toolbar *)data;
+       struct browser_window *bw;
+       gchar *fname;
+       gint handle;
+       FILE *f;
+
+       handle = g_file_open_tmp("nsgtkboxtreeXXXXXX", &fname, NULL);
+       if ((handle == -1) || (fname == NULL)) {
+               return TRUE;
+       }
+       close(handle); /* in case it was binary mode */
+
+       /* save data to temporary file */
+       f = fopen(fname, "w");
+       if (f == NULL) {
+               nsgtk_warning("Error saving box tree dump.",
+                             "Unable to open file for writing.");
+               unlink(fname);
+               return TRUE;
+       }
+
+       bw = tb->get_bw(tb->get_bw_ctx);
+
+       browser_window_debug_dump(bw, f, CONTENT_DEBUG_RENDER);
+
+       fclose(f);
+
+       nsgtk_viewfile("Box Tree Debug", "boxtree", fname);
+
+       g_free(fname);
+
+       return TRUE;
+}
+
+
+/**
+ * handler for debug dom tree tool bar item clicked signal
+ *
+ * \param widget The widget the signal is being delivered to.
+ * \param data The toolbar context passed when the signal was connected
+ * \return TRUE
+ */
+static gboolean
+debugdomtree_button_clicked_cb(GtkWidget *widget, gpointer data)
+{
+       struct nsgtk_toolbar *tb = (struct nsgtk_toolbar *)data;
+       struct browser_window *bw;
+       gchar *fname;
+       gint handle;
+       FILE *f;
+
+       handle = g_file_open_tmp("nsgtkdomtreeXXXXXX", &fname, NULL);
+       if ((handle == -1) || (fname == NULL)) {
+               return TRUE;
+       }
+       close(handle); /* in case it was binary mode */
+
+       /* save data to temporary file */
+       f = fopen(fname, "w");
+       if (f == NULL) {
+               nsgtk_warning("Error saving box tree dump.",
+                             "Unable to open file for writing.");
+               unlink(fname);
+               return TRUE;
+       }
+
+       bw = tb->get_bw(tb->get_bw_ctx);
+
+       browser_window_debug_dump(bw, f, CONTENT_DEBUG_DOM);
+
+       fclose(f);
+
+       nsgtk_viewfile("DOM Tree Debug", "domtree", fname);
+
+       g_free(fname);
+
+       return TRUE;
+
+}
+
+
+/**
  * create a toolbar item
  *
  * create a toolbar item and set up its default handlers
diff --git a/frontends/gtk/toolbar_items.h b/frontends/gtk/toolbar_items.h
index ecdd978..909b00d 100644
--- a/frontends/gtk/toolbar_items.h
+++ b/frontends/gtk/toolbar_items.h
@@ -63,7 +63,7 @@ typedef enum {
        GLOBALHISTORY_BUTTON,
        ADDBOOKMARKS_BUTTON,
        SHOWBOOKMARKS_BUTTON,
-       SHOWCOOKIES_BUTTON,
+       SHOWCOOKIES_BUTTON,
        OPENLOCATION_BUTTON,
        NEXTTAB_BUTTON,
        PREVTAB_BUTTON,
@@ -122,11 +122,11 @@ TOOLBAR_ITEM(ZOOMMINUS_BUTTON, zoomminus, true, 
zoomminus_button_clicked_cb)
 TOOLBAR_ITEM(ZOOMNORMAL_BUTTON, zoomnormal, true, zoomnormal_button_clicked_cb)
 TOOLBAR_ITEM(FULLSCREEN_BUTTON, fullscreen, true, fullscreen_button_clicked_cb)
 TOOLBAR_ITEM(VIEWSOURCE_BUTTON, viewsource, true, viewsource_button_clicked_cb)
-TOOLBAR_ITEM(DOWNLOADS_BUTTON, downloads, true, NULL)
-TOOLBAR_ITEM(SAVEWINDOWSIZE_BUTTON, savewindowsize, true, NULL)
-TOOLBAR_ITEM(TOGGLEDEBUGGING_BUTTON, toggledebugging, true, NULL)
-TOOLBAR_ITEM(SAVEBOXTREE_BUTTON, debugboxtree, true, NULL)
-TOOLBAR_ITEM(SAVEDOMTREE_BUTTON, debugdomtree, true, NULL)
+TOOLBAR_ITEM(DOWNLOADS_BUTTON, downloads, true, downloads_button_clicked_cb)
+TOOLBAR_ITEM(SAVEWINDOWSIZE_BUTTON, savewindowsize, true, 
savewindowsize_button_clicked_cb)
+TOOLBAR_ITEM(TOGGLEDEBUGGING_BUTTON, toggledebugging, true, 
toggledebugging_button_clicked_cb)
+TOOLBAR_ITEM(SAVEBOXTREE_BUTTON, debugboxtree, true, 
debugboxtree_button_clicked_cb)
+TOOLBAR_ITEM(SAVEDOMTREE_BUTTON, debugdomtree, true, 
debugdomtree_button_clicked_cb)
 TOOLBAR_ITEM(LOCALHISTORY_BUTTON, localhistory, true, 
localhistory_button_clicked_cb)
 TOOLBAR_ITEM(GLOBALHISTORY_BUTTON, globalhistory, true, NULL)
 TOOLBAR_ITEM(ADDBOOKMARKS_BUTTON, addbookmarks, true, NULL)
diff --git a/frontends/gtk/window.c b/frontends/gtk/window.c
index 015b5fa..666e6ea 100644
--- a/frontends/gtk/window.c
+++ b/frontends/gtk/window.c
@@ -1360,12 +1360,12 @@ gui_window_event(struct gui_window *gw, enum 
gui_window_event event)
 
        case GW_EVENT_START_THROBBER:
                nsgtk_toolbar_throbber(gw->toolbar, true);
-               /** \todo menu sensitivity for back/reload */
+               nsgtk_scaffolding_throbber(gw, true);
                break;
 
        case GW_EVENT_STOP_THROBBER:
                nsgtk_toolbar_throbber(gw->toolbar, false);
-               /** \todo menu sensitivity for back/reload */
+               nsgtk_scaffolding_throbber(gw, false);
                break;
 
        default:


-----------------------------------------------------------------------

Summary of changes:
 frontends/gtk/gui.c           |    6 +-
 frontends/gtk/scaffolding.c   |  218 ++++++++---------------------------------
 frontends/gtk/scaffolding.h   |    5 +
 frontends/gtk/tabs.c          |    2 +-
 frontends/gtk/toolbar.c       |  168 ++++++++++++++++++++++++++++++-
 frontends/gtk/toolbar_items.h |   12 +--
 frontends/gtk/window.c        |    4 +-
 7 files changed, 227 insertions(+), 188 deletions(-)

diff --git a/frontends/gtk/gui.c b/frontends/gtk/gui.c
index 2c23364..ba37413 100644
--- a/frontends/gtk/gui.c
+++ b/frontends/gtk/gui.c
@@ -249,7 +249,7 @@ static nserror set_defaults(struct nsoption_s *defaults)
                nsoption_set_int(button_type, 2);
                break;
        }
-       
+
        return NSERROR_OK;
 }
 
@@ -261,7 +261,7 @@ static nserror set_defaults(struct nsoption_s *defaults)
  *
  * \param argc The number of arguments on the command line
  * \param argv A string vector of command line arguments.
- * \respath A string vector of the path elements of resources 
+ * \respath A string vector of the path elements of resources
  */
 static nserror nsgtk_init(int argc, char** argv, char **respath)
 {
@@ -1204,7 +1204,7 @@ int main(int argc, char** argv)
                NSLOG(netsurf, INFO, "Unable to load translated messages");
                /** \todo decide if message load faliure should be fatal */
        }
-       
+
        /* Locate the correct user cache directory path */
        ret = get_cache_home(&cache_home);
        if (ret == NSERROR_NOT_FOUND) {
diff --git a/frontends/gtk/scaffolding.c b/frontends/gtk/scaffolding.c
index 685b5d4..62b9c4f 100644
--- a/frontends/gtk/scaffolding.c
+++ b/frontends/gtk/scaffolding.c
@@ -927,160 +927,46 @@ nsgtk_on_toolbar_activate_menu(GtkMenuItem *widget, 
gpointer data)
        return TRUE;
 }
 
-MULTIHANDLER(downloads)
-{
-       nsgtk_download_show(g->window);
-
-       return TRUE;
-}
-
-MULTIHANDLER(savewindowsize)
-{
-       int x,y,w,h;
-       char *choices = NULL;
-
-       gtk_window_get_position(g->window, &x, &y);
-       gtk_window_get_size(g->window, &w, &h);
-
-       nsoption_set_int(window_width, w);
-       nsoption_set_int(window_height, h);
-       nsoption_set_int(window_x, x);
-       nsoption_set_int(window_y, y);
-
-       netsurf_mkpath(&choices, NULL, 2, nsgtk_config_home, "Choices");
-       if (choices != NULL) {
-               nsoption_write(choices, NULL, NULL);
-               free(choices);
-       }
-
-       return TRUE;
-}
-
-MULTIHANDLER(toggledebugging)
-{
-       struct browser_window *bw;
-
-       bw = nsgtk_get_browser_window(g->top_level);
-
-       browser_window_debug(bw, CONTENT_DEBUG_REDRAW);
-
-       nsgtk_reflow_all_windows();
-
-       return TRUE;
-}
-
-MULTIHANDLER(debugboxtree)
-{
-       gchar *fname;
-       gint handle;
-       FILE *f;
-       struct browser_window *bw;
-
-       handle = g_file_open_tmp("nsgtkboxtreeXXXXXX", &fname, NULL);
-       if ((handle == -1) || (fname == NULL)) {
-               return TRUE;
-       }
-       close(handle); /* in case it was binary mode */
-
-       /* save data to temporary file */
-       f = fopen(fname, "w");
-       if (f == NULL) {
-               nsgtk_warning("Error saving box tree dump.",
-                         "Unable to open file for writing.");
-               unlink(fname);
-               return TRUE;
-       }
-
-       bw = nsgtk_get_browser_window(g->top_level);
-
-       browser_window_debug_dump(bw, f, CONTENT_DEBUG_RENDER);
-
-       fclose(f);
-
-       nsgtk_viewfile("Box Tree Debug", "boxtree", fname);
-
-       g_free(fname);
-
-       return TRUE;
-}
-
-MULTIHANDLER(debugdomtree)
-{
-       gchar *fname;
-       gint handle;
-       FILE *f;
-       struct browser_window *bw;
-
-       handle = g_file_open_tmp("nsgtkdomtreeXXXXXX", &fname, NULL);
-       if ((handle == -1) || (fname == NULL)) {
-               return TRUE;
-       }
-       close(handle); /* in case it was binary mode */
-
-       /* save data to temporary file */
-       f = fopen(fname, "w");
-       if (f == NULL) {
-               nsgtk_warning("Error saving box tree dump.",
-                         "Unable to open file for writing.");
-               unlink(fname);
-               return TRUE;
-       }
-
-       bw = nsgtk_get_browser_window(g->top_level);
-
-       browser_window_debug_dump(bw, f, CONTENT_DEBUG_DOM);
-
-       fclose(f);
-
-       nsgtk_viewfile("DOM Tree Debug", "domtree", fname);
-
-       g_free(fname);
-
-       return TRUE;
-}
-
-
-MULTIHANDLER(stop)
-{
-       struct browser_window *bw =
-                       nsgtk_get_browser_window(g->top_level);
-
-       browser_window_stop(bw);
-
-       return TRUE;
-}
-
-MULTIHANDLER(reload)
-{
-       struct browser_window *bw =
-                       nsgtk_get_browser_window(g->top_level);
-       if (bw == NULL)
-               return TRUE;
+/**
+ * menu signal handler for activation on downloads item
+ */
+MENUHANDLER(downloads, DOWNLOADS_BUTTON);
 
-       /* clear potential search effects */
-       browser_window_search_clear(bw);
+/**
+ * menu signal handler for activation on save window size item
+ */
+MENUHANDLER(savewindowsize, SAVEWINDOWSIZE_BUTTON);
 
-       browser_window_reload(bw, true);
+/**
+ * menu signal handler for activation on toggle debug render item
+ */
+MENUHANDLER(toggledebugging, TOGGLEDEBUGGING_BUTTON);
 
-       return TRUE;
-}
+/**
+ * menu signal handler for activation on debug box tree item
+ */
+MENUHANDLER(debugboxtree, SAVEBOXTREE_BUTTON);
 
-MULTIHANDLER(back)
-{
-       struct browser_window *bw =
-                       nsgtk_get_browser_window(g->top_level);
+/**
+ * menu signal handler for activation on debug dom tree item
+ */
+MENUHANDLER(debugdomtree, SAVEDOMTREE_BUTTON);
 
-       if ((bw == NULL) || (!browser_window_history_back_available(bw)))
-               return TRUE;
+/**
+ * menu signal handler for activation on stop item
+ */
+MENUHANDLER(stop, STOP_BUTTON);
 
-       /* clear potential search effects */
-       browser_window_search_clear(bw);
+/**
+ * menu signal handler for activation on reload item
+ */
+MENUHANDLER(reload, RELOAD_BUTTON);
 
-       browser_window_history_back(bw, false);
-       scaffolding_update_context(g);
+/**
+ * menu signal handler for activation on back item
+ */
+MENUHANDLER(back, BACK_BUTTON);
 
-       return TRUE;
-}
 
 MULTIHANDLER(forward)
 {
@@ -1675,39 +1561,21 @@ void nsgtk_window_set_title(struct gui_window *gw, 
const char *title)
 }
 
 
-
-
-#if 0
-static nserror gui_window_start_throbber(struct gui_window* gw)
-{
-       struct nsgtk_scaffolding *g = nsgtk_get_scaffold(_g);
-       g->buttons[STOP_BUTTON]->sensitivity = true;
-       g->buttons[RELOAD_BUTTON]->sensitivity = false;
-       nsgtk_scaffolding_set_sensitivity(g);
-
-       scaffolding_update_context(g);
-}
-
-static nserror gui_window_stop_throbber(struct gui_window* gw)
+/* exported interface documented in scaffolding.h */
+nserror nsgtk_scaffolding_throbber(struct gui_window* gw, bool active)
 {
-       nserror res;
-       GdkPixbuf *pixbuf;
-       struct nsgtk_scaffolding *g = nsgtk_get_scaffold(_g);
-
-       if (g == NULL) {
-               return;
+       struct nsgtk_scaffolding *gs = nsgtk_get_scaffold(gw);
+       if (active) {
+               gs->menus[STOP_BUTTON].sensitivity = true;
+               gs->menus[RELOAD_BUTTON].sensitivity = false;
+       } else {
+               gs->menus[STOP_BUTTON].sensitivity = false;
+               gs->menus[RELOAD_BUTTON].sensitivity = true;
        }
+       scaffolding_update_context(gs);
 
-
-       if (g->buttons[STOP_BUTTON] != NULL)
-               g->buttons[STOP_BUTTON]->sensitivity = false;
-       if (g->buttons[RELOAD_BUTTON] != NULL)
-               g->buttons[RELOAD_BUTTON]->sensitivity = true;
-
-       nsgtk_scaffolding_set_sensitivity(g);
-
+       return NSERROR_OK;
 }
-#endif
 
 
 static void
diff --git a/frontends/gtk/scaffolding.h b/frontends/gtk/scaffolding.h
index 0f19a24..666bc50 100644
--- a/frontends/gtk/scaffolding.h
+++ b/frontends/gtk/scaffolding.h
@@ -64,6 +64,11 @@ struct nsgtk_scaffolding *nsgtk_new_scaffolding(struct 
gui_window *gw);
 nserror nsgtk_scaffolding_destroy_all(void);
 
 /**
+ * Update scaffolding window when throbber state changes
+ */
+nserror nsgtk_scaffolding_throbber(struct gui_window* gw, bool active);
+
+/**
  * Obtain the most recently used scaffolding element.
  *
  * This allows tabs to be opened in the most recently used window
diff --git a/frontends/gtk/tabs.c b/frontends/gtk/tabs.c
index 04bd69f..3d21c65 100644
--- a/frontends/gtk/tabs.c
+++ b/frontends/gtk/tabs.c
@@ -180,7 +180,7 @@ nsgtk_tab_switch_page_after(GtkNotebook *notebook,
                        srcpage = gtk_notebook_get_nth_page(notebook, 
srcpagenum);
                        gw = g_object_get_data(G_OBJECT(srcpage), "gui_window");
                        if ((gw != NULL) && (nsgtk_get_scaffold(gw) != NULL)) {
-                               error = nsgtk_window_item_activate(gw, 
NEWTAB_BUTTON);
+                               error = nsgtk_window_item_activate(gw, 
NEWTAB_BUTTON);
                                if (error != NSERROR_OK) {
                                        NSLOG(netsurf, INFO,
                                              "Failed to open new tab.");
diff --git a/frontends/gtk/toolbar.c b/frontends/gtk/toolbar.c
index 8fbdfa1..03e07b9 100644
--- a/frontends/gtk/toolbar.c
+++ b/frontends/gtk/toolbar.c
@@ -2820,7 +2820,7 @@ fullscreen_button_clicked_cb(GtkWidget *widget, gpointer 
data)
 
 
 /**
- * handler for full screen tool bar item clicked signal
+ * handler for view source tool bar item clicked signal
  *
  * \param widget The widget the signal is being delivered to.
  * \param data The toolbar context passed when the signal was connected
@@ -2848,6 +2848,172 @@ viewsource_button_clicked_cb(GtkWidget *widget, 
gpointer data)
 
 
 /**
+ * handler for show downloads tool bar item clicked signal
+ *
+ * \param widget The widget the signal is being delivered to.
+ * \param data The toolbar context passed when the signal was connected
+ * \return TRUE
+ */
+static gboolean
+downloads_button_clicked_cb(GtkWidget *widget, gpointer data)
+{
+       GtkWindow *gtkwindow; /* gtk window widget is in */
+       gtkwindow = GTK_WINDOW(gtk_widget_get_ancestor(widget,GTK_TYPE_WINDOW));
+       nsgtk_download_show(gtkwindow);
+       return TRUE;
+}
+
+
+/**
+ * handler for show downloads tool bar item clicked signal
+ *
+ * \param widget The widget the signal is being delivered to.
+ * \param data The toolbar context passed when the signal was connected
+ * \return TRUE
+ */
+static gboolean
+savewindowsize_button_clicked_cb(GtkWidget *widget, gpointer data)
+{
+       GtkWindow *gtkwindow; /* gtk window widget is in */
+       int x,y,w,h;
+       char *choices = NULL;
+
+       gtkwindow = GTK_WINDOW(gtk_widget_get_ancestor(widget,GTK_TYPE_WINDOW));
+
+       gtk_window_get_position(gtkwindow, &x, &y);
+       gtk_window_get_size(gtkwindow, &w, &h);
+
+       nsoption_set_int(window_width, w);
+       nsoption_set_int(window_height, h);
+       nsoption_set_int(window_x, x);
+       nsoption_set_int(window_y, y);
+
+       netsurf_mkpath(&choices, NULL, 2, nsgtk_config_home, "Choices");
+       if (choices != NULL) {
+               nsoption_write(choices, NULL, NULL);
+               free(choices);
+       }
+
+       return TRUE;
+}
+
+
+/**
+ * handler for show downloads tool bar item clicked signal
+ *
+ * \param widget The widget the signal is being delivered to.
+ * \param data The toolbar context passed when the signal was connected
+ * \return TRUE
+ */
+static gboolean
+toggledebugging_button_clicked_cb(GtkWidget *widget, gpointer data)
+{
+       struct nsgtk_toolbar *tb = (struct nsgtk_toolbar *)data;
+       struct browser_window *bw;
+
+       bw = tb->get_bw(tb->get_bw_ctx);
+
+       browser_window_debug(bw, CONTENT_DEBUG_REDRAW);
+
+       nsgtk_reflow_all_windows();
+
+       return TRUE;
+
+}
+
+
+/**
+ * handler for debug box tree tool bar item clicked signal
+ *
+ * \param widget The widget the signal is being delivered to.
+ * \param data The toolbar context passed when the signal was connected
+ * \return TRUE
+ */
+static gboolean
+debugboxtree_button_clicked_cb(GtkWidget *widget, gpointer data)
+{
+       struct nsgtk_toolbar *tb = (struct nsgtk_toolbar *)data;
+       struct browser_window *bw;
+       gchar *fname;
+       gint handle;
+       FILE *f;
+
+       handle = g_file_open_tmp("nsgtkboxtreeXXXXXX", &fname, NULL);
+       if ((handle == -1) || (fname == NULL)) {
+               return TRUE;
+       }
+       close(handle); /* in case it was binary mode */
+
+       /* save data to temporary file */
+       f = fopen(fname, "w");
+       if (f == NULL) {
+               nsgtk_warning("Error saving box tree dump.",
+                             "Unable to open file for writing.");
+               unlink(fname);
+               return TRUE;
+       }
+
+       bw = tb->get_bw(tb->get_bw_ctx);
+
+       browser_window_debug_dump(bw, f, CONTENT_DEBUG_RENDER);
+
+       fclose(f);
+
+       nsgtk_viewfile("Box Tree Debug", "boxtree", fname);
+
+       g_free(fname);
+
+       return TRUE;
+}
+
+
+/**
+ * handler for debug dom tree tool bar item clicked signal
+ *
+ * \param widget The widget the signal is being delivered to.
+ * \param data The toolbar context passed when the signal was connected
+ * \return TRUE
+ */
+static gboolean
+debugdomtree_button_clicked_cb(GtkWidget *widget, gpointer data)
+{
+       struct nsgtk_toolbar *tb = (struct nsgtk_toolbar *)data;
+       struct browser_window *bw;
+       gchar *fname;
+       gint handle;
+       FILE *f;
+
+       handle = g_file_open_tmp("nsgtkdomtreeXXXXXX", &fname, NULL);
+       if ((handle == -1) || (fname == NULL)) {
+               return TRUE;
+       }
+       close(handle); /* in case it was binary mode */
+
+       /* save data to temporary file */
+       f = fopen(fname, "w");
+       if (f == NULL) {
+               nsgtk_warning("Error saving box tree dump.",
+                             "Unable to open file for writing.");
+               unlink(fname);
+               return TRUE;
+       }
+
+       bw = tb->get_bw(tb->get_bw_ctx);
+
+       browser_window_debug_dump(bw, f, CONTENT_DEBUG_DOM);
+
+       fclose(f);
+
+       nsgtk_viewfile("DOM Tree Debug", "domtree", fname);
+
+       g_free(fname);
+
+       return TRUE;
+
+}
+
+
+/**
  * create a toolbar item
  *
  * create a toolbar item and set up its default handlers
diff --git a/frontends/gtk/toolbar_items.h b/frontends/gtk/toolbar_items.h
index ecdd978..909b00d 100644
--- a/frontends/gtk/toolbar_items.h
+++ b/frontends/gtk/toolbar_items.h
@@ -63,7 +63,7 @@ typedef enum {
        GLOBALHISTORY_BUTTON,
        ADDBOOKMARKS_BUTTON,
        SHOWBOOKMARKS_BUTTON,
-       SHOWCOOKIES_BUTTON,
+       SHOWCOOKIES_BUTTON,
        OPENLOCATION_BUTTON,
        NEXTTAB_BUTTON,
        PREVTAB_BUTTON,
@@ -122,11 +122,11 @@ TOOLBAR_ITEM(ZOOMMINUS_BUTTON, zoomminus, true, 
zoomminus_button_clicked_cb)
 TOOLBAR_ITEM(ZOOMNORMAL_BUTTON, zoomnormal, true, zoomnormal_button_clicked_cb)
 TOOLBAR_ITEM(FULLSCREEN_BUTTON, fullscreen, true, fullscreen_button_clicked_cb)
 TOOLBAR_ITEM(VIEWSOURCE_BUTTON, viewsource, true, viewsource_button_clicked_cb)
-TOOLBAR_ITEM(DOWNLOADS_BUTTON, downloads, true, NULL)
-TOOLBAR_ITEM(SAVEWINDOWSIZE_BUTTON, savewindowsize, true, NULL)
-TOOLBAR_ITEM(TOGGLEDEBUGGING_BUTTON, toggledebugging, true, NULL)
-TOOLBAR_ITEM(SAVEBOXTREE_BUTTON, debugboxtree, true, NULL)
-TOOLBAR_ITEM(SAVEDOMTREE_BUTTON, debugdomtree, true, NULL)
+TOOLBAR_ITEM(DOWNLOADS_BUTTON, downloads, true, downloads_button_clicked_cb)
+TOOLBAR_ITEM(SAVEWINDOWSIZE_BUTTON, savewindowsize, true, 
savewindowsize_button_clicked_cb)
+TOOLBAR_ITEM(TOGGLEDEBUGGING_BUTTON, toggledebugging, true, 
toggledebugging_button_clicked_cb)
+TOOLBAR_ITEM(SAVEBOXTREE_BUTTON, debugboxtree, true, 
debugboxtree_button_clicked_cb)
+TOOLBAR_ITEM(SAVEDOMTREE_BUTTON, debugdomtree, true, 
debugdomtree_button_clicked_cb)
 TOOLBAR_ITEM(LOCALHISTORY_BUTTON, localhistory, true, 
localhistory_button_clicked_cb)
 TOOLBAR_ITEM(GLOBALHISTORY_BUTTON, globalhistory, true, NULL)
 TOOLBAR_ITEM(ADDBOOKMARKS_BUTTON, addbookmarks, true, NULL)
diff --git a/frontends/gtk/window.c b/frontends/gtk/window.c
index 015b5fa..666e6ea 100644
--- a/frontends/gtk/window.c
+++ b/frontends/gtk/window.c
@@ -1360,12 +1360,12 @@ gui_window_event(struct gui_window *gw, enum 
gui_window_event event)
 
        case GW_EVENT_START_THROBBER:
                nsgtk_toolbar_throbber(gw->toolbar, true);
-               /** \todo menu sensitivity for back/reload */
+               nsgtk_scaffolding_throbber(gw, true);
                break;
 
        case GW_EVENT_STOP_THROBBER:
                nsgtk_toolbar_throbber(gw->toolbar, false);
-               /** \todo menu sensitivity for back/reload */
+               nsgtk_scaffolding_throbber(gw, false);
                break;
 
        default:


-- 
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