diff --git a/code/nel/include/nel/gui/group_html.h b/code/nel/include/nel/gui/group_html.h
index ae21ad9c6..fb2f5b372 100644
--- a/code/nel/include/nel/gui/group_html.h
+++ b/code/nel/include/nel/gui/group_html.h
@@ -572,7 +572,15 @@ namespace NLGUI
return "";
return _LinkClass.back().c_str();
}
-
+
+ std::vector _BlockLevelElement;
+ inline const bool isBlockLevelElement() const
+ {
+ if (_BlockLevelElement.empty())
+ return false;
+ return _BlockLevelElement.back();
+ }
+
// Divs (i.e. interface group)
std::vector _Divs;
inline CInterfaceGroup *getDiv() const
diff --git a/code/nel/src/gui/group_html.cpp b/code/nel/src/gui/group_html.cpp
index 8d43dbc02..0396051ac 100644
--- a/code/nel/src/gui/group_html.cpp
+++ b/code/nel/src/gui/group_html.cpp
@@ -1145,6 +1145,7 @@ namespace NLGUI
case HTML_DIV:
{
+ _BlockLevelElement.push_back(true);
registerAnchorName(MY_HTML_DIV);
if (present[MY_HTML_DIV_NAME] && value[MY_HTML_DIV_NAME])
@@ -1204,6 +1205,8 @@ namespace NLGUI
inst->setPosRef(Hotspot_TL);
inst->setParentPosRef(Hotspot_TL);
getDiv()->addGroup(inst);
+
+ _BlockLevelElement.back() = false;
}
else
{
@@ -1220,6 +1223,11 @@ namespace NLGUI
}
}
}
+
+ if (isBlockLevelElement())
+ {
+ newParagraph(0);
+ }
}
break;
@@ -2118,12 +2126,20 @@ namespace NLGUI
popIfNotEmpty (_GlobalColor);
endParagraph();
break;
+ case HTML_P:
+ endParagraph();
+ break;
case HTML_PRE:
popIfNotEmpty (_PRE);
break;
case HTML_DIV:
+ if (isBlockLevelElement())
+ {
+ endParagraph();
+ }
_DivName = "";
popIfNotEmpty (_Divs);
+ popIfNotEmpty (_BlockLevelElement);
break;
case HTML_TABLE:
@@ -4138,9 +4154,7 @@ namespace NLGUI
group->setSizeRef(CInterfaceElement::width);
// Compute begin space between paragraph and tables
-
// * If first in group, no begin space
- // * If behind a paragraph, take the biggest begin space between the previous paragraph and current one.
// Pointer on the current paragraph (can be a table too)
CGroupParagraph *p = dynamic_cast(group);
@@ -4162,11 +4176,6 @@ namespace NLGUI
group->setParentPos(groups.back());
group->setPosRef(Hotspot_TL);
group->setParentPosRef(Hotspot_BL);
-
- // Begin space for previous paragraph
- CGroupParagraph *previous = dynamic_cast(groups.back());
- if (previous)
- beginSpace = std::max(beginSpace, previous->getTopSpace());
}
// Set the begin space
diff --git a/code/ryzom/client/src/interface_v3/chat_text_manager.cpp b/code/ryzom/client/src/interface_v3/chat_text_manager.cpp
index 0496f547e..750630a17 100644
--- a/code/ryzom/client/src/interface_v3/chat_text_manager.cpp
+++ b/code/ryzom/client/src/interface_v3/chat_text_manager.cpp
@@ -232,4 +232,5 @@ void CChatTextManager::reset ()
_TextFontSize = NULL;
_TextMultilineSpace = NULL;
_TextShadowed = NULL;
+ _ShowTimestamps = NULL;
}