Question about mouse grabbing and X on Apple hardware.

Super Bisquit superbisquit at gmail.com
Fri Aug 5 03:52:46 UTC 2011


On Thu, Aug 4, 2011 at 9:45 AM, Nathan Whitehorn <nwhitehorn at freebsd.org>wrote:

>  On 08/03/11 10:12, Super Bisquit wrote:
>
>
>
> On Wed, Aug 3, 2011 at 4:13 AM, Matthieu Herrb <matthieu.herrb at laas.fr>wrote:
>
>> On Wed, Aug 03, 2011 at 03:18:22AM -0400, Super Bisquit wrote:
>> > On Wed, Aug 3, 2011 at 1:49 AM, Matthieu Herrb <matthieu.herrb at laas.fr
>> >wrote:
>> >
>> > > On Tue, Aug 02, 2011 at 07:00:12PM -0400, Super Bisquit wrote:
>> > > > My apologies before hand.
>> > > > I'm wondering how the OpenBSD PPC port dealt with the mouse
>> > > > grabbing.
>> > >
>> > > Sorry, I don't understand the question. What kind of grabbing are you
>> > > talking about? At the X server level, there is nothing MI in this
>> > > area.
>> > >
>> >
>> > The mouse pointer will get caught on the left edge of the screen and
>> then
>> > only a restart of X allows the pointer to be free again.
>> > And thanks for the reply.
>>
>>  On OpenBSD/macppc, I don't remember having seen that problem, but I
>> may be wrong, and I don't use it on a daily basis anymore. We had it
>> on other architectures though.
>>
>> The main reason for this bug is the SIGIO handler in the
>> Xserver. By default X processes all the data from the mouse driver in
>> the signal handler attached to SIGIO. With the new pointer
>> acceleration code this includes a good amount of floating point
>> computations, and may even trigger some MMX/SSE2 operations in
>> libpixman to repaint the pointer on the screen.
>>
>> If your signal handling code doesn't preserve the FPU (and the
>> altivec) registers, this is likely to trigger the bug.
>>
>> The easiest solution is to disable the code that uses SIGIO to
>> asynchronously update the pointer. pass --disable-use-sigio-by-default
>> to configure for this, or set the option in xorg.conf.
>>
>> >
>> >
>> > >
>> > > > I would like- if possible and with permission- to use the same
>> method
>> > > with
>> > > > FreeBSD PowerPC to solve/prevent the grabbing.
>> > > > Again, my apologies beforehand if this post to the mailing list
>> seems or
>> > > is
>> > > > out of place.
>>
>>
>> --
>> Matthieu Herrb
>>
>
> Thank you for the help and tell DeRaadt thanks also. I'm forwarding this
> mail to the FreeBSD PowerPC list for the others to see it.
>
>
> That's a really fascinating problem. Our signal handling code explicitly
> preserves FP and Altivec registers. Our setjmp()/longjmp() code does not,
> for various reasons, but that shouldn't be related to this problem. Are you
> sure this actually solves the problem permanently?
> -Nathan
>

 It's working on the iMac G4 running FreeBSD 9.0 right now. The cursor would
also jump to the left side and stay "glued" there until a restart of X.

On another note. I can see some of the output in the virtual ttys but it
isn't bright enough. Before starting Xorg, the colors are red on white for
the iMac and black on white for the Quicksilver. Is there a way of setting
tty0-x to have the same setting when leaving X or switching between them.

Justin mentioned himself as having a similar, if not the same, problem.
Des.


More information about the freebsd-ppc mailing list