Re: [AD] GUI kills OS cursor |
[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
- To: alleg-developers@xxxxxxxxxx
- Subject: Re: [AD] GUI kills OS cursor
- From: Chris <chris.kcat@xxxxxxxxxx>
- Date: Mon, 04 Apr 2005 16:15:35 -0700
- Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:user-agent:x-accept-language:mime-version:to:subject:references:in-reply-to:content-type:content-transfer-encoding; b=fecofOgqeG9QJIX0zIjBMjLs/EZ3+Z2o+gpl9PAz7EuHum/9Mn5Pw5VW/Q9Q8WsvmRwgOvo4qTVlC+S6+qK0xpdaGRf22ghUU6Uqw2CMejCIQN5ZKGO5mcL6GsER+8Gpq7G6cdEGDn/8efocznVr+UiI47nAZfKmvXyGLwPnVCA=
Evert Glebbeek wrote:
Now, my theory is that setting the OS cursor sets _mouse_screen to NULL,
and the subsequent call to show_mouse(gui_bmp) is ignored (you still get
the OS cursor).
I think it still sets _mouse_screen, but show_mouse() calls to anything
other than the physical screen are ignored.
That might be it, then. If _mouse_screen gets set to screen (or NULL),
do_dialog will "save" that value, change to the buffer (and be ignored),
then it'll attempt to set _mouse_screen back to screen (or NULL) and
revert it back to software. I know calling show_mouse(NULL) turns off
the OS cursor (as it should), but I don't know what show_mouse(screen)
would do.
If that happens to be the case, the attached patch should fix the
problem. If that's not the case, or if there's an unforeseen side-effect
of this change, then I'm not sure what to do...
Do you have an example programme that demonstrates the problem easily?
Hmm... maybe check with exsyscur first... I think Peter mentioned that
there were issues with it.
Well, exsyscur seems to work mostly alright for me, with the exception
that MOUSE_CURSOR_ALLEGRO doesn't report HW_CURSOR or SYSTEM_CURSOR (but
I'm not sure if my system is capable of using them for custom cursors).
Also, any possible relation between this problem and bug #1176533 on the
tracker?
Doesn't sound it. That bug sounds like the system cursor isn't hidden
when the software cursor is in use, and that the software cursor
sometimes shows at a different spot.