From 878255817e84268bd973678331d245848c01bc1f Mon Sep 17 00:00:00 2001 From: cheptil Date: Thu, 24 Mar 2016 19:13:24 +0000 Subject: [PATCH] Fix bug with links in h tags and symbols width git-svn-id: svn://kolibrios.org@6372 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/cmm/aelia/prepare_page.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/programs/cmm/aelia/prepare_page.h b/programs/cmm/aelia/prepare_page.h index 78e7903ba7..fe04c5a372 100644 --- a/programs/cmm/aelia/prepare_page.h +++ b/programs/cmm/aelia/prepare_page.h @@ -77,7 +77,7 @@ void ParceHtml(byte draw) dword DOM_start, DOM_end, DOM_len, DOM_pos; int stroka_x = HTML_PADDING_X; int stroka_y = HTML_PADDING_Y; -int size_pt_change; +int size_pt_change = 0; dword line_break; byte ch, zeroch; _text text; @@ -119,7 +119,7 @@ _tag tag; } if (draw==true) { if (style.a) { - link.add(stroka_x,stroka_y,get_label_len(text.start),list.item_h,text.start," "); + link.add(stroka_x,stroka_y + size_pt_change,get_label_len(text.start),list.item_h,text.start," "); label_draw_bar(stroka_x, stroka_y+label.size.pt+1, get_label_len(text.start), style.color); } WriteTextIntoBuf(stroka_x, stroka_y, style.color, text.start); @@ -132,7 +132,7 @@ _tag tag; } if (draw==true) { if (style.a) { - link.add(stroka_x,stroka_y,get_label_len(text.start),list.item_h,text.start," "); + link.add(stroka_x,stroka_y + size_pt_change,get_label_len(text.start),list.item_h,text.start," "); label_draw_bar(stroka_x, stroka_y+label.size.pt+1, get_label_len(text.start), style.color); } WriteTextIntoBuf(stroka_x, stroka_y, style.color, text.start); @@ -169,10 +169,12 @@ _tag tag; size_pt_change = -4; } label.size.pt += size_pt_change; + get_label_symbols_size(); if (size_pt_change > 0) { - stroka_y+= list.item_h; - } else { - stroka_y+= list.item_h - size_pt_change; + stroka_y+= list.item_h;//что если будет очень длинная строка в теге? + } else {//коммент выше и коммент ниже связаны + stroka_y+= list.item_h - size_pt_change;//не очень понятна логика этого места + size_pt_change = 0; } stroka_x = HTML_PADDING_X; continue;