summaryrefslogtreecommitdiff
path: root/amiga/gui.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2014-11-16 16:40:41 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2014-11-16 16:40:41 +0000
commit0966b8097ccd89c65989b76e4a960e7ecb788892 (patch)
treef09361109029ac8d22f25d8f318ae9a858e8aa8c /amiga/gui.c
parent20705189b9bb5e034544800dba8e16517a7d8ba3 (diff)
downloadnetsurf-0966b8097ccd89c65989b76e4a960e7ecb788892.tar.gz
netsurf-0966b8097ccd89c65989b76e4a960e7ecb788892.tar.bz2
Allocate screen title when first needed and keep it private to amiga/gui.c
Diffstat (limited to 'amiga/gui.c')
-rw-r--r--amiga/gui.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/amiga/gui.c b/amiga/gui.c
index 680b83624..dd4daafac 100644
--- a/amiga/gui.c
+++ b/amiga/gui.c
@@ -175,6 +175,7 @@ static int screen_signal = -1;
static ULONG sz_gad_width = 0;
static ULONG sz_gad_height = 0;
static bool win_destroyed;
+static STRPTR nsscreentitle;
static struct MsgPort *applibport = NULL;
static ULONG applibsig = 0;
@@ -473,6 +474,15 @@ colour_option_from_pen(UWORD pen,
return NSERROR_OK;
}
+/* exported interface documented in amiga/gui.h */
+STRPTR ami_gui_get_screen_title(void)
+{
+ if(nsscreentitle == NULL)
+ nsscreentitle = ASPrintf("NetSurf %s", netsurf_version);
+
+ return nsscreentitle;
+}
+
static void ami_set_screen_defaults(struct Screen *screen)
{
nsoption_default_set_int(window_x, 0);
@@ -702,7 +712,7 @@ static void ami_openscreen(void)
LOG(("Screen signal %d", screen_signal));
scrn = OpenScreenTags(NULL,
SA_DisplayID, id,
- SA_Title, nsscreentitle,
+ SA_Title, ami_gui_get_screen_title(),
SA_Type, PUBLICSCREEN,
SA_PubName, "NetSurf",
SA_PubSig, screen_signal,
@@ -2971,7 +2981,7 @@ static void gui_quit(void)
LOG(("Closing screen"));
ami_gui_close_screen(scrn, locked_screen, FALSE);
- FreeVec(nsscreentitle);
+ if(nsscreentitle) FreeVec(nsscreentitle);
LOG(("Freeing menu items"));
ami_context_menu_free();
@@ -3643,7 +3653,7 @@ gui_window_create(struct browser_window *bw,
}
g->shared->objects[OID_MAIN] = WindowObject,
- WA_ScreenTitle,nsscreentitle,
+ WA_ScreenTitle, ami_gui_get_screen_title(),
WA_Activate, TRUE,
WA_DepthGadget, TRUE,
WA_DragBar, TRUE,
@@ -3856,7 +3866,7 @@ gui_window_create(struct browser_window *bw,
g->tab_node = NULL;
g->shared->objects[OID_MAIN] = WindowObject,
- WA_ScreenTitle,nsscreentitle,
+ WA_ScreenTitle, ami_gui_get_screen_title(),
WA_Activate, TRUE,
WA_DepthGadget, FALSE,
WA_DragBar, FALSE,
@@ -4170,7 +4180,7 @@ static void gui_window_set_title(struct gui_window *g, const char *title)
{
if(g->shared->wintitle) free(g->shared->wintitle);
g->shared->wintitle = strdup(utf8title);
- SetWindowTitles(g->shared->win, g->shared->wintitle, nsscreentitle);
+ SetWindowTitles(g->shared->win, g->shared->wintitle, ami_gui_get_screen_title());
}
}
}
@@ -5399,7 +5409,6 @@ int main(int argc, char** argv)
ami_init_mouse_pointers();
win_destroyed = false;
- nsscreentitle = ASPrintf("NetSurf %s",netsurf_version);
ami_font_setdevicedpi(0); /* for early font requests, eg treeview init */
window_list = NewObjList();