Skip to content

Commit

Permalink
1. с форума: Если в диалоге начать записывать макрос (нажать Ctrl.), …
Browse files Browse the repository at this point in the history
…то индикатор записи макроса сразу не появляется,

   а только после нажатия дополнительной клавиши (и то не любой).
  • Loading branch information
zg0 committed Jun 1, 2016
1 parent 9f8f5aa commit 876bb85
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 27 deletions.
5 changes: 5 additions & 0 deletions far/changelog
@@ -1,3 +1,8 @@
zg 02.06.2016 01:51:47 +0200 - build 4695

1. с форума: Если в диалоге начать записывать макрос (нажать Ctrl.), то индикатор записи макроса сразу не появляется,
а только после нажатия дополнительной клавиши (и то не любой).

drkns 01.06.2016 22:51:16 +0200 - build 4694

1. С форума: Menu.Id в диалогах приводило к падению.
Expand Down
56 changes: 30 additions & 26 deletions far/scrbuf.cpp
Expand Up @@ -326,12 +326,13 @@ void ScreenBuf::Flush(flush_type FlushType)
SBFlags.Set(SBFLAGS_FLUSHEDCURTYPE);
}

if (FlushType & flush_type::screen && !SBFlags.Check(SBFLAGS_FLUSHED))
if (FlushType & flush_type::screen)
{
auto SetMacroChar = [](FAR_CHAR_INFO& Where, wchar_t Char, WORD Color)
auto SetMacroChar = [this](FAR_CHAR_INFO& Where, wchar_t Char, WORD Color)
{
Where.Char = Char;
Where.Attributes = colors::ConsoleColorToFarColor(Color);
SBFlags.Clear(SBFLAGS_FLUSHED);
};

if (Global->CtrlObject &&
Expand All @@ -357,13 +358,15 @@ void ScreenBuf::Flush(flush_type FlushType)
SetMacroChar(Where, L'A', B_LIGHTRED | F_WHITE);
}

if (Global->WaitInMainLoop && Global->Opt->Clock)
if (!SBFlags.Check(SBFLAGS_FLUSHED))
{
ShowTime();
}
if (Global->WaitInMainLoop && Global->Opt->Clock)
{
ShowTime();
}

std::vector<SMALL_RECT>WriteList;
bool Changes=false;
std::vector<SMALL_RECT>WriteList;
bool Changes=false;

if (Global->Opt->ClearType)
{
Expand Down Expand Up @@ -452,29 +455,30 @@ void ScreenBuf::Flush(flush_type FlushType)
}
}

if (Changes)
{
std::for_each(CONST_RANGE(WriteList, i)
if (Changes)
{
COORD BufferCoord = { i.Left, i.Top };
SMALL_RECT WriteRegion = i;
Console().WriteOutput(Buf, BufferCoord, WriteRegion);
});
Console().Commit();
Shadow = Buf;
}
std::for_each(CONST_RANGE(WriteList, i)
{
COORD BufferCoord = { i.Left, i.Top };
SMALL_RECT WriteRegion = i;
Console().WriteOutput(Buf, BufferCoord, WriteRegion);
});
Console().Commit();
Shadow = Buf;
}

if (MacroCharUsed)
{
Buf[0][0] = MacroChar;
}
if (MacroCharUsed)
{
Buf[0][0] = MacroChar;
}

if (ElevationCharUsed)
{
Buf.back().back() = ElevationChar;
}
if (ElevationCharUsed)
{
Buf.back().back() = ElevationChar;
}

SBFlags.Set(SBFLAGS_FLUSHED);
SBFlags.Set(SBFLAGS_FLUSHED);
}
}

if (FlushType & flush_type::cursor && !SBFlags.Check(SBFLAGS_FLUSHEDCURPOS))
Expand Down
2 changes: 1 addition & 1 deletion far/vbuild.m4
@@ -1 +1 @@
m4_define(BUILD,4694)m4_dnl
m4_define(BUILD,4695)m4_dnl

0 comments on commit 876bb85

Please sign in to comment.