Skip to content

Commit 7408af0

Browse files
authored
Merge pull request #785 from rswinkle/support_sdl_right_control
Add support for right control to sdl backends
2 parents 76b10f0 + 6126312 commit 7408af0

File tree

5 files changed

+55
-55
lines changed

5 files changed

+55
-55
lines changed

demo/sdl_opengl2/nuklear_sdl_gl2.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -263,14 +263,14 @@ NK_API int
263263
nk_sdl_handle_event(SDL_Event *evt)
264264
{
265265
struct nk_context *ctx = &sdl.ctx;
266+
int ctrl_down = SDL_GetModState() & (KMOD_LCTRL | KMOD_RCTRL);
266267

267268
switch(evt->type)
268269
{
269270
case SDL_KEYUP: /* KEYUP & KEYDOWN share same routine */
270271
case SDL_KEYDOWN:
271272
{
272273
int down = evt->type == SDL_KEYDOWN;
273-
const Uint8* state = SDL_GetKeyboardState(0);
274274
switch(evt->key.keysym.sym)
275275
{
276276
case SDLK_RSHIFT: /* RSHIFT & LSHIFT share same routine */
@@ -288,26 +288,26 @@ nk_sdl_handle_event(SDL_Event *evt)
288288
nk_input_key(ctx, NK_KEY_SCROLL_END, down); break;
289289
case SDLK_PAGEDOWN: nk_input_key(ctx, NK_KEY_SCROLL_DOWN, down); break;
290290
case SDLK_PAGEUP: nk_input_key(ctx, NK_KEY_SCROLL_UP, down); break;
291-
case SDLK_z: nk_input_key(ctx, NK_KEY_TEXT_UNDO, down && state[SDL_SCANCODE_LCTRL]); break;
292-
case SDLK_r: nk_input_key(ctx, NK_KEY_TEXT_REDO, down && state[SDL_SCANCODE_LCTRL]); break;
293-
case SDLK_c: nk_input_key(ctx, NK_KEY_COPY, down && state[SDL_SCANCODE_LCTRL]); break;
294-
case SDLK_v: nk_input_key(ctx, NK_KEY_PASTE, down && state[SDL_SCANCODE_LCTRL]); break;
295-
case SDLK_x: nk_input_key(ctx, NK_KEY_CUT, down && state[SDL_SCANCODE_LCTRL]); break;
296-
case SDLK_b: nk_input_key(ctx, NK_KEY_TEXT_LINE_START, down && state[SDL_SCANCODE_LCTRL]); break;
297-
case SDLK_e: nk_input_key(ctx, NK_KEY_TEXT_LINE_END, down && state[SDL_SCANCODE_LCTRL]); break;
291+
case SDLK_z: nk_input_key(ctx, NK_KEY_TEXT_UNDO, down && ctrl_down); break;
292+
case SDLK_r: nk_input_key(ctx, NK_KEY_TEXT_REDO, down && ctrl_down); break;
293+
case SDLK_c: nk_input_key(ctx, NK_KEY_COPY, down && ctrl_down); break;
294+
case SDLK_v: nk_input_key(ctx, NK_KEY_PASTE, down && ctrl_down); break;
295+
case SDLK_x: nk_input_key(ctx, NK_KEY_CUT, down && ctrl_down); break;
296+
case SDLK_b: nk_input_key(ctx, NK_KEY_TEXT_LINE_START, down && ctrl_down); break;
297+
case SDLK_e: nk_input_key(ctx, NK_KEY_TEXT_LINE_END, down && ctrl_down); break;
298298
case SDLK_UP: nk_input_key(ctx, NK_KEY_UP, down); break;
299299
case SDLK_DOWN: nk_input_key(ctx, NK_KEY_DOWN, down); break;
300300
case SDLK_a:
301-
if(state[SDL_SCANCODE_LCTRL])
301+
if (ctrl_down)
302302
nk_input_key(ctx,NK_KEY_TEXT_SELECT_ALL, down);
303303
break;
304304
case SDLK_LEFT:
305-
if (state[SDL_SCANCODE_LCTRL])
305+
if (ctrl_down)
306306
nk_input_key(ctx, NK_KEY_TEXT_WORD_LEFT, down);
307307
else nk_input_key(ctx, NK_KEY_LEFT, down);
308308
break;
309309
case SDLK_RIGHT:
310-
if (state[SDL_SCANCODE_LCTRL])
310+
if (ctrl_down)
311311
nk_input_key(ctx, NK_KEY_TEXT_WORD_RIGHT, down);
312312
else nk_input_key(ctx, NK_KEY_RIGHT, down);
313313
break;

demo/sdl_opengl3/nuklear_sdl_gl3.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -373,14 +373,14 @@ NK_API int
373373
nk_sdl_handle_event(SDL_Event *evt)
374374
{
375375
struct nk_context *ctx = &sdl.ctx;
376+
int ctrl_down = SDL_GetModState() & (KMOD_LCTRL | KMOD_RCTRL);
376377

377378
switch(evt->type)
378379
{
379380
case SDL_KEYUP: /* KEYUP & KEYDOWN share same routine */
380381
case SDL_KEYDOWN:
381382
{
382383
int down = evt->type == SDL_KEYDOWN;
383-
const Uint8* state = SDL_GetKeyboardState(0);
384384
switch(evt->key.keysym.sym)
385385
{
386386
case SDLK_RSHIFT: /* RSHIFT & LSHIFT share same routine */
@@ -398,26 +398,26 @@ nk_sdl_handle_event(SDL_Event *evt)
398398
nk_input_key(ctx, NK_KEY_SCROLL_END, down); break;
399399
case SDLK_PAGEDOWN: nk_input_key(ctx, NK_KEY_SCROLL_DOWN, down); break;
400400
case SDLK_PAGEUP: nk_input_key(ctx, NK_KEY_SCROLL_UP, down); break;
401-
case SDLK_z: nk_input_key(ctx, NK_KEY_TEXT_UNDO, down && state[SDL_SCANCODE_LCTRL]); break;
402-
case SDLK_r: nk_input_key(ctx, NK_KEY_TEXT_REDO, down && state[SDL_SCANCODE_LCTRL]); break;
403-
case SDLK_c: nk_input_key(ctx, NK_KEY_COPY, down && state[SDL_SCANCODE_LCTRL]); break;
404-
case SDLK_v: nk_input_key(ctx, NK_KEY_PASTE, down && state[SDL_SCANCODE_LCTRL]); break;
405-
case SDLK_x: nk_input_key(ctx, NK_KEY_CUT, down && state[SDL_SCANCODE_LCTRL]); break;
406-
case SDLK_b: nk_input_key(ctx, NK_KEY_TEXT_LINE_START, down && state[SDL_SCANCODE_LCTRL]); break;
407-
case SDLK_e: nk_input_key(ctx, NK_KEY_TEXT_LINE_END, down && state[SDL_SCANCODE_LCTRL]); break;
401+
case SDLK_z: nk_input_key(ctx, NK_KEY_TEXT_UNDO, down && ctrl_down); break;
402+
case SDLK_r: nk_input_key(ctx, NK_KEY_TEXT_REDO, down && ctrl_down); break;
403+
case SDLK_c: nk_input_key(ctx, NK_KEY_COPY, down && ctrl_down); break;
404+
case SDLK_v: nk_input_key(ctx, NK_KEY_PASTE, down && ctrl_down); break;
405+
case SDLK_x: nk_input_key(ctx, NK_KEY_CUT, down && ctrl_down); break;
406+
case SDLK_b: nk_input_key(ctx, NK_KEY_TEXT_LINE_START, down && ctrl_down); break;
407+
case SDLK_e: nk_input_key(ctx, NK_KEY_TEXT_LINE_END, down && ctrl_down); break;
408408
case SDLK_UP: nk_input_key(ctx, NK_KEY_UP, down); break;
409409
case SDLK_DOWN: nk_input_key(ctx, NK_KEY_DOWN, down); break;
410410
case SDLK_a:
411-
if(state[SDL_SCANCODE_LCTRL])
411+
if (ctrl_down)
412412
nk_input_key(ctx,NK_KEY_TEXT_SELECT_ALL, down);
413413
break;
414414
case SDLK_LEFT:
415-
if (state[SDL_SCANCODE_LCTRL])
415+
if (ctrl_down)
416416
nk_input_key(ctx, NK_KEY_TEXT_WORD_LEFT, down);
417417
else nk_input_key(ctx, NK_KEY_LEFT, down);
418418
break;
419419
case SDLK_RIGHT:
420-
if (state[SDL_SCANCODE_LCTRL])
420+
if (ctrl_down)
421421
nk_input_key(ctx, NK_KEY_TEXT_WORD_RIGHT, down);
422422
else nk_input_key(ctx, NK_KEY_RIGHT, down);
423423
break;

demo/sdl_opengles2/nuklear_sdl_gles2.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -373,14 +373,14 @@ NK_API int
373373
nk_sdl_handle_event(SDL_Event *evt)
374374
{
375375
struct nk_context *ctx = &sdl.ctx;
376+
int ctrl_down = SDL_GetModState() & (KMOD_LCTRL | KMOD_RCTRL);
376377

377378
switch(evt->type)
378379
{
379380
case SDL_KEYUP: /* KEYUP & KEYDOWN share same routine */
380381
case SDL_KEYDOWN:
381382
{
382383
int down = evt->type == SDL_KEYDOWN;
383-
const Uint8* state = SDL_GetKeyboardState(0);
384384
switch(evt->key.keysym.sym)
385385
{
386386
case SDLK_RSHIFT: /* RSHIFT & LSHIFT share same routine */
@@ -398,26 +398,26 @@ nk_sdl_handle_event(SDL_Event *evt)
398398
nk_input_key(ctx, NK_KEY_SCROLL_END, down); break;
399399
case SDLK_PAGEDOWN: nk_input_key(ctx, NK_KEY_SCROLL_DOWN, down); break;
400400
case SDLK_PAGEUP: nk_input_key(ctx, NK_KEY_SCROLL_UP, down); break;
401-
case SDLK_z: nk_input_key(ctx, NK_KEY_TEXT_UNDO, down && state[SDL_SCANCODE_LCTRL]); break;
402-
case SDLK_r: nk_input_key(ctx, NK_KEY_TEXT_REDO, down && state[SDL_SCANCODE_LCTRL]); break;
403-
case SDLK_c: nk_input_key(ctx, NK_KEY_COPY, down && state[SDL_SCANCODE_LCTRL]); break;
404-
case SDLK_v: nk_input_key(ctx, NK_KEY_PASTE, down && state[SDL_SCANCODE_LCTRL]); break;
405-
case SDLK_x: nk_input_key(ctx, NK_KEY_CUT, down && state[SDL_SCANCODE_LCTRL]); break;
406-
case SDLK_b: nk_input_key(ctx, NK_KEY_TEXT_LINE_START, down && state[SDL_SCANCODE_LCTRL]); break;
407-
case SDLK_e: nk_input_key(ctx, NK_KEY_TEXT_LINE_END, down && state[SDL_SCANCODE_LCTRL]); break;
401+
case SDLK_z: nk_input_key(ctx, NK_KEY_TEXT_UNDO, down && ctrl_down); break;
402+
case SDLK_r: nk_input_key(ctx, NK_KEY_TEXT_REDO, down && ctrl_down); break;
403+
case SDLK_c: nk_input_key(ctx, NK_KEY_COPY, down && ctrl_down); break;
404+
case SDLK_v: nk_input_key(ctx, NK_KEY_PASTE, down && ctrl_down); break;
405+
case SDLK_x: nk_input_key(ctx, NK_KEY_CUT, down && ctrl_down); break;
406+
case SDLK_b: nk_input_key(ctx, NK_KEY_TEXT_LINE_START, down && ctrl_down); break;
407+
case SDLK_e: nk_input_key(ctx, NK_KEY_TEXT_LINE_END, down && ctrl_down); break;
408408
case SDLK_UP: nk_input_key(ctx, NK_KEY_UP, down); break;
409409
case SDLK_DOWN: nk_input_key(ctx, NK_KEY_DOWN, down); break;
410410
case SDLK_a:
411-
if(state[SDL_SCANCODE_LCTRL])
411+
if (ctrl_down)
412412
nk_input_key(ctx,NK_KEY_TEXT_SELECT_ALL, down);
413413
break;
414414
case SDLK_LEFT:
415-
if (state[SDL_SCANCODE_LCTRL])
415+
if (ctrl_down)
416416
nk_input_key(ctx, NK_KEY_TEXT_WORD_LEFT, down);
417417
else nk_input_key(ctx, NK_KEY_LEFT, down);
418418
break;
419419
case SDLK_RIGHT:
420-
if (state[SDL_SCANCODE_LCTRL])
420+
if (ctrl_down)
421421
nk_input_key(ctx, NK_KEY_TEXT_WORD_RIGHT, down);
422422
else nk_input_key(ctx, NK_KEY_RIGHT, down);
423423
break;

demo/sdl_renderer/nuklear_sdl_renderer.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -296,14 +296,14 @@ NK_API int
296296
nk_sdl_handle_event(SDL_Event *evt)
297297
{
298298
struct nk_context *ctx = &sdl.ctx;
299+
int ctrl_down = SDL_GetModState() & (KMOD_LCTRL | KMOD_RCTRL);
299300

300301
switch(evt->type)
301302
{
302303
case SDL_KEYUP: /* KEYUP & KEYDOWN share same routine */
303304
case SDL_KEYDOWN:
304305
{
305306
int down = evt->type == SDL_KEYDOWN;
306-
const Uint8* state = SDL_GetKeyboardState(0);
307307
switch(evt->key.keysym.sym)
308308
{
309309
case SDLK_RSHIFT: /* RSHIFT & LSHIFT share same routine */
@@ -321,26 +321,26 @@ nk_sdl_handle_event(SDL_Event *evt)
321321
nk_input_key(ctx, NK_KEY_SCROLL_END, down); break;
322322
case SDLK_PAGEDOWN: nk_input_key(ctx, NK_KEY_SCROLL_DOWN, down); break;
323323
case SDLK_PAGEUP: nk_input_key(ctx, NK_KEY_SCROLL_UP, down); break;
324-
case SDLK_z: nk_input_key(ctx, NK_KEY_TEXT_UNDO, down && state[SDL_SCANCODE_LCTRL]); break;
325-
case SDLK_r: nk_input_key(ctx, NK_KEY_TEXT_REDO, down && state[SDL_SCANCODE_LCTRL]); break;
326-
case SDLK_c: nk_input_key(ctx, NK_KEY_COPY, down && state[SDL_SCANCODE_LCTRL]); break;
327-
case SDLK_v: nk_input_key(ctx, NK_KEY_PASTE, down && state[SDL_SCANCODE_LCTRL]); break;
328-
case SDLK_x: nk_input_key(ctx, NK_KEY_CUT, down && state[SDL_SCANCODE_LCTRL]); break;
329-
case SDLK_b: nk_input_key(ctx, NK_KEY_TEXT_LINE_START, down && state[SDL_SCANCODE_LCTRL]); break;
330-
case SDLK_e: nk_input_key(ctx, NK_KEY_TEXT_LINE_END, down && state[SDL_SCANCODE_LCTRL]); break;
324+
case SDLK_z: nk_input_key(ctx, NK_KEY_TEXT_UNDO, down && ctrl_down); break;
325+
case SDLK_r: nk_input_key(ctx, NK_KEY_TEXT_REDO, down && ctrl_down); break;
326+
case SDLK_c: nk_input_key(ctx, NK_KEY_COPY, down && ctrl_down); break;
327+
case SDLK_v: nk_input_key(ctx, NK_KEY_PASTE, down && ctrl_down); break;
328+
case SDLK_x: nk_input_key(ctx, NK_KEY_CUT, down && ctrl_down); break;
329+
case SDLK_b: nk_input_key(ctx, NK_KEY_TEXT_LINE_START, down && ctrl_down); break;
330+
case SDLK_e: nk_input_key(ctx, NK_KEY_TEXT_LINE_END, down && ctrl_down); break;
331331
case SDLK_UP: nk_input_key(ctx, NK_KEY_UP, down); break;
332332
case SDLK_DOWN: nk_input_key(ctx, NK_KEY_DOWN, down); break;
333333
case SDLK_a:
334-
if(state[SDL_SCANCODE_LCTRL])
334+
if (ctrl_down)
335335
nk_input_key(ctx,NK_KEY_TEXT_SELECT_ALL, down);
336336
break;
337337
case SDLK_LEFT:
338-
if (state[SDL_SCANCODE_LCTRL])
338+
if (ctrl_down)
339339
nk_input_key(ctx, NK_KEY_TEXT_WORD_LEFT, down);
340340
else nk_input_key(ctx, NK_KEY_LEFT, down);
341341
break;
342342
case SDLK_RIGHT:
343-
if (state[SDL_SCANCODE_LCTRL])
343+
if (ctrl_down)
344344
nk_input_key(ctx, NK_KEY_TEXT_WORD_RIGHT, down);
345345
else nk_input_key(ctx, NK_KEY_RIGHT, down);
346346
break;

demo/sdl_vulkan/nuklear_sdl_vulkan.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1254,12 +1254,12 @@ NK_API void nk_sdl_handle_grab(void) {
12541254

12551255
NK_API int nk_sdl_handle_event(SDL_Event *evt) {
12561256
struct nk_context *ctx = &sdl.ctx;
1257+
int ctrl_down = SDL_GetModState() & (KMOD_LCTRL | KMOD_RCTRL);
12571258

12581259
switch (evt->type) {
12591260
case SDL_KEYUP: /* KEYUP & KEYDOWN share same routine */
12601261
case SDL_KEYDOWN: {
12611262
int down = evt->type == SDL_KEYDOWN;
1262-
const Uint8 *state = SDL_GetKeyboardState(0);
12631263
switch (evt->key.keysym.sym) {
12641264
case SDLK_RSHIFT: /* RSHIFT & LSHIFT share same routine */
12651265
case SDLK_LSHIFT:
@@ -1294,28 +1294,28 @@ NK_API int nk_sdl_handle_event(SDL_Event *evt) {
12941294
break;
12951295
case SDLK_z:
12961296
nk_input_key(ctx, NK_KEY_TEXT_UNDO,
1297-
down && state[SDL_SCANCODE_LCTRL]);
1297+
down && ctrl_down);
12981298
break;
12991299
case SDLK_r:
13001300
nk_input_key(ctx, NK_KEY_TEXT_REDO,
1301-
down && state[SDL_SCANCODE_LCTRL]);
1301+
down && ctrl_down);
13021302
break;
13031303
case SDLK_c:
1304-
nk_input_key(ctx, NK_KEY_COPY, down && state[SDL_SCANCODE_LCTRL]);
1304+
nk_input_key(ctx, NK_KEY_COPY, down && ctrl_down);
13051305
break;
13061306
case SDLK_v:
1307-
nk_input_key(ctx, NK_KEY_PASTE, down && state[SDL_SCANCODE_LCTRL]);
1307+
nk_input_key(ctx, NK_KEY_PASTE, down && ctrl_down);
13081308
break;
13091309
case SDLK_x:
1310-
nk_input_key(ctx, NK_KEY_CUT, down && state[SDL_SCANCODE_LCTRL]);
1310+
nk_input_key(ctx, NK_KEY_CUT, down && ctrl_down);
13111311
break;
13121312
case SDLK_b:
13131313
nk_input_key(ctx, NK_KEY_TEXT_LINE_START,
1314-
down && state[SDL_SCANCODE_LCTRL]);
1314+
down && ctrl_down);
13151315
break;
13161316
case SDLK_e:
13171317
nk_input_key(ctx, NK_KEY_TEXT_LINE_END,
1318-
down && state[SDL_SCANCODE_LCTRL]);
1318+
down && ctrl_down);
13191319
break;
13201320
case SDLK_UP:
13211321
nk_input_key(ctx, NK_KEY_UP, down);
@@ -1324,17 +1324,17 @@ NK_API int nk_sdl_handle_event(SDL_Event *evt) {
13241324
nk_input_key(ctx, NK_KEY_DOWN, down);
13251325
break;
13261326
case SDLK_a:
1327-
if(state[SDL_SCANCODE_LCTRL])
1327+
if(ctrl_down)
13281328
nk_input_key(ctx,NK_KEY_TEXT_SELECT_ALL, down);
13291329
break;
13301330
case SDLK_LEFT:
1331-
if (state[SDL_SCANCODE_LCTRL])
1331+
if (ctrl_down)
13321332
nk_input_key(ctx, NK_KEY_TEXT_WORD_LEFT, down);
13331333
else
13341334
nk_input_key(ctx, NK_KEY_LEFT, down);
13351335
break;
13361336
case SDLK_RIGHT:
1337-
if (state[SDL_SCANCODE_LCTRL])
1337+
if (ctrl_down)
13381338
nk_input_key(ctx, NK_KEY_TEXT_WORD_RIGHT, down);
13391339
else
13401340
nk_input_key(ctx, NK_KEY_RIGHT, down);

0 commit comments

Comments
 (0)