Fixed an old (pre v2.0) control bug where releasing shift key had the extra effect of releasing the left mouse button.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@896 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
9e9fd506b6
commit
158cd7ff45
20
input.c
20
input.c
@ -39,6 +39,8 @@ byte Directional_down;
|
||||
byte Directional_down_left;
|
||||
byte Directional_left;
|
||||
byte Directional_up_left;
|
||||
byte Directional_click;
|
||||
|
||||
long Directional_delay;
|
||||
long Directional_last_move;
|
||||
long Directional_step;
|
||||
@ -330,11 +332,13 @@ int Handle_key_press(SDL_KeyboardEvent event)
|
||||
else if(Is_shortcut(Key,SPECIAL_CLICK_LEFT))
|
||||
{
|
||||
Input_new_mouse_K=1;
|
||||
Directional_click=1;
|
||||
return Move_cursor_with_constraints();
|
||||
}
|
||||
else if(Is_shortcut(Key,SPECIAL_CLICK_RIGHT))
|
||||
{
|
||||
Input_new_mouse_K=2;
|
||||
Directional_click=2;
|
||||
return Move_cursor_with_constraints();
|
||||
}
|
||||
|
||||
@ -368,14 +372,22 @@ int Release_control(int key_code, int modifier)
|
||||
if((key_code && key_code == (Config_Key[SPECIAL_CLICK_LEFT][0]&0x0FFF)) || (Config_Key[SPECIAL_CLICK_LEFT][0]&modifier) ||
|
||||
(key_code && key_code == (Config_Key[SPECIAL_CLICK_LEFT][1]&0x0FFF)) || (Config_Key[SPECIAL_CLICK_LEFT][1]&modifier))
|
||||
{
|
||||
Input_new_mouse_K &= ~1;
|
||||
return Move_cursor_with_constraints();
|
||||
if (Directional_click & 1)
|
||||
{
|
||||
Directional_click &= ~1;
|
||||
Input_new_mouse_K &= ~1;
|
||||
return Move_cursor_with_constraints();
|
||||
}
|
||||
}
|
||||
if((key_code && key_code == (Config_Key[SPECIAL_CLICK_RIGHT][0]&0x0FFF)) || (Config_Key[SPECIAL_CLICK_RIGHT][0]&modifier) ||
|
||||
(key_code && key_code == (Config_Key[SPECIAL_CLICK_RIGHT][1]&0x0FFF)) || (Config_Key[SPECIAL_CLICK_RIGHT][1]&modifier))
|
||||
{
|
||||
Input_new_mouse_K &= ~2;
|
||||
return Move_cursor_with_constraints();
|
||||
if (Directional_click & 2)
|
||||
{
|
||||
Directional_click &= ~2;
|
||||
Input_new_mouse_K &= ~2;
|
||||
return Move_cursor_with_constraints();
|
||||
}
|
||||
}
|
||||
|
||||
// Other keys don't need to be released : they are handled as "events" and procesed only once.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user