src/video/windx5/SDL_dx5events.c
changeset 970 fb8b91365766
parent 833 31fa08b36380
child 975 add87cc1de0a
equal deleted inserted replaced
969:cfb9518670f4 970:fb8b91365766
   139 {
   139 {
   140 	int         i;
   140 	int         i;
   141 	LPDIRECTINPUTDEVICE device;
   141 	LPDIRECTINPUTDEVICE device;
   142 	HRESULT     result;
   142 	HRESULT     result;
   143 	DIPROPDWORD dipdw;
   143 	DIPROPDWORD dipdw;
       
   144 	HWND        topwnd;
   144 
   145 
   145 	/* Create the DirectInput object */
   146 	/* Create the DirectInput object */
   146 	result = DInputCreate(SDL_Instance, DIRECTINPUT_VERSION,
   147 	result = DInputCreate(SDL_Instance, DIRECTINPUT_VERSION,
   147 							&dinput, NULL);
   148 							&dinput, NULL);
   148 	if ( result != DI_OK ) {
   149 	if ( result != DI_OK ) {
   165 		IDirectInputDevice_Release(device);
   166 		IDirectInputDevice_Release(device);
   166 		if ( result != DI_OK ) {
   167 		if ( result != DI_OK ) {
   167 			SetDIerror("DirectInputDevice::QueryInterface", result);
   168 			SetDIerror("DirectInputDevice::QueryInterface", result);
   168 			return(-1);
   169 			return(-1);
   169 		}
   170 		}
       
   171 		topwnd =  GetAncestor(SDL_Window, GA_ROOT);
   170 		result = IDirectInputDevice2_SetCooperativeLevel(SDL_DIdev[i],
   172 		result = IDirectInputDevice2_SetCooperativeLevel(SDL_DIdev[i],
   171 					SDL_Window, inputs[i].win_level);
   173 					topwnd, inputs[i].win_level);
   172 		if ( result != DI_OK ) {
   174 		if ( result != DI_OK ) {
   173 			SetDIerror("DirectInputDevice::SetCooperativeLevel",
   175 			SetDIerror("DirectInputDevice::SetCooperativeLevel",
   174 									result);
   176 									result);
   175 			return(-1);
   177 			return(-1);
   176 		}
   178 		}
   638 void DX5_DInputReset(_THIS, int fullscreen)
   640 void DX5_DInputReset(_THIS, int fullscreen)
   639 {
   641 {
   640 	DWORD level;
   642 	DWORD level;
   641 	int i;
   643 	int i;
   642 	HRESULT result;
   644 	HRESULT result;
       
   645 	HWND topwnd;
   643 
   646 
   644 	for ( i=0; i<MAX_INPUTS; ++i ) {
   647 	for ( i=0; i<MAX_INPUTS; ++i ) {
   645 		if ( SDL_DIdev[i] != NULL ) {
   648 		if ( SDL_DIdev[i] != NULL ) {
   646 			if ( fullscreen ) {
   649 			if ( fullscreen ) {
   647 				level = inputs[i].raw_level;
   650 				level = inputs[i].raw_level;
   648 			} else {
   651 			} else {
   649 				level = inputs[i].win_level;
   652 				level = inputs[i].win_level;
   650 			}
   653 			}
   651 			IDirectInputDevice2_Unacquire(SDL_DIdev[i]);
   654 			IDirectInputDevice2_Unacquire(SDL_DIdev[i]);
       
   655 			topwnd = GetAncestor(SDL_Window, GA_ROOT);
   652 			result = IDirectInputDevice2_SetCooperativeLevel(
   656 			result = IDirectInputDevice2_SetCooperativeLevel(
   653 					SDL_DIdev[i], SDL_Window, level);
   657 					SDL_DIdev[i], topwnd, level);
   654 			IDirectInputDevice2_Acquire(SDL_DIdev[i]);
   658 			IDirectInputDevice2_Acquire(SDL_DIdev[i]);
   655 			if ( result != DI_OK ) {
   659 			if ( result != DI_OK ) {
   656 				SetDIerror(
   660 				SetDIerror(
   657 			"DirectInputDevice::SetCooperativeLevel", result);
   661 			"DirectInputDevice::SetCooperativeLevel", result);
   658 			}
   662 			}