Posted to trash by kostix at Wed Feb 04 17:13:12 GMT 2009view raw
- [03:40] kostix ok, the question: when we implemented raising tkabber from a tray icon, it seemed to misbehave under metacity and kwin (IIRC). today I've been shown this bugreport regarding raising Tk windows under metacity: http://bugzilla.gnome.org/show_bug.cgi?id=567528 -- it states that instead of XRaiseWindow a well-behaving app should set some property (?) somewhere. what do you think about this?
- [03:40] kostix some _NET_ACTIVE_WINDOW messages
- [03:40] jenglish kostix -- I think this is a known issue.
- [03:40] kostix Tk really uses XRaiseWindow and it's documentation sounds ok to me
- [03:40] * jenglish downloading ...
- [03:41] jenglish ... part 1 of the known issue is that X clients don't get to say "raise this window" -- they just get to say "Dear WM, please if you would be so kind, raise this window for me."
- [03:43] jenglish (That's *always* been the case, since the dawn of the ICCCM. Nobody noticed until recently, 'cause up til now WMs have always complied with those requests.)
- [03:46] jenglish ... looks like this is not really a bug. Comment #9 from HP is correct.
- [03:47] kostix jenglish: but it clearly states "you should file a bug..." -- how do you interpret that?
- [03:47] kostix or it just means "either way is ok if it's properly documented"?
- [03:48] jenglish Quoth HP: "If they have an API meaning "bring this window to user's attention" and they
- use XRaiseWindow() to mean that, then yes, you should file a bug with them."
- [03:49] jenglish Tk doesn't have an API meaning "bring this window to user's attention."
- [03:49] jenglish It has [raise], which means "Please dear WM bring this window to the top of the stacking order if it's not too much of a bother..."
- [03:49] kostix I'm not sure any windowing system has such api
- [03:50] kostix well, ok
- [03:50] kostix jenglish: how "bring to the user attention" would be different then? say, flash a window's frame without moving it from its layer?
- [03:53] jenglish "bring to the user's attention" is a fairly recent invention (circa 2002?). Tk just hasn't caught up yet.
- [03:53] kostix probably a whole package called "freedesktop" is needed...
- [03:54] jenglish Note that Windows XP and later has similar issues.
- [03:54] patthoyts On windows it occurs as a side-effect of [raise]
- [03:54] kostix eh? I know about FlashWindow(), is it this?
- [03:54] patthoyts yeah
- [03:54] kostix thanks
- [03:55] patthoyts Although its called through SetForegroundWindow
- [03:55] patthoyts If your app isn't foreground then the wm will not let it raise tot he top but calls FlashWindow instead.
- [03:55] jenglish That's what happens under metacity and kwin, too.
- [03:56] * jenglish in the case of kwin, it depends on user preferences, of course.
- [03:56] kostix well, this might have sense
- [03:57] kostix but the modal dialog box anyway pops the window in front of me in windows, IIRC
- [04:00] patthoyts Not for me. If I do [after 2000 [list raise .]] and swith to firefox, it doesnt let tkchat raise over firefox.
- [04:00] patthoyts We had a discussion about this here a few days ago. There is evidently some setting in windows that disables this as having a flashing taskbar item for this is normal on XP but some people dont get that.
- [04:01] kostix hm, I'm sure I had cursed this behaviour under certain circumstances
- [04:01] kostix may be another window of a currently active app?
- [04:01] jenglish That's how current X WMs do it too.
- [04:04] jenglish Wait, kostix -- this bug report pertains to tkabber? A chat/IM client?
- [04:04] jenglish Please, I beg you: stop trying to do whatever it is you're trying to do.
- [04:05] kostix jenglish: that concrete bug I showed? no. but it was brought to my attention because of this
- [04:05] jenglish This whole _NET_WM_DEMANDS_ATTENTION / flashing taskbar / [raise] doesn't work anymore thing is part of an ever-escalating war between window managers and applications.
- [04:06] kostix jenglish: the idea was to unconditionally bring tkabber's window to front on a left mouse-button click on the tray icon. on some WMs it didn't work well
- [04:06] jenglish Exactly.
- [04:06] kostix "the old ones" like fvwm did OK
- [04:08] jenglish Newer WMs don't let you do that any more.
- [04:08] jenglish And the harder you try, the more they will fight back.
- [04:08] kostix jenglish: but my case is clear "bring that bloody window up, I say" thing
- [04:09] jenglish As soon as you find some way to "just make this window do what I want it to do", Lubos will find a way to defeat you next year.
- [04:09] jenglish EXACTLY! You, as an application, should NOT be saying "bring that bloody window up."
- [04:09] kostix well, ok. where I can buy vista?
- [04:09] jenglish You, as an application, get to say "Please dear WM bring this window to the user's attention."
- [04:10] jenglish If the WM chooses not to comply, and instead just flashes the taskbar, LEAVE IT AT THAT. That's what the user has decided he wants.
- [04:10] kostix jenglish: what about me being the user? I can understand this "polite" thing, it's probably good in terms of HID guidelines but when I click the tray icon I'm making a conscious gesture, right?
- [04:11] jenglish If you, as a user, don't like that behavior, change your WM settings. Or use a different WM.
- [04:12] jenglish If you, as a program author, don't like that behavior, STOP FIGHTING IT. Because Lubos will always win in the end.
- [04:16] kostix ok, thanks jenglish
- [04:16] kostix you brought some philosophic mood on me
- [04:17] jenglish In the meantime, Tk really ought to support _NET_WM_DEMANDS_ATTENTION. There's an FR open for that, undealt with to date.
- [04:18] kostix DEMANDS_ATTENTION? let's implement _NET_WM_TK_RULEZ instead!
- [04:21] stu Lubos ?
- [04:21] jenglish Lubos Lunak. Author of KWIN, the KDE window manager.
- [04:21] stu thanks
- [04:22] jenglish Inventor of "focus-stealing prevention" mechanisms and _NET_WM_DEMANDS_ATTENTION.