ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/SDL/video_sdl.cpp
(Generate patch)

Comparing BasiliskII/src/SDL/video_sdl.cpp (file contents):
Revision 1.35 by asvitkine, 2008-06-20T00:45:27Z vs.
Revision 1.36 by asvitkine, 2008-06-25T02:52:52Z

# Line 1543 | Line 1543 | void SDL_monitor_desc::switch_to_current
1543   #ifdef SHEEPSHAVER
1544   bool video_can_change_cursor(void)
1545   {
1546 <        return (display_type == DISPLAY_WINDOW);
1546 >        static char driver[] = "Quartz?";
1547 >        static int quartzok = -1;
1548 >
1549 >        if (display_type != DISPLAY_WINDOW)
1550 >                return false;
1551 >
1552 >        if (quartzok < 0) {
1553 >                if (SDL_VideoDriverName(driver, sizeof driver) == NULL || strncmp(driver, "Quartz", sizeof driver))
1554 >                        quartzok = true;
1555 >                else {
1556 >                        // Quartz driver bug prevents cursor changing in SDL 1.2.11 and later
1557 >                        const SDL_version *vp = SDL_Linked_Version();
1558 >                        quartzok = SDL_VERSIONNUM(vp->major, vp->minor, vp->patch) <= SDL_VERSIONNUM(1, 2, 10);
1559 >                }
1560 >        }
1561 >
1562 >        return quartzok;
1563   }
1564   #endif
1565  
# Line 2220 | Line 2236 | static inline void do_video_refresh(void
2236                  SDL_FreeCursor(sdl_cursor);
2237                  sdl_cursor = SDL_CreateCursor(MacCursor + 4, MacCursor + 36, 16, 16, MacCursor[2], MacCursor[3]);
2238                  if (sdl_cursor) {
2239 +                        SDL_ShowCursor(private_data == NULL || private_data->cursorVisible);
2240                          SDL_SetCursor(sdl_cursor);
2241   #ifdef WIN32
2242                          // XXX Windows apparently needs an extra mouse event to

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines