When you close a window, its state is saved for new windows. If the window is in a zoomed (maximised) state when you close it, then it will be in a zoomed state when you open it again. The problem is, these two states are inconsistent in terms of window sizes. When you click the zoom box to resize the window to full screen, it leaves a 64-pixel space on the right of the screen. When you open a window in maximised state, there is no 64-pixel space; the window fills the screen entirely. To reproduce: 1. Maximise a window (close all other windows first, for simplicity). Note the 64-pixel gap on the right. 2. Close that window, open a new one. Note no 64-pixel gap. 3. Click zoom; it goes to the user-customisable state. Click again; it goes back to the 64-pixel-gap state. Both zoom states should be the same. I suspect the fix would be fairly trivial... but we need discussion on whether the 'natural' zoom state should have the 64-pixel gap or not. (See bug 53506 for more reference.) The choices would be: make the zoom-box click go to full-screen, or make the 'remembered' zoom state have a 64-pixel gap. For myself, I'd favour removing the 64-pixel gap altogether, but that's definitely my personal bias. Any other opinions?
We define our own zoomed window size at the time the user punches the zoombox (nsMacMessagePump::DoMouseDown). When a window is opened initially in a zoomed state, it doesn't have a chance to go through this code, and gets the system default zoomed size. We just need to make the zoomed window size calculation available everywhere it's needed. Knowing that, this is an easy fix. But I won't be allowed to spend the time to put it together. Marking helpwanted.
I've decided to fix this bug while I was checking in the fix for bug 95740, which was bugging people enough to actually supply a patch.
lookin good. r=pink.