[comp.windows.x] Another tiny R5 wish

ejp@bohra.cpg.oz (Esmond Pitt) (07/23/90)

I'd like to see something which allows Motif to tell the server to
flash the cursor without having to do it all itself. Presently Motif
has to add a timeout handler, receive the timeout event, despatch the
event, determine the current cursor state, XOR the cursor state, add
the timeout again, all to flash the cursor.  About two pages of code to
flash the lights, not to mention the network traffic, the paging
activity (leaping all over libXM.a, libXt.a, and libX11.a) ...

Or perhaps this is a protocol change & thus belongs to X.V12? Anyway,
it amazes me that the server can't flash the cursor.



-- 
Esmond Pitt, Computer Power Group
ejp@bohra.cpg.oz
D

mouse@LARRY.MCRCIM.MCGILL.EDU (07/23/90)

> I'd like to see something which allows Motif to tell the server to
> flash the cursor without having to do it all itself.  Presently Motif
> has to add a timeout handler, receive the timeout event, despatch the
> event, determine the current cursor state, XOR the cursor state, add
> the timeout again, all to flash the cursor.  About two pages of code
> to flash the lights, not to mention the network traffic, the paging
> activity (leaping all over libXM.a, libXt.a, and libX11.a) ...

> Or perhaps this is a protocol change & thus belongs to X.V12?
> Anyway, it amazes me that the server can't flash the cursor.

Part of the problem is that "the cursor" does not exist to the server.
The only cursor the server knows about specially is the pointer
("mouse") cursor.  The text cursor in an xterm window, the
insertion-point caret in a text entry window, they're just a small
graphic doohickeys drawn by the client, as far as the server is
concerned.  So doing this would amount to adding flashing of
more-or-less arbitrary graphics.  Which leads to some way of describing
said graphics...if you're not very careful, you wind up adding an
extension language to the server.  While this is not inherently a bad
thing, it's probably a lot more than you envisioned when you posted :-)

(It's by no means impossible - I'm not out to stifle innovation or
any such thing (though it may sometimes seem like it :-) - but it's not
as simple as "flashing the cursor" makes it sound.)

					der Mouse

			old: mcgill-vision!mouse
			new: mouse@larry.mcrcim.mcgill.edu

stripes@eng.umd.edu (Joshua Osborne) (07/31/90)

In article <421@bohra.cpg.oz> ejp@bohra.cpg.oz (Esmond Pitt) writes:
>I'd like to see something which allows Motif to tell the server to
>flash the cursor without having to do it all itself. Presently Motif
>has to add a timeout handler, receive the timeout event, despatch the
>event, determine the current cursor state, XOR the cursor state, add
>the timeout again, all to flash the cursor.      [...]

R4 has it.  Sort of.  Make the cursor a multi-buffered window, position
it where you need it in the parent.  In one buffer of the cursor-window
draw the "on" image, draw the "off" image in the other.  Tell the server
how offen to display the next buffer.

BTW it's not really "R4" that has it, but the Multi-Buffer extention that
is included as part of the X11R4 sample server.  You can have a R4 server
without it, or a R3 server with it.

Motif didn't use it to flash cursors because it didn't exist when they
wrote that code.  Don't know if they will re-write it now...
-- 
           stripes@eng.umd.edu          "Security for Unix is like
      Josh_Osborne@Real_World,The          Mutitasking for MS-DOS"
      "The dyslexic porgramer"                  - Kevin Lockwood
"Don't try to change C into some nice, safe, portable programming language
 with all sharp edges removed, pick another language."  - John Limpert

pjs@aristotle.JPL.NASA.gov (Peter Scott) (07/31/90)

In article <421@bohra.cpg.oz> ejp@bohra.cpg.oz (Esmond Pitt) writes:
>I'd like to see something which allows Motif to tell the server to
>flash the cursor without having to do it all itself. Presently Motif
>has to add a timeout handler, receive the timeout event, despatch the
>event, determine the current cursor state, XOR the cursor state, add
>the timeout again, all to flash the cursor.  

I do agree with this, although I think it should be part of R5, not Motif.
Obviously it is not so "tiny", since we are talking about adding a blink
attribute to the graphics context, and then of course we have to define
the blink mode (XOR, opaque, etc), what the "blink off" color/pixmap is,
etc, etc... but it would eliminate those embarrassing moments in the
middle of demonstrating the new super-duper windowing systems to engineers
whom we want to switch to workstations/X terminals when one of them
asks, "How come the cursor doesn't blink like it does on my VT100?  You
can make blinking text with all this advanced stuff, can't you?"


This is news.  This is your       |    Peter Scott, NASA/JPL/Caltech
brain on news.  Any questions?    |    (pjs@aristotle.jpl.nasa.gov)

ejp@bohra.cpg.oz (Esmond Pitt) (08/02/90)

In article <1990Jul31.162229.4254@elroy.jpl.nasa.gov> pjs@aristotle.jpl.nasa.gov writes:
> In article <421@bohra.cpg.oz> ejp@bohra.cpg.oz (Esmond Pitt) writes:
>>I'd like to see something which allows Motif to tell the server to
>>flash the cursor without having to do it all itself.
>
> I do agree with this, although I think it should be part of R5, not Motif.

So do I. Isn't that exactly what I said? I want cursor-flashing reduced
from pages of Motif code to a few bits in X11R5 directing the hardware,
and without an X event every 500 milliseconds.

The subject is 'R5 wish', after all ...


-- 
Esmond Pitt, Computer Power Group
ejp@bohra.cpg.oz
D