diff --git a/Docs/BUILDING-GTK b/Docs/BUILDING-GTK index 01f46320b..16b15a4af 100644 --- a/Docs/BUILDING-GTK +++ b/Docs/BUILDING-GTK @@ -66,9 +66,11 @@ Debian-like OS: - $ apt-get install libglade2-dev libcurl3-dev libmng-dev + $ apt-get install libgtk2.0-dev libcurl3-dev libmng-dev $ apt-get install librsvg2-dev liblcms1-dev libjpeg-dev + If you want to build with gtk 3 replace libgtk2.0-dev with libgtk-3-dev + Recent OS versions might need libcurl4-dev instead of libcurl3-dev but note that when it has not been built with OpenSSL, the SSL_CTX is not available and results that certification details won't be presented in case @@ -82,8 +84,8 @@ Fedora: - $ yum install libglade2-devel curl-devel libmng-devel - $ yum install librsvg2-devel lcms-devel + $ yum install curl-devel libmng-devel + $ yum install librsvg2-devel lcms-devel expat-devel Other: diff --git a/amiga/gui_options.c b/amiga/gui_options.c index e436cd2e9..a1bd2914b 100755 --- a/amiga/gui_options.c +++ b/amiga/gui_options.c @@ -96,6 +96,7 @@ enum GID_OPTS_PROXY_PORT, GID_OPTS_PROXY_USER, GID_OPTS_PROXY_PASS, + GID_OPTS_PROXY_BYPASS, GID_OPTS_FETCHMAX, GID_OPTS_FETCHHOST, GID_OPTS_FETCHCACHE, @@ -278,6 +279,7 @@ void ami_gui_opts_setup(void) gadlab[GID_OPTS_PROXY_HOST] = (char *)ami_utf8_easy((char *)messages_get("Host")); gadlab[GID_OPTS_PROXY_USER] = (char *)ami_utf8_easy((char *)messages_get("Username")); gadlab[GID_OPTS_PROXY_PASS] = (char *)ami_utf8_easy((char *)messages_get("Password")); + gadlab[GID_OPTS_PROXY_BYPASS] = (char *)ami_utf8_easy((char *)messages_get("ProxyBypass")); gadlab[GID_OPTS_FETCHMAX] = (char *)ami_utf8_easy((char *)messages_get("FetchesMax")); gadlab[GID_OPTS_FETCHHOST] = (char *)ami_utf8_easy((char *)messages_get("FetchesHost")); gadlab[GID_OPTS_FETCHCACHE] = (char *)ami_utf8_easy((char *)messages_get("FetchesCached")); @@ -401,7 +403,7 @@ void ami_gui_opts_open(void) ULONG screenmodeid = 0; ULONG proxytype = 0; BOOL screenmodedisabled = FALSE, screennamedisabled = FALSE; - BOOL proxyhostdisabled = TRUE, proxyauthdisabled = TRUE; + BOOL proxyhostdisabled = TRUE, proxyauthdisabled = TRUE, proxybypassdisabled = FALSE; BOOL disableanims, animspeeddisabled = FALSE, acceptlangdisabled = FALSE; BOOL scaleselected = nsoption_bool(scale_quality), scaledisabled = FALSE; BOOL download_notify_disabled = FALSE; @@ -441,7 +443,7 @@ void ami_gui_opts_open(void) screenmodeid = strtoul(nsoption_charp(screen_modeid),NULL,0); } - if(nsoption_bool(http_proxy)) + if(nsoption_bool(http_proxy) == true) { proxytype = nsoption_int(http_proxy_auth) + 1; switch(nsoption_int(http_proxy_auth)) @@ -453,6 +455,8 @@ void ami_gui_opts_open(void) proxyhostdisabled = FALSE; break; } + } else { + proxybypassdisabled = TRUE; } sprintf(animspeed,"%.2f",(float)(nsoption_int(minimum_gif_delay)/100.0)); @@ -819,6 +823,16 @@ void ami_gui_opts_open(void) CHILD_Label, LabelObject, LABEL_Text, gadlab[GID_OPTS_PROXY_PASS], LabelEnd, + LAYOUT_AddChild, gow->objects[GID_OPTS_PROXY_BYPASS] = StringObject, + GA_ID, GID_OPTS_PROXY_BYPASS, + GA_RelVerify, TRUE, + GA_Disabled, proxybypassdisabled, + STRINGA_TextVal, nsoption_charp(http_proxy_noproxy), + STRINGA_BufferPos, 0, + StringEnd, + CHILD_Label, LabelObject, + LABEL_Text, gadlab[GID_OPTS_PROXY_BYPASS], + LabelEnd, LayoutEnd, // proxy CHILD_WeightedHeight, 0, LAYOUT_AddChild,VGroupObject, @@ -1642,6 +1656,9 @@ void ami_gui_opts_use(bool save) GetAttr(STRINGA_TextVal,gow->objects[GID_OPTS_PROXY_PASS],(ULONG *)&data); nsoption_set_charp(http_proxy_auth_pass, (char *)strdup((char *)data)); + GetAttr(STRINGA_TextVal,gow->objects[GID_OPTS_PROXY_BYPASS],(ULONG *)&data); + nsoption_set_charp(http_proxy_noproxy, (char *)strdup((char *)data)); + GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FETCHMAX],(ULONG *)&nsoption_int(max_fetchers)); GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FETCHHOST],(ULONG *)&nsoption_int(max_fetchers_per_host)); GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FETCHCACHE],(ULONG *)&nsoption_int(max_cached_fetch_handles)); @@ -2013,6 +2030,8 @@ BOOL ami_gui_opts_event(void) gow->win,NULL, GA_Disabled, TRUE, TAG_DONE); RefreshSetGadgetAttrs((struct Gadget *)gow->objects[GID_OPTS_PROXY_PASS], gow->win,NULL, GA_Disabled, TRUE, TAG_DONE); + RefreshSetGadgetAttrs((struct Gadget *)gow->objects[GID_OPTS_PROXY_BYPASS], + gow->win,NULL, GA_Disabled, TRUE, TAG_DONE); break; case 1: RefreshSetGadgetAttrs((struct Gadget *)gow->objects[GID_OPTS_PROXY_HOST], @@ -2024,6 +2043,8 @@ BOOL ami_gui_opts_event(void) gow->win,NULL, GA_Disabled, TRUE, TAG_DONE); RefreshSetGadgetAttrs((struct Gadget *)gow->objects[GID_OPTS_PROXY_PASS], gow->win,NULL, GA_Disabled, TRUE, TAG_DONE); + RefreshSetGadgetAttrs((struct Gadget *)gow->objects[GID_OPTS_PROXY_BYPASS], + gow->win,NULL, GA_Disabled, FALSE, TAG_DONE); break; case 2: @@ -2037,6 +2058,8 @@ BOOL ami_gui_opts_event(void) gow->win,NULL, GA_Disabled, FALSE, TAG_DONE); RefreshSetGadgetAttrs((struct Gadget *)gow->objects[GID_OPTS_PROXY_PASS], gow->win,NULL, GA_Disabled, FALSE, TAG_DONE); + RefreshSetGadgetAttrs((struct Gadget *)gow->objects[GID_OPTS_PROXY_BYPASS], + gow->win,NULL, GA_Disabled, FALSE, TAG_DONE); break; } break; diff --git a/amiga/menu.c b/amiga/menu.c index d5e67b9f1..3e9ac9708 100644 --- a/amiga/menu.c +++ b/amiga/menu.c @@ -159,32 +159,6 @@ static void ami_menu_alloc_item(struct gui_window_2 *gwin, int num, UBYTE type, } } - if((GadToolsBase->lib_Version > 53) || - ((GadToolsBase->lib_Version == 53) && (GadToolsBase->lib_Revision >= 5))) { - /* GadTools 53.5+ only. For now we will only create the menu - using label.image if there's a bitmap associated with the item. */ - if(bm != NULL) { - struct DrawInfo *dri = GetScreenDrawInfo(scrn); - struct BitMap *menu_icon = ami_bitmap_get_native(bm, 16, 16, NULL); - - gwin->menuobj[num] = LabelObject, - LABEL_DrawInfo, dri, - LABEL_DisposeImage, TRUE, - LABEL_Image, BitMapObject, - BITMAP_Screen, scrn, - BITMAP_BitMap, menu_icon, - BITMAP_Width, 16, - BITMAP_Height, 16, - BitMapEnd, - LABEL_Text, gwin->menulab[num], - LabelEnd; - - gwin->menutype[num] |= MENU_IMAGE; - - FreeScreenDrawInfo(scrn, dri); - } - } - if(key) gwin->menukey[num] = key; if(func) gwin->menu_hook[num].h_Entry = (HOOKFUNC)func; if(hookdata) gwin->menu_hook[num].h_Data = hookdata; @@ -218,8 +192,10 @@ void ami_init_menulabs(struct gui_window_2 *gwin) ami_menu_item_project_save, (void *)AMINS_SAVE_TEXT); ami_menu_alloc_item(gwin, M_SAVECOMP, NM_SUB, "SaveCompNS", 0, NULL, ami_menu_item_project_save, (void *)AMINS_SAVE_COMPLETE); +#ifdef WITH_PDF_EXPORT ami_menu_alloc_item(gwin, M_SAVEPDF, NM_SUB, "PDFNS", 0, NULL, ami_menu_item_project_save, (void *)AMINS_SAVE_PDF); +#endif ami_menu_alloc_item(gwin, M_SAVEIFF, NM_SUB, "IFF", 0, NULL, ami_menu_item_project_save, (void *)AMINS_SAVE_IFF); ami_menu_alloc_item(gwin, M_BAR_P2, NM_ITEM, NM_BARLABEL, 0, NULL, NULL, NULL); @@ -343,9 +319,6 @@ struct NewMenu *ami_create_menu(struct gui_window_2 *gwin) if(gwin->menu_hook[i].h_Entry) gwin->menu[i].nm_UserData = &gwin->menu_hook[i]; } -#ifndef WITH_PDF_EXPORT - gwin->menu[M_SAVEPDF].nm_Flags = NM_ITEMDISABLED; -#endif #if defined(WITH_JS) || defined(WITH_MOZJS) gwin->menu[M_JS].nm_Flags = CHECKIT | MENUTOGGLE; if(nsoption_bool(enable_javascript) == true) @@ -492,7 +465,7 @@ void ami_menu_update_checked(struct gui_window_2 *gwin) GetAttr(WINDOW_MenuStrip, gwin->objects[OID_MAIN], (ULONG *)&menustrip); if(!menustrip) return; - +#if defined(WITH_JS) || defined(WITH_MOZJS) if(nsoption_bool(enable_javascript) == true) { if((ItemAddress(menustrip, AMI_MENU_JS)->Flags & CHECKED) == 0) ItemAddress(menustrip, AMI_MENU_JS)->Flags ^= CHECKED; @@ -500,7 +473,7 @@ void ami_menu_update_checked(struct gui_window_2 *gwin) if(ItemAddress(menustrip, AMI_MENU_JS)->Flags & CHECKED) ItemAddress(menustrip, AMI_MENU_JS)->Flags ^= CHECKED; } - +#endif if(nsoption_bool(foreground_images) == true) { if((ItemAddress(menustrip, AMI_MENU_FOREIMG)->Flags & CHECKED) == 0) ItemAddress(menustrip, AMI_MENU_FOREIMG)->Flags ^= CHECKED; diff --git a/amiga/menu.h b/amiga/menu.h index 53c2db5f3..e96fcf0ee 100755 --- a/amiga/menu.h +++ b/amiga/menu.h @@ -41,8 +41,10 @@ enum { M_SAVESRC, M_SAVETXT, M_SAVECOMP, - M_SAVEPDF, M_SAVEIFF, +#ifdef WITH_PDF_EXPORT + M_SAVEPDF, +#endif M_BAR_P2, M_CLOSETAB, M_CLOSEWIN, @@ -108,8 +110,8 @@ enum { /* The Intuition menu numbers of some menus we might need to modify */ #define AMI_MENU_SAVEAS_TEXT FULLMENUNUM(0,4,1) #define AMI_MENU_SAVEAS_COMPLETE FULLMENUNUM(0,4,2) -#define AMI_MENU_SAVEAS_PDF FULLMENUNUM(0,4,3) -#define AMI_MENU_SAVEAS_IFF FULLMENUNUM(0,4,4) +#define AMI_MENU_SAVEAS_IFF FULLMENUNUM(0,4,3) +#define AMI_MENU_SAVEAS_PDF FULLMENUNUM(0,4,4) #define AMI_MENU_CLOSETAB FULLMENUNUM(0,6,0) #define AMI_MENU_CUT FULLMENUNUM(1,0,0) #define AMI_MENU_COPY FULLMENUNUM(1,1,0) diff --git a/css/css.c b/css/css.c index 0410f180d..8f20504bd 100644 --- a/css/css.c +++ b/css/css.c @@ -643,13 +643,10 @@ nserror nscss_import(hlcache_handle *handle, assert(ctx->css->imports[ctx->index].c == handle); switch (event->type) { - case CONTENT_MSG_LOADING: - break; - case CONTENT_MSG_READY: - break; case CONTENT_MSG_DONE: error = nscss_import_complete(ctx); break; + case CONTENT_MSG_ERROR: hlcache_handle_release(handle); ctx->css->imports[ctx->index].c = NULL; @@ -657,9 +654,19 @@ nserror nscss_import(hlcache_handle *handle, error = nscss_import_complete(ctx); /* Already released handle */ break; + + case CONTENT_MSG_LOADING: + case CONTENT_MSG_READY: case CONTENT_MSG_STATUS: + case CONTENT_MSG_REDIRECT: + /* messages content handler will legitamately recive + * but does not need to handle + */ break; + default: + /* all other messages are unexpected and fatal */ + LOG(("Unhandled message type %d", event->type)); assert(0); } diff --git a/render/layout.c b/render/layout.c index 14d06ee5a..fd518d993 100644 --- a/render/layout.c +++ b/render/layout.c @@ -2911,7 +2911,8 @@ bool layout_line(struct box *first, int *width, int *y, if ((d->type == BOX_INLINE && d->inline_end) || d->type == BOX_BR || d->type == BOX_TEXT || - d->type == BOX_INLINE_END) { + d->type == BOX_INLINE_END || + d->object != NULL) { css_fixed value = 0; css_unit unit = CSS_UNIT_PX; switch (css_computed_vertical_align(d->style, &value, diff --git a/resources/FatMessages b/resources/FatMessages index d25af013f..52307835a 100644 --- a/resources/FatMessages +++ b/resources/FatMessages @@ -5475,6 +5475,11 @@ de.all.Proxy:HTTP Proxy fr.all.Proxy:HTTP Proxy it.all.Proxy:Proxy HTTP nl.all.Proxy:HTTP Proxy +en.ami.ProxyBypass:Bypass proxy for +de.ami.ProxyBypass:Bypass proxy for +fr.ami.ProxyBypass:Bypass proxy for +it.ami.ProxyBypass:Bypass proxy for +nl.ami.ProxyBypass:Bypass proxy for en.all.Fetching:Fetching de.all.Fetching:Fetching fr.all.Fetching:Fetching