summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2020-05-23 01:02:09 +0100
committerChris Young <chris@unsatisfactorysoftware.co.uk>2020-05-23 01:02:09 +0100
commit3f84dba7797c33e70b87d0f6c7b8f058ffc45593 (patch)
treecace55492451f68cad9c5376ff103058e49f550b
parentdc5cae7306068596e7ec0cb5d01820e93d351be4 (diff)
downloadnetsurf-3f84dba7797c33e70b87d0f6c7b8f058ffc45593.tar.gz
netsurf-3f84dba7797c33e70b87d0f6c7b8f058ffc45593.tar.bz2
Amiga: fix an issue where the page info icon was not updating correctly
-rw-r--r--frontends/amiga/gui.c98
1 files changed, 51 insertions, 47 deletions
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index 698c2c775..e4dca8c51 100644
--- a/frontends/amiga/gui.c
+++ b/frontends/amiga/gui.c
@@ -3253,6 +3253,56 @@ static void ami_gui_appicon_remove(struct gui_window_2 *gwin)
}
}
+static nserror gui_page_info_change(struct gui_window *gw)
+{
+ int bm_idx;
+ browser_window_page_info_state pistate;
+ struct gui_window_2 *gwin = ami_gui_get_gui_window_2(gw);
+ struct browser_window *bw = ami_gui_get_browser_window(gw);
+
+ /* if this isn't the visible tab, don't do anything */
+ if((gwin == NULL) || (gwin->gw != gw)) return NSERROR_OK;
+
+ pistate = browser_window_get_page_info_state(bw);
+
+ switch(pistate) {
+ case PAGE_STATE_INTERNAL:
+ bm_idx = GID_PAGEINFO_INTERNAL_BM;
+ break;
+
+ case PAGE_STATE_LOCAL:
+ bm_idx = GID_PAGEINFO_LOCAL_BM;
+ break;
+
+ case PAGE_STATE_INSECURE:
+ bm_idx = GID_PAGEINFO_INSECURE_BM;
+ break;
+
+ case PAGE_STATE_SECURE_OVERRIDE:
+ bm_idx = GID_PAGEINFO_WARNING_BM;
+ break;
+
+ case PAGE_STATE_SECURE_ISSUES:
+ bm_idx = GID_PAGEINFO_WARNING_BM;
+ break;
+
+ case PAGE_STATE_SECURE:
+ bm_idx = GID_PAGEINFO_SECURE_BM;
+ break;
+
+ default:
+ bm_idx = GID_PAGEINFO_INTERNAL_BM;
+ break;
+ }
+
+ RefreshSetGadgetAttrs((struct Gadget *)gwin->objects[GID_PAGEINFO], gwin->win, NULL,
+ BUTTON_RenderImage, gwin->objects[bm_idx],
+ GA_HintInfo, gwin->helphints[bm_idx],
+ TAG_DONE);
+
+ return NSERROR_OK;
+}
+
static void ami_handle_appmsg(void)
{
struct AppMessage *appmsg;
@@ -3605,6 +3655,7 @@ static void ami_switch_tab(struct gui_window_2 *gwin, bool redraw)
ami_throbber_redraw_schedule(0, gwin->gw);
gui_window_set_icon(gwin->gw, gwin->gw->favicon);
+ gui_page_info_change(gwin->gw);
}
ami_gui_free_space_box(bbox);
@@ -6088,53 +6139,6 @@ static void gui_window_new_content(struct gui_window *g)
ami_gui_scroller_update(g->shared);
}
-static nserror gui_page_info_change(struct gui_window *gw)
-{
- int bm_idx;
- browser_window_page_info_state pistate;
- struct gui_window_2 *gwin = ami_gui_get_gui_window_2(gw);
- struct browser_window *bw = ami_gui_get_browser_window(gw);
-
- pistate = browser_window_get_page_info_state(bw);
-
- switch(pistate) {
- case PAGE_STATE_INTERNAL:
- bm_idx = GID_PAGEINFO_INTERNAL_BM;
- break;
-
- case PAGE_STATE_LOCAL:
- bm_idx = GID_PAGEINFO_LOCAL_BM;
- break;
-
- case PAGE_STATE_INSECURE:
- bm_idx = GID_PAGEINFO_INSECURE_BM;
- break;
-
- case PAGE_STATE_SECURE_OVERRIDE:
- bm_idx = GID_PAGEINFO_WARNING_BM;
- break;
-
- case PAGE_STATE_SECURE_ISSUES:
- bm_idx = GID_PAGEINFO_WARNING_BM;
- break;
-
- case PAGE_STATE_SECURE:
- bm_idx = GID_PAGEINFO_SECURE_BM;
- break;
-
- default:
- bm_idx = GID_PAGEINFO_INTERNAL_BM;
- break;
- }
-
- RefreshSetGadgetAttrs((struct Gadget *)gwin->objects[GID_PAGEINFO], gwin->win, NULL,
- BUTTON_RenderImage, gwin->objects[bm_idx],
- GA_HintInfo, gwin->helphints[bm_idx],
- TAG_DONE);
-
- return NSERROR_OK;
-}
-
static bool gui_window_drag_start(struct gui_window *g, gui_drag_type type,
const struct rect *rect)
{