Changeset b48c8a5 in buchla-emu


Ignore:
Timestamp:
08/20/2017 07:23:37 PM (7 years ago)
Author:
Thomas Lopatic <thomas@…>
Branches:
master
Children:
a9861f3
Parents:
f285858
Message:

Mouse capture.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • emu/sdl.c

    rf285858 rb48c8a5  
    6666#endif
    6767
     68        bool rel_mod = false;
     69
    6870        while (SDL_AtomicGet(&run) != 0) {
    6971                for (int32_t i = 0; i < ARRAY_COUNT(sdl_funcs); ++i) {
     
    7476
    7577                while (SDL_PollEvent(&ev) > 0) {
     78                        ver2("sdl ev %d", ev.type);
     79
    7680#if defined EMU_LINUX
    7781                        // Work around duplicate key-down events on Linux.
     
    7983                        if (ev.type == SDL_KEYDOWN) {
    8084                                if (down == ev.key.keysym.scancode) {
     85                                        ver2("sdl dedup: skip %d", (int32_t)down);
    8186                                        continue;
    8287                                }
    8388
    8489                                down = ev.key.keysym.scancode;
     90                                ver2("sdl dedup: %d", (int32_t)down);
    8591                        }
    8692                        else if (ev.type == SDL_KEYUP) {
    8793                                down = SDL_SCANCODE_UNKNOWN;
     94                                ver2("sdl dedup: reset");
    8895                        }
    8996#endif
     
    9198                        if (ev.type == SDL_QUIT ||
    9299                                        (ev.type == SDL_KEYDOWN && ev.key.keysym.sym == SDLK_ESCAPE)) {
    93                                 ver("quit");
     100                                inf("quit event");
    94101                                SDL_AtomicSet(&run, 0);
    95102                                continue;
    96103                        }
    97104
     105                        if (ev.type == SDL_KEYDOWN && ev.key.keysym.sym == SDLK_DOWN) {
     106                                ver("sdl ev down-arrow");
     107                                rel_mod = true;
     108                                continue;
     109                        }
     110
     111                        if (ev.type == SDL_KEYDOWN && ev.key.keysym.sym == SDLK_UP) {
     112                                ver("sdl ev up-arrow");
     113                                rel_mod = false;
     114                                continue;
     115                        }
     116
    98117                        if (ev.type == SDL_TEXTINPUT) {
     118                                ver("sdl ev text input %d", ev.text.text[0]);
    99119                                ser_text(&ev.text);
    100120                                continue;
     
    102122
    103123                        if (ev.type == SDL_KEYDOWN) {
     124                                ver("sdl ev key down %d", (int32_t)ev.key.keysym.sym);
    104125                                ser_key(&ev.key);
    105126                                continue;
    106127                        }
     128                }
    107129
    108                         SDL_Delay(50);
     130                SDL_Delay(50);
     131
     132                if (SDL_GetRelativeMouseMode() != rel_mod) {
     133                        SDL_SetRelativeMouseMode(rel_mod);
     134
     135                        if (rel_mod) {
     136                                inf("MOUSE CAPTURED - press UP-ARROW KEY to release");
     137                        }
     138                        else {
     139                                inf("mouse released");
     140                        }
    109141                }
    110142        }
  • misc/buchla.supp

    rf285858 rb48c8a5  
    2121
    2222{
     23        X11_ShowCursor
     24        Memcheck:Leak
     25        ...
     26        fun:X11_ShowCursor
     27}
     28
     29{
    2330        SDL_Init_REAL
    2431        Memcheck:Leak
Note: See TracChangeset for help on using the changeset viewer.