Hello! Sorry for the delay in responding, it's been a busy week. I can confirm that setting first = 0 in ReSize() fixes the problem! The incorrectly-sized still flashes on the screen for approximately 0.1 seconds, but then quickly redraws correctly. Good enough for me! The output that gets printed (without *any* manual resizing at all) is:
resize: new 956x1062 @ (960,14) old -1x1043 @ (961,18) resize: new 956x1062 @ (960,14) old -1x1043 @ (961,18) resize: new 956x1062 @ (960,14) old 956x1062 @ (960,14) (Note that this is still with all the previously-discussed changes still in there - I haven't gone back and tried the various permutations to find the smallest set of changes that works) Hope this helps! -Adrian On Wed, Apr 13, 2016 at 2:33 PM, H.G. Muller <[email protected]> wrote: > > > Op 4/12/2016 om 3:20 PM schreef Adrian Petrescu: > > > > - Adding if(dlgNr == BoardWindow) DelayedDrag(); to the end of > GenericPopUp() (in gtk/xoptions.c) still makes the board small, *but* it > does result in the following prints as soon as xboard is launched: > resize: new 958x1043 @ (960,18) old -1x1043 @ (960,18) > resize: new 958x1043 @ (960,18) old -1x1043 @ (960,18) > resize: new 958x1043 @ (960,18) old 958x1043 @ (960,18) > > I just noticed something: At the beginning of ReSize there is a > declaration "static int first=1". > This suppresses any square resizing on the first call to Resize(). What > happens when you change that into first=0 ? > That would be a third explanation for why ReSize did not do anything, even > though the above output shows it was called. > I must admit that I do not understand why resizing then did not occur on > the second call, which still has new and old width different. > But in fact I do not really understand how there could be a second call to > DragProc where the old width (from wpMain) was -1. > Because in DragProg there is a statemet wpMain = wpNew, which should have > copied the 958 in wpNew over the -1 in wpMain. > So it should not be possible that DragProg is called a second time with > wpMain.width == -1. Unless it was called recursively, > between printing the above line and the wpMain = wpNew, but the busy=1 > construction is supposed to make that impossible. > > But anyway, trying the first=0 seems worth the attempt, in combination > with the above extra call to DeleyedDrag(). > > H.G. > > >
