How did the X-Mouse setting come to be?


Commenter HiTechHiTouch wants to know whether the "X-Mouse" feature went through the "every request starts at −100 points filter", and if so, how did it manage to gain 99 points?

The X-Mouse feature is ancient and long predates the "−100 points" rule. It was added back in the days when a developer could add a random rogue feature because he liked it.

But I'm getting ahead of myself.

Rewind back to 1995. Windows 95 had just shipped, and some of the graphics people had shifted their focus to DirectX. The DirectX team maintained a very close relationship with the video game software community, and a programmer at one of the video game software companies mentioned in passing as part of some other conversation, "Y'know, one thing I miss from my X-Windows workstation is the ability to set focus to a window by just moving the mouse into it."

As it happened, that programmer happened to mention it to a DirectX team member who used to be on the shell team, so the person he mentioned it to actually knew a lot about all this GUI programming stuff. Don't forget, in the early days of DirectX, it was a struggle convincing game vendors to target this new Windows 95 operating system; they were all accustomed to writing their games to run under MS-DOS. Video game programmers didn't know much about programming for Windows because they had never done it before.

That DirectX team member sat down and quickly pounded out the first version of what eventually became known to the outside world as the X-Mouse PowerToy. He gave a copy to that programmer whose request was made almost as an afterthought, and he was thrilled that he could move focus around with the mouse the way he was used to.

"Hey, great little tool you got there. Could you tweak it so that when I move the mouse into a window, it gets focus but doesn't come to the top? Sorry I didn't mention that originally; I didn't realize you were going to interpret my idle musing as a call to action!"

The DirectX team member added the feature and added a check-box to the X-Mouse PowerToy to control whether the window is brought to the top when it is activated by mouse motion.

"This is really sweet. I hate to overstay my welcome, but could you tweak it so that it doesn't change focus until my mouse stays in the window for a while? Again, sorry I didn't mention that originally."

Version three of X-Mouse added the ability to set a delay before it moved the focus. And that was the version of X-Mouse that went into the PowerToys.

When the Windows NT folks saw the X-Mouse PowerToy, they said, "Aw shucks, we can do that too!" And they added the three System­Parameters­Info values I described in an earlier article so as to bring Windows NT up to feature parity with X-Mouse.

It was a total rogue feature.

Comments (34)
  1. GWO says:

    Back in the day when I used FVWM everyday for X-Window management, that focus-follows-mouse-with-raise delay was one of the things I felt I couldn't do without.  These days, I never notice its not there anymore in Windows or GNOME.  That's been a good experience for me – minor changes to people's favourite interface quirks generate a lot of heat (ask any Metro/KDE4/Gnome3 developer) but anyone with half-a-brain adapts to their new environment in a few days (albeit a few days of unfamiliar annoyances), and has found a new, productive workflow in weeks.

  2. Miff says:

    Video game programmers didn't know much about programming for Windows because they had never done it before.

    I think video game programmers still don't know that much about programming for Windows. I play an AAA game (developed by a big-name studio) from 2009 that still defaults to fullscreen at 1024×768.

  3. AC says:

    Back in the day when I used FVWM everyday for X-Window management, that focus-follows-mouse-with-raise delay was one of the things I felt I couldn't do without.

    Focus follows mouse was always the first thing I disabled. To me it's totally annoying.

    Many of the UNIX advocates preach that you should do almost everything with the keyboard and lifting your hand to reach the mouse is a stop gap. But then using the mouse to switch windows seems counter-intuitive, especially since a slight move (in contrast to clicking) could happen accidentally. Also, I much prefer Ctrl+C/Ctrl+V to the X-Clipboard.

    Just my 2c.

  4. Brian says:

    Miff: Not sure what you expect them to do.  Most consumer graphics cards still can't push high quality graphics at full monitor resolution.

  5. Mike says:

    @AC: That's why I love tiling window managers such as 'wmii' or 'awesome'.

  6. JDF says:

    Raymond – I love the historical anecdotes. Keep 'em coming!

  7. alegr1 says:

    It's now an accessibility feature.

  8. Chunky Ks says:

    I always turn on focus-follows-mouse on windows. That's one of the little things that's the difference between a GUI being usable or not, for me.

  9. Joshua says:

    [ It was a total rogue feature. ]

    Which explains why certain MS tools don't get their bugs that only manifest themselves when this feature is on fixed.

  10. David Walker says:

    Focus should follow where you are LOOKING, not where the mouse is!

  11. Jeff says:

    Wow X-Mouse memories! I once had a bug report from QA that I could never reproduce – until I went to the actual QA tester, and watched, and when the focus shifted automatically, I sat there going "How did that happen?"! X-Mouse! His was the only machine with X-Mouse turned on. Yikes!

  12. Que xpclient complaint in 3… 2….

    Oh wait.

  13. Avi says:

    I wish I could visit every focus-follows-mouse user and "accidentally" bump their desks for an hour or so, while they're trying to work.

    Yes, I am a jerk.  In my thoughts, anyway.

  14. Todd says:

    @Miff: there is a certain game company that makes a certain game that… oh what the hell, I'll say the name: Valve sucks at making games that work well with Windows. You need to be really lucky to be able to minimize them and restore them without much trouble (usually they hang for 3 minutes, and often they just crash), if you're in windowed mode the window is gonna show as "not responding" while it's loading, and of course they had to reimplement every single Windows control themselves (select file, simple text inputs…).

    Good thing their gameplay is great.

  15. Joe Dietz says:

    Rogue yes, but definately sold me a few copies of windows.  Honestly, the availability of this 'rogue' feature is what made me a windows developer in the first place.  Before I found it, I couldn't stand to use windows.  This is what you get when you actually listen to the user, rather than telling the user what they think (ahem: win8).

  16. Muzer says:

    If I were a game developer, and for some reason I had a valid reason to change the user's resolution by default, instead of just sticking with 1024×768, I would find the nearest possible resolution around the size I want that maintains (where possible) the user's current resolution's aspect ratio. Is that so hard to do? Aspect ratios are everything! Who would want to play a stretched (or pillarboxed) game?

  17. Kzinti says:

    @Muzer: yes it is unfortunately very hard to do.

    See mollyrocket.com/…/viewtopic.php

  18. xpclient says:

    Back in the good old days, MS developers were concerned with adding useful features instead of deleting them or deleting choice. Wish if I could *just mention* to one of the evil shell developers to disable auto sorting. Given the heinous butchery of the Windows shell in each NT6 version, Windows UX will continue to degrade. I am surprised no one is randomly deleting features yet. Oh wait, they are! In Windows 8.

  19. Skyborne says:

    @AC: "Also, I much prefer Ctrl+C/Ctrl+V to the X-Clipboard."  Technically, that *is* the X clipboard, so you probably meant X selection.

    On topic, this "sorry I forgot that" bit amuses me: these things might have been obvious to anyone used to using mouse-focus on *ix, where we traditionally configure our machines to the point nobody else can use it.

    I also recall being distinctly disappointed when I had the PowerToys for Windows N, and they didn't work on Windows N+1: the mouse-focus set the window's 'attention-needed' flag rather than focusing it.  Fling the mouse around the screen, and the taskbar turns into a tow-truck's light bar.  (I got the correct PowerToys, but it was not long after that I decided having the only non-ClickToFocus machine in a 50 mile radius was stupid, and reverted it both in windows and fvwm.)

  20. Endurion says:

    I do not like the X-Mouse feature, however there's one more feature that feels way more important to me. Intellipoint usually comes with it, mouse wheel affects the window below the pointer, and not the window with focus. That's one feature that needs to be incorporated into the shell.

  21. steveg says:

    I once got hauled over the coals for adding a rogue feature. It was a debugging dialog that showed the internal state of [popular application]. The testers *loved* it, management not so much.

    Didn't help that my boss and I absolutely detested (pun!) each other.

  22. Nick says:

    @xpclient: shut up for once you ignorant dolt!

    Thanks for the wayback-article Raymond! :)

  23. Miff says:

    @Brian – Run in a window.

    @Todd – What modern games would those complaints not apply to though? PC games nowdays are just Xbox ports.

  24. Muzer says:

    @Kzinti: There we go, someone's already written the code! So there's absolutely NO EXCUSE for games defaulting to 1024×768 without bothering to check ;)

  25. Neil says:

    @Endurion I don't understand that behaviour either. There appear to be a number of apps that can "fix" it for you. Also some applications such as Firefox automatically redirect mouse scrolling within the application.

  26. Todd says:

    @Miff: Well, the truth is.. the only "modern" games I've played on PC are Valve games. So yeah.

  27. 640k says:

    Intellipoint wheel focus is obnoxious. Unfortunately the software was required to emulate wheel scrolling in older software like the VB6IDE. Some new software is implementing this evil behavior on its own though, as a feature anyone would want.

  28. Mike 2 says:

    I am surprized to find so many people here that don't like X-Mouse.  For me, Windows is unusable without.  The key feature of focus follows mouse is that you can work in a window without it obstructing the window that holds the crucial information you need to work with.  Try copy/paste something between two windows.  In non-X-mouse mode the window you paste into jumps into your face as soon as you press the scroll wheel.  You don't need to see the whole window as the input field is not obstructed by the window you are pasting from.  But you need to see where you are coming from and that is gone now.  Yuck.

    But most people are overwhelmed by working with more than one window at a time anyway.  Run everything in full screen mode.

  29. @Todd:  Indeed; I run one of their games full screen on my ThinkPad T420 /w Intel graphics.  Pressing the Windows key to bring up the start menu doesn't work right when I restore the game later; half the time restoring the game results in the game continuing to run (mouse still works, sound still works, stuff obviously going on), but the screen doesn't update at all.  Funny thing is that it used to work fine: either an update to the game or graphics driver broke it.

    On another desktop computer I have, their games wouldn't run full screen properly; they'd hang on startup half the time.  I had to run them in a window.

    The games themselves run great, I just wish they'd get a few of the windowing basics figured out.

  30. xpclient says:

    @Nick, go back to pre-school to learn your basics.

  31. dave says:

    @Mike 2

    The nasty thing about X-mouse is that when you notice that the pointer is in the way of something you're trying to read, you absently move it out of the way, and bingo, some other window has focus.

    Or, if you like, X is unusable without Windows-mouse.

    (FWIW, I used X-based systems before using MS Windows, so it's not a case of what-you-used-first).

  32. Mike 2 says:

    @dave

    That's easy to avoid, you get used to it.  But to learn to read obscured content is different feat.

  33. Todd says:

    Oh, forgot one! I bought SpaceChem (on gog.com of course, I'm not selling my freedom for a virtual pin), and I run it windowed (because I have no reason to have it fill the whole screen), which would work great if it weren't for the fact that there's only a preset list of accepted resolutions, and none of them fit my screen well. So it's either too small, or has a small part cut off on the bottom (and I have to enable auto-hide taskbar). Come on guys, I know flexible layouts are hard, but at least let me do a simple scaling.

  34. Dylan says:

    @David "Focus should follow where you are LOOKING, not where the mouse is!"

    I know you're joking but I can't help shuddering when I think about transcribing text from one window to another with focus follows vision.

    Or how programs are going to handle being clicked on while unfocused.

Comments are closed.

Skip to main content