mirror of https://github.com/MidnightCommander/mc
Support bracketed paste mode of xterm in mcedit.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
This commit is contained in:
parent
8f35c90b94
commit
5b47861101
|
@ -3457,14 +3457,14 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
|
||||||
if (option_auto_para_formatting)
|
if (option_auto_para_formatting)
|
||||||
{
|
{
|
||||||
edit_double_newline (edit);
|
edit_double_newline (edit);
|
||||||
if (option_return_does_auto_indent)
|
if (option_return_does_auto_indent && !bracketed_pasting_in_progress)
|
||||||
edit_auto_indent (edit);
|
edit_auto_indent (edit);
|
||||||
format_paragraph (edit, FALSE);
|
format_paragraph (edit, FALSE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
edit_insert (edit, '\n');
|
edit_insert (edit, '\n');
|
||||||
if (option_return_does_auto_indent)
|
if (option_return_does_auto_indent && !bracketed_pasting_in_progress)
|
||||||
edit_auto_indent (edit);
|
edit_auto_indent (edit);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1065,6 +1065,15 @@ edit_dialog_callback (Widget * w, Widget * sender, widget_msg_t msg, int parm, v
|
||||||
ret = edit_dialog_command_execute (h, command);
|
ret = edit_dialog_command_execute (h, command);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Due to the "end of bracket" escape the editor sees input with is_idle() == false
|
||||||
|
* (expects more characters) and hence doesn't yet refresh the screen, but then
|
||||||
|
* no further characters arrive (there's only an "end of bracket" which is swallowed
|
||||||
|
* by tty_get_event()), so you end up with a screen that's not refreshed after pasting.
|
||||||
|
* So let's trigger an IDLE signal.
|
||||||
|
*/
|
||||||
|
if (!is_idle ())
|
||||||
|
widget_want_idle (w, TRUE);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1080,6 +1089,11 @@ edit_dialog_callback (Widget * w, Widget * sender, widget_msg_t msg, int parm, v
|
||||||
edit_dlg_deinit ();
|
edit_dlg_deinit ();
|
||||||
return MSG_HANDLED;
|
return MSG_HANDLED;
|
||||||
|
|
||||||
|
case MSG_IDLE:
|
||||||
|
widget_want_idle (w, FALSE);
|
||||||
|
edit_update_screen ((WEdit *) h->current->data);
|
||||||
|
return MSG_HANDLED;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return dlg_default_callback (w, sender, msg, parm, data);
|
return dlg_default_callback (w, sender, msg, parm, data);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue