![]() |
Docking pane splitter problems in latest release |
Post Reply ![]() |
Author | |
markr ![]() Senior Member ![]() Joined: 01 August 2004 Status: Offline Points: 443 |
![]() ![]() ![]() ![]() ![]() 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 |
![]() ![]() ![]() ![]() ![]() |
Am I the only one seeing this problem??
|
|
![]() |
|
adrien ![]() Senior Member ![]() Joined: 30 April 2007 Location: New Zealand Status: Offline Points: 449 |
![]() ![]() ![]() ![]() ![]() |
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 |
![]() ![]() ![]() ![]() ![]() |
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 |
![]() ![]() ![]() ![]() ![]() |
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 |
![]() ![]() ![]() ![]() ![]() |
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 |
![]() ![]() ![]() ![]() ![]() |
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 |
![]() ![]() ![]() ![]() ![]() |
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 |
![]() ![]() ![]() ![]() ![]() |
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 |
![]() ![]() ![]() ![]() ![]() |
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 |
![]() ![]() ![]() ![]() ![]() |
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 |
![]() ![]() ![]() ![]() ![]() |
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 |
![]() ![]() ![]() ![]() ![]() |
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 |