diff --git a/Makefile b/Makefile index ddce6bf39..2044cd943 100644 --- a/Makefile +++ b/Makefile @@ -604,6 +604,7 @@ clean-builddir: CLEANS += clean-builddir all-program: $(EXETARGET) post-exe + $(call split_install_messages, '[^\.]+', !NetSurf/Resources) .PHONY: testament testament utils/testament.h: diff --git a/amiga/clipboard.c b/amiga/clipboard.c index 7be73bb56..ae4d8a5d1 100644 --- a/amiga/clipboard.c +++ b/amiga/clipboard.c @@ -85,8 +85,9 @@ void ami_clipboard_init(void) void ami_clipboard_free_internal(struct IFFHandle *iffhandle) { + if(iffhandle == NULL) return; if(iffhandle->iff_Stream) CloseClipboard((struct ClipboardHandle *)iffhandle->iff_Stream); - if(iffhandle) FreeIFF(iffhandle); + FreeIFF(iffhandle); } void ami_clipboard_free(void) diff --git a/amiga/dist/NetSurf.guide b/amiga/dist/NetSurf.guide index e38f9f79a..25310bdc1 100755 --- a/amiga/dist/NetSurf.guide +++ b/amiga/dist/NetSurf.guide @@ -124,6 +124,8 @@ There are a couple of Amiga-specific options which can only be changed directly @{b}cairo_renderer@{ub} Set rendering engine. -1 = palette-mapped (set automatically when required), 0 = graphics.library (default), 1 = Cairo/graphics.library mixed, 2 = Full Cairo. @{b}monitor_aspect_x@{ub}/@{b}monitor_aspect_y@{ub} Correct aspect ratio for displays (default of 0 means "assume square pixels"). @{b}screen_compositing@{ub} Use compositing on NetSurf's own screen. 0=disable, 1=enable, 2=default (NB: This is indirectly modified by changing the "simple refresh" option in the GUI) +@{b}resize_with_contents@{ub} Set to 1 to respect GUI prefs' "resize with contents" option. Default is to use old-style "resize on release" +@{b}reformat_delay@{ub} Sets a delay on performing content reformats (eg. if the window has been resized). Set to a higher value to make "resize with contents" more responsive. Defaults to 0 (immediate). @{b}redraw_tile_size_x@{ub}/@{b}redraw_tile_size_y@{ub} Specify the size of the off-screen bitmap. Higher will speed up redraws at the expense of memory. 0 disables tiling (will use a bitmap at least the size of the screen NetSurf is running on) @{b}web_search_width@{ub} Defaults to 0. Larger values will increase the size of the web search gadget next to the URL bar. diff --git a/amiga/gui.c b/amiga/gui.c index 5dcb98fba..bbd52bb10 100644 --- a/amiga/gui.c +++ b/amiga/gui.c @@ -3058,10 +3058,12 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw, char addtab[100],addtab_s[100],addtab_g[100]; char tabthrobber[100]; ULONG refresh_mode = WA_SmartRefresh; + ULONG idcmp_sizeverify = IDCMP_SIZEVERIFY; if (!scrn) ami_openscreenfirst(); if (nsoption_bool(kiosk_mode)) new_tab = false; + if (nsoption_bool(resize_with_contents)) idcmp_sizeverify = 0; bw->scale = 1.0; if(clone) @@ -3305,7 +3307,7 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw, WA_SizeBBottom, TRUE, WA_IDCMP, IDCMP_MENUPICK | IDCMP_MOUSEMOVE | IDCMP_MOUSEBUTTONS | IDCMP_NEWSIZE | - IDCMP_RAWKEY | IDCMP_SIZEVERIFY | + IDCMP_RAWKEY | idcmp_sizeverify | IDCMP_GADGETUP | IDCMP_IDCMPUPDATE | IDCMP_REFRESHWINDOW | IDCMP_ACTIVEWINDOW | IDCMP_EXTENDEDMOUSE, @@ -3897,7 +3899,9 @@ static void ami_redraw_callback(void *p) */ void ami_schedule_redraw(struct gui_window_2 *gwin, bool full_redraw) { - schedule(0, ami_redraw_callback, gwin); + int cs = 0; + if(gwin->bw->reformat_pending) cs = nsoption_int(reformat_delay); + schedule(cs, ami_redraw_callback, gwin); if(full_redraw) gwin->redraw_required = true; } diff --git a/amiga/options.h b/amiga/options.h index dc0274da2..f44456a7f 100644 --- a/amiga/options.h +++ b/amiga/options.h @@ -80,6 +80,8 @@ int cairo_renderer; \ bool direct_render; \ bool window_simple_refresh; \ + bool resize_with_contents; \ + int reformat_delay; \ int redraw_tile_size_x; \ int redraw_tile_size_y; \ int monitor_aspect_x; \ @@ -145,6 +147,8 @@ .cairo_renderer = 0, \ .direct_render = false, \ .window_simple_refresh = false, \ + .resize_with_contents = false, \ + .reformat_delay = 0, \ .redraw_tile_size_x = 0, \ .redraw_tile_size_y = 0, \ .monitor_aspect_x = 0, \ @@ -209,6 +213,8 @@ { "cairo_renderer", OPTION_INTEGER, &nsoptions.cairo_renderer}, \ { "direct_render", OPTION_BOOL, &nsoptions.direct_render}, \ { "window_simple_refresh", OPTION_BOOL, &nsoptions.window_simple_refresh}, \ +{ "resize_with_contents", OPTION_BOOL, &nsoptions.resize_with_contents}, \ +{ "reformat_delay", OPTION_INTEGER, &nsoptions.reformat_delay}, \ { "redraw_tile_size_x", OPTION_INTEGER, &nsoptions.redraw_tile_size_x}, \ { "redraw_tile_size_y", OPTION_INTEGER, &nsoptions.redraw_tile_size_y}, \ { "monitor_aspect_x", OPTION_INTEGER, &nsoptions.monitor_aspect_x}, \ diff --git a/framebuffer/gui.c b/framebuffer/gui.c index a6bbd7107..432c29855 100644 --- a/framebuffer/gui.c +++ b/framebuffer/gui.c @@ -427,12 +427,12 @@ process_cmdline(int argc, char** argv) fename = "sdl"; febpp = 32; - if ((nsoption_int(window_width) != 0) && - (nsoption_int(window_height) != 0)) { - fewidth = nsoption_int(window_width); - feheight = nsoption_int(window_height); - } else { + fewidth = nsoption_int(window_width); + if (fewidth <= 0) { fewidth = 800; + } + feheight = nsoption_int(window_height); + if (feheight <= 0) { feheight = 600; } diff --git a/framebuffer/system_colour.c b/framebuffer/system_colour.c index d4acafc49..18b25eee3 100644 --- a/framebuffer/system_colour.c +++ b/framebuffer/system_colour.c @@ -44,7 +44,7 @@ static struct gui_system_colour_ctx colour_list[] = { }, { "ActiveCaption", SLEN("ActiveCaption"), - 0xffdddddd, + 0xffddddcc, &nsoption_colour(sys_colour_ActiveCaption), NULL }, { @@ -62,13 +62,13 @@ static struct gui_system_colour_ctx colour_list[] = { }, { "ButtonFace", SLEN("ButtonFace"), - 0xffaaaaaa, + 0xffdddddd, &nsoption_colour(sys_colour_ButtonFace), NULL }, { "ButtonHighlight", SLEN("ButtonHighlight"), - 0xffdddddd, + 0xffcccccc, &nsoption_colour(sys_colour_ButtonHighlight), NULL }, { @@ -92,7 +92,7 @@ static struct gui_system_colour_ctx colour_list[] = { }, { "GrayText", SLEN("GrayText"), - 0xffcccccc, + 0xff777777, &nsoption_colour(sys_colour_GrayText), NULL }, { @@ -110,7 +110,7 @@ static struct gui_system_colour_ctx colour_list[] = { }, { "InactiveBorder", SLEN("InactiveBorder"), - 0xffffffff, + 0xff000000, &nsoption_colour(sys_colour_InactiveBorder), NULL }, { diff --git a/gtk/res/de/Messages b/gtk/res/de/Messages new file mode 120000 index 000000000..2f1fc39c3 --- /dev/null +++ b/gtk/res/de/Messages @@ -0,0 +1 @@ +../../../!NetSurf/Resources/de/Messages \ No newline at end of file diff --git a/gtk/res/en/Messages b/gtk/res/en/Messages new file mode 120000 index 000000000..72c9eff90 --- /dev/null +++ b/gtk/res/en/Messages @@ -0,0 +1 @@ +../../../!NetSurf/Resources/en/Messages \ No newline at end of file diff --git a/gtk/res/fr/Messages b/gtk/res/fr/Messages new file mode 120000 index 000000000..a42cf08f4 --- /dev/null +++ b/gtk/res/fr/Messages @@ -0,0 +1 @@ +../../../!NetSurf/Resources/fr/Messages \ No newline at end of file diff --git a/gtk/res/it/Messages b/gtk/res/it/Messages new file mode 120000 index 000000000..d4c5c2956 --- /dev/null +++ b/gtk/res/it/Messages @@ -0,0 +1 @@ +../../../!NetSurf/Resources/it/Messages \ No newline at end of file diff --git a/gtk/res/nl/Messages b/gtk/res/nl/Messages new file mode 120000 index 000000000..d484ebd29 --- /dev/null +++ b/gtk/res/nl/Messages @@ -0,0 +1 @@ +../../../!NetSurf/Resources/nl/Messages \ No newline at end of file