<< Weekly Status Report, W18/2008 | The roads I take... | Weekly Status Report, W19/2008 >>

Dynamic Default Window Size For SeaMonkey

For years, we have read comments about the default browser window size for the Mozilla suite and now SeaMonkey being sucky, as you couldn't even see the the full URL of the default start page. Even if you have a large screen, you end up with something like "http://www.moz" or "http://www.sea" in the visible part of the urlbar, depending on your platform and its UI font settings.
We had improved the situation somewhat in SeaMonkey by making the default window 70ch (avg char width) by 45em (line height) units, so that it's increasing with the default UI font sizes, but it was still awfully small on most current displays.

The reason for not increasing the size more was to still support smaller screens by not making the window going offscreen and be hardly resizeable - and we didn't want to come into that situation.

With our machines for automated testing, we ran into this problem in a different way: The mochitest suite runs its tests in an HTML iframe, with test summary information above it, and this made us end up with mouse events that were automatically generated to happen over elements in the iframe not being successful just because the iframe was not fully visible - the default window was too small to display it as a whole under those test summaries.

This problem caused a certain amount of test failures - at least on Windows. While we found out that increasing the height to 65em should have helped with the tests, such a default window size would get problematic on small screens.

Looking into how Firefox does this, I realized it sets the default window size dynamically, depending on the available screen size. We now implemented this for SeaMonkey as well, though with small improvements over the Firefox solution: While (judging by reading their code, I couldn't test) default Firefox windows probably grow out of the window when the screen is higher than 600 pixels but slimmer than 994 (which can happen e.g. on a rotated 800x600 or 1024x768 screen, but is surely rare), the SeaMonkey code should always make the default window fit into the screen size. On screens with 600px or less in height, we switch to a maximized window, just like Firefox, and on wide screens (over 1440px in our case) we also take only half the width, suggesting side-by-side page view.

If someone happens to have such a strange screen configuration that is higher than 600px but not at least 994px wide, I'd encourage you to test my assumption of Firefox growing out of the screen by default and filing a bug if you can confirm - I'm sure Firefox developers will be happy to fix that edge case.

For everybody else, enjoy upcoming SeaMonkey 2 nightlies and releases making better use of your screen by default when starting up, fixing a long-time-existing problem we heard complaints about every now and then.

Finally, if you're interested in the unit test boxes being visible on the main SeaMonkey tinderbox waterfall page, I'll do that move soon, probably on Monday, as now all available tests on both machines are passing without using any local patches.

Entry written by KaiRo and posted on May 9th, 2008 19:05 | Tags: Mozilla, SeaMonkey | 2 comments | TrackBack

Comments

AuthorEntry

Andrew

quote
> default Firefox windows probably grow out of the window when the screen...

Actually, no. Firefox (and now SeaMonkey) use setAttribute, and gecko will set the size to be the screen size if the the width or height you set exceeds the screen size... I thought there was a comment in the code to this effect, but I don't see it now.
2008-05-09 21:09

Mossop

quote
Yeah last I looked the xul window open code restricts the initial size to the screen size. Sadly this breaks when there are multiple monitors and it restricts to the size of the main window rather than the target window, but still.

And ftr, the need to accept terms and conditions before posting a comment, that's pretty messed up, I almost couldn't be bothered.
2008-05-10 01:28

Add comment