--- gv-3.5.8.orig/source/FileSel.c +++ gv-3.5.8/source/FileSel.c @@ -116,12 +116,14 @@ static String cannotopenList[] = {"",NULL}; static void FS_textfieldFocusAction(); +static void FS_textfieldBackSpaceAction(); static void FS_textfieldDeleteAction(); static void FS_listAction(); static void FS_preferButtonAction(); static XtActionsRec file_selectionActionsTable[] = { { "FS_textfieldFocusAction", (XtActionProc) FS_textfieldFocusAction }, + { "FS_textfieldBackSpaceAction", (XtActionProc) FS_textfieldBackSpaceAction }, { "FS_textfieldDeleteAction", (XtActionProc) FS_textfieldDeleteAction }, { "FS_preferButton", (XtActionProc) FS_preferButtonAction }, { "List", (XtActionProc) FS_listAction } @@ -175,7 +177,7 @@ CtrlZ: no-op()\n\ MetaV: no-op()\n\ MetaZ: no-op()\n\ -BackSpace: FS_textfieldDeleteAction()\n\ +BackSpace: FS_textfieldBackSpaceAction()\n\ Delete: FS_textfieldDeleteAction()\n\ Right: forward-character()\n\ Left: backward-character()\n\ @@ -1201,6 +1203,31 @@ } /*------------------------------------------------------------------------------- + FS_textfieldBackSpaceAction +-------------------------------------------------------------------------------*/ + +static void FS_textfieldBackSpaceAction(w, event, parms, nparms) + Widget w; + XEvent *event; + String *parms; + Cardinal *nparms; +{ + BEGINMESSAGE(FS_textfieldBackSpaceAction) + + if (XtIsSubclass(w,asciiTextWidgetClass)) { + XawTextPosition begin_sel,end_sel; + + XawTextGetSelectionPos(w,&begin_sel,&end_sel); + if (begin_sel != end_sel) + XtCallActionProc(w,"kill-selection",(XEvent *)NULL,(String *)NULL,(Cardinal)NULL); + else + XtCallActionProc(w,"delete-previous-character",(XEvent *)NULL,(String *)NULL,(Cardinal)NULL); + } + + ENDMESSAGE(FS_textfieldBackSpaceAction) +} + +/*------------------------------------------------------------------------------- FS_textfieldDeleteAction -------------------------------------------------------------------------------*/ @@ -1219,7 +1246,7 @@ if (begin_sel != end_sel) XtCallActionProc(w,"kill-selection",(XEvent *)NULL,(String *)NULL,(Cardinal)NULL); else - XtCallActionProc(w,"delete-previous-character",(XEvent *)NULL,(String *)NULL,(Cardinal)NULL); + XtCallActionProc(w,"delete-next-character",(XEvent *)NULL,(String *)NULL,(Cardinal)NULL); } ENDMESSAGE(FS_textfieldDeleteAction) --- gv-3.5.8.orig/source/widgets_misc.c +++ gv-3.5.8/source/widgets_misc.c @@ -105,6 +105,7 @@ MetaV: no-op()\n\ MetaZ: no-op()\n\ BackSpace: delete-previous-character()\n\ +Delete: delete-next-character()\n\ Right: forward-character()\n\ Left: backward-character()\n\ :display-caret(on,always)display-caret(off,always)\n\ @@ -164,6 +165,7 @@ MetaV: no-op()\n\ MetaZ: no-op()\n\ BackSpace: delete-previous-character()\n\ +Delete: delete-next-character()\n\ Right: forward-character()\n\ Left: backward-character()\n\ :display-caret(on,always)display-caret(off,always)\n\