On 17/09/2013 1:19 AM, Jon TURNEY wrote: > On 11/09/2013 19:05, Simon wrote: >> On 12/09/2013 2:53 AM, Jon TURNEY wrote: >>> On 09/09/2013 15:43, Simon wrote: >>>>> Thanks for reporting this problem and the testcase. >>>>> >>>>> I've added a patch improves the window hint conversion in multiwindow mode so >>>>> that the hint which gtk_window_maximize() sets is now recognized as >>>>> maximizing >>>>> the window. >>>>> >>>>> I've uploaded a snapshot at [1]. Perhaps you could try that and see if it >>>>> improves things for you? >>>>> >>>>> (This is a x86 binary. if you need an x64 binary, please let me know and I'll >>>>> generate one) >>>> Thanks, that appears to fix the testcase, but terminator still has the same >>>> problems, I'll try to find out what is happening there. >>> 'terminator -m' works correctly for me with that snapshot. >>> >> It does for me too, but if I start terminator with no command line arguments >> (directly after I start x server), then maximize the window using the windows >> button, or by double clicking the title bar, I get a window that's not fully >> maximized. > This works for me, but this sounds like a different problem to the one you > first reported. > > There is a difference between a window asking to maximize itself (via the > appearance hint that gtk_window_maximize() sets), and using the window manager > to maximize using the frame controls (title bar double click or maximize button) > > I'm not sure what you mean by 'not fully maximized', this seems different to > 'not maximized' > > Perhaps the window may not get fully maximized as it's frame dimensions are > (should be?) constrained to ensure that they are an integer multiple of the > character cell size? > Yes indeed it is a different problem, I've dug deeper and found the cause, I've attached a test-case. The problem is that gtk's window-state-event signals aren't being fired when a window maximizes or minimizes. The correct behavior in the test-case, is that 'test' will be printed twice, once on startup, once when the user maximizes the window, and once when the user minimizes the window. Simon