Codejock Forums Homepage
Forum Home Forum Home > Codejock Products > Visual C++ MFC > Docking Pane
  New Posts New Posts RSS Feed - Docking pane splitter problems in latest release
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Docking pane splitter problems in latest release

 Post Reply Post Reply
Author
Message
markr View Drop Down
Senior Member
Senior Member


Joined: 01 August 2004
Status: Offline
Points: 443
Post Options Post Options   Thanks (0) Thanks(0)   Quote markr Quote  Post ReplyReply Direct Link To This Post Topic: Docking pane splitter problems in latest release
    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.
Back to Top
markr View Drop Down
Senior Member
Senior Member


Joined: 01 August 2004
Status: Offline
Points: 443
Post Options Post Options   Thanks (0) Thanks(0)   Quote markr Quote  Post ReplyReply Direct Link To This Post Posted: 21 October 2010 at 5:02pm
Am I the only one seeing this problem??
Back to Top
adrien View Drop Down
Senior Member
Senior Member


Joined: 30 April 2007
Location: New Zealand
Status: Offline
Points: 449
Post Options Post Options   Thanks (0) Thanks(0)   Quote adrien Quote  Post ReplyReply Direct Link To This Post 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.
Back to Top
SHAN View Drop Down
Groupie
Groupie
Avatar

Joined: 17 July 2010
Location: Dubai
Status: Offline
Points: 73
Post Options Post Options   Thanks (0) Thanks(0)   Quote SHAN Quote  Post ReplyReply Direct Link To This Post 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
Back to Top
znakeeye View Drop Down
Senior Member
Senior Member
Avatar

Joined: 26 July 2006
Status: Offline
Points: 1672
Post Options Post Options   Thanks (0) Thanks(0)   Quote znakeeye Quote  Post ReplyReply Direct Link To This Post 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/
Back to Top
markr View Drop Down
Senior Member
Senior Member


Joined: 01 August 2004
Status: Offline
Points: 443
Post Options Post Options   Thanks (0) Thanks(0)   Quote markr Quote  Post ReplyReply Direct Link To This Post 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?
Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post 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
Back to Top
adrien View Drop Down
Senior Member
Senior Member


Joined: 30 April 2007
Location: New Zealand
Status: Offline
Points: 449
Post Options Post Options   Thanks (0) Thanks(0)   Quote adrien Quote  Post ReplyReply Direct Link To This Post 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...
Back to Top
markr View Drop Down
Senior Member
Senior Member


Joined: 01 August 2004
Status: Offline
Points: 443
Post Options Post Options   Thanks (0) Thanks(0)   Quote markr Quote  Post ReplyReply Direct Link To This Post 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.
Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post 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
Back to Top
Tomasz View Drop Down
Senior Member
Senior Member


Joined: 05 August 2006
Status: Offline
Points: 109
Post Options Post Options   Thanks (0) Thanks(0)   Quote Tomasz Quote  Post ReplyReply Direct Link To This Post 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.

Back to Top
Tomasz View Drop Down
Senior Member
Senior Member


Joined: 05 August 2006
Status: Offline
Points: 109
Post Options Post Options   Thanks (0) Thanks(0)   Quote Tomasz Quote  Post ReplyReply Direct Link To This Post 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?
Back to Top
Oleg View Drop Down
Admin Group
Admin Group


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post 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
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 12.04
Copyright ©2001-2021 Web Wiz Ltd.

This page was generated in 0.232 seconds.