Hi all,

eeschema still has some not so bad but nevertheless annoying redraw bugs on OS 
X (using WX_OVERLAY), e.g., doing a rotate during a move.

In the branch
  lp:~stegmaier/kicad/kicad-eeredraw
  https://code.launchpad.net/~stegmaier/kicad/kicad-eeredraw
I reworked current WX_OVERLAY handling to fix this (this branch does not 
contain any other changes).

The general idea of the rework is that the drawing code wants to draw some item 
if the drawing mode is DEFAULT. If the drawing code wants to remove an item it 
uses XOR mode. This is nothing new, it is done that way at many places but not 
consistently in all spots.
For WX_OVERLAY if some item is to be removed a complete redraw is triggered 
(this might not be the most smart approach, but the easiest one and I did not 
see any real big performance impact).

Rework consists of 3 parts:
(1) Remove different WX_OVERLAY specific fixes/workaround being not 
consistently used (rev. 5202).
(2) Only when WX_OVERLAY is being used: push down the remove/repaint check to 
all draw methods (rev. 5201).
(3) Change drawing mode consistently to use DEFAULT for drawing and XOR for 
removing an item (rev. 5203).

I have tested the changes quite some while on OS X and did not notice any 
redraw artifacts any longer.

Since part (3) also affects other platforms, changes have to be tested not only 
on OS X. 
However, there should be no change in behavior on platform not using WX_OVERLAY 
(in theory).

It would be great if this could get merged to main branch.


Regards,
Bernhard



_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to