mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-20 22:16:49 +01:00
Added SDL_HINT_CTRL_CLICK_EMULATE_RIGHT_CLICK hint which controls whether ctrl+click should emulate a right click on OSX.
This commit is contained in:
parent
493fadd5c1
commit
621c7f8f1f
@ -283,6 +283,14 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
#define SDL_HINT_VIDEO_HIGHDPI_DISABLED "SDL_VIDEO_HIGHDPI_DISABLED"
|
#define SDL_HINT_VIDEO_HIGHDPI_DISABLED "SDL_VIDEO_HIGHDPI_DISABLED"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief A variable that determines whether ctrl+click should generate a right-click event on Mac
|
||||||
|
*
|
||||||
|
* If present, holding ctrl while left clicking will generate a right click
|
||||||
|
* event when on Mac.
|
||||||
|
*/
|
||||||
|
#define SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK"
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief An enumeration of hint priorities
|
* \brief An enumeration of hint priorities
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
#include "SDL_syswm.h"
|
#include "SDL_syswm.h"
|
||||||
#include "SDL_timer.h" /* For SDL_GetTicks() */
|
#include "SDL_timer.h" /* For SDL_GetTicks() */
|
||||||
|
#include "SDL_hints.h"
|
||||||
#include "../SDL_sysvideo.h"
|
#include "../SDL_sysvideo.h"
|
||||||
#include "../../events/SDL_keyboard_c.h"
|
#include "../../events/SDL_keyboard_c.h"
|
||||||
#include "../../events/SDL_mouse_c.h"
|
#include "../../events/SDL_mouse_c.h"
|
||||||
@ -59,6 +60,12 @@ static void ScheduleContextUpdates(SDL_WindowData *data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int GetHintCtrlClickEmulateRightClick()
|
||||||
|
{
|
||||||
|
const char *hint = SDL_GetHint( SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK );
|
||||||
|
return hint != NULL && *hint != '0';
|
||||||
|
}
|
||||||
|
|
||||||
@implementation Cocoa_WindowListener
|
@implementation Cocoa_WindowListener
|
||||||
|
|
||||||
- (void)listen:(SDL_WindowData *)data
|
- (void)listen:(SDL_WindowData *)data
|
||||||
@ -341,7 +348,8 @@ static void ScheduleContextUpdates(SDL_WindowData *data)
|
|||||||
|
|
||||||
switch ([theEvent buttonNumber]) {
|
switch ([theEvent buttonNumber]) {
|
||||||
case 0:
|
case 0:
|
||||||
if ([theEvent modifierFlags] & NSControlKeyMask) {
|
if (([theEvent modifierFlags] & NSControlKeyMask) &&
|
||||||
|
GetHintCtrlClickEmulateRightClick()) {
|
||||||
wasCtrlLeft = YES;
|
wasCtrlLeft = YES;
|
||||||
button = SDL_BUTTON_RIGHT;
|
button = SDL_BUTTON_RIGHT;
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user