1
1

* widget.c (input_callback): Insert Enter with a modifier as

literal Enter.  Useful when pasting multiline text.
Этот коммит содержится в:
Pavel Roskin 2002-12-25 23:15:48 +00:00
родитель 812bac9a33
Коммит 9393a182b5
2 изменённых файлов: 20 добавлений и 10 удалений

@ -1,5 +1,8 @@
2002-12-25 Pavel Roskin <proski@gnu.org>
* widget.c (input_callback): Insert Enter with a modifier as
literal Enter. Useful when pasting multiline text.
* cmd.c (execute_with_vfs_arg): New function. Work around
defects of VFS localcopy code.
(view_file_at_line): Use execute_with_vfs_arg().

@ -1530,41 +1530,48 @@ input_set_point (WInput *in, int pos)
int
input_callback (WInput *in, int Msg, int Par)
{
int v;
Dlg_head *h = in->widget.parent;
switch (Msg){
switch (Msg) {
case WIDGET_INIT:
return 1;
case WIDGET_KEY:
if (Par == XCTRL('q')){
int v;
if (Par == XCTRL ('q')) {
quote = 1;
v = handle_char (in, mi_getch ());
quote = 0;
return v;
}
if (Par == KEY_UP || Par == KEY_DOWN ||
Par == ESC_CHAR || Par == KEY_F(10) ||
Par == XCTRL('g'))
if (Par == KEY_UP || Par == KEY_DOWN || Par == ESC_CHAR
|| Par == KEY_F (10) || Par == XCTRL ('g'))
return 0; /* We don't handle up/down */
if (Par == '\n'){
if (Par == '\n') {
dlg_one_down (h);
return 1;
}
/* When pasting multiline text, insert literal Enter */
if ((Par & ~KEY_M_MASK) == '\n') {
quote = 1;
v = handle_char (in, '\n');
quote = 0;
return v;
}
return handle_char (in, Par);
case WIDGET_FOCUS:
case WIDGET_UNFOCUS:
case WIDGET_UNFOCUS:
case WIDGET_DRAW:
update_input (in, 0);
break;
case WIDGET_CURSOR:
widget_move (&in->widget, 0, in->point - in->first_shown);
return 1;
}
return default_proc (Msg, Par);
}