Since installing Fedora 15, XFCE is not raising windows correctly. When "Focus Stealing Prevention" is enabled, windows with the pop-on-bell attribute do not pop/raise.
Since the audible bell has been broken in XFCE for such a long time, I have resorted to enabling the pop-on-bell attribute as a partial substitute. (See https://bugzilla.redhat.com/show_bug.cgi?id=607393 for some background.) Since F15, however, this has become even less effective.
* set focus stealing prevention in XFCE window manager tweaks.
* start xterm
* set pop-on-bell attribute on xterm window
* place any other window above the xterm window
* Cause a bell event. (e.g. echo <CTRL-V> <CTRL-G>)
Window should be raised. Repeat with focus stealing prevention disabled and the correct behavior occurs.
Okay, I guess this is more complicated that I thought. This only happens when "Do nothing when a window raises itself" is selected. I forgot I had selected that, so this is not a new bug.
I suppose then this is the intended behavior. But, it was not the expected behavior.
First of all, the option layout doesn't suggest any interplay between the "window raises itself" behavior and "focus stealing prevention". The relationship is unnecessary, also.
Secondly, I figured that "Do nothing" meant "neither switch work-space nor move window", which are the other two options. But I didn't think it meant "do not honor windows that raise themselves if focus stealing prevention is enabled, otherwise raise but don't switch or move window."
If you select "do nothing" for "when a window raises itself, it does nothing, this is what its meant for.
Is that a rant or an actual bug report? Should we close this bug as invalid? *I fail to see the actual bug report here)
I am being quite sincere in my bug reports, as always. I like XFCE and I just want to make it better.
There is obviously at least one bug here because the behavior is inconsistent. Normally, the window *is* raised, even when "Do nothing" is selected. But, I assume you understand the code better than I do, so I can't tell you how to fix it.
You could look at it several ways. Here's one:
"Do nothing" means, do not switch workspaces and do not bring window to the current work space. If that is the case, then it is working correctly only when focus stealing prevention is disabled, but it's broken when focus stealing prevention is enabled.
Here's another perspective:
The whole "Focus" tab is misleading. There is a setting that is not represented in the options. "Do nothing" has two different meanings that depend on a seemingly unrelated setting. When focus stealing prevention is enabled, one of the three choices for raising behavior is different than when focus steeling prevention is disabled.
A simpler perspective:
Follow-focus has a bug. If a window is raised which happens to be underneath the mouse pointer...nothing happens, focus doesn't change, even if follow-focus is enabled. Then, "Do nothing" *really* means do nothing, as in "do not interfere": allow the window to be raised, but do not change focus. This is, in fact, the way it works in other window managers. Focus just stays on the lower window. Perfectly reasonable. Raising windows doesn't have any affect on focus. I fact, this prevents focus stealing without any extra effort. This is my personal preference and I strongly urge you to implement this behavior. I think this is a much better way to prevent focus stealing when follow-focus is active. Furthermore, it's consistent with the way window raising works when click-to-focus is active. If you want, you can consider this a method of focus stealing prevention for follow-focus mode, but I think of it as just normal follow-focus behavior. Either way is fine with me, though. I would just like access to this behavior, somehow.
To me, follow-focus means "only change focus when I move the mouse to a new window," not "constantly re-evaluate what window is below my mouse even when I'm not moving it."
I hope this helps.