Skip to content

Commit

Permalink
1. в диалоге копирования была возможность выбрать "Also ask on R/O fi…
Browse files Browse the repository at this point in the history
…les".

2. уточнение посылки DN_INPUT/DN_CONTROLINPUT для открытого комбобокса.

3. убрано странное поведение по восстановлению старой позиции в списке, если DN_LISTHOTKEY обработан.
  • Loading branch information
zg0 committed Apr 26, 2016
1 parent da6afd9 commit 1669a0f
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 16 deletions.
10 changes: 9 additions & 1 deletion far/changelog
@@ -1,4 +1,12 @@
zg 26.04.2016 03:41:23 +0200 - build 4639
zg 26.04.2016 16:23:31 +0200 - build 4640

1. в диалоге копирования была возможность выбрать "Also ask on R/O files".

2. уточнение посылки DN_INPUT/DN_CONTROLINPUT для открытого комбобокса.

3. убрано странное поведение по восстановлению старой позиции в списке, если DN_LISTHOTKEY обработан.

zg 26.04.2016 03:41:23 +0200 - build 4639

1. убран неиспользуемый код.

Expand Down
33 changes: 21 additions & 12 deletions far/copy.cpp
Expand Up @@ -496,7 +496,7 @@ void CopyProgress::UpdateTime(bool TotalProgress, unsigned long long SizeDone, u
{
m_CalcTime = CurrentTime - m_CopyStartTime - WaitUserTime;
}

string tmp[3];

const auto CalcTime = m_CalcTime / CLOCKS_PER_SEC;
Expand Down Expand Up @@ -757,10 +757,17 @@ intptr_t ShellCopy::CopyDlgProc(Dialog* Dlg,intptr_t Msg,intptr_t Param1,void* P

if (Param1 == ID_SC_COMBO)
{
if (key==KEY_ENTER || key==KEY_NUMENTER || key==KEY_INS || key==KEY_NUMPAD0 || key==KEY_SPACE)
if (Dlg->SendMessage(DM_LISTGETCURPOS, ID_SC_COMBO, nullptr) == CM_ASKRO)
{
if (Dlg->SendMessage(DM_LISTGETCURPOS, ID_SC_COMBO, nullptr) == CM_ASKRO)
if (key==KEY_ENTER || key==KEY_NUMENTER || key==KEY_INS || key==KEY_NUMPAD0 || key==KEY_SPACE)
{
return Dlg->SendMessage(DM_SWITCHRO, 0, nullptr);
}
else if (key == KEY_TAB)
{
Dlg->SendMessage(DM_SETDROPDOWNOPENED, 0, nullptr);
return TRUE;
}
}
}
}
Expand All @@ -770,26 +777,28 @@ intptr_t ShellCopy::CopyDlgProc(Dialog* Dlg,intptr_t Msg,intptr_t Param1,void* P
case DN_LISTHOTKEY:
if(Param1==ID_SC_COMBO)
{
if (Dlg->SendMessage(DM_LISTGETCURPOS, ID_SC_COMBO, nullptr) == CM_ASKRO)
auto Index = reinterpret_cast<intptr_t>(Param2);
if (Index == CM_ASKRO)
{
Dlg->SendMessage(DM_SWITCHRO, 0, nullptr);
FarListPos flp = { sizeof(flp), Index, -1 };
Dlg->SendMessage(DM_LISTSETCURPOS, Param1, &flp);
return TRUE;
}
}
break;
case DN_INPUT:

if (Dlg->SendMessage(DM_GETDROPDOWNOPENED, ID_SC_COMBO, nullptr))
{
auto& mer = reinterpret_cast<INPUT_RECORD*>(Param2)->Event.MouseEvent;

if (Dlg->SendMessage(DM_LISTGETCURPOS, ID_SC_COMBO, nullptr) == CM_ASKRO && mer.dwButtonState && !(mer.dwEventFlags & MOUSE_MOVED))
auto ir = reinterpret_cast<INPUT_RECORD*>(Param2);
if (ir->EventType == MOUSE_EVENT && Dlg->SendMessage(DM_GETDROPDOWNOPENED, ID_SC_COMBO, nullptr))
{
Dlg->SendMessage(DM_SWITCHRO, 0, nullptr);
return FALSE;
if (Dlg->SendMessage(DM_LISTGETCURPOS, ID_SC_COMBO, nullptr) == CM_ASKRO && ir->Event.MouseEvent.dwButtonState && !(ir->Event.MouseEvent.dwEventFlags & MOUSE_MOVED))
{
Dlg->SendMessage(DM_SWITCHRO, 0, nullptr);
return FALSE;
}
}
}

break;
case DM_CALLTREE:
{
Expand Down
2 changes: 1 addition & 1 deletion far/vbuild.m4
@@ -1 +1 @@
m4_define(BUILD,4639)m4_dnl
m4_define(BUILD,4640)m4_dnl
10 changes: 8 additions & 2 deletions far/vmenu.cpp
Expand Up @@ -1113,13 +1113,20 @@ int VMenu::ProcessKey(const Manager::Key& Key)
if (IsComboBox() && CheckFlags(VMENU_COMBOBOXEVENTKEY))
{
auto Event = Key.Event();
if (ParentDialog->DlgProc(DN_CONTROLINPUT, ParentDialog->GetDlgFocusPos(), &Event))
if (!ParentDialog->DlgProc(DN_INPUT, 0, &Event))
return TRUE;
}

if (LocalKey==KEY_NONE || LocalKey==KEY_IDLE)
return FALSE;

if (IsComboBox() && CheckFlags(VMENU_COMBOBOXEVENTKEY))
{
auto Event = Key.Event();
if (ParentDialog->DlgProc(DN_CONTROLINPUT, ParentDialog->GetDlgFocusPos(), &Event))
return TRUE;
}

if (LocalKey == KEY_OP_PLAINTEXT)
{
const wchar_t *str = Global->CtrlObject->Macro.GetStringToPrint();
Expand Down Expand Up @@ -1469,7 +1476,6 @@ int VMenu::ProcessKey(const Manager::Key& Key)
{
if (ParentDialog->SendMessage(DN_LISTHOTKEY,DialogItemID,ToPtr(NewPos)))
{
UpdateItemFlags(OldSelectPos,Items[OldSelectPos].Flags|LIF_SELECTED);
ShowMenu(true);
ClearDone();
break;
Expand Down

0 comments on commit 1669a0f

Please sign in to comment.