summaryrefslogtreecommitdiff
path: root/amiga
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2009-02-01 13:01:46 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2009-02-01 13:01:46 +0000
commitfb0a2116a35b7424609e3e698b521f8a08bc5e1f (patch)
treee5fcb457f409c97e61f07c7af6bb07e984fa459a /amiga
parentf46dd787188b662af08588414f4d2efc08220eae (diff)
downloadnetsurf-fb0a2116a35b7424609e3e698b521f8a08bc5e1f.tar.gz
netsurf-fb0a2116a35b7424609e3e698b521f8a08bc5e1f.tar.bz2
Change to use names instead of numbers for keypresses
Add missing keypresss svn path=/trunk/netsurf/; revision=6328
Diffstat (limited to 'amiga')
-rwxr-xr-xamiga/context_menu.c7
-rwxr-xr-xamiga/gui.c85
-rwxr-xr-xamiga/menu.c14
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 <string.h>
#include "utils/utils.h"
#include <proto/asl.h>
+#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 <dos/anchorpath.h>
-
+#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;