From 5a6d4105c284fadf2306ebe6a83f4fe760d7dfb1 Mon Sep 17 00:00:00 2001
From: George Hazan <ghazan@miranda.im>
Date: Wed, 16 Aug 2017 16:16:54 +0300
Subject: fixes #886 (Scriver: group chat does not start at the bottom)

---
 src/core/stdmsg/src/chat_window.cpp | 20 +++++---------------
 1 file changed, 5 insertions(+), 15 deletions(-)

(limited to 'src')

diff --git a/src/core/stdmsg/src/chat_window.cpp b/src/core/stdmsg/src/chat_window.cpp
index adee9649c9..aa91f6d397 100644
--- a/src/core/stdmsg/src/chat_window.cpp
+++ b/src/core/stdmsg/src/chat_window.cpp
@@ -252,22 +252,12 @@ void CChatRoomDlg::RedrawLog()
 
 void CChatRoomDlg::ScrollToBottom()
 {
-	if ((GetWindowLongPtr(m_log.GetHwnd(), GWL_STYLE) & WS_VSCROLL) == 0)
-		return;
-
-	CHARRANGE sel;
-	SCROLLINFO scroll = {};
-	scroll.cbSize = sizeof(scroll);
-	scroll.fMask = SIF_PAGE | SIF_RANGE;
-	GetScrollInfo(m_log.GetHwnd(), SB_VERT, &scroll);
+	if (GetWindowLongPtr(m_log.GetHwnd(), GWL_STYLE) & WS_VSCROLL) {
+		int len = GetWindowTextLength(m_log.GetHwnd()) - 1;
+		m_log.SendMsg(EM_SETSEL, len, len);
 
-	scroll.fMask = SIF_POS;
-	scroll.nPos = scroll.nMax - scroll.nPage + 1;
-	SetScrollInfo(m_log.GetHwnd(), SB_VERT, &scroll, TRUE);
-
-	sel.cpMin = sel.cpMax = m_log.GetRichTextLength();
-	m_log.SendMsg(EM_EXSETSEL, 0, (LPARAM)&sel);
-	PostMessage(m_log.GetHwnd(), WM_VSCROLL, MAKEWPARAM(SB_BOTTOM, 0), 0);
+		PostMessage(m_log.GetHwnd(), WM_VSCROLL, MAKEWPARAM(SB_BOTTOM, 0), 0);
+	}
 }
 
 void CChatRoomDlg::ShowFilterMenu()
-- 
cgit v1.2.3