sdlSetWindowPosition function

bool sdlSetWindowPosition(
  1. Pointer<SdlWindow> window,
  2. int x,
  3. int y
)

Request that the window's position be set.

If the window is in an exclusive fullscreen or maximized state, this request has no effect.

This can be used to reposition fullscreen-desktop windows onto a different display, however, as exclusive fullscreen windows are locked to a specific display, they can only be repositioned programmatically via SDL_SetWindowFullscreenMode().

On some windowing systems this request is asynchronous and the new coordinates may not have have been applied immediately upon the return of this function. If an immediate change is required, call SDL_SyncWindow() to block until the changes have taken effect.

When the window position changes, an SDL_EVENT_WINDOW_MOVED event will be emitted with the window's new coordinates. Note that the new coordinates may not match the exact coordinates requested, as some windowing systems can restrict the position of the window in certain scenarios (e.g. constraining the position so the window is always within desktop bounds). Additionally, as this is just a request, it can be denied by the windowing system.

\param window the window to reposition. \param x the x coordinate of the window, or SDL_WINDOWPOS_CENTERED or SDL_WINDOWPOS_UNDEFINED. \param y the y coordinate of the window, or SDL_WINDOWPOS_CENTERED or SDL_WINDOWPOS_UNDEFINED. \returns true on success or false on failure; call SDL_GetError() for more information.

\threadsafety This function should only be called on the main thread.

\since This function is available since SDL 3.1.3.

\sa SDL_GetWindowPosition \sa SDL_SyncWindow

extern SDL_DECLSPEC bool SDLCALL SDL_SetWindowPosition(SDL_Window *window, int x, int y)

Implementation

bool sdlSetWindowPosition(Pointer<SdlWindow> window, int x, int y) {
  final sdlSetWindowPositionLookupFunction = libSdl3.lookupFunction<
      Uint8 Function(Pointer<SdlWindow> window, Int32 x, Int32 y),
      int Function(
          Pointer<SdlWindow> window, int x, int y)>('SDL_SetWindowPosition');
  return sdlSetWindowPositionLookupFunction(window, x, y) == 1;
}