From fb0a2116a35b7424609e3e698b521f8a08bc5e1f Mon Sep 17 00:00:00 2001 From: Chris Young Date: Sun, 1 Feb 2009 13:01:46 +0000 Subject: Change to use names instead of numbers for keypresses Add missing keypresss svn path=/trunk/netsurf/; revision=6328 --- amiga/context_menu.c | 7 +++-- amiga/gui.c | 85 +++++++++++++++++++++++++++++++++++++++++++++------- amiga/menu.c | 14 +++++---- 3 files changed, 86 insertions(+), 20 deletions(-) diff --git a/amiga/context_menu.c b/amiga/context_menu.c index 44a8819a7..f97b6aa60 100755 --- a/amiga/context_menu.c +++ b/amiga/context_menu.c @@ -31,6 +31,7 @@ #include #include "utils/utils.h" #include +#include "desktop/textinput.h" uint32 ami_context_menu_hook(struct Hook *hook,Object *item,APTR reserved); @@ -277,12 +278,12 @@ uint32 ami_context_menu_hook(struct Hook *hook,Object *item,APTR reserved) break; case CMID_SELCOPY: - gui_copy_to_clipboard(gwin->bw->sel); - browser_window_key_press(gwin->bw, 26); + browser_window_key_press(gwin->bw, KEY_COPY_SELECTION); + browser_window_key_press(gwin->bw, KEY_CLEAR_SELECTION); break; case CMID_SELALL: - browser_window_key_press(gwin->bw, 1); + browser_window_key_press(gwin->bw, KEY_SELECT_ALL); break; } } diff --git a/amiga/gui.c b/amiga/gui.c index 39614eadc..0abedd45f 100755 --- a/amiga/gui.c +++ b/amiga/gui.c @@ -929,19 +929,84 @@ void ami_handle_msg(void) switch(storage) { case RAWKEY_CRSRUP: - browser_window_key_press(gwin->bw,KEY_UP); + if(ie->ie_Qualifier & IEQUALIFIER_RSHIFT) + { + browser_window_key_press(gwin->bw,KEY_PAGE_UP); + } + else if(ie->ie_Qualifier & IEQUALIFIER_RALT) + { + browser_window_key_press(gwin->bw,KEY_TEXT_START); + } + else browser_window_key_press(gwin->bw,KEY_UP); break; case RAWKEY_CRSRDOWN: - browser_window_key_press(gwin->bw,KEY_DOWN); + if(ie->ie_Qualifier & IEQUALIFIER_RSHIFT) + { + browser_window_key_press(gwin->bw,KEY_PAGE_DOWN); + } + else if(ie->ie_Qualifier & IEQUALIFIER_RALT) + { + browser_window_key_press(gwin->bw,KEY_TEXT_END); + } + else browser_window_key_press(gwin->bw,KEY_DOWN); break; case RAWKEY_CRSRLEFT: - browser_window_key_press(gwin->bw,KEY_LEFT); + if(ie->ie_Qualifier & IEQUALIFIER_RSHIFT) + { + browser_window_key_press(gwin->bw,KEY_LINE_START); + } + else if(ie->ie_Qualifier & IEQUALIFIER_RALT) + { + browser_window_key_press(gwin->bw,KEY_WORD_LEFT); + } + else browser_window_key_press(gwin->bw,KEY_LEFT); break; case RAWKEY_CRSRRIGHT: - browser_window_key_press(gwin->bw,KEY_RIGHT); + if(ie->ie_Qualifier & IEQUALIFIER_RSHIFT) + { + browser_window_key_press(gwin->bw,KEY_LINE_END); + } + else if(ie->ie_Qualifier & IEQUALIFIER_RALT) + { + browser_window_key_press(gwin->bw,KEY_WORD_RIGHT); + } + else browser_window_key_press(gwin->bw,KEY_RIGHT); break; case RAWKEY_ESC: - browser_window_key_press(gwin->bw,27); + browser_window_key_press(gwin->bw,KEY_ESCAPE); + break; + case RAWKEY_PAGEUP: + browser_window_key_press(gwin->bw,KEY_PAGE_UP); + break; + case RAWKEY_PAGEDOWN: + browser_window_key_press(gwin->bw,KEY_PAGE_DOWN); + break; + case RAWKEY_HOME: + browser_window_key_press(gwin->bw,KEY_TEXT_START); + break; + case RAWKEY_END: + browser_window_key_press(gwin->bw,KEY_TEXT_END); + break; + case RAWKEY_BACKSPACE: + if(ie->ie_Qualifier & IEQUALIFIER_RSHIFT) + { + browser_window_key_press(gwin->bw,KEY_DELETE_LINE_START); + } + else browser_window_key_press(gwin->bw,KEY_DELETE_LEFT); + break; + case RAWKEY_DEL: + if(ie->ie_Qualifier & IEQUALIFIER_RSHIFT) + { + browser_window_key_press(gwin->bw,KEY_DELETE_LINE_END); + } + else browser_window_key_press(gwin->bw,KEY_DELETE_RIGHT); + break; + case RAWKEY_TAB: + if(ie->ie_Qualifier & IEQUALIFIER_RSHIFT) + { + browser_window_key_press(gwin->bw,KEY_SHIFT_TAB); + } + else browser_window_key_press(gwin->bw,KEY_TAB); break; default: if((chars = MapRawKey(ie,buffer,20,NULL)) > 0) @@ -951,18 +1016,16 @@ void ami_handle_msg(void) /* We are duplicating the menu shortcuts here, as if RMBTRAP is active * (ie. when context menus are enabled and the mouse is over the browser * rendering area), Intuition also does not catch the menu shortcut - * key presses. This should probably be expanded to contain all the - * menu shortcuts, but copy and paste are the most used so we only - * handle those for now. */ + * key presses. Context menus need to be changed to use MENUVERIFY not RMBTRAP */ switch(buffer[0]) { case 'c': - gui_copy_to_clipboard(gwin->bw->sel); - browser_window_key_press(gwin->bw, 26); + browser_window_key_press(gwin->bw, KEY_COPY_SELECTION); + browser_window_key_press(gwin->bw, KEY_ESCAPE); break; case 'v': - gui_paste_from_clipboard(gwin->bw->window,0,0); + browser_window_key_press(gwin->bw, KEY_PASTE); break; } } diff --git a/amiga/menu.c b/amiga/menu.c index c7bd09371..b20b4a2f1 100755 --- a/amiga/menu.c +++ b/amiga/menu.c @@ -39,7 +39,8 @@ #include "amiga/save_complete.h" #include "utils/url.h" #include - +#include "desktop/textinput.h" +#include "amiga/search.h" BOOL menualreadyinit; const char * const netsurf_version; @@ -547,20 +548,21 @@ void ami_menupick(ULONG code,struct gui_window_2 *gwin,struct MenuItem *item) switch(itemnum) { case 0: // copy - gui_copy_to_clipboard(gwin->bw->sel); - browser_window_key_press(gwin->bw, 26); + browser_window_key_press(gwin->bw, KEY_COPY_SELECTION); + browser_window_key_press(gwin->bw, KEY_ESCAPE); break; case 1: // paste - gui_paste_from_clipboard(&tgw,0,0); + browser_window_key_press(gwin->bw, KEY_PASTE); + //gui_paste_from_clipboard(&tgw,0,0); break; case 2: // select all - browser_window_key_press(gwin->bw, 1); + browser_window_key_press(gwin->bw, KEY_SELECT_ALL); break; case 3: // clear selection - browser_window_key_press(gwin->bw, 26); + browser_window_key_press(gwin->bw, KEY_CLEAR_SELECTION); break; } break; -- cgit v1.2.3