mirror of
https://github.com/glfw/glfw.git
synced 2025-06-15 20:22:15 +00:00
response to the shutdown
This commit is contained in:
parent
067598814d
commit
30c5f3a924
@ -1422,10 +1422,11 @@ typedef void (* GLFWwindowclosefun)(GLFWwindow*);
|
||||
*
|
||||
* @sa @ref machine_shutdown
|
||||
* @sa @ref glfwSetMachineShutdownCallback
|
||||
* @return GLFW_TRUE to accept the shutdown or GLFW_FALSE to interrupt it
|
||||
*
|
||||
* @ingroup window
|
||||
*/
|
||||
typedef void (* GLFWmachineShutdownfun)(GLFWwindow*);
|
||||
typedef int (* GLFWmachineShutdownfun)(GLFWwindow*);
|
||||
|
||||
/*! @brief The function pointer type for window content refresh callbacks.
|
||||
*
|
||||
|
@ -730,7 +730,7 @@ void _glfwInputWindowIconify(_GLFWwindow* window, GLFWbool iconified);
|
||||
void _glfwInputWindowMaximize(_GLFWwindow* window, GLFWbool maximized);
|
||||
void _glfwInputWindowDamage(_GLFWwindow* window);
|
||||
void _glfwInputWindowCloseRequest(_GLFWwindow* window);
|
||||
void _glfwInputMachineShutdown(_GLFWwindow* window);
|
||||
GLFWbool _glfwInputMachineShutdown(_GLFWwindow* window);
|
||||
void _glfwInputWindowMonitor(_GLFWwindow* window, _GLFWmonitor* monitor);
|
||||
|
||||
void _glfwInputKey(_GLFWwindow* window,
|
||||
|
@ -627,6 +627,11 @@ static LRESULT CALLBACK windowProc(HWND hWnd, UINT uMsg,
|
||||
return 0;
|
||||
}
|
||||
|
||||
case WM_QUERYENDSESSION:
|
||||
{
|
||||
return _glfwInputMachineShutdown(window);
|
||||
}
|
||||
|
||||
case WM_INPUTLANGCHANGE:
|
||||
{
|
||||
_glfwUpdateKeyNamesWin32();
|
||||
@ -1199,13 +1204,6 @@ static LRESULT CALLBACK windowProc(HWND hWnd, UINT uMsg,
|
||||
DragFinish(drop);
|
||||
return 0;
|
||||
}
|
||||
|
||||
case WM_QUERYENDSESSION:
|
||||
case WM_ENDSESSION:
|
||||
{
|
||||
_glfwInputMachineShutdown(window);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return DefWindowProcW(hWnd, uMsg, wParam, lParam);
|
||||
|
@ -140,10 +140,12 @@ void _glfwInputWindowCloseRequest(_GLFWwindow* window)
|
||||
|
||||
// Notifies shared code that the machine is shuting down
|
||||
//
|
||||
void _glfwInputMachineShutdown(_GLFWwindow *window)
|
||||
GLFWbool _glfwInputMachineShutdown(_GLFWwindow *window)
|
||||
{
|
||||
if (window->callbacks.shutdown)
|
||||
window->callbacks.shutdown((GLFWwindow*) window);
|
||||
if (window->callbacks.shutdown) {
|
||||
return window->callbacks.shutdown((GLFWwindow*) window);
|
||||
}
|
||||
return GLFW_TRUE;
|
||||
}
|
||||
|
||||
// Notifies shared code that a window has changed its desired monitor
|
||||
|
@ -329,11 +329,12 @@ static void window_close_callback(GLFWwindow* window)
|
||||
glfwSetWindowShouldClose(window, slot->closeable);
|
||||
}
|
||||
|
||||
static void window_machine_shutdown_callback(GLFWwindow* window)
|
||||
static int window_machine_shutdown_callback(GLFWwindow* window)
|
||||
{
|
||||
printf("%08x at %0.3f: Machine shutdown detected\n",
|
||||
counter++,
|
||||
glfwGetTime());
|
||||
return GLFW_TRUE;
|
||||
}
|
||||
|
||||
static void window_refresh_callback(GLFWwindow* window)
|
||||
|
Loading…
Reference in New Issue
Block a user