Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!usc!snorkelwacker.mit.edu!bloom-beacon!LIGHTNING.MCRCIM.MCGILL.EDU!mouse From: mouse@LIGHTNING.MCRCIM.MCGILL.EDU Newsgroups: comp.windows.x Subject: Re: Not impressed with MacX Message-ID: <9012030339.AA05092@lightning.McRCIM.McGill.EDU> Date: 3 Dec 90 03:39:02 GMT Sender: daemon@athena.mit.edu (Mr Background) Organization: The Internet Lines: 67 > Problem: The Macintosh has a one-button mouse, but far too many X > programs require a three-button mouse. [That's why servers using > mice with fewer than three buttons often fake the "missing" ones.] > Der mouse [...] doesn't want to emulate "missing" mouse buttons: >>> I wouldn't simulate them. I would have the X server provide a >>> pointer device with only one button. That's what you have, after >>> all. Kludges to support broken clients that blindly assume the >>> presence of (at least) three buttons on the pointer device only >>> ensure that said broken clients don't get fixed. > Unfortunately, from xterm on, just about every client that uses the > mouse uses more than one button. That doesn't mean they aren't broken. To pick an analogy in another realm, NULL is traditionally defined as 0, and much of the X code uses it in contexts where integer 0 is desired. Does this then mean that NULL must always be 0? No, it means that there's a lot of broken code around. See also the "all the world's a VAX" syndrome (which is now, mercifully, beginning to fade away (to be replaced by "all the world's an 8086 :-)). (Try building X on a machine which has NULL defined as (void *)0 and you'll see what I mean.) For that matter, I have seen at least three X clients that break if you don't use PointerRoot focus, in that if the mouse is not inside their window they ignore keystrokes, even if the window manager has given the keyboard focus to the window in question. Shall we therefore require all window managers to use PointerRoot focus? Just because a given brokenness is widespread doesn't make it any less broken. And since I, unlike >> We thought about this, briefly, very briefly. A quick poll of our >> field convinced us that we we would never again sell an X product if >> we were to adopt such an approach. The hard, ugly, X reality ( ;-) ) >> is dressed with 3 buttons. >> X Project Leader >> Apple Computer, Inc. don't have a customer base that must be catered to no matter how unreasonable they get, I can refuse to support such brokenness. My X11R4 on the NeXT presents a pointer device with only two buttons. I have received two different patches to implement the "missing" button by chording the two existing buttons. Neither one will go in (though I will distribute them with the thing, once I get around to rebuilding the distribution.) In another note, someone from SGI said that it had the luxury of always being on an 8-bit PseudoColor server with a 3-button mouse. I can just see programs from such a person[%] blindly assuming an 8-bit PseudoColor visual as the default. Does this then mean that all servers must provide an 8-bit PseudoColor visual? No, it means that such programs are broken! X has always promised the existence of a pointer device. I'm not sure whether it promises the existence of at least one pointer button. It has never promised more than one button. [%] I don't remember who this person was, and don't mean this personally - I have no basis for judging the portability of your code, never having seen any of it. der Mouse old: mcgill-vision!mouse new: mouse@larry.mcrcim.mcgill.edu