Docking pane splitter problems in latest release |
Post Reply |
Author | |
markr
Senior Member Joined: 01 August 2004 Status: Offline Points: 443 |
Post Options
Thanks(0)
Posted: 15 October 2010 at 1:30pm |
Today I updated my XTP installation from 13.4.0 to 13.4.2, and I immediately noticed something amiss when dragging (resizing) docking pane splitters. I now see strange drawing artifacts during these operations.
I can easily reproduce this with latest CodeJock samples. Just launch "Docking Pane Sample" application and (for example) resize Pane 5. As the pane is resized, drawing for other panes shows artifacts. So I tried turning off the "show splitter tracker" setting (main menu of Docking Pane Sample app) and the problem actually gets a bit worse. Now when I drag a pane, it turns transparent when I "release" it (at least until the window loses focus and it gets redrawn). Anyone else seeing this? Again, I didn't notice any problems with the 13.4.0 builds. |
|
markr
Senior Member Joined: 01 August 2004 Status: Offline Points: 443 |
Post Options
Thanks(0)
|
Am I the only one seeing this problem??
|
|
adrien
Senior Member Joined: 30 April 2007 Location: New Zealand Status: Offline Points: 449 |
Post Options
Thanks(0)
|
I'm seeing this too.
It's like it's a delayed update to the other panes, so you get artefacts of the content of other panes. It comes right after about a half second, but it's ugly whilst you're resizing.
|
|
SHAN
Groupie Joined: 17 July 2010 Location: Dubai Status: Offline Points: 73 |
Post Options
Thanks(0)
|
Hi,
I am also getting the same problem with docking pane after updating to 13.4.2 Version....!
|
|
Product: Xtreme SuitePro (ActiveX) version 15.0.2
Platform: Windows 7 Professional Language: Visual Basic 6.0 |
|
znakeeye
Senior Member Joined: 26 July 2006 Status: Offline Points: 1672 |
Post Options
Thanks(0)
|
Well, 13.4.2 comes with a fix for IE9 compatibility (see other thread) that may affect this behavior. We really need feedback fron CJ here!
|
|
PokerMemento - http://www.pokermemento.com/
|
|
markr
Senior Member Joined: 01 August 2004 Status: Offline Points: 443 |
Post Options
Thanks(0)
|
I understand that CodeJock team is busy trying to get the next major release out the door, but as it stands I'll have to roll back to 13.4.0 if there's no fix for this.
Could someone from CJ please comment? Perhaps a source patch or workaround? |
|
Oleg
Admin Group Joined: 21 May 2003 Location: United States Status: Offline Points: 11234 |
Post Options
Thanks(0)
|
Hello,
Yes, its indeed related to IE9 - to redraw faster we had such code to flush WM_PAINT buffer: while (::PeekMessage(&msg, NULL, WM_PAINT, WM_PAINT, PM_NOREMOVE)) { if (!GetMessage(&msg, NULL, WM_PAINT, WM_PAINT)) return; DispatchMessage(&msg); } for me it looks safe and worked fine for us all time (even MFC has at least 3 places with same code), but new IE9 beta that used as ActiveX hangs on this flush code.
|
|
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS |
|
adrien
Senior Member Joined: 30 April 2007 Location: New Zealand Status: Offline Points: 449 |
Post Options
Thanks(0)
|
hey Oleg
did you try any other flags for PeekMessage? e.g. PM_QS_SENDMESSAGE Or did you just remove this flushing code? The flushing code looks like it actually processes all the WM_PAINT messages in one hit...
|
|
markr
Senior Member Joined: 01 August 2004 Status: Offline Points: 443 |
Post Options
Thanks(0)
|
Just wanted to provide a quick update. Oleg sent me the version of XTPDockingPaneSplitterContainer.cpp that shipped with XTP v13.4.0. I used it to recompile the CodeJock libraries, and that resolved the issue.
Oleg also indicated that they're investigating a permanent fix for inclusion in the upcoming v15 release. |
|
Oleg
Admin Group Joined: 21 May 2003 Location: United States Status: Offline Points: 11234 |
Post Options
Thanks(0)
|
Hi,
Seems this one while (::PeekMessage(&msg, NULL, WM_PAINT, WM_PAINT, PM_REMOVE | PM_NOYIELD)) { DispatchMessage(&msg); } make same work and don't have problem with IE9, we are going to update to this code if won't find new problem. |
|
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS |
|
Tomasz
Senior Member Joined: 05 August 2006 Status: Offline Points: 109 |
Post Options
Thanks(0)
|
Oleg: Out of curiosity I checked where those WM_PAINT pumping is used in XTP. And I found 14 places. And each one with a COPY of same lines. Why this is not written as a global function that can be called instead of copy-pasting same code 14 times? Sorry for rant but I really hate code-bloat. |
|
Tomasz
Senior Member Joined: 05 August 2006 Status: Offline Points: 109 |
Post Options
Thanks(0)
|
Question to Oleg: should we change all occurrences in the library sources on our own or will be a fix to version 13.4.2 made available ??? Is this fix safe, i.e. did you find any problems with it?
|
|
Oleg
Admin Group Joined: 21 May 2003 Location: United States Status: Offline Points: 11234 |
Post Options
Thanks(0)
|
We didn't find new problems with such code
while (::PeekMessage(&msg, NULL, WM_PAINT, WM_PAINT, PM_REMOVE | PM_NOYIELD)) { DispatchMessage(&msg); } if you see problems with your DockingPane splitter you can insert this code to CXTPDockingPaneSplitterWnd::OnLButtonDown method inside while (::GetCapture() == m_hWnd) loop. |
|
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS |
|
Post Reply | |
Tweet
|
Forum Jump | Forum Permissions You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |