TizenRefApp-7856 Wrong character counter in Conversation 47/106647/1 submit/tizen_3.0/20161222.151713
authorDenis Dolzhenko <d.dolzhenko@samsung.com>
Thu, 22 Dec 2016 09:15:28 +0000 (11:15 +0200)
committerDenis Dolzhenko <d.dolzhenko@samsung.com>
Thu, 22 Dec 2016 09:15:28 +0000 (11:15 +0200)
Change-Id: Iec06d49e0253f2520c1b29bdfd30741b6ef32e96
Signed-off-by: Denis Dolzhenko <d.dolzhenko@samsung.com>
src/Common/MsgEngine/src/MsgEngine.cpp

index 5a0bd11afb0fd3fea67a497d558e90bc5cf6c1cc..7612456367beed8f27072d09b65bf8629ac0b52e 100644 (file)
@@ -26,6 +26,7 @@
 #endif
 
 #include <assert.h>
+#include <math.h>
 
 using namespace Msg;
 
@@ -453,10 +454,12 @@ void MsgEngine::calculateTextMetric(const std::string &text, MsgTextMetric &text
     if (textLen == 0)
         textLen = text.length() / bytesInChar;
 
-    textMetric.segmentsCount = (textLen / (segmentLen + 1)) + 1;
+    textMetric.segmentsCount = (int)ceil((float)textLen / segmentLen);
+    if (textMetric.segmentsCount == 0)
+        textMetric.segmentsCount = 1;
 
     if (textLen > 0)
-        textMetric.charsLeft = segmentLen - (textLen % (segmentLen + 1));
+        textMetric.charsLeft = (textMetric.segmentsCount * segmentLen) - textLen;
     else
         textMetric.charsLeft = maxGsm7Len;