@@ -162,7 +162,7 @@ void Ui::Cleanup()
162
162
void Ui::InitWindows ()
163
163
{
164
164
getmaxyx (stdscr, m_ScreenHeight, m_ScreenWidth);
165
- m_MaxLineLength = m_ScreenWidth - 1 ;
165
+ m_MaxLineLength = m_ScreenWidth;
166
166
wclear (stdscr);
167
167
wrefresh (stdscr);
168
168
const int topHeight = 1 ;
@@ -1260,25 +1260,17 @@ void Ui::DrawComposeMessage()
1260
1260
1261
1261
for (int i = 0 ; i < (int )headerLines.size (); ++i)
1262
1262
{
1263
- if (i != m_ComposeHeaderLine)
1263
+ if (m_IsComposeHeader && (i == m_ComposeHeaderLine) && (cursX >= m_ScreenWidth) )
1264
1264
{
1265
- std::wstring line = headerLines.at (i) + m_ComposeHeaderStr.at (i);
1265
+ std::wstring line = headerLines.at (i) +
1266
+ m_ComposeHeaderStr.at (i).substr (cursX - m_ScreenWidth + 1 );
1266
1267
composeLines.push_back (line.substr (0 , m_ScreenWidth));
1268
+ cursX = m_ScreenWidth - 1 ;
1267
1269
}
1268
1270
else
1269
1271
{
1270
- if (cursX >= m_ScreenWidth)
1271
- {
1272
- std::wstring line = headerLines.at (i) +
1273
- m_ComposeHeaderStr.at (i).substr (cursX - m_ScreenWidth + 1 );
1274
- composeLines.push_back (line.substr (0 , m_ScreenWidth));
1275
- cursX = m_ScreenWidth - 1 ;
1276
- }
1277
- else
1278
- {
1279
- std::wstring line = headerLines.at (i) + m_ComposeHeaderStr.at (i);
1280
- composeLines.push_back (line.substr (0 , m_ScreenWidth));
1281
- }
1272
+ std::wstring line = headerLines.at (i) + m_ComposeHeaderStr.at (i);
1273
+ composeLines.push_back (line.substr (0 , m_ScreenWidth));
1282
1274
}
1283
1275
}
1284
1276
@@ -3178,7 +3170,7 @@ void Ui::ResponseHandler(const ImapManager::Request& p_Request, const ImapManage
3178
3170
}
3179
3171
}
3180
3172
3181
- const int maxBodysFetchRequest = 1 ; // XXX evaluate
3173
+ const int maxBodysFetchRequest = 1 ;
3182
3174
if (!prefetchBodys.empty ())
3183
3175
{
3184
3176
std::set<uint32_t > subsetPrefetchBodys;
@@ -3918,21 +3910,20 @@ void Ui::ComposeMessagePrevLine()
3918
3910
{
3919
3911
if (m_ComposeMessageWrapLine > 0 )
3920
3912
{
3913
+ int stepsBack = 0 ;
3921
3914
if ((int )m_ComposeMessageLines[m_ComposeMessageWrapLine - 1 ].size () >
3922
3915
m_ComposeMessageWrapPos)
3923
3916
{
3924
- int stepsBack = m_ComposeMessageWrapPos + 1 +
3925
- (m_ComposeMessageLines[m_ComposeMessageWrapLine - 1 ].size () -
3926
- m_ComposeMessageWrapPos);
3927
- m_ComposeMessagePos = Util::Bound (0 , m_ComposeMessagePos - stepsBack,
3928
- (int )m_ComposeMessageStr.size ());
3917
+ stepsBack = m_ComposeMessageLines[m_ComposeMessageWrapLine - 1 ].size () + 1 ;
3929
3918
}
3930
3919
else
3931
3920
{
3932
- int stepsBack = m_ComposeMessageWrapPos + 1 ;
3933
- m_ComposeMessagePos = Util::Bound (0 , m_ComposeMessagePos - stepsBack,
3934
- (int )m_ComposeMessageStr.size ());
3921
+ stepsBack = m_ComposeMessageWrapPos + 1 ;
3935
3922
}
3923
+
3924
+ stepsBack = std::min (stepsBack, m_MaxLineLength);
3925
+ m_ComposeMessagePos = Util::Bound (0 , m_ComposeMessagePos - stepsBack,
3926
+ (int )m_ComposeMessageStr.size ());
3936
3927
}
3937
3928
else
3938
3929
{
@@ -3955,13 +3946,17 @@ void Ui::ComposeMessageNextLine()
3955
3946
{
3956
3947
stepsForward += m_ComposeMessageLines[m_ComposeMessageWrapLine + 1 ].size ();
3957
3948
}
3949
+
3950
+ stepsForward = std::min (stepsForward, m_MaxLineLength);
3958
3951
m_ComposeMessagePos = Util::Bound (0 , m_ComposeMessagePos + stepsForward,
3959
3952
(int )m_ComposeMessageStr.size ());
3960
3953
}
3961
3954
else if ((int )m_ComposeMessageLines.size () > 0 )
3962
3955
{
3963
3956
int stepsForward = m_ComposeMessageLines[m_ComposeMessageWrapLine].size () -
3964
3957
m_ComposeMessageWrapPos;
3958
+
3959
+ stepsForward = std::min (stepsForward, m_MaxLineLength);
3965
3960
m_ComposeMessagePos = Util::Bound (0 , m_ComposeMessagePos + stepsForward,
3966
3961
(int )m_ComposeMessageStr.size ());
3967
3962
}
0 commit comments