Fix for Tabpage flicker problem in build 260

This forum is for eXpress++ general support.
Post Reply
Message
Author
User avatar
rdonnay
Site Admin
Posts: 4734
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Fix for Tabpage flicker problem in build 260

#1 Post by rdonnay »

There was a regression in eXpress++ build 260 that caused a flicker on tabpages when a tabpage receives focus.

Attached is an updated _DCCLASS.PRG.
This is for build 260 users only.

Copy _DCCLASS.PRG to your \exp19\source\dclipx folder.
Run BUILD19_SL1.BAT or BUILD20.BAT to rebuild DCLIPX.dll.

This fix will be in build 261.
Attachments
_dcclass.zip
(40.75 KiB) Downloaded 672 times
The eXpress train is coming - and it has more cars.

Cliff Wiernik
Posts: 605
Joined: Thu Jan 28, 2010 9:11 pm
Location: Steven Point, Wisconsin USA
Contact:

Re: Fix for Tabpage flicker problem in build 260

#2 Post by Cliff Wiernik »

This fix does not eliminate the problem. It minimized it a small part but it still occurs. When you switch from tab page to tab page, it basically displays/paints the screen twice. If I use Build 259, it only paints the tab page contents once. Switching to Build 260 causes the problem to occur. I traced the cause to the changes made in the _TabActivate Function, excerpted below. This code was commented out in build 260:

/*
IF !oTabPage:minimized .AND. !mp1
RETURN nil
ENDIF
*/

I inserted a WTF !oTabPage:minimized, !mp1 prior to the above commented out code and recompiled dclipx.dll. The results were .T.,.T. everytime I switched to a new tab page. So in build 259 and prior the remainder of the code in _TabActivate was never processed. Now since the code and RETURN nil is never executed because it is commented out, the rest of the function's code is executed. That code is causing the flicker/double painting.

The now executing code appears to handle the changing of the selected/unselected tab page colors. It would appear that it was never being called previously and that is why the code fragment was commented out with Build 260. I tried the 259 version of _TabActivate in build 260 and the problem disappeared. I then commented out the above code and the problem returned as now the rest of the function is being processed. Now, it appears to be repainting the tab page color all the time, even when the default colors are being used (no use of the MINIMIZEDCOLOR/MAXIMIZEDCOLOR parameters). It would appear that the issue would not be new to 260 specifically only that the commented out code now causes the problem to appear because the rest of the function code is now executed. The code has been in many versions but would appear to not be normally executed in the past.

I am working on extracting out a sample for testing purposes, but that will take until sometime next week. The screens need to be big enough to allow the repainting flicker to be easily seen. I am currently testing Build 260 by putting the commented code back in.

Code: Select all

STATIC FUNCTION _TabActivate( aTabPages, oTabPage, lFocus, mp1, mp2 )

LOCAL i, bWhen, bValid, nTab, j, aChildList, oParent := SetAppWindow(), ;
      aTabColor, aColor, nColor

IF Empty(aTabPages)
   RETURN nil
ENDIF

DEFAULT mp1 := .f.

IF Valtype(oTabPage) = 'O' .AND. oTabPage:isDerivedFrom('XbpTabPage')

/*
  IF !oTabPage:minimized .AND. !mp1
    RETURN nil
  ENDIF
*/
  nTab := oTabPage:tabNumber
  bWhen := oTabPage:whenBlock
  oParent := oTabPage:setParent()
ELSE
  nTab := 0
ENDIF

IF (Valtype(bWhen)='B' .AND. !Eval(bWhen,oTabPage)) .OR. !lFocus
  RETURN nil
ENDIF

aTabColor := DC_TabPageColor()
I looked at the

User avatar
RDalzell
Posts: 205
Joined: Thu Jan 28, 2010 6:57 am
Location: Alsip, Illinois USA

Re: Fix for Tabpage flicker problem in build 260

#3 Post by RDalzell »

Roger,

Upon link for 1.9 sl1, I receive an error;
unresolved external symbol DC_BASEFONT

Cliff Wiernik
Posts: 605
Joined: Thu Jan 28, 2010 9:11 pm
Location: Steven Point, Wisconsin USA
Contact:

Re: Fix for Tabpage flicker problem in build 260

#4 Post by Cliff Wiernik »

I have been able to rebuild the sl1 dclipx.dll for build 260 without problem.

User avatar
RDalzell
Posts: 205
Joined: Thu Jan 28, 2010 6:57 am
Location: Alsip, Illinois USA

Re: Fix for Tabpage flicker problem in build 260

#5 Post by RDalzell »

xBase 1.90 build 355 ?

User avatar
rdonnay
Site Admin
Posts: 4734
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: Fix for Tabpage flicker problem in build 260

#6 Post by rdonnay »

Code: Select all

Upon link for 1.9 sl1, I receive an error;
unresolved external symbol DC_BASEFONT
Rick -

This fix was for build 260 only.
It will give you an error if you copy the file to your 355 installation.

Roger
The eXpress train is coming - and it has more cars.

User avatar
RDalzell
Posts: 205
Joined: Thu Jan 28, 2010 6:57 am
Location: Alsip, Illinois USA

Re: Fix for Tabpage flicker problem in build 260

#7 Post by RDalzell »

Roger,

No worries, I will update today.

Thanks.

User avatar
rdonnay
Site Admin
Posts: 4734
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: Fix for Tabpage flicker problem in build 260

#8 Post by rdonnay »

/*
IF !oTabPage:minimized .AND. !mp1
RETURN nil
ENDIF
*/
Cliff -

You are right. I compared code with build 259 and 260 and it was commented out in 260.
This may have been a remnant when I was working on Terry Wolfe's issue with angular tabs.
I probably was experimenting with this, but incorporated the solution elsewhere.

Here is an updated _DCCLASS.PRG.
Attachments
_dcclass.zip
(40.76 KiB) Downloaded 695 times
The eXpress train is coming - and it has more cars.

Cliff Wiernik
Posts: 605
Joined: Thu Jan 28, 2010 9:11 pm
Location: Steven Point, Wisconsin USA
Contact:

Re: Fix for Tabpage flicker problem in build 260

#9 Post by Cliff Wiernik »

Thanks.

Now it works like 259. The screen no longer is painted twice.

Cliff

Post Reply