mirror of
https://github.com/MidnightCommander/mc
synced 2024-12-23 04:46:55 +03:00
Merge branch '2534_mark_file_left_right'
* 2534_mark_file_left_right: Ticket #2534 (mark files by shift-left/shift-right)
This commit is contained in:
commit
92d21199c4
@ -77,6 +77,8 @@ Search = ctrl-s; alt-s
|
||||
Mark = insert; ctrl-t
|
||||
MarkUp = shift-up
|
||||
MarkDown = shift-down
|
||||
MarkLeft =
|
||||
MarkRight =
|
||||
Down = down; ctrl-n
|
||||
Up = up; ctrl-p
|
||||
Left = left
|
||||
|
@ -78,6 +78,8 @@ Search = ctrl-s; alt-s
|
||||
Mark = insert; ctrl-t
|
||||
MarkUp = shift-up
|
||||
MarkDown = shift-down
|
||||
MarkLeft =
|
||||
MarkRight =
|
||||
Down = down; ctrl-n
|
||||
Up = up; ctrl-p
|
||||
Left = left
|
||||
|
@ -350,7 +350,7 @@ static char *panel_history_show_list_sign = NULL;
|
||||
static WPanel *mouse_mark_panel = NULL;
|
||||
|
||||
static int mouse_marking = 0;
|
||||
|
||||
static int state_mark = 0;
|
||||
/*** file scope functions ************************************************************************/
|
||||
/* --------------------------------------------------------------------------------------------- */
|
||||
|
||||
@ -2059,6 +2059,44 @@ mark_file_down (WPanel * panel)
|
||||
do_mark_file (panel, MARK_FORCE_DOWN);
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------------------------- */
|
||||
|
||||
static void
|
||||
mark_file_right (WPanel * panel)
|
||||
{
|
||||
int lines = llines (panel);
|
||||
|
||||
if (state_mark < 0)
|
||||
state_mark = selection (panel)->f.marked ? 0 : 1;
|
||||
|
||||
lines = min (lines, panel->count - panel->selected - 1);
|
||||
for (; lines != 0; lines--)
|
||||
{
|
||||
do_file_mark (panel, panel->selected, state_mark);
|
||||
move_down (panel);
|
||||
}
|
||||
do_file_mark (panel, panel->selected, state_mark);
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------------------------- */
|
||||
|
||||
static void
|
||||
mark_file_left (WPanel * panel)
|
||||
{
|
||||
int lines = llines (panel);
|
||||
|
||||
if (state_mark < 0)
|
||||
state_mark = selection (panel)->f.marked ? 0 : 1;
|
||||
|
||||
lines = min (lines, panel->selected + 1);
|
||||
for (; lines != 0; lines--)
|
||||
{
|
||||
do_file_mark (panel, panel->selected, state_mark);
|
||||
move_up (panel);
|
||||
}
|
||||
do_file_mark (panel, panel->selected, state_mark);
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------------------------- */
|
||||
/** Incremental search of a file name in the panel.
|
||||
* @param panel instance of WPanel structure
|
||||
@ -2744,6 +2782,21 @@ panel_execute_cmd (WPanel * panel, unsigned long command)
|
||||
if (command != CK_Search)
|
||||
stop_search (panel);
|
||||
|
||||
|
||||
switch (command)
|
||||
{
|
||||
case CK_Up:
|
||||
case CK_Down:
|
||||
case CK_Left:
|
||||
case CK_Right:
|
||||
case CK_Bottom:
|
||||
case CK_Top:
|
||||
case CK_PageDown:
|
||||
case CK_PageUp:
|
||||
/* reset state of marks flag*/
|
||||
state_mark = -1;
|
||||
break;
|
||||
}
|
||||
switch (command)
|
||||
{
|
||||
case CK_PanelOtherCd:
|
||||
@ -2818,6 +2871,12 @@ panel_execute_cmd (WPanel * panel, unsigned long command)
|
||||
case CK_MarkDown:
|
||||
mark_file_down (panel);
|
||||
break;
|
||||
case CK_MarkLeft:
|
||||
mark_file_left (panel);
|
||||
break;
|
||||
case CK_MarkRight:
|
||||
mark_file_right (panel);
|
||||
break;
|
||||
case CK_CdParentSmart:
|
||||
res = force_maybe_cd ();
|
||||
break;
|
||||
@ -2951,6 +3010,7 @@ panel_callback (Widget * w, widget_msg_t msg, int parm)
|
||||
return MSG_HANDLED;
|
||||
|
||||
case WIDGET_FOCUS:
|
||||
state_mark = -1;
|
||||
current_panel = panel;
|
||||
panel->active = 1;
|
||||
if (mc_chdir (panel->cwd) != 0)
|
||||
|
Loading…
Reference in New Issue
Block a user