From: Arnout E. <no...@bz...> - 2011-10-21 10:38:45
|
On Fri, Oct 21, 2011 at 01:00:34AM +0200, Wojtek Aniszewski wrote: > Well, Juri's advice helped in that I know I have some possibility of > forcing windows to float. So for example, I have added a defwinprop > for gimp, and all gimpish windows float. Great. After the initial release, I think we should spend some time creating a good set of default winprops. > Now, this is a tricky matter, so I will try and give you the best > example I can, and simple too. So let's say you open eog (eye of > gnome) in a tiled ("default" type) workspace. It is sucked into a tile > (stretched) and sits there. That's ok, I expect this. OK > But then, I click "File>Open" and the "Open file" dialog is stretched too. > THIS is the "pop-up" I've been talking about (to be clear - I would like this > window to float and NOT GET RESIZED (it has a convinient default > size)). Maybe I should have called it "dialogs". I agree. This is a dialog, and dialogs should float. > I say more: over two years of using ion/notion - this is what sucks > the most. > Want a spectacular example? - no problem. Try open/save > dialogs in Audacity. If ever opened on a tiling workspace, audacity's > open/save dialogs are stretched in good'old way. But when later opened > on a floating workspace, they tend to not only remember they were > stretched, but ...stretch further (approximately, to size 5000x300 or > something). I daresay it may piss the hell out of anyone:) I agree, though this sounds at least partly as a bug in Audacity too :). > How would I like notion to know what is a dialog? Well, I'm a > scientist and I mostly program CFD in Fortran, so don't expect > interface-wisdom from me:) But the most obvious guess would be: > 1. eog opens,gets its window class and instance > 2. if another window of the same class opens, it should float. > Unfortunately, as I can check by clicking rmb, the 'open' dialog has > the same class, instance, only different XID. This cold be used > somehow, I guess. I know it's not a good plan, because it modifies > behavior for all subsequently opened eog windows, not only dialogs. > But well... Right. Luckily, there are 2 standardized ways in which dialogs can be identified. Dialogs should set the standard ICCCM WM_TRANSIENT_FOR property (see also http://tronche.com/gui/x/icccm/sec-4.html#WM_TRANSIENT_FOR ). I think Notion already treats windows with WM_TRANSIENT_FOR better (though I'm not sure about 'good'). Unfortunately, Eog does not appear to set the WM_TRANSIENT_FOR property on the 'Open Image' dialog. Arguably that's a bug in Eog or even Gnome. There is, however, a second way to identify dialogs: the EWMH/NETWM extensions to the specification add a _NET_WM_WINDOW_TYPE property that can be set to _NET_WM_WINDOW_TYPE_DIALOG. Notion currently only does something special with windows of type _NET_WM_WINDOW_DOCK (when mod_dock is loaded). We should probably treat windows of type _NET_WM_WINDOW_TYPE_DIALOG the same as windows with WM_TRANSIENT_FOR set. Would you like to submit a feature request for that? Mention Eog and Audacity so we can verify that this indeed has the desired result. > sorry for writing such a long post! (I had to throw it out:)) No problem at all! Kind regards, Arnout > 2011/10/20 Arnout Engelen <arn...@bz...>: > > Hello Wojtek, > > > > Did Juri's reply answer your questions? I'd be curious to know how you'd > > want notion to decide which application to float and which to open in a > > frame. > > > > > > Kind regards, > > > > Arnout > > > > On Thu, Oct 06, 2011 at 03:26:31PM +0200, Wojtek Aniszewski wrote: > >> Hi. > >> Sorry if this has been mentioned before. So, point is: is there a way > >> to make new (popping up) window float by default? > >> I mean even on a tiled workspace. Such as, for example, I'm opening > >> four consoles on a tiled workspace, run $mplayer foo.avi in one of > >> them , and I like the new mplayer window to float, not to be trapped > >> in the tiling. > >> (I think that awesome has something like this by default.) > >> I'm not making a feature request out of it, just ask if this can be > >> done, e.g. by tweaking cfg_ioncore. |