add experimental compile flag in xschem.h, FIX_BROKEN_TILED_FILL, if defined work around some graphic adapters/driver implemtations that dont honor the X11 specifications for drawing with a pixmap tile fill pattern

This commit is contained in:
stefan schippers 2023-09-21 21:52:24 +02:00
parent 1479ca2ea6
commit 301f9c4bdf
5 changed files with 571 additions and 342 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="Xschem" Language="1033" Version="3.4.0" Manufacturer="Xschem" UpgradeCode="0deb9c17-cbbd-491c-be3e-24446b27ccd5">
<Product Id="*" Name="Xschem" Language="1033" Version="3.4.4" Manufacturer="Xschem" UpgradeCode="0deb9c17-cbbd-491c-be3e-24446b27ccd5">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<WixVariable Id="WixUILicenseRtf"
Value="License.rtf" />

View File

@ -282,6 +282,87 @@
<Component Id="cmp60AF36208CBD15BA02F3C0D627A5257E" Guid="{05B4B476-9129-41C9-995D-79F758640C8C}">
<File Id="fil63388A5AD4430AA19F242BCF0992C6E8" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_07.png" />
</Component>
<Component Id="cmpC1611210F3DE39EC7DA6A1AD578F4C9C" Guid="{AEE7A78C-238A-484E-AFEC-143C4E471442}">
<File Id="fil5454231E0AAECC044F5A6EA7DA917A82" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_08.png" />
</Component>
<Component Id="cmp75181867BDAEE7803166832A69E2CC8E" Guid="{A8D1CBF4-83C2-4695-B731-5640B8DB2FB8}">
<File Id="filFE06911014644C94E7D46582F3004C8E" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_09.png" />
</Component>
<Component Id="cmpC3EC30D1EC4924083BFB4189291A42C6" Guid="{FFA42DA5-1DB4-46C6-A958-52F827B58237}">
<File Id="filD52AC6BC3838F6039B31C162A2DF5C7E" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_10.png" />
</Component>
<Component Id="cmpAB21779D120D473110B732BEB07C762F" Guid="{590D9C35-3FC2-464A-84DB-16305B2F8AFC}">
<File Id="filF040EA8EA49F426A3319B3DAC1909512" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_11.png" />
</Component>
<Component Id="cmp7EB8DA33BBC3C9A99BFA78638ED396D9" Guid="{70172817-7BB8-4F5F-A1FF-F15E146DA37A}">
<File Id="filA14F39628896EEB4D42AF69D07607D9D" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_12.png" />
</Component>
<Component Id="cmp97C413201270EA088D6C173DC617CF14" Guid="{5EABBAF7-8817-4258-BF68-354036268CDC}">
<File Id="fil7C777464119FDB2F630262BCB5DB2A07" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_13.png" />
</Component>
<Component Id="cmp81ACF48B40CE3E85A7C39C40DE19CF55" Guid="{FDB0A675-2E44-43E9-8B44-8E37FDC38EBB}">
<File Id="fil6762980CE8956618314DC59E07E28873" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_14.png" />
</Component>
<Component Id="cmpF84728030B4EE42514850A231F168042" Guid="{53CD943D-A0D4-4177-A3DD-63B304CC25B6}">
<File Id="filF9EEE08F58DE77328300B1BDFD56184F" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_15.png" />
</Component>
<Component Id="cmp9104A3FD3DC82DAF49728222AF268F62" Guid="{F3DE7F8E-E1BA-4ADD-B78A-C7D73C3FD92D}">
<File Id="fil58250208CFA3A770BFB22E63E41899DD" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_16.png" />
</Component>
<Component Id="cmp6B4C56FB3870DF5DC1B49F99C91930DB" Guid="{E49CECE3-B3D9-46B8-BD2D-838ED21DDE52}">
<File Id="fil0A2C74E4456904F3210B5924046A2C4E" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_17.png" />
</Component>
<Component Id="cmp0837546F252AC65289A6A3A23F2A50E2" Guid="{0D133759-59B7-47D4-A117-99D606EA6327}">
<File Id="fil84CE5DF2938366BB8FFB85187801E10B" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_18.png" />
</Component>
<Component Id="cmpA116A33246A97DA4DF60C00ADB6688EB" Guid="{EF5A2CEC-A97F-4CCC-812D-CD12F5B51F9C}">
<File Id="fil2F99B7AF24D4DBAF8C14C2C4C2F74CAD" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_19.png" />
</Component>
<Component Id="cmp60D60FB4EC3A301E71E5F1F94229255A" Guid="{CB38715C-8560-4C40-9E55-CBAB927508C7}">
<File Id="fil2951A82DC40B21BA2158E9001A5E10CF" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_20.png" />
</Component>
<Component Id="cmpC639C095BEAE6D2BE870E835934115C7" Guid="{B55B260E-CD8E-46BC-B525-7019C700EA7E}">
<File Id="fil11DDECD94C26CF746EBDBFD2FF4C109A" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_21.png" />
</Component>
<Component Id="cmpA12CC59D029394163F1A842AD0765496" Guid="{721A1B4F-1612-4D12-AEB4-EB031BD25E29}">
<File Id="filCD5DE099377C9FD7934B8C0FDE488E9D" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_22.png" />
</Component>
<Component Id="cmp6739825AD0CC89BF61CC30B4C8B282D2" Guid="{A1C2887C-B9A3-4475-BE31-4766FB547365}">
<File Id="filDF959CA0D4CC8D33C29A1143BB910EF8" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_23.png" />
</Component>
<Component Id="cmp12BCAF79264E8F1593813CB4F5C294E8" Guid="{A2671A06-2756-4882-B0C8-E7EDA5EE68DD}">
<File Id="fil097FCAEE411DEE506B3308C69F798591" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_24.png" />
</Component>
<Component Id="cmpE9942F10950977E208A095223DA24EDE" Guid="{9E13E7B9-DB01-48BF-8192-AF360B7AF4ED}">
<File Id="fil907F993ACD60D6F0148ADED99DF08303" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_25.png" />
</Component>
<Component Id="cmpBCBE13810CD080207EFBB4EAEE4CDDF0" Guid="{A5212417-7F3E-4A08-ABD8-659EEB7E29E2}">
<File Id="filDC431FB8714EC80CE25E2EFB38D6763E" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_26.png" />
</Component>
<Component Id="cmp2E02C4FE568B986260DCD0D359214084" Guid="{238BA3D9-B852-4C25-AA48-F0B838AD3669}">
<File Id="fil5C74FE5E6BF6AB2AB730FEE593145FA8" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_27.png" />
</Component>
<Component Id="cmpE6CC9E5F13791F9665CABA1235C0F007" Guid="{504434A2-8C15-4F6A-9D6A-1BF5922562FF}">
<File Id="fil21C678CB6E2264B35D057C0BA6DD887F" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_28.png" />
</Component>
<Component Id="cmpE96F140D570B4836346AE012D9E83C05" Guid="{41B70B9C-C1AC-4841-9294-4130FD8F0A8E}">
<File Id="fil505A2CA4438558124B25C35CA6CE345E" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_29.png" />
</Component>
<Component Id="cmpE1BDE486E5C4840AF089AB02DF8998EF" Guid="{7B034972-D16C-455A-AE8A-3D098DD487B2}">
<File Id="fil8D666FDA1DBBB66FD45690ADA7E355A9" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_30.png" />
</Component>
<Component Id="cmpE5820623598A137567B414338F7B0B7D" Guid="{37F9107D-4665-4FCF-8FD0-A6C1FA614DAE}">
<File Id="fil6E10056698DBA0F0ED64C225B5E995F4" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_31.png" />
</Component>
<Component Id="cmp3CB26373574445A2D88AFFC64F7944F7" Guid="{C5A18D8A-0355-49CC-A27D-E8CD58585141}">
<File Id="fil3B90FE480967B0B2D960D92612C73F4B" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_32.png" />
</Component>
<Component Id="cmp6CFDC6645817F8F0319929D0497A2366" Guid="{286EE93D-4125-46BE-B85C-208D86EECD01}">
<File Id="filD115CA7FE2244DD332AA01A87AA1B4F1" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_33.png" />
</Component>
<Component Id="cmpECEFE7E0CF7B8773179AC1F8809F3A75" Guid="{87ED1C32-2B8F-474E-A699-7E6B53F00067}">
<File Id="fil83EAA7420E7F1F283F60DEE1ADAB24A1" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\developer_info_34.png" />
</Component>
<Component Id="cmp2C66755C98411F1273A4C9DE7215BEDC" Guid="{3A07AE97-6FBA-4492-8B4F-36551949423D}">
<File Id="fil10B07CB7CD456A24ACE1A248B3A3523E" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\edit_property.png" />
</Component>
@ -570,6 +651,9 @@
<Component Id="cmp64456081A2F7796762FBF32E72BD32E8" Guid="{897DEC28-7F63-4B78-BAA1-3040A8ECBDB6}">
<File Id="fil3BCC9EA97E466FEBC43573FD37F99938" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\symbol_generators03.png" />
</Component>
<Component Id="cmpA0D0513EEFCD10FCE5D2F5C2A826A652" Guid="{0BF763A7-B0E1-4498-83D4-CA22DC25D5D0}">
<File Id="fil8EF5E76A6AEDE295D8B575F0E73E6B59" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\symbol_generators04.png" />
</Component>
<Component Id="cmp4E173EB8A7B4151CF229043A306A5618" Guid="{90058AB6-91F5-42D9-AF76-51C4762A780B}">
<File Id="filCA3BA0C82FEE664384F4C8ADA0482FE9" KeyPath="yes" Source="$(var.docSrcDir)\xschem_man\symbol_properties1.png" />
</Component>
@ -1122,6 +1206,33 @@
<ComponentRef Id="cmp72A7DFD2AB2DC4734E2CE4F5F2C0710D" />
<ComponentRef Id="cmp022AA6C97DC6CEB9BE6BF0758392CECF" />
<ComponentRef Id="cmp60AF36208CBD15BA02F3C0D627A5257E" />
<ComponentRef Id="cmpC1611210F3DE39EC7DA6A1AD578F4C9C" />
<ComponentRef Id="cmp75181867BDAEE7803166832A69E2CC8E" />
<ComponentRef Id="cmpC3EC30D1EC4924083BFB4189291A42C6" />
<ComponentRef Id="cmpAB21779D120D473110B732BEB07C762F" />
<ComponentRef Id="cmp7EB8DA33BBC3C9A99BFA78638ED396D9" />
<ComponentRef Id="cmp97C413201270EA088D6C173DC617CF14" />
<ComponentRef Id="cmp81ACF48B40CE3E85A7C39C40DE19CF55" />
<ComponentRef Id="cmpF84728030B4EE42514850A231F168042" />
<ComponentRef Id="cmp9104A3FD3DC82DAF49728222AF268F62" />
<ComponentRef Id="cmp6B4C56FB3870DF5DC1B49F99C91930DB" />
<ComponentRef Id="cmp0837546F252AC65289A6A3A23F2A50E2" />
<ComponentRef Id="cmpA116A33246A97DA4DF60C00ADB6688EB" />
<ComponentRef Id="cmp60D60FB4EC3A301E71E5F1F94229255A" />
<ComponentRef Id="cmpC639C095BEAE6D2BE870E835934115C7" />
<ComponentRef Id="cmpA12CC59D029394163F1A842AD0765496" />
<ComponentRef Id="cmp6739825AD0CC89BF61CC30B4C8B282D2" />
<ComponentRef Id="cmp12BCAF79264E8F1593813CB4F5C294E8" />
<ComponentRef Id="cmpE9942F10950977E208A095223DA24EDE" />
<ComponentRef Id="cmpBCBE13810CD080207EFBB4EAEE4CDDF0" />
<ComponentRef Id="cmp2E02C4FE568B986260DCD0D359214084" />
<ComponentRef Id="cmpE6CC9E5F13791F9665CABA1235C0F007" />
<ComponentRef Id="cmpE96F140D570B4836346AE012D9E83C05" />
<ComponentRef Id="cmpE1BDE486E5C4840AF089AB02DF8998EF" />
<ComponentRef Id="cmpE5820623598A137567B414338F7B0B7D" />
<ComponentRef Id="cmp3CB26373574445A2D88AFFC64F7944F7" />
<ComponentRef Id="cmp6CFDC6645817F8F0319929D0497A2366" />
<ComponentRef Id="cmpECEFE7E0CF7B8773179AC1F8809F3A75" />
<ComponentRef Id="cmp2C66755C98411F1273A4C9DE7215BEDC" />
<ComponentRef Id="cmp7C169D8B7D8E4FF9954B9D9CDDD570CC" />
<ComponentRef Id="cmp49DDB67C54D11E163D7D7DFC0FB7DF30" />
@ -1218,6 +1329,7 @@
<ComponentRef Id="cmp14C7D96F77333525B6BDFBCBF7AB9CA3" />
<ComponentRef Id="cmpDE7F31AEB44A68034AA9A9FC61A10273" />
<ComponentRef Id="cmp64456081A2F7796762FBF32E72BD32E8" />
<ComponentRef Id="cmpA0D0513EEFCD10FCE5D2F5C2A826A652" />
<ComponentRef Id="cmp4E173EB8A7B4151CF229043A306A5618" />
<ComponentRef Id="cmpB389126DA86CA574DE924B2998CB8630" />
<ComponentRef Id="cmp6D2ED59DF2340D1122FD7F1D589EF887" />

File diff suppressed because it is too large Load Diff

View File

@ -1128,7 +1128,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
break;
}
if(xctx->ui_state & STARTPAN) pan(RUBBER, mx, my);
#ifndef __unix__
#if defined(FIX_BROKEN_TILED_FILL) || !defined(__unix__)
if ((xctx->ui_state & STARTWIRE) || (xctx->ui_state & STARTARC) ||
(xctx->ui_state & STARTLINE) || (xctx->ui_state & STARTMOVE) ||
(xctx->ui_state & STARTCOPY) || (xctx->ui_state & STARTRECT) ||
@ -2786,7 +2786,7 @@ int callback(const char *winpath, int event, int mx, int my, KeySym key,
xctx->my_double_save=xctx->mousey_snap;
if( !(state & ShiftMask) && !(state & Mod1Mask) ) {
unselect_all(1);
#ifndef __unix__
#if defined(FIX_BROKEN_TILED_FILL) || !defined(__unix__)
MyXCopyArea(display, xctx->save_pixmap, xctx->window, xctx->gctiled, xctx->xrect[0].x, xctx->xrect[0].y,
xctx->xrect[0].width, xctx->xrect[0].height, xctx->xrect[0].x, xctx->xrect[0].y);
#endif

View File

@ -114,6 +114,11 @@ extern char win_temp_dir[PATH_MAX];
#if HAS_CAIRO==1
#define DRAW_ALL_CAIRO 0 /* use cairo for all graphics. Work in progress! */
/* Uncomment below #define if your graphic adapter shows garbage on screen or there are missing objects
* while doing edit/copy/move operations with xschem. */
/* #define FIX_BROKEN_TILED_FILL 1 */
#include <cairo.h>
#include "cairo_jpg.h"
#ifdef __unix__