summaryrefslogtreecommitdiff
path: root/plugins/NewStory/src
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2024-03-20 20:38:35 +0300
committerGeorge Hazan <george.hazan@gmail.com>2024-03-20 20:38:35 +0300
commit33aa78b58cd86f9b8e38032ff157ff614c23d73c (patch)
tree026466d6a6f1fa45f010498e9aeba58e3897f670 /plugins/NewStory/src
parent2e98fcfccb79d443911f56c2b5210b5361c65d5c (diff)
various drawing quirks
Diffstat (limited to 'plugins/NewStory/src')
-rw-r--r--plugins/NewStory/src/history_array.cpp8
-rw-r--r--plugins/NewStory/src/history_array.h2
-rw-r--r--plugins/NewStory/src/history_control.cpp3
-rw-r--r--plugins/NewStory/src/templates.cpp9
4 files changed, 12 insertions, 10 deletions
diff --git a/plugins/NewStory/src/history_array.cpp b/plugins/NewStory/src/history_array.cpp
index a22708743e..e9cc5989fa 100644
--- a/plugins/NewStory/src/history_array.cpp
+++ b/plugins/NewStory/src/history_array.cpp
@@ -214,14 +214,16 @@ int ItemData::calcHeight(int top, int width, POINT *pPos)
if (m_bOfflineDownloaded != 0) // Download completed icon
sz.cx -= 18;
+ leftOffset = pos.x;
if (savedHeight == -1) {
m_doc->render(sz.cx);
- savedHeight = m_doc->height();
+ savedHeight = m_doc->height() + 5;
+ Netlib_Logf(0, "Event %d rendered to %d with width %d", dbe.getEvent(), savedHeight, sz.cx);
}
if (pPos)
*pPos = pos;
- return savedHeight + 5;
+ return savedHeight;
}
void ItemData::checkCreate()
@@ -457,8 +459,6 @@ void ItemData::load(bool bLoadAlways)
void ItemData::setText()
{
m_doc = litehtml::document::createFromString(formatHtml(), &pOwner->webPage);
- m_doc->render(pOwner->cachedWindowWidth);
- savedHeight = m_doc->height();
}
// Array
diff --git a/plugins/NewStory/src/history_array.h b/plugins/NewStory/src/history_array.h
index f5a39ba5bd..e805d8f45d 100644
--- a/plugins/NewStory/src/history_array.h
+++ b/plugins/NewStory/src/history_array.h
@@ -19,7 +19,7 @@ struct ItemData
bool m_bOfflineFile;
uint8_t m_grouping, m_bOfflineDownloaded;
- int savedTop, savedHeight;
+ int savedTop, savedHeight, leftOffset;
DB::EventInfo dbe;
wchar_t *wtext;
diff --git a/plugins/NewStory/src/history_control.cpp b/plugins/NewStory/src/history_control.cpp
index b49ddf9adc..558fd4ca03 100644
--- a/plugins/NewStory/src/history_control.cpp
+++ b/plugins/NewStory/src/history_control.cpp
@@ -671,6 +671,7 @@ void NewstoryListData::Paint(simpledib::dib &dib, RECT *rcDraw)
continue;
auto *pItem = LoadItem(idx);
+ pItem->savedTop = top;
POINT pos;
int height = pItem->calcHeight(top, cachedWindowWidth, &pos);
@@ -1446,7 +1447,7 @@ LRESULT CALLBACK NewstoryListWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
auto *pItem = data->LoadItem(idx);
litehtml::position::vector redraw_boxes;
- pItem->m_doc->on_mouse_over(pt.x, pt.y, pt.x, pt.y, redraw_boxes);
+ pItem->m_doc->on_mouse_over(pt.x - pItem->leftOffset, pt.y - pItem->savedTop, pt.x, pt.y, redraw_boxes);
}
break;
diff --git a/plugins/NewStory/src/templates.cpp b/plugins/NewStory/src/templates.cpp
index e24574c880..030866aaa2 100644
--- a/plugins/NewStory/src/templates.cpp
+++ b/plugins/NewStory/src/templates.cpp
@@ -139,12 +139,13 @@ CMStringA ItemData::formatHtml(const wchar_t *pwszStr)
str.AppendFormat(".nick {color: #%06X }\n", color2html(g_colorTable[(dbe.flags & DBEF_SENT) ? COLOR_OUTNICK : COLOR_INNICK].cl));
str.Append("</style></head><body class=\"body\">\n");
- AppendString(str, T2Utf((pwszStr) ? pwszStr : formatString()));
- str.Append("</body></html>");
+ CMStringA szBody;
+ AppendString(szBody, T2Utf((pwszStr) ? pwszStr : formatString()).get());
+ UrlAutodetect(szBody);
+ str += szBody;
- // url autodetect
- UrlAutodetect(str);
+ str.Append("</body></html>");
// Netlib_Logf(0, str);
return str;