Fixed operation of the keypad keys in EText and ECellText.

2000-09-22  Christopher James Lahey  <clahey@helixcode.com>

	* gal/e-text/e-text-event-processor-emacs-like.c: Fixed operation
	of the keypad keys in EText and ECellText.

svn path=/trunk/; revision=5548
This commit is contained in:
Christopher James Lahey
2000-09-22 13:10:42 +00:00
committed by Chris Lahey
parent b2019f3409
commit 2a20e41b57
2 changed files with 46 additions and 12 deletions

View File

@ -213,29 +213,40 @@ e_text_event_processor_emacs_like_event (ETextEventProcessor *tep, ETextEventPro
command.action = E_TEP_MOVE;
switch(key.keyval) {
case GDK_Home:
case GDK_KP_Home:
if (key.state & GDK_CONTROL_MASK)
command.position = E_TEP_START_OF_BUFFER;
else
command.position = E_TEP_START_OF_LINE;
break;
case GDK_End:
case GDK_KP_End:
if (key.state & GDK_CONTROL_MASK)
command.position = E_TEP_END_OF_BUFFER;
else
command.position = E_TEP_END_OF_LINE;
break;
case GDK_Page_Up: command.position = E_TEP_BACKWARD_PAGE; break;
case GDK_Page_Down: command.position = E_TEP_FORWARD_PAGE; break;
case GDK_Page_Up:
case GDK_KP_Page_Up: command.position = E_TEP_BACKWARD_PAGE; break;
case GDK_Page_Down:
case GDK_KP_Page_Down: command.position = E_TEP_FORWARD_PAGE; break;
/* CUA has Ctrl-Up/Ctrl-Down as paragraph up down */
case GDK_Up: command.position = E_TEP_BACKWARD_LINE; break;
case GDK_Down: command.position = E_TEP_FORWARD_LINE; break;
case GDK_Up:
case GDK_KP_Up: command.position = E_TEP_BACKWARD_LINE; break;
case GDK_Down:
case GDK_KP_Down: command.position = E_TEP_FORWARD_LINE; break;
case GDK_Left:
case GDK_KP_Left:
if (key.state & GDK_CONTROL_MASK)
command.position = E_TEP_BACKWARD_WORD;
else
command.position = E_TEP_BACKWARD_CHARACTER;
break;
case GDK_Right:
case GDK_Right:
case GDK_KP_Right:
if (key.state & GDK_CONTROL_MASK)
command.position = E_TEP_FORWARD_WORD;
else
@ -254,6 +265,7 @@ e_text_event_processor_emacs_like_event (ETextEventProcessor *tep, ETextEventPro
command.position = E_TEP_END_OF_LINE;
break;
case GDK_Insert:
case GDK_KP_Insert:
if (key.state & GDK_SHIFT_MASK) {
command.action = E_TEP_PASTE;
command.position = E_TEP_SELECTION;
@ -261,10 +273,11 @@ e_text_event_processor_emacs_like_event (ETextEventProcessor *tep, ETextEventPro
command.action = E_TEP_COPY;
command.position = E_TEP_SELECTION;
} else {
/* gtk_toggle_insert(text) -- IMPLEMENT */
/* gtk_toggle_insert(text) -- IMPLEMENT -- FIXME */
}
break;
case GDK_Delete:
case GDK_KP_Delete:
if (key.state & GDK_CONTROL_MASK){
command.action = E_TEP_DELETE;
command.position = E_TEP_FORWARD_WORD;
@ -281,11 +294,15 @@ e_text_event_processor_emacs_like_event (ETextEventProcessor *tep, ETextEventPro
}
break;
case GDK_Tab:
case GDK_KP_Tab:
case GDK_ISO_Left_Tab:
case GDK_3270_BackTab:
/* Don't insert literally */
command.action = E_TEP_NOP;
command.position = E_TEP_SELECTION;
break;
case GDK_Return:
case GDK_KP_Enter:
if (key.state & GDK_CONTROL_MASK) {
command.action = E_TEP_ACTIVATE;
command.position = E_TEP_SELECTION;