Issue 497: Right-Windows key (aka Right-Super key) now acts as the Meta modifier. Meta modifier is now labelled A (specific graphic) on AROS and Super on all platforms besides OSX which has its own character. Added a few defaults AROS-specific secondary default shortcuts.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@2016 416bcca6-2ee7-4201-b75f-2eb2f807beb1
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
@ -620,7 +620,12 @@ T_Key_config ConfigKey[NB_SHORTCUTS] = {
|
|||||||
"",
|
"",
|
||||||
true,
|
true,
|
||||||
SDLK_b, // B
|
SDLK_b, // B
|
||||||
0},
|
#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__)
|
||||||
|
SDLK_C|MOD_META // Right-Amiga + C
|
||||||
|
#else
|
||||||
|
0
|
||||||
|
#endif
|
||||||
|
},
|
||||||
{68,
|
{68,
|
||||||
"\"Lasso\" brush grabbing",
|
"\"Lasso\" brush grabbing",
|
||||||
"Allows you to pick a brush defined",
|
"Allows you to pick a brush defined",
|
||||||
@ -844,7 +849,12 @@ T_Key_config ConfigKey[NB_SHORTCUTS] = {
|
|||||||
"path-name.",
|
"path-name.",
|
||||||
true,
|
true,
|
||||||
SDLK_F2, // F2
|
SDLK_F2, // F2
|
||||||
0},
|
#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__)
|
||||||
|
SDLK_A|MOD_META // Right-Amiga + A
|
||||||
|
#else
|
||||||
|
0
|
||||||
|
#endif
|
||||||
|
},
|
||||||
{96,
|
{96,
|
||||||
"Save picture",
|
"Save picture",
|
||||||
"Saves your picture with the last",
|
"Saves your picture with the last",
|
||||||
@ -852,7 +862,12 @@ T_Key_config ConfigKey[NB_SHORTCUTS] = {
|
|||||||
"",
|
"",
|
||||||
true,
|
true,
|
||||||
SDLK_F2|MOD_SHIFT, // Shift + F2
|
SDLK_F2|MOD_SHIFT, // Shift + F2
|
||||||
0},
|
#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__)
|
||||||
|
SDLK_S|MOD_META // Right-Amiga + S
|
||||||
|
#else
|
||||||
|
0
|
||||||
|
#endif
|
||||||
|
},
|
||||||
{97,
|
{97,
|
||||||
"Load picture",
|
"Load picture",
|
||||||
"Opens a file-selector that allows",
|
"Opens a file-selector that allows",
|
||||||
@ -860,7 +875,12 @@ T_Key_config ConfigKey[NB_SHORTCUTS] = {
|
|||||||
"",
|
"",
|
||||||
true,
|
true,
|
||||||
SDLK_F3, // F3
|
SDLK_F3, // F3
|
||||||
0},
|
#if defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__)
|
||||||
|
SDLK_O|MOD_META // Right-Amiga + O
|
||||||
|
#else
|
||||||
|
0
|
||||||
|
#endif
|
||||||
|
},
|
||||||
{98,
|
{98,
|
||||||
"Re-load picture",
|
"Re-load picture",
|
||||||
"Re-load the current picture. This",
|
"Re-load the current picture. This",
|
||||||
@ -905,8 +925,10 @@ T_Key_config ConfigKey[NB_SHORTCUTS] = {
|
|||||||
(KEY_JOYBUTTON+JOY_BUTTON_I)
|
(KEY_JOYBUTTON+JOY_BUTTON_I)
|
||||||
#elif defined (__WIZ__)
|
#elif defined (__WIZ__)
|
||||||
(KEY_JOYBUTTON+JOY_BUTTON_L)
|
(KEY_JOYBUTTON+JOY_BUTTON_L)
|
||||||
|
#elif defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__)
|
||||||
|
SDLK_Z|MOD_META // Right-Amiga + Z
|
||||||
#else
|
#else
|
||||||
0
|
0
|
||||||
#endif
|
#endif
|
||||||
// --
|
// --
|
||||||
},
|
},
|
||||||
@ -963,8 +985,10 @@ T_Key_config ConfigKey[NB_SHORTCUTS] = {
|
|||||||
(KEY_JOYBUTTON+JOY_BUTTON_HOME)
|
(KEY_JOYBUTTON+JOY_BUTTON_HOME)
|
||||||
#elif defined (__WIZ__)
|
#elif defined (__WIZ__)
|
||||||
(KEY_JOYBUTTON+JOY_BUTTON_MENU)
|
(KEY_JOYBUTTON+JOY_BUTTON_MENU)
|
||||||
|
#eif defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__)
|
||||||
|
SDLK_Q|MOD_META // Right-Amiga + Q
|
||||||
#else
|
#else
|
||||||
0
|
0
|
||||||
#endif
|
#endif
|
||||||
// --
|
// --
|
||||||
|
|
||||||
|
|||||||
24
src/input.c
@ -38,6 +38,16 @@
|
|||||||
#include "input.h"
|
#include "input.h"
|
||||||
#include "loadsave.h"
|
#include "loadsave.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define RSUPER_EMULATES_META_MOD
|
||||||
|
// Keyboards with a Super key never seem to have a Meta key at the same time.
|
||||||
|
// This setting allows the right 'Super' key (the one with a 'Windows' or
|
||||||
|
// 'Amiga' label to be used as a modifier instead of a normal key.
|
||||||
|
// This feature is especially useful for AROS where applications should use
|
||||||
|
// generic defaults like "Right Amiga+Q = Quit".
|
||||||
|
// In case this is annoying for some platforms, disable it.
|
||||||
|
#endif
|
||||||
|
|
||||||
void Handle_window_resize(SDL_ResizeEvent event);
|
void Handle_window_resize(SDL_ResizeEvent event);
|
||||||
void Handle_window_exit(SDL_QuitEvent event);
|
void Handle_window_exit(SDL_QuitEvent event);
|
||||||
int Color_cycling(void);
|
int Color_cycling(void);
|
||||||
@ -410,6 +420,13 @@ int Handle_key_press(SDL_KeyboardEvent event)
|
|||||||
return Move_cursor_with_constraints();
|
return Move_cursor_with_constraints();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef RSUPER_EMULATES_META_MOD
|
||||||
|
if (Key==SDLK_RSUPER)
|
||||||
|
{
|
||||||
|
SDL_SetModState(SDL_GetModState() | KMOD_META);
|
||||||
|
Key=0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if(Is_shortcut(Key,SPECIAL_MOUSE_UP))
|
if(Is_shortcut(Key,SPECIAL_MOUSE_UP))
|
||||||
{
|
{
|
||||||
@ -548,6 +565,13 @@ int Handle_key_release(SDL_KeyboardEvent event)
|
|||||||
modifier=MOD_ALT;
|
modifier=MOD_ALT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#ifdef RSUPER_EMULATES_META_MOD
|
||||||
|
case SDLK_RSUPER:
|
||||||
|
SDL_SetModState(SDL_GetModState() & ~KMOD_META);
|
||||||
|
modifier=MOD_META;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
case SDLK_RMETA:
|
case SDLK_RMETA:
|
||||||
case SDLK_LMETA:
|
case SDLK_LMETA:
|
||||||
modifier=MOD_META;
|
modifier=MOD_META;
|
||||||
|
|||||||
@ -25,6 +25,19 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "keyboard.h"
|
#include "keyboard.h"
|
||||||
|
|
||||||
|
#if defined(__macosx__)
|
||||||
|
// Apple's "command" character is not present in the ANSI table, so we
|
||||||
|
// recycled an ANSI value that doesn't have any displayable character
|
||||||
|
// associated.
|
||||||
|
#define META_KEY_PREFIX "\201"
|
||||||
|
#elif defined(__amigaos4__) || defined(__AROS__) || defined(__MORPHOS__) || defined(__amigaos__)
|
||||||
|
// 'Amiga' key: an outlined uppercase A. Drawn on 2 unused characters.
|
||||||
|
#define META_KEY_PREFIX "\215\216"
|
||||||
|
#else
|
||||||
|
// All other platforms
|
||||||
|
#define META_KEY_PREFIX "Super+"
|
||||||
|
#endif
|
||||||
|
|
||||||
// Table de correspondance des scancode de clavier IBM PC AT vers
|
// Table de correspondance des scancode de clavier IBM PC AT vers
|
||||||
// les symboles de touches SDL (sym).
|
// les symboles de touches SDL (sym).
|
||||||
// La correspondance est bonne si le clavier est QWERTY US, ou si
|
// La correspondance est bonne si le clavier est QWERTY US, ou si
|
||||||
@ -458,11 +471,7 @@ const char * Key_name(word key)
|
|||||||
if (key & MOD_SHIFT)
|
if (key & MOD_SHIFT)
|
||||||
strcat(buffer, "Shift+");
|
strcat(buffer, "Shift+");
|
||||||
if (key & MOD_META)
|
if (key & MOD_META)
|
||||||
strcat(buffer, "\201");
|
strcat(buffer, META_KEY_PREFIX);
|
||||||
// Note: Apple's "command" character is not present in the ANSI table, so we
|
|
||||||
// recycled an ANSI value that doesn't have any displayable character
|
|
||||||
// associated.
|
|
||||||
|
|
||||||
|
|
||||||
key=key & ~(MOD_CTRL|MOD_ALT|MOD_SHIFT);
|
key=key & ~(MOD_CTRL|MOD_ALT|MOD_SHIFT);
|
||||||
|
|
||||||
|
|||||||