Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Added SDL_HINT_CTRL_CLICK_EMULATE_RIGHT_CLICK hint which controls whe…
…ther ctrl+click should emulate a right click on OSX.
- Loading branch information
Showing
with
17 additions
and
1 deletion.
-
+8
−0
include/SDL_hints.h
-
+9
−1
src/video/cocoa/SDL_cocoawindow.m
|
@@ -283,6 +283,14 @@ extern "C" { |
|
|
*/ |
|
|
#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 |
|
|
|
@@ -24,6 +24,7 @@ |
|
|
|
|
|
#include "SDL_syswm.h" |
|
|
#include "SDL_timer.h" /* For SDL_GetTicks() */ |
|
|
#include "SDL_hints.h" |
|
|
#include "../SDL_sysvideo.h" |
|
|
#include "../../events/SDL_keyboard_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 |
|
|
|
|
|
- (void)listen:(SDL_WindowData *)data |
|
@@ -341,7 +348,8 @@ - (void)mouseDown:(NSEvent *)theEvent |
|
|
|
|
|
switch ([theEvent buttonNumber]) { |
|
|
case 0: |
|
|
if ([theEvent modifierFlags] & NSControlKeyMask) { |
|
|
if (([theEvent modifierFlags] & NSControlKeyMask) && |
|
|
GetHintCtrlClickEmulateRightClick()) { |
|
|
wasCtrlLeft = YES; |
|
|
button = SDL_BUTTON_RIGHT; |
|
|
} else { |
|
|