Commit ae2275c2 authored by Patrice Mandin's avatar Patrice Mandin

Check video driver mouse cursor pointers before using them

--HG--
branch : SDL-1.2
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%402234
parent 8061a35d
......@@ -188,7 +188,7 @@ void SDL_SetCursor (SDL_Cursor *cursor)
it needs to hide the old cursor before (possibly)
showing the new one. (But don't erase NULL cursor)
*/
if ( SDL_cursor ) {
if ( SDL_cursor && video->ShowWMCursor ) {
video->ShowWMCursor(this, NULL);
}
}
......@@ -198,8 +198,11 @@ void SDL_SetCursor (SDL_Cursor *cursor)
/* Draw the new mouse cursor */
if ( SDL_cursor && (SDL_cursorstate&CURSOR_VISIBLE) ) {
/* Use window manager cursor if possible */
if ( SDL_cursor->wm_cursor &&
video->ShowWMCursor(this, SDL_cursor->wm_cursor) ) {
int show_wm_cursor = 0;
if ( SDL_cursor->wm_cursor && video->ShowWMCursor ) {
show_wm_cursor = video->ShowWMCursor(this, SDL_cursor->wm_cursor);
}
if ( show_wm_cursor ) {
SDL_cursorstate &= ~CURSOR_USINGSW;
} else {
SDL_cursorstate |= CURSOR_USINGSW;
......@@ -219,7 +222,9 @@ void SDL_SetCursor (SDL_Cursor *cursor)
SDL_EraseCursor(SDL_VideoSurface);
} else {
if ( video ) {
video->ShowWMCursor(this, NULL);
if ( video->ShowWMCursor ) {
video->ShowWMCursor(this, NULL);
}
}
}
}
......@@ -248,7 +253,9 @@ void SDL_FreeCursor (SDL_Cursor *cursor)
SDL_free(cursor->save[0]);
}
if ( video && cursor->wm_cursor ) {
video->FreeWMCursor(this, cursor->wm_cursor);
if ( video->FreeWMCursor ) {
video->FreeWMCursor(this, cursor->wm_cursor);
}
}
SDL_free(cursor);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment