You need to check event.window.event
rather than event.window.type
, since type is more general and has some other usage (code 512 is related to SDL_WINDOW_INPUT_FOCUS and it triggered whenever you moved cursor to or from window). So your code could be like this:
while(SDL_PollEvent(&event)) {
switch(event.type)
{
case SDL_WINDOWEVENT:
switch(event.window.event)
{
case SDL_WINDOWEVENT_ENTER:
cout << "entered" << endl;
break;
case SDL_WINDOWEVENT_LEAVE:
cout << "left" << endl;
break;
}
break;
case SDL_KEYDOWN:
cout << "key pressed: " << event.key.keysym.sym << endl;
break;
}
}