fix set cursor position after back navigation
This commit is contained in:
@@ -178,6 +178,36 @@ namespace rrr::layers::gui
|
||||
if (key.get_keycode() == try_engine::key::LEFTSHIFT || key.get_keycode() == try_engine::key::RIGHTSHIFT)
|
||||
shift = true;
|
||||
|
||||
if (shift)
|
||||
{
|
||||
// удаление
|
||||
if (shift && key.get_keycode() == try_engine::key::D)
|
||||
{
|
||||
em->execute(types::event_type::SHOW_DELETE_ONE_FILE_DIALOG, selected_file);
|
||||
freeze = true;
|
||||
}
|
||||
|
||||
// создание файла/директории
|
||||
if (shift && key.get_keycode() == try_engine::key::A)
|
||||
{
|
||||
em->execute(types::event_type::SHOW_CREATE_FILE_DIALOG, nullptr);
|
||||
freeze = true;
|
||||
}
|
||||
|
||||
// перемещение в конец списка
|
||||
if (shift && key.get_keycode() == try_engine::key::G)
|
||||
{
|
||||
cnt->increment_position(data->size());
|
||||
selected_file = cnt->get_selected_file(TYPE_WIN::NAVIGATION);
|
||||
em->execute(types::event_type::NAVIGATION_DOWN, nullptr);
|
||||
set_delta(MOVE_DIRECTION::DOWN);
|
||||
set_scroll();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (key.get_keycode() == try_engine::key::J)
|
||||
{
|
||||
cnt->increment_position(STEP_DOWN);
|
||||
@@ -212,18 +242,17 @@ namespace rrr::layers::gui
|
||||
set_scroll();
|
||||
}
|
||||
|
||||
// удаление
|
||||
if (shift && key.get_keycode() == try_engine::key::D)
|
||||
// двойное нажатие перемещение в начало списка
|
||||
if (key.get_keycode() == try_engine::key::G)
|
||||
{
|
||||
em->execute(types::event_type::SHOW_DELETE_ONE_FILE_DIALOG, selected_file);
|
||||
freeze = true;
|
||||
}
|
||||
|
||||
// создание файла/директории
|
||||
if (shift && key.get_keycode() == try_engine::key::A)
|
||||
{
|
||||
em->execute(types::event_type::SHOW_CREATE_FILE_DIALOG, nullptr);
|
||||
freeze = true;
|
||||
++g_coutn;
|
||||
if (g_coutn != 2) return;
|
||||
cnt->increment_position(-data->size());
|
||||
selected_file = cnt->get_selected_file(TYPE_WIN::NAVIGATION);
|
||||
em->execute(types::event_type::NAVIGATION_UP, nullptr);
|
||||
set_delta(MOVE_DIRECTION::UP);
|
||||
set_scroll();
|
||||
g_coutn = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -295,6 +324,7 @@ namespace rrr::layers::gui
|
||||
|
||||
if (big_content)
|
||||
{
|
||||
// как бы прокручиваем с начала списка
|
||||
for (const auto& f : *data)
|
||||
{
|
||||
if (f.path != selected_file.path)
|
||||
|
||||
Reference in New Issue
Block a user