GoOverviewRectangle resizes incorrectly

I am having trouble getting the GoOverview’s GoOverviewRectangle to respond correctly when resizing a MDI child window that is a GoView. I am using 2.4 and the same problem can be demonstrated with the OrgCharter example provided in the installation. It looks like when a MDI child is resized the GoOverview redraws the overview rectangle for the current MDI child size not the changed size. So the overview rectangle is always one resize behind.

Run the OrgCharter example and bring up the overview window. Resize the org client to make it bigger and notice the overview window does not respond. Now resize the client again to make it smaller and notice the overview rectangle gets larger.

I just tried running the OrgCharter.exe that we shipped with the 2.4.1 GoDiagram Win kit, and found that the resizing of the MDI child window is immediately reflected in real time in the Overview window.

So I'm unable to reproduce the problem that you report.
Is the OrgCharter.exe that you are running dated 14 December 2005? Or are you running it in Visual Studio?

I have tried running OrgCharter from the installation folder and it is dated 14 December 2005. I have also rebuilt the project with Visual Studio 2005 and tested. Both produce the same resize problem on my machine.

So I started checking other developer machines. It worked on some and not others. We finally tracked it down to a display property setting in Windows XP. In the appearance tab of the "Display Properties" look at the "Effects ..." settings. There is an option to "Show window contents while dragging". If this option is selected the GoOverviewRectangle tracks the GoOverview MDI child when it is resized. If this option is not selected then the GoOverviewRectangle always stays one resize behind.
In our applications the GoView is in a MDI Child that has multiple panes separated by splitter windows. The GoOverviewRectangle does not track properly when manipulating the splitter windows to resize the GoView pane even with the display setting changed. It does track properly when the whole MDI Child window is resized. I am going to try and put a splitter into the OrgCharter example and see if I can reproduce the problem.

I placed a splitter into the GraphViewWindow of OrgCharter horizontally separating 2 GraphViews. I updated the mainform to use the top GraphView as the active GoView.

Regardless of the display setting the GoOverview is always one resize behind when using the splitter window to resize the GraphView.

That’s interesting.

GoOverview adds a Control.Resize event handler to the GoView that it is observing. I wonder why it isn't getting a Resize event at the right time.

OK, the fix for this problem will be in the next baselevel.

Although I have only tried this briefly as a work-around for you, you could try calling GoView.LayoutScrollBars(false) in a GoView.Resize event handler. (This is on the main GoView, not on the GoOverview.)


GoView.LayoutScrollBars is working well. I have tried it in the OrgChart example with splitters and my application.