From 77e519052353ecaede4f529f58e0e83207fb7b8c Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Tue, 31 Jul 2012 14:44:11 +0000 Subject: [PATCH] HTMLv 0.97 git-svn-id: svn://kolibrios.org@2895 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/network/htmlv/browser/HTMLv.c | 20 ++++++++++--------- programs/network/htmlv/browser/History.txt | 7 +++++-- programs/network/htmlv/browser/TWB.h | 14 ++++++++----- .../htmlv/browser/include/acid_0.1.htm | 2 ++ 4 files changed, 27 insertions(+), 16 deletions(-) diff --git a/programs/network/htmlv/browser/HTMLv.c b/programs/network/htmlv/browser/HTMLv.c index 38b99f5a50..49f6a1f972 100644 --- a/programs/network/htmlv/browser/HTMLv.c +++ b/programs/network/htmlv/browser/HTMLv.c @@ -52,6 +52,7 @@ void main() int btn; byte key; int half_scroll_size; + int scroll_used=0; mem_Init(); load_dll2(libio, #libio_init,1); @@ -60,7 +61,7 @@ void main() load_dll2(#abox_lib, #boxlib_init,0); //load_dll2(libtruetype, #truetype,0); - if (!URL) strcpy(#URL, "/sys/index.htm"); + if (!URL) strcpy(#URL, "/sys/home.htm"); strcpy(#editURL, #URL); Form.width=WIN_W; @@ -115,18 +116,19 @@ void main() break; } - IF (lines.all=WB1.width-14) && (m.x<=WB1.width+6) - && (m.y>WB1.top+16) && (m.ylines.visible) while (m.lkm) + if (!m.lkm) scroll_used=0; + if (m.x>=WB1.width-14) && (m.x<=WB1.width+6) && (m.y>WB1.top+16) + && (m.ylines.visible) && (m.lkm) + scroll_used=1; + + if (scroll_used) { + half_scroll_size = WB1.height - 16 * lines.visible / lines.all - 3 /2; IF (half_scroll_size+WB1.top>m.y) || (m.y<0) || (m.y>4000) m.y=half_scroll_size+WB1.top; //если курсор над окном btn=lines.first; //сохраняем старое количество lines.first = m.y -half_scroll_size -WB1.top * lines.all / WB1.height; - IF (lines.visible+lines.first>lines.all) lines.first=lines.all-lines.visible; - IF (btn<>lines.first) WB1.ParseHTML(buf); //чтоб лишний раз не перерисовывать - m.get(); + if (lines.visible+lines.first>lines.all) lines.first=lines.all-lines.visible; + if (btn<>lines.first) WB1.ParseHTML(buf); //чтоб лишний раз не перерисовывать } break; diff --git a/programs/network/htmlv/browser/History.txt b/programs/network/htmlv/browser/History.txt index 20bf5eea66..0093d1a05a 100644 --- a/programs/network/htmlv/browser/History.txt +++ b/programs/network/htmlv/browser/History.txt @@ -1,7 +1,10 @@ -16.07.12 - 0.96d +16.07.12 - 0.97 - небольшие улучшения в обработке ссылок и изображений; - включение обработки разрывов строк через меню; -- поддержка цветов вида #abc, улучшения в обработке цветов. +- поддержка цветов вида #abc, улучшения в обработке цветов; +- пропадали изображения при начале загрузки страницы; +- исправлен баг 100% загрузки процессора при использовании + скролла (спасибо hidnplayer). 14.07.12 - 0.96 - исправлен баг со строкой адреса diff --git a/programs/network/htmlv/browser/TWB.h b/programs/network/htmlv/browser/TWB.h index 232f81c800..1c752a4057 100644 --- a/programs/network/htmlv/browser/TWB.h +++ b/programs/network/htmlv/browser/TWB.h @@ -8,7 +8,7 @@ dword char download_path[]="/rd/1/.download"; char search_path[]="http://nigma.ru/index.php?s="; -char version[]=" Text-based Browser 0.96d"; +char version[]=" Text-based Browser 0.97"; struct TWebBrowser { @@ -205,10 +205,13 @@ char *ABSOLUTE_LINKS[]={ "http:", "mailto:", "ftp:", "/sys/", "/rd/", "/fd/", "/ //dword TWebBrowser::GetNewUrl(dword CUR_URL, NEW_URL){ void TWebBrowser::GetNewUrl(){ - int i; + int i, len; for (i=0; ABSOLUTE_LINKS[i]; i++) - if (!strcmpn(#URL, ABSOLUTE_LINKS[i], strlen(ABSOLUTE_LINKS[i]))) return; + { + len=strlen(ABSOLUTE_LINKS[i]); + if (!strcmpn(#URL, ABSOLUTE_LINKS[i], len)) return; + } IF (!strcmpn(#URL,"./", 2)) strcpy(#URL, #URL+2); //игнорим :) if (URL[0] == '/') strcpy(#URL, #URL+1); @@ -768,8 +771,9 @@ void TWebBrowser::WhatTextStyle(int left1, top1, width1) { IMG_TAG: if (!strcmp(#parametr,"src=")) //надо объединить с GetNewUrl() { - if (!strcmpn(#URL, "http:", 5)) || (!strcmpn(#options, "http:", 5)) return; - strcpy(#temp, BrowserHistory.CurrentUrl()); //достаём адрес текущей страницы + if (downloader_id!=0) strcpy(#temp, #history_list[history_current-1].Item); + else strcpy(#temp, BrowserHistory.CurrentUrl()); //достаём адрес текущей страницы + if (!strcmpn(#temp, "http:", 5)) || (!strcmpn(#options, "http:", 5)) return; temp[strrchr(#temp, '/')] = 0x00; //обрезаем её урл до последнего / strcat(#temp, #options); image=load_image(#temp); diff --git a/programs/network/htmlv/browser/include/acid_0.1.htm b/programs/network/htmlv/browser/include/acid_0.1.htm index 027a8e19c7..70131954ca 100644 --- a/programs/network/htmlv/browser/include/acid_0.1.htm +++ b/programs/network/htmlv/browser/include/acid_0.1.htm @@ -59,6 +59,8 @@ Незакрытый тег а - Index.htm
Kernel.mnt
index.htm#2.1.4
+http://bash.im
+Mail to leency
#2.1.4
Фоновая картинка