diff options
author | Keith Packard <keithp@neko.keithp.com> | 2007-03-15 10:50:45 -0700 |
---|---|---|
committer | Keith Packard <keithp@neko.keithp.com> | 2007-03-15 10:50:45 -0700 |
commit | 5b77bf2d020b1ee56c1c5f2db089a8f7f64a76a6 (patch) | |
tree | 7bdaa19d1a619394f28d5e1ec15fd8c52aff2a2e | |
parent | 4d81c99a4660a0bf9014f789de55edabd185bd14 (diff) |
Allow xf86_reload_cursors during server init.
xf86_reload_cursors is supposed to be called from the crtc mode setting
commit hook; as that happens during server initialization, check for this
case.
-rw-r--r-- | hw/xfree86/modes/xf86Cursors.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c index 095df4845..009cccf89 100644 --- a/hw/xfree86/modes/xf86Cursors.c +++ b/hw/xfree86/modes/xf86Cursors.c @@ -548,12 +548,24 @@ xf86_cursors_init (ScreenPtr screen, int max_width, int max_height, int flags) void xf86_reload_cursors (ScreenPtr screen) { - ScrnInfoPtr scrn = xf86Screens[screen->myNum]; - xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); - xf86CursorInfoPtr cursor_info = xf86_config->cursor_info; - CursorPtr cursor = xf86_config->cursor; + ScrnInfoPtr scrn; + xf86CrtcConfigPtr xf86_config; + xf86CursorInfoPtr cursor_info; + CursorPtr cursor; int x, y; + /* initial mode setting will not have set a screen yet */ + if (!screen) + return; + scrn = xf86Screens[screen->myNum]; + xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + + /* make sure the cursor code has been initialized */ + cursor_info = xf86_config->cursor_info; + if (!cursor_info) + return; + + cursor = xf86_config->cursor; GetSpritePosition (&x, &y); if (!(cursor_info->Flags & HARDWARE_CURSOR_UPDATE_UNHIDDEN)) (*cursor_info->HideCursor)(scrn); |