Print Page | Close Window

Docking pane splitter problems in latest release

Printed From: Codejock Forums
Category: Codejock Products
Forum Name: Docking Pane
Forum Description: Topics Related to Codejock Docking Pane
URL: http://forum.codejock.com/forum_posts.asp?TID=17435
Printed Date: 29 April 2024 at 11:41am
Software Version: Web Wiz Forums 12.04 - http://www.webwizforums.com


Topic: Docking pane splitter problems in latest release
Posted By: markr
Subject: Docking pane splitter problems in latest release
Date 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.



Replies:
Posted By: markr
Date Posted: 21 October 2010 at 5:02pm
Am I the only one seeing this problem??


Posted By: adrien
Date Posted: 21 October 2010 at 9:02pm
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.


-------------
http://www.wingate.com - http://www.wingate.com


Posted By: SHAN
Date Posted: 22 October 2010 at 3:16am
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


Posted By: znakeeye
Date Posted: 22 October 2010 at 5:32pm
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/


Posted By: markr
Date Posted: 26 October 2010 at 10:50pm
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?


Posted By: Oleg
Date Posted: 15 November 2010 at 3:10am
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


Posted By: adrien
Date Posted: 15 November 2010 at 8:43am
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...


-------------
http://www.wingate.com - http://www.wingate.com


Posted By: markr
Date Posted: 15 November 2010 at 12:46pm
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.


Posted By: Oleg
Date Posted: 16 November 2010 at 2:41am
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


Posted By: Tomasz
Date Posted: 16 December 2010 at 7:11am

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.



Posted By: Tomasz
Date Posted: 12 January 2011 at 12:53pm
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?


Posted By: Oleg
Date Posted: 13 January 2011 at 7:33am
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



Print Page | Close Window

Forum Software by Web Wiz Forums® version 12.04 - http://www.webwizforums.com
Copyright ©2001-2021 Web Wiz Ltd. - https://www.webwiz.net