From: Daniel K. <dk...@nu...> - 2006-09-12 04:43:52
Attachments:
main.pl
energy_posting.glade
|
Hi all. For about the past 2 weeks I've been having a bug with maximizing applications. When an app requests that a window get maximized, the window gets placed too high or low ( depending on whether the shelf is on the top or bottom ). I've attached a very small perl script ( with a glade file ) that creates one of the windows that demonstrates this behaviour every time on my system, as well as a number of other systems here. You'll need the Gtk2-Perl bindings ( which are included by default on most systems ) and also the Gtk2-GladeXML module. This app should get the correct height allocation, but gets placed partly underneath the shelf ( ie too high if the shelf is at the top of the screen, or too low if the shelf is at the bottom of the screen ). -- Daniel Kasak IT Developer NUS Consulting Group Level 5, 77 Pacific Highway North Sydney, NSW, Australia 2060 T: (+61) 2 9922-7676 / F: (+61) 2 9922 7989 email: dk...@nu... website: http://www.nusconsulting.com.au |
From: David S. <dav...@gm...> - 2006-09-12 11:46:40
|
On 12/09/06, Daniel Kasak <dk...@nu...> wrote: > Hi all. > > For about the past 2 weeks I've been having a bug with maximizing > applications. > > When an app requests that a window get maximized, the window gets placed > too high or low ( depending on whether the shelf is on the top or bottom ). I noticed this too when trying to vertically maximize my Eterms. I have my shelf in the top left corner, running down the side of the screen for 206 pixels, but if my window x,y is below that point then it doesn't work (this is just one case that its broken in). I took a look at the source on the weekend, and I think what the problem is is that in the _e_maximize_border_rects_fill routine the process is to first maximize out to the left, and then next try to maximize out to the top. But, because the window is already maximized to the left side of the screen, the routine decides that this position intersects with the position of the shelf and so doesn't maximise upwards. Currently this routine also tries to maximize in all directions at once. There is also a "FIXME: The right order?" in this code. What I was going to do next (but as always, when!? and if someone doesn't beat me to it) was add an E_Maximize arg to this logic when calling from e_border_maximize, and then... a) if the arg is "maximize vertically", only try to maximize the window vertically b) if the arg is "maximize horizontally", only try to maximize the window horizontally (this much will solve my problems, and finally) c) if the arg is "maximize in both directions", then for starters try different orders of maximizing horizontally and vertically and select the result that gives the maximum volume of space for the window (there may be a smarter way of determining maximum volume, but I've not thought that far yet). David |
From: Carsten H. (T. R. <ra...@ra...> - 2006-09-16 05:58:31
|
On Tue, 12 Sep 2006 20:46:37 +0900 "David Stevenson" <dav...@gm...> babbled: > On 12/09/06, Daniel Kasak <dk...@nu...> wrote: > > Hi all. > > > > For about the past 2 weeks I've been having a bug with maximizing > > applications. > > > > When an app requests that a window get maximized, the window gets placed > > too high or low ( depending on whether the shelf is on the top or bottom ). well the example bug and app was doing something different - it was literally REQUESTING a new x,y location from the wm - and e was obeying. it was asking this after requesting a maximize. i have forced e to not respond to such requests once mximized and instead modify the saved values so on unmaximize it will go to where it asked. > I noticed this too when trying to vertically maximize my Eterms. > I have my shelf in the top left corner, running down the side of the > screen for 206 pixels, but if my window x,y is below that point then > it doesn't work (this is just one case that its broken in). this is a different matter - yes the maximize algos have problems :) > I took a look at the source on the weekend, and I think what the > problem is is that in the _e_maximize_border_rects_fill routine the > process is to first maximize out to the left, and then next try to > maximize out to the top. But, because the window is already maximized > to the left side of the screen, the routine decides that this position > intersects with the position of the shelf and so doesn't maximise > upwards. Currently this routine also tries to maximize in all > directions at once. There is also a "FIXME: The right order?" in this > code. it really needs to be split to maximize only in 1 direction to make this work properly :( > What I was going to do next (but as always, when!? and if someone > doesn't beat me to it) was add an E_Maximize arg to this logic when > calling from e_border_maximize, and then... > a) if the arg is "maximize vertically", only try to maximize the > window vertically > b) if the arg is "maximize horizontally", only try to maximize the > window horizontally (this much will solve my problems, and finally) > c) if the arg is "maximize in both directions", then for starters try > different orders of maximizing horizontally and vertically and select > the result that gives the maximum volume of space for the window > (there may be a smarter way of determining maximum volume, but I've > not thought that far yet). actually thats a good idea :) (the volume thing) :) sounds like that would work well... so... i'm waiting for you to "get to it" :) > > David > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > enlightenment-devel mailing list > enl...@li... > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ra...@ra... 裸好多 Tokyo, Japan (東京 日本) |
From: David S. <dav...@gm...> - 2006-09-19 15:38:15
|
On 16/09/06, The Rasterman Carsten Haitzler <ra...@ra...> wrote: > > What I was going to do next (but as always, when!? and if someone > > doesn't beat me to it) was add an E_Maximize arg to this logic when > > calling from e_border_maximize, and then... > > a) if the arg is "maximize vertically", only try to maximize the > > window vertically > > b) if the arg is "maximize horizontally", only try to maximize the > > window horizontally (this much will solve my problems, and finally) > > c) if the arg is "maximize in both directions", then for starters try > > different orders of maximizing horizontally and vertically and select > > the result that gives the maximum volume of space for the window > > (there may be a smarter way of determining maximum volume, but I've > > not thought that far yet). > > actually thats a good idea :) (the volume thing) :) sounds like that would work > well... so... i'm waiting for you to "get to it" :) OK - Let's see how far I can get with this on the weekend :-) David |