Applications stealing focus

I have thought about it some, and I can’t think of any occasion where a program really needs to steal focus.

You could have all sorts of programming guidelines set up for when a developer should choose to implement these kind of features, but there are always some that thinks that their particular application is uber-important, and have it steal focus at certain times.

I actually don’t even think that critical system error reports and the like should steal focus. The reason for this is that you could often for example be typing alot of text while something pops up. The keypresses could remove the warning, accept a choise, or do any sort of unintended behaviour in a matter of seconds, while the users eyes are resting on the keyboard, totally unaware of the choices he made or the error that occurred.

Even if it it never comes to serious situations like that, it is still very annoying to have applications steal focus in the middle of typing, making you lose whole sentences, or worse, send them to the wrong recipient.

So, in conclusion, I think there should be nothing in the Haiku API that allows for stealing focus. Just ban it alltogether!

Any thoughts on this?
/Joel

InfoPopper removes the need for apps stealing focus

InfoPopper is an alternative to having applications steal focus. What I don’t like about the whole “notify message in the corner” thing is that it steals my focus. I turn off email notify in Thunderbird for this reason. I want to finish what I’m doing first, then take a look at the message or event.

I’d like something really subtle. An icon which sits in the tray and changes in some way to let me know that something happened which I can check at my leisure, not my PC’s leisure.

Or something like that.

Can anyone remember Startopia’s “event queue”? or Theme Hospital style alerts…
Is that subtle enough?

I don’t think we need to keep it out of the API, that’s a bit radical IMO. Don’t like programs that do it? Let the freemarket decide: Use a different program… sooner or later these programmers will understand users don’t like the focus to be stolen.

It is very annoying indeed, but I think the functionality should be there if it’s ever needed (who knows?). Just shun any program that abuses the functionality, or if it’s open source make the changes yourself and use that.

That said, I think the Haiku devs should adopt a strict no-stealing-focus policy as far as the OS goes.

Anyway, how about this: Have an option in one of the preflets (or perhaps a new one?) that allows the user to turn off focus stealing? Programmers that want/need it still have it, but the user still has the final say.

If you turn it off as standard, programmer can as well think that he doesn’t have such tool. I think… Let’s just remove the focus stealing and develope a better way to give user announces and other messages. One kind of information -server like that infopopper would be great.

We could have two kind of notifying servers where you can choose: One which lets you look for all the messages from actual message pool when you need to, and another which shows the message on screen when it comes.

Unfortunately, I don’t think “the freemarket will decide” on this one, partly because people are either too used to this or too lazy to be bitching about it, or switching app, if there even is an alternative. And forget about the developers choosing not to use it, that will never happen.

I do however regognize the importance of the system being able to tell the user that something critical has happened. What I don’t like is that you could accidentaly make it disappear again or make a selection without your knowing about it.

I have also thought about the idea that the user can dis/able it system wide. I guess that’s apretty good idea, but one should consider how the sytem will notify users that disable it.

I haven’t heard of InfoPopper, but I guess it behaves just as for example MSN Messenger does. As long as it doesn’t steal focus, I definately see that as a viable option. Some notifications could stay until clicked, some could fade away after a while, it could have different levels of priority on the notifications.

It would be very nice to hear some thoughts on this by a Haiku designer (although I know the first goal is to clone R5, so i guess not alot of designing is going on yet).

The real issue at hand isn’t pop-ups or stealing keyboard focus (even though they are part of it) but actually a way to provide up-to-date system status information in an unobtrusive way. Personally, I can envision something like a message queue which resides in the deskbar which the user can see how many ‘update’ messages are waiting to be viewed and allow the user to click on them when he wants to in order to find out what they are. Pop-up sliders like Thunderbird and InfoPopper are horribly distracting and should be reserved for mission-critical items like hardware failures. My $0.02.

I’m not familiar with the InfoPopper or other software-related methods mentioned here, but if it’s like the Windows XP alert balloon that pops up from the system tray… “No, sir. I don’t like it!” As someone said previously, this takes focus away from the user instead of the application… which is just as bad IMO.

reallyjoel wrote:
Unfortunately, I don't think "the freemarket will decide" on this one, partly because people are either too used to this or too lazy to be bitching about it, or switching app, if there even is an alternative.

Then these are the sort of users who are idiots. If they’re too lazy to complain about it or change their application, they deserve to be annoyed IMO.

How many of these jokers are in the BeOS community anyway? I find that BeOS users aren’t like average Windows users; they’re more intelligent and less lazy per quota it seems. (Afterall, getting BeOS up and going and making it your day-to-day OS requires intelligence and un-laziness, right?)

Quote:
And forget about the developers choosing not to use it, that will never happen.

It certainly will if their userbase declines because people are sick of using their inferior software (assuming there’s an alternative available that doesn’t annoy users).

Remember, we’re talking about BeOS users and developers, not the average Windows user who doesn’t even know about alternative software.

However, I can see how as Haiku grows in popularity, we’ll gain more stupid and lazy users and developers, so on that note… I see your point.

Quote:
I have also thought about the idea that the user can dis/able it system wide. I guess that's apretty good idea, but one should consider how the sytem will notify users that disable it.

Let the user decide how they will be notified, if at all. In the end, user is king, or should be at least.

Just my two pence… take them with a grain of salt if you wish. :wink:

Well, it seems there atleast is a discussion about this, and an awareness, and this is very good. I am really looking forward to how Haiku will develop, design-wise. I really hope the design team will go for new, groundbreaking solutions. The last thing I want is a clone of something else, even if it’s a bug-free(er) clone.

I’d really like to know how much discussion about design is going on in the haiku teams. Is there a dedicated design team/person? What new wild ideas is brewing?

reallyjoel wrote:
Well, it seems there atleast is a discussion about this, and an awareness, and this is very good. I am really looking forward to how Haiku will develop, design-wise. I really hope the design team will go for new, groundbreaking solutions. The last thing I want is a clone of something else, even if it's a bug-free(er) clone.

I’d really like to know how much discussion about design is going on in the haiku teams. Is there a dedicated design team/person? What new wild ideas is brewing?

Yes, the Glass Elevator team is the R2-brainstorming guys. I think they’ve got some pretty interesting ideas. Not sure what their mailing list address is, but you should be able to find it somewhere around here. Maybe someone knows it offhand. R2 will break backwards compatibility, so this leaves a whole window of potential improvements, enhancements, and features open.

I were playing hitman 2 today and a friend asked about school books via MSN. MSN stole the focus and tadaa! Hitman 2 crashed. It just made application focus stealing more annoying than ever. Especially when it happens just when I’m finishing something. GJ eidos & microsoft!

I want nothing stealing my or my workspace’s focus while I’m doing something. Not even infopopper!

I neither want that a program is capable touching my screen context while I’m doing something with it. I want I control what happens on my screen, not my programs. Nothing is more annoying than that your operating system is vandalizing when it can. This may be slightly harder to design than choice whether to allow your programs catching focus.

Cheery wrote:
I were playing hitman 2 today and a friend asked about school books via MSN. MSN stole the focus and tadaa! Hitman 2 crashed. It just made application focus stealing more annoying than ever. Especially when it happens just when I'm finishing something. GJ eidos & microsoft!

I want nothing stealing my or my workspace’s focus while I’m doing something. Not even infopopper!

I neither want that a program is capable touching my screen context while I’m doing something with it. I want I control what happens on my screen, not my programs. Nothing is more annoying than that your operating system is vandalizing when it can. This may be slightly harder to design than choice whether to allow your programs catching focus.

Arguably - this is an abuse of a “desktop os” to play fullscreen games when it’s designed for productivity right? (thats’ why consoles are designed for games only right?) and the game should be written in a way that prevents the crash… - ultimately, if you want your desktop machine to be a game console, an entertainment center, a business workstation, and a server all at once - you’re going to run into situations where things don’t mesh quite right.

Additionally, you should have the ability to disable programs from annoying you as desired - and I’m pretty sure MSN has such a feature. For me, MSN messenger goes into “Busy” mode anytime i launch a fullscreen application - and when in this mode, it doesn’t annoy with popups.

If you disagree with the way that MSN interrupts you - turn that feature off.

[Beta wrote:
"]Can anyone remember Startopia's "event queue"? or Theme Hospital style alerts... Is that subtle enough?

Ah, now I found the image I was looking for…

See the IM icons on the right hand side ? if they dont try to steal focus while you are doing something i’d call them perfect. If the tabs arent there, you dont have any messages… easy.
I dont think I like the IM window being there aswell, but thats off-topic

Linked from http://design1st.org/tim/.

yeah that is really annoying yeah all most no app needs to
have a pop window where the notification messages
pop up with max priority over the windows under it
they should just spawn normally with the window your currently
working on staying in focus
stealing focus is obnoxios darkwyrms idea has the most merit
though having a icon flash on the task bar telling you to click on
it for messages

I just had a thought.

If no app could ever take focus, opening a new application would have it "pop-under", as there is always one piece of software or another that actually starts the application, even if it is you that initiates it.

This is perhaps a minor technicality and could have easy workarounds, but it lead me to this thought; a window/application can only swap focus(or window layer or however it works) with another application/window that it starts up.

So if you doubleclick an executable from inside a file explorer, that window swaps its layer depth (or however it works in Haiku, I don’t know) with the application it boots up.

And if an application that does not have focus, starts up a new window (with a simple alert, for example), that window gets the parent app’s focus-layer, and the parent gets pushed down 1 step. All other windows below that is also pushed down 1 step.