Compare commits
2827 Commits
extend-deb
...
4.16.0
Author | SHA1 | Date | |
---|---|---|---|
|
d16c9fbaca | ||
|
0274294a6f | ||
|
03b19d8861 | ||
|
171612671f | ||
|
d3db28b3f4 | ||
|
896ea5b753 | ||
|
5498b077fd | ||
|
534a9b6ba0 | ||
|
cea961f4f4 | ||
|
848c6815d3 | ||
|
46559039f3 | ||
|
eb7a42bc13 | ||
|
ffe56fe6b3 | ||
|
d4ba57fcc3 | ||
|
a95c9ebc51 | ||
|
9195c39756 | ||
|
d9bb434c1f | ||
|
866c83909c | ||
|
4965b7b6fa | ||
|
45f3e86457 | ||
|
c033de9b83 | ||
|
3f7f9b705e | ||
|
b6d19f4c8b | ||
|
3a2b8f94ec | ||
|
3a5933a519 | ||
|
4c295dc49c | ||
|
03ebb41262 | ||
|
b0c3265561 | ||
|
98943b28aa | ||
|
c354c5a63d | ||
|
2f8cb9b2d0 | ||
|
7559a87e8a | ||
|
b2394691cc | ||
|
5a94004b59 | ||
|
3bd609d77c | ||
|
84d2961a91 | ||
|
3a9f26113f | ||
|
6a240c36ac | ||
|
aaf4261969 | ||
|
5dceb7f7d2 | ||
|
3372b1a84b | ||
|
75a4eca13a | ||
|
13f0ab881e | ||
|
d4b45526b2 | ||
|
c06e1f4848 | ||
|
6a4a52d110 | ||
|
ed6f5b8755 | ||
|
e87b4dca71 | ||
|
567c8b5ab3 | ||
|
7aeca0512c | ||
|
5567934fc9 | ||
|
63bece1fe7 | ||
|
ad3c285fc6 | ||
|
47c461b25b | ||
|
97f0aa7875 | ||
|
8e54460a48 | ||
|
4c4d260199 | ||
|
b18c6b5781 | ||
|
d76e241558 | ||
|
13cbd9fcc7 | ||
|
6e54589d9e | ||
|
c781c0ff24 | ||
|
0277e26152 | ||
|
563cce5530 | ||
|
b0e4be7fda | ||
|
e29701a203 | ||
|
6a1cd87480 | ||
|
3db858b45f | ||
|
49ee69f316 | ||
|
b43e0a3423 | ||
|
8054099d0e | ||
|
a8e49cc21f | ||
|
5f1ec18550 | ||
|
6b5c5714e5 | ||
|
9a8e5b07ae | ||
|
3f4cf65686 | ||
|
345eca1efe | ||
|
166afbf8e8 | ||
|
9120d1c834 | ||
|
083f9e7723 | ||
|
a0cfc6c404 | ||
|
edc50c85ef | ||
|
4794bc3db6 | ||
|
2299c02639 | ||
|
ae13a82a9a | ||
|
6c88713f82 | ||
|
5c6fedae17 | ||
|
5faa1c3d6e | ||
|
074bcd33be | ||
|
5b6b42b5a9 | ||
|
ae8a06cdca | ||
|
c9bbf5820b | ||
|
bb0b764172 | ||
|
ae8e9ef650 | ||
|
8df7ff75bb | ||
|
bbfd8e0e89 | ||
|
467212877f | ||
|
204b8857a1 | ||
|
a524524ffd | ||
|
3ef1f448a3 | ||
|
a5df8f2f35 | ||
|
b56a8c7f88 | ||
|
649782b547 | ||
|
97245e9baa | ||
|
0f3c27c8a5 | ||
|
3273637179 | ||
|
1eaa0e9b74 | ||
|
28d1bce2d4 | ||
|
b8072d8562 | ||
|
da9886d822 | ||
|
747f2e5af6 | ||
|
aeb3ee0969 | ||
|
e248f1a4b5 | ||
|
d23833285e | ||
|
ff9fe6857f | ||
|
58f2d3fbe7 | ||
|
d9f75581be | ||
|
307efe2172 | ||
|
4ea4dc9176 | ||
|
fa25015e8c | ||
|
296b6b1ed5 | ||
|
b88fe301be | ||
|
ffd836e6f4 | ||
|
457cf66d0d | ||
|
36765745a1 | ||
|
46c19a3d28 | ||
|
6cf928eb6c | ||
|
a0d076f01a | ||
|
37c744759c | ||
|
277a05eb8c | ||
|
0376e4668c | ||
|
9d5652de64 | ||
|
bb109b5d9e | ||
|
d630ddd182 | ||
|
e268041a42 | ||
|
f9cbeeeedc | ||
|
62542f836f | ||
|
6d4c74fdce | ||
|
3dac4a01c6 | ||
|
f598ec00f5 | ||
|
6fc18f4b37 | ||
|
8c9f16fa7a | ||
|
001ca0a982 | ||
|
b23c0248ba | ||
|
c4c352facc | ||
|
30af6d1159 | ||
|
1fac3fe44e | ||
|
8ac6c08f00 | ||
|
5b62f29b5e | ||
|
817cfb09f8 | ||
|
8da478ab34 | ||
|
8d866c5980 | ||
|
467e622778 | ||
|
aa81df921b | ||
|
328020b241 | ||
|
41cd0c6f13 | ||
|
db02abe54e | ||
|
447bc18c48 | ||
|
283c66251b | ||
|
63b68d2f5e | ||
|
7e09a5648a | ||
|
4a0b833548 | ||
|
86bec01640 | ||
|
b07a2a968d | ||
|
997d553520 | ||
|
8eb05850cb | ||
|
98eaec99ee | ||
|
8fb946f6e8 | ||
|
a10670c991 | ||
|
48f347e62b | ||
|
ed1c047cf2 | ||
|
ea9c2a72d9 | ||
|
15edfe4ffa | ||
|
c2698e2be9 | ||
|
0defdc4af5 | ||
|
ea9b47f1b6 | ||
|
65c8320a32 | ||
|
a7afde2e7d | ||
|
a876a829e4 | ||
|
f4bd883003 | ||
|
0fcdadc531 | ||
|
d58b545ffb | ||
|
8ca299e82b | ||
|
a231a2114a | ||
|
ab41a549f8 | ||
|
a9997a3af6 | ||
|
6d86b16dbe | ||
|
779d32747d | ||
|
ffeca06bd6 | ||
|
83b387e782 | ||
|
b41fe2e093 | ||
|
93573218d4 | ||
|
076968dc1e | ||
|
5e6cf622e3 | ||
|
90c65e3611 | ||
|
afe75aedc2 | ||
|
8b215a453c | ||
|
c3329123a3 | ||
|
107ef2017c | ||
|
acad180cee | ||
|
504ca9c0c8 | ||
|
2d9f28c0ff | ||
|
07b3e8785c | ||
|
68ef86ac4f | ||
|
beb20fb1db | ||
|
3a965088a2 | ||
|
89118ee7ba | ||
|
4b5d503cf0 | ||
|
aeac103fbc | ||
|
cd153e8a53 | ||
|
5369b07eb0 | ||
|
58f7b966d0 | ||
|
4be1d754b7 | ||
|
c1351fb659 | ||
|
d8926de40e | ||
|
73c94cf1d6 | ||
|
c2a637f68a | ||
|
6a986f03b6 | ||
|
a52ae238ab | ||
|
8a0d688a61 | ||
|
3260b8f142 | ||
|
dc8e01d469 | ||
|
0105da3238 | ||
|
8979515aa4 | ||
|
a8c827455d | ||
|
798edf5300 | ||
|
54758bee1f | ||
|
cfe0da1eed | ||
|
1198dc76a4 | ||
|
bed3e9918b | ||
|
d76bb2991a | ||
|
e962e86fcd | ||
|
dd59c90842 | ||
|
c03720879e | ||
|
a62787ebb2 | ||
|
2a7541342c | ||
|
f96d6cdb2b | ||
|
3ea6ddd321 | ||
|
17f7d80fcf | ||
|
e3437c748a | ||
|
f1d80727d0 | ||
|
c7fabe2897 | ||
|
cc1c3799b6 | ||
|
a196bf1132 | ||
|
4bcfeebdea | ||
|
740965016f | ||
|
39e6301f42 | ||
|
fd02c885e9 | ||
|
26a2966a7b | ||
|
29cfcbdc97 | ||
|
de62ea96ab | ||
|
2d230f79a6 | ||
|
cde094a0df | ||
|
2fb3dc8c90 | ||
|
f6a8ba0ccb | ||
|
f650f96b69 | ||
|
c230546a2c | ||
|
f3ac0535f8 | ||
|
7ce942d3fb | ||
|
56a8e947df | ||
|
f592a303e4 | ||
|
e14670d457 | ||
|
0acf9caa8e | ||
|
22860389de | ||
|
16e764b402 | ||
|
85862c4e22 | ||
|
eb764d43f8 | ||
|
6b57f596f7 | ||
|
cefaec5d6f | ||
|
29b6eab0ea | ||
|
360674f523 | ||
|
7900f91e46 | ||
|
e4248503cf | ||
|
168bab34f7 | ||
|
46e7ea8c1e | ||
|
1ce7de0fb8 | ||
|
d9a0f3cfe2 | ||
|
200cec3321 | ||
|
d4e730db0c | ||
|
ca78d845df | ||
|
9ff31dd29b | ||
|
0815359a20 | ||
|
96139a902d | ||
|
a6233ac852 | ||
|
4e9ebb5299 | ||
|
585f31fa2e | ||
|
69e7838461 | ||
|
3fe3800b7c | ||
|
491275b444 | ||
|
1cd107d5ab | ||
|
5af2d95bff | ||
|
62f5db06a1 | ||
|
e32a12f877 | ||
|
584733f034 | ||
|
c3c1819e12 | ||
|
3f36ebc6e7 | ||
|
4aea2d2e09 | ||
|
4e9107d4b1 | ||
|
7d895720be | ||
|
323dde2b10 | ||
|
ac16e375c7 | ||
|
31143f9611 | ||
|
7da4844dcc | ||
|
c9e4abcd3a | ||
|
6e80fde45f | ||
|
d182b133a9 | ||
|
5e3240a32f | ||
|
436989d745 | ||
|
f62606105e | ||
|
0f85a40a25 | ||
|
16ad1e428f | ||
|
a6e0028899 | ||
|
dc3def1afd | ||
|
a14e426fb5 | ||
|
a1a4026867 | ||
|
aff1b88c92 | ||
|
dc072f881c | ||
|
824ccfc562 | ||
|
8c6e5ca131 | ||
|
a7b69ad9b5 | ||
|
3cd25516ab | ||
|
f3c8c5a9c0 | ||
|
6878200ccf | ||
|
e1fbd52c29 | ||
|
79c2df8392 | ||
|
0888402cea | ||
|
3dae3205e7 | ||
|
4858122d17 | ||
|
a19023277f | ||
|
72dc9e3bf1 | ||
|
5f814cc30a | ||
|
23aafbf09f | ||
|
761dc7cad0 | ||
|
f62a873eef | ||
|
03c99ebc99 | ||
|
cb339f85b8 | ||
|
5d056eabf6 | ||
|
4e77667ab8 | ||
|
d3e3ddf897 | ||
|
fca983e81e | ||
|
b1995d0d77 | ||
|
8ccfda4972 | ||
|
9a47c0f923 | ||
|
b33b679b13 | ||
|
8d41ecff3e | ||
|
85bcf9a366 | ||
|
b27e3631f0 | ||
|
4d5ba0631d | ||
|
0f618ae29e | ||
|
13d415f2f6 | ||
|
e7b14ae26e | ||
|
07658347a9 | ||
|
0436801a9c | ||
|
4da593a3de | ||
|
f5194bbf83 | ||
|
15552e5478 | ||
|
d9616c1993 | ||
|
5dbce5ce9b | ||
|
1f47c36e49 | ||
|
ed05890740 | ||
|
68d73dcce5 | ||
|
9643a21827 | ||
|
07b64c2f0f | ||
|
3df3ec2a29 | ||
|
0015fda94c | ||
|
589f483e7b | ||
|
a77f8c9f62 | ||
|
1d7aa9e40b | ||
|
8de4b04819 | ||
|
175dba86fd | ||
|
767b9b9405 | ||
|
202a51d9e3 | ||
|
3014d36a61 | ||
|
d718fda057 | ||
|
bbb7b365d5 | ||
|
740e485160 | ||
|
5a69127862 | ||
|
798883f21a | ||
|
bec71a15b4 | ||
|
c4baf60044 | ||
|
d32081401f | ||
|
ed119ae246 | ||
|
51768d0e16 | ||
|
6f1a4e5bb9 | ||
|
e323d2a93e | ||
|
23922eebf1 | ||
|
92bd85ba30 | ||
|
ca7aa30bc5 | ||
|
d17972427a | ||
|
25f0c81530 | ||
|
4f95d126ba | ||
|
310196cc59 | ||
|
8052bcc69c | ||
|
04ee41d7b0 | ||
|
23af1cd8ad | ||
|
4426194ee6 | ||
|
92c119e12c | ||
|
ff02665407 | ||
|
d471ed5912 | ||
|
b92ca5da02 | ||
|
0f7c0f616c | ||
|
5551f30400 | ||
|
2c10d72fe5 | ||
|
44fe51247c | ||
|
3a99f1e9f1 | ||
|
d233f0ca3e | ||
|
c548bdc3fe | ||
|
839d797292 | ||
|
f8a30ddfc1 | ||
|
bb0eb3af45 | ||
|
999d9bc73b | ||
|
16c7003acb | ||
|
f64045c229 | ||
|
58aebc4447 | ||
|
3b3b6036f8 | ||
|
75748f4ae9 | ||
|
f90fb68aec | ||
|
4fa3943e51 | ||
|
0a92f741b3 | ||
|
a35f8d52d6 | ||
|
b08ccc0bec | ||
|
523cd0dff7 | ||
|
8ac1806015 | ||
|
0b2275774f | ||
|
4fbfe9b041 | ||
|
b6c848d711 | ||
|
a467cfd060 | ||
|
f24be8476e | ||
|
904b1815b5 | ||
|
d6322c6389 | ||
|
2ee16e5dd9 | ||
|
f846315a6a | ||
|
5329b7d211 | ||
|
ac18a665d5 | ||
|
c492e71aed | ||
|
4ea1319c6b | ||
|
2aac3c2cc9 | ||
|
55d18bdc06 | ||
|
abefa0ab00 | ||
|
ea28dc8cff | ||
|
d3b9eb7fc8 | ||
|
cdb61923af | ||
|
070ddcd14b | ||
|
355890b421 | ||
|
d86407f263 | ||
|
a24a7db72b | ||
|
2096a29b06 | ||
|
ce352b5538 | ||
|
4bcd2c75cc | ||
|
3c3bf0192d | ||
|
cf84d999d8 | ||
|
668628941e | ||
|
33f8fa331d | ||
|
7814d1fd75 | ||
|
b57c3008a3 | ||
|
99d291eb69 | ||
|
8e35398371 | ||
|
3313fd4e2b | ||
|
56c02dd7d1 | ||
|
4e4ed1e2d5 | ||
|
82aa2cb5c2 | ||
|
e9944148d5 | ||
|
afa4eb7d35 | ||
|
55597d88a4 | ||
|
ac37b589b6 | ||
|
b9d868b8eb | ||
|
30e5bfcbf0 | ||
|
57e21683a6 | ||
|
852ecf7c20 | ||
|
5976debfcd | ||
|
08fcba63d0 | ||
|
1abe9760ab | ||
|
9a4d8453ed | ||
|
b637c3e201 | ||
|
292f54dd60 | ||
|
1328c1409a | ||
|
dbeddd4417 | ||
|
add5dec4a9 | ||
|
97b51dc070 | ||
|
88c9a30f77 | ||
|
83035c1d4b | ||
|
50c19a6534 | ||
|
5c071cb02e | ||
|
6edb526561 | ||
|
ee18156675 | ||
|
e70a961ac1 | ||
|
ffdc8c8f60 | ||
|
fd78bd3eaf | ||
|
f2ccba0988 | ||
|
8ee465c630 | ||
|
31b655c9eb | ||
|
7fd65cc3c1 | ||
|
8089222fc3 | ||
|
0667bd39fb | ||
|
a4854dfa9e | ||
|
6c54d0a7e2 | ||
|
341860eb4d | ||
|
876445f080 | ||
|
03ef6a7719 | ||
|
fde8c6df79 | ||
|
6c06e1855e | ||
|
c60ae0b575 | ||
|
e58f9ea1b4 | ||
|
2960bb7cb2 | ||
|
161c0f0963 | ||
|
3002591d08 | ||
|
1b2b9726f8 | ||
|
a3691d311b | ||
|
89d449352f | ||
|
e220e6dae7 | ||
|
bd3d1f7715 | ||
|
f3ffa99f6a | ||
|
3d55d733dc | ||
|
582dba54b1 | ||
|
0775432ed9 | ||
|
d9e15ff6e9 | ||
|
c04edfc76e | ||
|
71d6392572 | ||
|
dbd16cd9da | ||
|
950d266894 | ||
|
884974eeaa | ||
|
e836166664 | ||
|
c1a99bf901 | ||
|
f9c9a03404 | ||
|
3a337824e6 | ||
|
7dab23e38a | ||
|
78935ec83c | ||
|
b8989b7ff6 | ||
|
96cd47d0a0 | ||
|
d6a6cfe6c5 | ||
|
501356116d | ||
|
e11e5525db | ||
|
16431da3f2 | ||
|
842949fcf3 | ||
|
3d3e935c91 | ||
|
d5ae94ca5d | ||
|
87e9c940a4 | ||
|
6a02fa4be8 | ||
|
9f548efd32 | ||
|
9eebe8e547 | ||
|
f9612533c2 | ||
|
c9c0d444a2 | ||
|
13a8704f51 | ||
|
f20714262c | ||
|
11ffeeb55c | ||
|
85830c059e | ||
|
ffc89e40a0 | ||
|
1c92f2d963 | ||
|
12e0ec0b48 | ||
|
5574bf59f6 | ||
|
7ee27cc0ad | ||
|
040974c8a2 | ||
|
126d689086 | ||
|
8e676c7360 | ||
|
84847e46fa | ||
|
3fca84f974 | ||
|
2be48a8f86 | ||
|
389d246af8 | ||
|
9e0f41bd05 | ||
|
564a237454 | ||
|
86b59ba643 | ||
|
487e568722 | ||
|
67080dab21 | ||
|
0809e6585d | ||
|
809b98c96e | ||
|
059af1365a | ||
|
fbcffb36c8 | ||
|
3af0cfb53b | ||
|
96422fcf52 | ||
|
2754f2be2d | ||
|
6435d5083a | ||
|
3d802177be | ||
|
a02d4ba2a1 | ||
|
249cf0833c | ||
|
20b00d3947 | ||
|
269dcaaadf | ||
|
322bbd2376 | ||
|
52bec248ce | ||
|
9f71528a05 | ||
|
65e02a3bae | ||
|
defc4d335e | ||
|
bdcfcfa5b9 | ||
|
4a94c91772 | ||
|
cc3ed89e34 | ||
|
f0925e4ef2 | ||
|
df87b1820b | ||
|
87e8265a2d | ||
|
9fd6d431e3 | ||
|
5059ae1d7b | ||
|
50bb42f0f3 | ||
|
d71a7c901d | ||
|
65f727731c | ||
|
ff60b19e4b | ||
|
b8f12c5d28 | ||
|
bfb779ac2f | ||
|
84c28d2efb | ||
|
06372c5f2a | ||
|
3d75292c4d | ||
|
541ffbe4b5 | ||
|
17524f2794 | ||
|
1040d7c7e4 | ||
|
1b53359cd3 | ||
|
1987738d16 | ||
|
b8890ca27d | ||
|
2e7916cf4f | ||
|
24cf5b6df8 | ||
|
214f5a6f98 | ||
|
50ea9450ea | ||
|
d2028c7323 | ||
|
76c1ea0449 | ||
|
a97f378d64 | ||
|
ffe82b7641 | ||
|
785709d51c | ||
|
8406c34166 | ||
|
2ee1f3e8cf | ||
|
1373a7a6f0 | ||
|
a5aac30843 | ||
|
3149493679 | ||
|
a60cda3daa | ||
|
660c6c8d6f | ||
|
ad679187d3 | ||
|
b769295682 | ||
|
6649af5ec6 | ||
|
ca7094296c | ||
|
15a09c79f9 | ||
|
e2a7dc5427 | ||
|
170f099ce1 | ||
|
d301d16aee | ||
|
ec489e673c | ||
|
a904da12b7 | ||
|
91865d172b | ||
|
adedb89779 | ||
|
514dbcacd4 | ||
|
25c812fa87 | ||
|
45e76c1604 | ||
|
a9c3163a64 | ||
|
a8bb71383a | ||
|
3b08f8026e | ||
|
2cdc2287a5 | ||
|
c80c4ee75c | ||
|
082691ba16 | ||
|
d09a610433 | ||
|
ea9f8b2f77 | ||
|
e2d337740f | ||
|
45c5b250b9 | ||
|
f4b35093bd | ||
|
5e52cefb28 | ||
|
bf43aee690 | ||
|
62f359a494 | ||
|
cbe09373a5 | ||
|
b3451dda04 | ||
|
d477bf3d93 | ||
|
12c7f2d4fd | ||
|
feca09b8a4 | ||
|
150f57f706 | ||
|
33131ad24d | ||
|
d53b3f9941 | ||
|
da07f1221f | ||
|
9aed7ab25f | ||
|
5ae225fe52 | ||
|
cc8fa39110 | ||
|
c673a0bcc3 | ||
|
efc6d15dde | ||
|
50403fbca8 | ||
|
7de91d1777 | ||
|
6f9a70bd4e | ||
|
de1dfb99bc | ||
|
103296d948 | ||
|
0001562850 | ||
|
1f3c88b995 | ||
|
5e7f227d92 | ||
|
6bbda619f9 | ||
|
e216fa3b6d | ||
|
c9443dd04d | ||
|
29cb5051d4 | ||
|
5f2e70df8e | ||
|
d8775d0194 | ||
|
8d87ed1a6a | ||
|
a46bcc2755 | ||
|
229edc5225 | ||
|
b1962de51a | ||
|
fb10b61528 | ||
|
e415ec9ca5 | ||
|
226652edb0 | ||
|
64f4967867 | ||
|
c37fa3a895 | ||
|
d907c0a42e | ||
|
4255230e36 | ||
|
d8a0915ada | ||
|
32b348776e | ||
|
bbe552d6a8 | ||
|
ccc6f7c24e | ||
|
41b21b6634 | ||
|
b46a900d71 | ||
|
cfc871f031 | ||
|
b435f3c543 | ||
|
ebc4bb2363 | ||
|
23e4c788fa | ||
|
4e0a64c46c | ||
|
e46e61643c | ||
|
cc5526e019 | ||
|
e6cafa890d | ||
|
293d2fd19f | ||
|
7bca467e01 | ||
|
40e25218e2 | ||
|
9e27acb0a6 | ||
|
67b9fb43d0 | ||
|
762b981dfe | ||
|
5e027ae5d9 | ||
|
7dd3680d7d | ||
|
14a7b4b4b4 | ||
|
f5096fd11a | ||
|
9c5ac13301 | ||
|
ecc33d6e62 | ||
|
03c34021af | ||
|
1b2156493b | ||
|
7b76170f46 | ||
|
8109e8e3b6 | ||
|
163278af0d | ||
|
677b6c1a81 | ||
|
1331a10e88 | ||
|
dc9f0869b1 | ||
|
ea6253c1df | ||
|
b481fd854f | ||
|
68baa93460 | ||
|
52db54e803 | ||
|
71e412e8f8 | ||
|
9644fc2e8f | ||
|
0795d86df7 | ||
|
21988ea700 | ||
|
23081d2bc4 | ||
|
b1e441d18a | ||
|
a118cbb3ff | ||
|
4639b3bc4c | ||
|
821eb92dfb | ||
|
0370043775 | ||
|
82bcc05ca1 | ||
|
527852e1b8 | ||
|
2e1686091f | ||
|
5353e28dca | ||
|
b58e89f380 | ||
|
c1e008fa86 | ||
|
c47a3c54fd | ||
|
3bc1e0534f | ||
|
7fb11dfeb0 | ||
|
6d09eed90e | ||
|
496211727d | ||
|
ee5e3b5927 | ||
|
2087595747 | ||
|
25268c2086 | ||
|
2a9056b49e | ||
|
46363b617e | ||
|
adb3baa7d2 | ||
|
31a79fbd9f | ||
|
d8919311b1 | ||
|
0e0158a825 | ||
|
619926ec83 | ||
|
1afb832ff0 | ||
|
823b529f89 | ||
|
4707784755 | ||
|
1ebcd27605 | ||
|
300639e537 | ||
|
ad218f0786 | ||
|
4966f8cdf8 | ||
|
1580490670 | ||
|
3cf5e8cf4e | ||
|
d21ac80178 | ||
|
effbaa7770 | ||
|
a9a61abc81 | ||
|
e5b05424c8 | ||
|
8f920101f3 | ||
|
1c59474f45 | ||
|
9be7104b71 | ||
|
31e0ec71f2 | ||
|
6c33afc13c | ||
|
03daf42fb5 | ||
|
b33b68ef75 | ||
|
0ee8ca43d1 | ||
|
77da45a173 | ||
|
5e1c3c5d69 | ||
|
05953a20cc | ||
|
3c8a93b972 | ||
|
11543a229a | ||
|
d448e12cf4 | ||
|
fee4ad0174 | ||
|
38f01cf1f2 | ||
|
37bea9d162 | ||
|
b241fcd418 | ||
|
4fa661b450 | ||
|
86e735cd5c | ||
|
4c40395a38 | ||
|
d32fd76b31 | ||
|
5f8e83d75d | ||
|
b08a17064e | ||
|
3f39cb38c4 | ||
|
2031ec1b57 | ||
|
533aaba5eb | ||
|
72c782af17 | ||
|
af8a3eff10 | ||
|
ee7ba54a7f | ||
|
53d99f5521 | ||
|
52d2975af3 | ||
|
926a651f12 | ||
|
7aeab7a63f | ||
|
a2389b3169 | ||
|
54e5cc296f | ||
|
457fd68168 | ||
|
2d69f35e0e | ||
|
648c780e91 | ||
|
f36618f02a | ||
|
8548a1dd7f | ||
|
5e1d58c41c | ||
|
a61d7f3864 | ||
|
c7fcaaf443 | ||
|
6d263f8680 | ||
|
d9ab6495ef | ||
|
ceac0ce9aa | ||
|
e975d6db17 | ||
|
d54b68b93c | ||
|
761346ed5a | ||
|
6d71dd0025 | ||
|
d0e2d9e2f4 | ||
|
b0effee9b3 | ||
|
abb7e85260 | ||
|
3ccd03e226 | ||
|
2ae345aa8f | ||
|
1c1b78aa1c | ||
|
cdb2308ddd | ||
|
c581f722bd | ||
|
340c98c6cd | ||
|
39f5c5bf49 | ||
|
392f6855ca | ||
|
1cae48ab93 | ||
|
25f04f3c37 | ||
|
d0f8ef09a0 | ||
|
0516dca116 | ||
|
ebc6a043c9 | ||
|
8e2ae79875 | ||
|
27ac764653 | ||
|
80df6e2b8d | ||
|
bfda8cf820 | ||
|
cb91f96fd3 | ||
|
549ec0aac8 | ||
|
5cea9f9e17 | ||
|
a9cce55693 | ||
|
e1152c33c4 | ||
|
e40ad5faa5 | ||
|
dd393a4a0e | ||
|
881954dfca | ||
|
cf12503fec | ||
|
ad757cccb6 | ||
|
b801eae00f | ||
|
2fe9ff7918 | ||
|
c407582096 | ||
|
0fc3dbaa9b | ||
|
77ed264714 | ||
|
a14efce914 | ||
|
08f90a188c | ||
|
df46eeafdb | ||
|
0029286a1e | ||
|
0e46d4eb98 | ||
|
f80e3fff92 | ||
|
504c6ba792 | ||
|
c0aba9aee1 | ||
|
fa33af248e | ||
|
e6cfbc00fc | ||
|
b97cf2b9d9 | ||
|
f81e7b2112 | ||
|
b59e4a929e | ||
|
099d72f037 | ||
|
73acb41931 | ||
|
ebb7fdb099 | ||
|
ec3cb0ad9a | ||
|
7ffef6792f | ||
|
383148dc31 | ||
|
a31601ccfc | ||
|
a587492cad | ||
|
f65d4914e4 | ||
|
88dc49a5b6 | ||
|
91d970e9c5 | ||
|
6c5ae48a05 | ||
|
d85ec2cbb4 | ||
|
527f305690 | ||
|
b05c9c26bd | ||
|
05b79bc378 | ||
|
3ba63315d5 | ||
|
eccdb594eb | ||
|
a78796f22c | ||
|
4fa6f791f4 | ||
|
6287eaa745 | ||
|
2ae13229ea | ||
|
2879d35f3d | ||
|
ab7d969700 | ||
|
e1031ac5ad | ||
|
1b1e7f4296 | ||
|
5a7d7cc9f5 | ||
|
4253bb9922 | ||
|
1bbf5f7a17 | ||
|
9abc83fdad | ||
|
8d5325b816 | ||
|
ad6fd451fb | ||
|
db3b3c62bb | ||
|
dfd181d7d5 | ||
|
de76045939 | ||
|
b707568fc1 | ||
|
16c29a7db5 | ||
|
b5b0002d24 | ||
|
127b92e3db | ||
|
a7ceb8ce66 | ||
|
6dea23128a | ||
|
5297c5f2ee | ||
|
bdb6b10be8 | ||
|
7f9031eae8 | ||
|
aa746bc0c8 | ||
|
01ca59ea91 | ||
|
2f4e19d514 | ||
|
8d5224eba7 | ||
|
c8436d3c1e | ||
|
1273413c7b | ||
|
ef3f48a2be | ||
|
4b1bca8b6e | ||
|
2478dd8322 | ||
|
4c1edd3881 | ||
|
14541480ae | ||
|
fff78b60e9 | ||
|
9abc7fc80b | ||
|
d8059ebdd2 | ||
|
1001445d3e | ||
|
fff72cf322 | ||
|
fd9306a282 | ||
|
7c0c2a8085 | ||
|
b5b58ced2a | ||
|
8c988a7b07 | ||
|
e68f58940c | ||
|
4f2b639a24 | ||
|
3e01924ca3 | ||
|
3841ae935c | ||
|
4d2884bde7 | ||
|
a4a7255216 | ||
|
6065165060 | ||
|
61c22d1c72 | ||
|
efacf2ff09 | ||
|
9272bf96f6 | ||
|
ae3efb2d2f | ||
|
b9ecae84f5 | ||
|
cd3286c71a | ||
|
83c2766e3f | ||
|
5f719c8ea3 | ||
|
555f7d5404 | ||
|
73b2913be3 | ||
|
3bcfc5539c | ||
|
4cfcc7e521 | ||
|
3221a8bdab | ||
|
930f059f5e | ||
|
bd3e596243 | ||
|
9a6e61e510 | ||
|
56d2d65e25 | ||
|
ae08963acc | ||
|
ed4f51436c | ||
|
7837354c6c | ||
|
a203a28de0 | ||
|
5dc6f134c5 | ||
|
6daeb7e504 | ||
|
fcf59ad135 | ||
|
1dd905d976 | ||
|
155f7cdeec | ||
|
960967623a | ||
|
3c963f65a2 | ||
|
168203ab0c | ||
|
f2fff53169 | ||
|
f74b8f715a | ||
|
aeac2b547f | ||
|
827aa9ca05 | ||
|
95c21acec1 | ||
|
4d035dce5d | ||
|
7f6dce1c22 | ||
|
58568a36ce | ||
|
9c2a2f01b7 | ||
|
657e536941 | ||
|
a81b6ea6af | ||
|
1887504666 | ||
|
8a61b01c06 | ||
|
6d564075f3 | ||
|
4cdf7aa65a | ||
|
329dc9e0cf | ||
|
e02de45537 | ||
|
29fbda49bb | ||
|
1b155341bd | ||
|
96c02c1eb4 | ||
|
116d662e0f | ||
|
d81cd4751f | ||
|
dd33068943 | ||
|
09c1e51b8a | ||
|
af9a9422c4 | ||
|
df3c85ea7f | ||
|
b14a115fc0 | ||
|
355a88d002 | ||
|
1014b3d972 | ||
|
1a2b1575d6 | ||
|
cc25fdf602 | ||
|
444eb2630c | ||
|
9c032bec89 | ||
|
5a59548d72 | ||
|
39913c2001 | ||
|
a858736516 | ||
|
880c33a777 | ||
|
c32ab9440d | ||
|
3a97b44321 | ||
|
2f18d5584d | ||
|
287b27dad3 | ||
|
33f0f2a2b1 | ||
|
bf6ba18048 | ||
|
058252e895 | ||
|
c594de8302 | ||
|
8eaf05a3ef | ||
|
9736bea29f | ||
|
ea392cf2b6 | ||
|
b0f8550b01 | ||
|
ba05963729 | ||
|
f14f7e7df6 | ||
|
daa97d4b79 | ||
|
4822b85cb0 | ||
|
7f61d7ac8b | ||
|
010ca5feef | ||
|
31a907be35 | ||
|
ab37fed974 | ||
|
10a7650411 | ||
|
fc4c6525e6 | ||
|
d7308f2d73 | ||
|
ead566b841 | ||
|
ecc2e02453 | ||
|
012c4b9425 | ||
|
be8fef9811 | ||
|
2938b48939 | ||
|
16c2e0a642 | ||
|
017510ea5f | ||
|
c43c0275e3 | ||
|
df5d233155 | ||
|
a8238c2251 | ||
|
c12d1fe29c | ||
|
347cdc63f8 | ||
|
32625381fa | ||
|
350f9e2636 | ||
|
4d9d50d8e1 | ||
|
106db1a9be | ||
|
e6d22fd8df | ||
|
8e2de53c3f | ||
|
0057af3668 | ||
|
7f7e4ab69e | ||
|
db4f60cc9d | ||
|
77cf390727 | ||
|
dcadf1422b | ||
|
53ac80d6c8 | ||
|
2e9fcdad6e | ||
|
0f55b3bc18 | ||
|
9c249fefc3 | ||
|
eae7ee6c25 | ||
|
bf7f302ff5 | ||
|
0d6981bd54 | ||
|
148d7bcc25 | ||
|
71161b6352 | ||
|
dd33a2f280 | ||
|
9d48d684a5 | ||
|
eb252d33a9 | ||
|
40bdf7e0d4 | ||
|
6aba047ace | ||
|
554045de6e | ||
|
fa42081556 | ||
|
54d0bcab71 | ||
|
3539128d42 | ||
|
372c68a1c9 | ||
|
f9856d547f | ||
|
d0d8f6b5ee | ||
|
28c91bf767 | ||
|
a8bfe4e6f2 | ||
|
1f076432db | ||
|
b6e79a7234 | ||
|
68b05cadd8 | ||
|
93c5fb0b31 | ||
|
cfdbf95cb6 | ||
|
b80e33b209 | ||
|
9f7254a2d0 | ||
|
00e59c385e | ||
|
43c2b53811 | ||
|
c645acc214 | ||
|
33d87bc22e | ||
|
a35f9102f2 | ||
|
525d773a30 | ||
|
d22812ae35 | ||
|
1dc70ebb07 | ||
|
297e4f6134 | ||
|
4e73297cb8 | ||
|
8fe16190b9 | ||
|
047ab10a5c | ||
|
3c8e9231ea | ||
|
cb9c57f223 | ||
|
253e8f0d64 | ||
|
4aee2c3c41 | ||
|
2641aad318 | ||
|
346fcdb405 | ||
|
9564e4c178 | ||
|
50dd958890 | ||
|
9126bf2c9d | ||
|
a692f0cb07 | ||
|
2bbfa92504 | ||
|
0e74355782 | ||
|
be137358f1 | ||
|
d9564df6a7 | ||
|
3f9ad44948 | ||
|
c73ff197e0 | ||
|
1ad1a13085 | ||
|
50e3a37b7a | ||
|
7d3970546c | ||
|
3d739c6a15 | ||
|
16692f9f5e | ||
|
4f453ab521 | ||
|
72a4fae8dc | ||
|
36c7d05445 | ||
|
f3d5683f67 | ||
|
120887979d | ||
|
77434fc9f9 | ||
|
830846b39c | ||
|
3073704010 | ||
|
e165dcf78d | ||
|
2d2fc59597 | ||
|
89020892a8 | ||
|
653f4d4183 | ||
|
d998d703ff | ||
|
43bec39794 | ||
|
e2067e3703 | ||
|
0e19a7d024 | ||
|
cdd0aa4cfd | ||
|
157c714d86 | ||
|
4873bb3099 | ||
|
7207810ce4 | ||
|
f072ff3861 | ||
|
3f05b17d37 | ||
|
4fef3c157a | ||
|
38602823bb | ||
|
6e02b9d5bc | ||
|
03337534f9 | ||
|
613a004d18 | ||
|
6fa23794fc | ||
|
82027bb51e | ||
|
9e5ce813c4 | ||
|
b7f3beda00 | ||
|
f4509a63b0 | ||
|
29559deeeb | ||
|
0cff62335b | ||
|
e4325e5b2b | ||
|
f57010180c | ||
|
5807b68d5b | ||
|
1af746e136 | ||
|
d3c78c8811 | ||
|
28a4f7a60a | ||
|
d54a9d241d | ||
|
8814c00573 | ||
|
36b55a8b57 | ||
|
e027843cb0 | ||
|
5de0ebab26 | ||
|
cc463d52f6 | ||
|
eeca361418 | ||
|
bdf56ec6d6 | ||
|
ee9e302b24 | ||
|
17b50f08b3 | ||
|
d58297fa15 | ||
|
c27516a1db | ||
|
cf4cd4abd8 | ||
|
a4cc95b293 | ||
|
a8bb6d5918 | ||
|
496c75617c | ||
|
6b14f221c1 | ||
|
9948e0a564 | ||
|
c89e029223 | ||
|
0ca569baab | ||
|
40b13bfa35 | ||
|
1df3c87ed5 | ||
|
0b57bd5a53 | ||
|
5df9b1cb5b | ||
|
f5b7e131d6 | ||
|
51012c1802 | ||
|
b5c1e77d4c | ||
|
85149445e0 | ||
|
61d0043f9c | ||
|
5c97089e59 | ||
|
6f5c610858 | ||
|
a05dd4d194 | ||
|
b1a840bec0 | ||
|
31fabecddd | ||
|
96cb38dd05 | ||
|
b672dabee8 | ||
|
5fbdec2a29 | ||
|
f22ae99b98 | ||
|
3be7ef17ff | ||
|
146422fabd | ||
|
a274a5ff4b | ||
|
d1d4d80a1d | ||
|
167d32811d | ||
|
6ec4a2a4a5 | ||
|
a11abf57e1 | ||
|
a63a201812 | ||
|
f09caced9b | ||
|
01cd2fe4bb | ||
|
45b93644b7 | ||
|
76a80d8f45 | ||
|
153b8399f7 | ||
|
da41271dd5 | ||
|
5610af1b77 | ||
|
8da70fec91 | ||
|
f9cd30a859 | ||
|
763d620a23 | ||
|
500a3a6dee | ||
|
57073e1057 | ||
|
6bbfd2f62a | ||
|
6c69a96cd7 | ||
|
fa247d5a84 | ||
|
0320c4ac14 | ||
|
36993ac707 | ||
|
2f93eb4a28 | ||
|
5a2982ac31 | ||
|
441b704afd | ||
|
abf6ebd7fe | ||
|
34fb08af6e | ||
|
0b9dfdd41f | ||
|
701e0812e4 | ||
|
4918a46172 | ||
|
ef5e3fae64 | ||
|
9fcf55571e | ||
|
260898ecf6 | ||
|
66c9132abe | ||
|
c5abdfb72b | ||
|
4fe37847ba | ||
|
c99a0b0518 | ||
|
31f3edec5c | ||
|
dee372c08e | ||
|
8c0a4e5a6e | ||
|
7195514fb5 | ||
|
420bd5bc16 | ||
|
f024ee1adf | ||
|
18c2c71cd5 | ||
|
2d1bfc84b9 | ||
|
8edfa759fb | ||
|
2d1e978599 | ||
|
d71fc41152 | ||
|
d141cb7b72 | ||
|
b19cf5998f | ||
|
7010067884 | ||
|
0ec29c4176 | ||
|
42c6e0249f | ||
|
54eb85f814 | ||
|
18b3b4feed | ||
|
0045ac839b | ||
|
a9da807de3 | ||
|
366639b7e4 | ||
|
7d2e2171be | ||
|
e3ceda15ac | ||
|
7291a21a85 | ||
|
888afe3e46 | ||
|
171bfde133 | ||
|
82d1fdb714 | ||
|
82b19daa7e | ||
|
dc1ff3c2e3 | ||
|
6602ac5eae | ||
|
5dab5bf0e9 | ||
|
721be8fe9f | ||
|
58fe590eae | ||
|
c18a7ff5cf | ||
|
24fc38b287 | ||
|
aa03c50f05 | ||
|
03e971b2e3 | ||
|
a595133b77 | ||
|
e50f4ecccf | ||
|
67913e4af0 | ||
|
b3d1795327 | ||
|
6edcc8f256 | ||
|
d5e5f47666 | ||
|
0524c40640 | ||
|
b5fd894f77 | ||
|
d8492121aa | ||
|
4a0bf603d7 | ||
|
02fa89df9e | ||
|
5b6dde9a73 | ||
|
e9d8ebdfc9 | ||
|
366efc3d61 | ||
|
3b890fd3c1 | ||
|
5de373a14b | ||
|
24cb9d2437 | ||
|
83aa176466 | ||
|
0e94e5ecda | ||
|
130485a583 | ||
|
f34c10abb5 | ||
|
48b00f0ac1 | ||
|
743329a3af | ||
|
f5783f1637 | ||
|
67f61a8d39 | ||
|
f7df663dea | ||
|
c99278aa58 | ||
|
1765e1b7c2 | ||
|
bf1a434d5c | ||
|
9256b5b552 | ||
|
577e4afb3c | ||
|
2a05c04db7 | ||
|
a6ffd6b3b2 | ||
|
24eba7c4c1 | ||
|
80de844922 | ||
|
a2223c0884 | ||
|
5ffa2b757c | ||
|
b660fa27d3 | ||
|
77f0e5e1ba | ||
|
1080822ffa | ||
|
3fef45683c | ||
|
cfcc5c5c0b | ||
|
856f1808de | ||
|
4341344545 | ||
|
20392e8840 | ||
|
426fefff81 | ||
|
13013053f7 | ||
|
62b9a4af75 | ||
|
76caf2c812 | ||
|
3d5fce1b9f | ||
|
bfe8adbee4 | ||
|
827642303c | ||
|
6b6a0e1257 | ||
|
7a98176a02 | ||
|
a93a986ef2 | ||
|
39dbc5ea87 | ||
|
cf4d13bee3 | ||
|
0bacde8e0a | ||
|
949cd45bb7 | ||
|
2e9e216641 | ||
|
1ab8ffaceb | ||
|
3cc1726856 | ||
|
30eaa2c3cc | ||
|
ba5993195a | ||
|
bf42351ebf | ||
|
ee277f4d92 | ||
|
00acc7957f | ||
|
a931335f24 | ||
|
1ef320a9ec | ||
|
411b7f12b5 | ||
|
611fcfb1c7 | ||
|
6257a51f4f | ||
|
e24630bd18 | ||
|
6b0b3a4db7 | ||
|
fd19c7c2ab | ||
|
4aa2206699 | ||
|
eae23ebf69 | ||
|
ecd27f6c3c | ||
|
01f3c72338 | ||
|
87be414c05 | ||
|
f6d676cc8a | ||
|
4961241f26 | ||
|
60c944bb94 | ||
|
740c10282f | ||
|
3a4c69f370 | ||
|
c3083572fb | ||
|
8ecb00be66 | ||
|
48e707aceb | ||
|
e2f9ff2304 | ||
|
fa3a72c8f6 | ||
|
fc45d90834 | ||
|
fcd95cd5c6 | ||
|
b8c1ac41d2 | ||
|
90e1ce0906 | ||
|
d121fd5b7d | ||
|
4d88fcc1db | ||
|
85fcda178e | ||
|
ecc678454b | ||
|
5a85bc691e | ||
|
d506a5eea8 | ||
|
aefa79413b | ||
|
73e4eb7552 | ||
|
dff340530a | ||
|
f6ea3e1684 | ||
|
f790441505 | ||
|
0c307f7563 | ||
|
f89dc9644c | ||
|
735455b523 | ||
|
d037cfaf44 | ||
|
293d63425a | ||
|
38f9bb87bc | ||
|
64abadb370 | ||
|
6f85827fcb | ||
|
b0e321cfb8 | ||
|
46d0569365 | ||
|
2eea911a0f | ||
|
ee4a817121 | ||
|
3d1f914271 | ||
|
7bb0639a75 | ||
|
f8f38aab63 | ||
|
75c2bd53aa | ||
|
83921750ae | ||
|
413512eba7 | ||
|
e824764dc3 | ||
|
61b12abdab | ||
|
07bd5c7b05 | ||
|
1dc20eda28 | ||
|
5a9299f626 | ||
|
9c86c67f06 | ||
|
e6ca7668be | ||
|
0b540b9ad1 | ||
|
514cdf7398 | ||
|
2ab52d73ab | ||
|
b3ae172c1e | ||
|
a6d1df66ec | ||
|
ba92ce342e | ||
|
9f4c715516 | ||
|
5aa47b6e45 | ||
|
3b40d95581 | ||
|
3ad2d91e1c | ||
|
d4c586e882 | ||
|
612c547ed3 | ||
|
1a777ce7f3 | ||
|
7ec4f6e297 | ||
|
afaa0f3afd | ||
|
8841a002ed | ||
|
6da606aaad | ||
|
51bd155670 | ||
|
8fa16ec1cc | ||
|
04e5a0006d | ||
|
a1d2169992 | ||
|
778976f8da | ||
|
f81dea58a2 | ||
|
e82606a538 | ||
|
fe5b28f5b8 | ||
|
82fd0d7eef | ||
|
16761fcb49 | ||
|
4fac5680fb | ||
|
4ec4280e51 | ||
|
15bb77472d | ||
|
5c92d5e081 | ||
|
1626c5f1e7 | ||
|
3b5f0ed05e | ||
|
d2298f1c8f | ||
|
085062ab89 | ||
|
9741082467 | ||
|
3db4a05493 | ||
|
e3b9df2cec | ||
|
4a4e445a35 | ||
|
db0f9b60ac | ||
|
d51de390ba | ||
|
c14e167a11 | ||
|
2837a85461 | ||
|
282510e113 | ||
|
accabe3eee | ||
|
9dbdbaca43 | ||
|
5935bc95b7 | ||
|
4c677e4dcd | ||
|
d4c25c9ec0 | ||
|
b69df2bc4d | ||
|
7f9363d471 | ||
|
01d86eab66 | ||
|
09e85aa809 | ||
|
d49816d2e6 | ||
|
59a00d6768 | ||
|
6bd6c6acba | ||
|
be2ff60787 | ||
|
070b9a87b6 | ||
|
ecbe6a421e | ||
|
317e68a58c | ||
|
9b42377347 | ||
|
7372a845fb | ||
|
cf8c3be030 | ||
|
4eb715cf81 | ||
|
d4899fdf1f | ||
|
4142c4d79e | ||
|
ca442f8641 | ||
|
3c1491423a | ||
|
eb4993d3fb | ||
|
aa057da1ca | ||
|
1de09d59fb | ||
|
130a6fe0cf | ||
|
e1f7c027d7 | ||
|
396ef5ebe5 | ||
|
840a20db3b | ||
|
8c6f7d1ae9 | ||
|
c69fa6221b | ||
|
3c92c81705 | ||
|
297de981c4 | ||
|
53beb054b6 | ||
|
0431492284 | ||
|
aed9cc1874 | ||
|
c15804d124 | ||
|
1bd208d937 | ||
|
b70bcd6bfe | ||
|
74a1d45238 | ||
|
3ada35460d | ||
|
1f133c3d64 | ||
|
4440ce874e | ||
|
db302df82a | ||
|
b550b58e8f | ||
|
ed889b951b | ||
|
b603479fe2 | ||
|
7c39b2cea3 | ||
|
b1bce7a62b | ||
|
fa73e17fba | ||
|
dee2150a04 | ||
|
f647fc3fe2 | ||
|
6bae80c331 | ||
|
2aeb80f490 | ||
|
8a2f434443 | ||
|
d4134430fc | ||
|
73f64971c8 | ||
|
ecc2c953e5 | ||
|
e353117937 | ||
|
492ae6df35 | ||
|
a19d0471e9 | ||
|
5b5ba36999 | ||
|
89b64cbf47 | ||
|
e65d1f2122 | ||
|
2756496d47 | ||
|
8b653f21cc | ||
|
4e6759a126 | ||
|
d20e0b0370 | ||
|
ed8255993f | ||
|
f5d69fa0c5 | ||
|
e1431f31c1 | ||
|
f191fc0047 | ||
|
b60c60f03b | ||
|
af0c277bba | ||
|
88203fbf4d | ||
|
970c9eef63 | ||
|
2439876bd3 | ||
|
97582ae9ad | ||
|
a5b85f0dc5 | ||
|
aefb16510b | ||
|
4360d433b5 | ||
|
5927319589 | ||
|
25db645f65 | ||
|
b3c6a98132 | ||
|
031109aec3 | ||
|
18d2f9c8a4 | ||
|
0ae721f144 | ||
|
7898d1b46d | ||
|
3648398f6d | ||
|
019916c5b9 | ||
|
ebb31590ae | ||
|
32ea1cf32d | ||
|
172cdf8e21 | ||
|
dc07bcf3a3 | ||
|
bd96c10563 | ||
|
76299396cf | ||
|
a96dd2ad0a | ||
|
1e210e83bb | ||
|
14f1a91bff | ||
|
3f2bcdf82e | ||
|
c61d8bc188 | ||
|
4e5976427b | ||
|
7fcdb0205f | ||
|
4814c5f653 | ||
|
eb24e3548f | ||
|
87f0f374a9 | ||
|
0cd95951e6 | ||
|
c45815c217 | ||
|
b914869715 | ||
|
ff5699e097 | ||
|
8846f85874 | ||
|
fc1c6cfb1a | ||
|
77028362ab | ||
|
496aee5b02 | ||
|
b2fb624496 | ||
|
f2ef5d85ea | ||
|
7eca32edf0 | ||
|
7775bcf2fb | ||
|
ed35f6f8b8 | ||
|
307942e1f7 | ||
|
92b7231168 | ||
|
14d7eb97d2 | ||
|
fed1c3d3fc | ||
|
e1ac97a185 | ||
|
08a48dd97e | ||
|
50df3ebb46 | ||
|
df77f22740 | ||
|
2437a551ec | ||
|
46ab71fc8a | ||
|
f922ff8597 | ||
|
690c06109e | ||
|
94505987fe | ||
|
c6d7b704cb | ||
|
349509c332 | ||
|
84fd420271 | ||
|
0c40defaf1 | ||
|
cda1733fc7 | ||
|
0ee851c8c7 | ||
|
d665274eb1 | ||
|
ed3b73871f | ||
|
e570eb4f86 | ||
|
81b6251073 | ||
|
cfaf619620 | ||
|
de5b6764bc | ||
|
bc17dfa83d | ||
|
84a98f74c1 | ||
|
50facedc47 | ||
|
32a4f805b8 | ||
|
200cacc3ad | ||
|
eed3cab29f | ||
|
76b0687467 | ||
|
5039dc40f8 | ||
|
7c3de4a2da | ||
|
b486e9b760 | ||
|
ce2fd8a0d0 | ||
|
99b1b26fdb | ||
|
b7e4bbaf74 | ||
|
f579b171a9 | ||
|
f9929d15eb | ||
|
c45a6ad52d | ||
|
7233e38aa8 | ||
|
73ba97acd9 | ||
|
7d2ad604d2 | ||
|
45e64b915c | ||
|
ebaef9f18b | ||
|
c73fe8ac4a | ||
|
8ed8f883d1 | ||
|
032a5afc20 | ||
|
0064500146 | ||
|
4582ddcad9 | ||
|
8bb2720494 | ||
|
3b8218a99e | ||
|
9a8fa8dd82 | ||
|
d6892c85dc | ||
|
d3c20c3269 | ||
|
9904259661 | ||
|
a8fcde11de | ||
|
d2d4cd64cd | ||
|
2c7e68d98f | ||
|
6f42f8ef2c | ||
|
152dd70cde | ||
|
8ec1045c87 | ||
|
46866b8a66 | ||
|
9df6f802f2 | ||
|
ad8613876c | ||
|
1bbca0cd25 | ||
|
83784c17a3 | ||
|
3f46d0f2fa | ||
|
ef1ff8313f | ||
|
119a07e055 | ||
|
abfd94d2d9 | ||
|
6022fbcdf8 | ||
|
744016e768 | ||
|
d39f50a4ee | ||
|
c23d3c4406 | ||
|
1e2eae4ddf | ||
|
77eb3df7c0 | ||
|
e540022869 | ||
|
e6700405c9 | ||
|
5bbd8e12fa | ||
|
8b59771cd1 | ||
|
8a0a08e4ce | ||
|
bef6352401 | ||
|
60a43ddce0 | ||
|
90c9e88ee9 | ||
|
d860bf95ab | ||
|
a3bd0a3e17 | ||
|
d274c7df06 | ||
|
9a5f482e1a | ||
|
2f6140c066 | ||
|
9ce4471527 | ||
|
cda4ec48b2 | ||
|
d9582c123e | ||
|
4d30aacb0c | ||
|
4862c3f779 | ||
|
08d1353cde | ||
|
585dadf575 | ||
|
d069eb173a | ||
|
6015560b63 | ||
|
5a776389d7 | ||
|
6c2dfed5a5 | ||
|
7dec24c2cc | ||
|
c20e7a0c5d | ||
|
719021e1f4 | ||
|
4856e115a9 | ||
|
bfb5bbe862 | ||
|
b98c86fb7b | ||
|
e01c3f581e | ||
|
c45199e388 | ||
|
27fb9917d8 | ||
|
b5d6613a3f | ||
|
5dc77edbe3 | ||
|
a3d63b3579 | ||
|
57c12a8661 | ||
|
f1ccb9b81a | ||
|
2711cb8dcd | ||
|
c79925bd4a | ||
|
05d5860dc0 | ||
|
a1fdf06d80 | ||
|
36d7ca058e | ||
|
2e08db91ca | ||
|
2c9b47ff3c | ||
|
62ad1a61dc | ||
|
3fc9de7539 | ||
|
1c9a55d185 | ||
|
492940205e | ||
|
985e4906c8 | ||
|
e9dcf8167c | ||
|
3aa6c27c26 | ||
|
f537a55b71 | ||
|
7075e6be89 | ||
|
54a86a2a7e | ||
|
016354b6dd | ||
|
1dfc6d65df | ||
|
b7d0295481 | ||
|
a2854af325 | ||
|
320496b039 | ||
|
b0450d4b1b | ||
|
91ff8bf336 | ||
|
7b145f72dc | ||
|
0dcc21b605 | ||
|
bd43a9e868 | ||
|
9bf23d80a1 | ||
|
38fd66dc04 | ||
|
f004f14b89 | ||
|
8f15f6959c | ||
|
f26efd9adf | ||
|
3f342d75b2 | ||
|
3ab189404e | ||
|
48fc8d6606 | ||
|
2e0f411de9 | ||
|
f08e36e225 | ||
|
9f358ac655 | ||
|
33d1349e53 | ||
|
6b2b6ceb74 | ||
|
76421847a5 | ||
|
840cd6e44c | ||
|
f81038e99a | ||
|
007e7c68dc | ||
|
e5e147ad53 | ||
|
58e00040e0 | ||
|
5d1b8399fb | ||
|
deec2b6c6c | ||
|
246eb8ea25 | ||
|
815df9a76a | ||
|
f896dddadc | ||
|
d733e94a8b | ||
|
59db0ca328 | ||
|
3bd97590a1 | ||
|
722a0fa36d | ||
|
b21708c5e4 | ||
|
b5fb584316 | ||
|
fd1e1b9b7c | ||
|
c0caae0ff0 | ||
|
5c972e4786 | ||
|
1a3c5cf420 | ||
|
eb7affd911 | ||
|
a05dbff2c9 | ||
|
4b0d17b332 | ||
|
2d8f677e63 | ||
|
b5c9b6aa25 | ||
|
86924c2f9a | ||
|
af0f5e3f30 | ||
|
9e6c72210d | ||
|
ce0b2d6953 | ||
|
d1bb3f66ac | ||
|
70cd0e28ab | ||
|
2e00bcc580 | ||
|
db68c1f2c6 | ||
|
e3fa60a070 | ||
|
c9c29d8bde | ||
|
cd59d62947 | ||
|
4f4fe4ef44 | ||
|
06f83847c6 | ||
|
941b5c2aeb | ||
|
d661b7f258 | ||
|
f86d996d58 | ||
|
fe3031fb99 | ||
|
4b001a24db | ||
|
4727fea631 | ||
|
7ff4cba624 | ||
|
0363cc83b9 | ||
|
c1327e2c1b | ||
|
9971707544 | ||
|
02115912aa | ||
|
e29571e6a6 | ||
|
582ad79088 | ||
|
3fac42fd3c | ||
|
8f0b38b462 | ||
|
6c5a106d7e | ||
|
5f7cab4632 | ||
|
558db5a3a7 | ||
|
bc94b4f235 | ||
|
4c809281b2 | ||
|
81faf7caa3 | ||
|
7477e8626d | ||
|
47f30d208c | ||
|
74a1c0916a | ||
|
06351844bb | ||
|
ee67edbe3a | ||
|
ec9cdb74ef | ||
|
ad0f9144ec | ||
|
3e8215a971 | ||
|
8df7487e2a | ||
|
633692b53e | ||
|
e0a5c65003 | ||
|
e4753791c0 | ||
|
a57f7e3935 | ||
|
8de5a94eb7 | ||
|
88872d1986 | ||
|
ab33b56ec9 | ||
|
c37e88d561 | ||
|
2638700435 | ||
|
0a5a720fe1 | ||
|
0e5f7601e4 | ||
|
e583e823b5 | ||
|
a96358046f | ||
|
40f26ea09b | ||
|
71a7f0771b | ||
|
00739718ab | ||
|
19881c8c06 | ||
|
8b0aae8536 | ||
|
fbe000734a | ||
|
0c67b367ac | ||
|
f75b4aac1d | ||
|
d563d158c0 | ||
|
5c892fa4ea | ||
|
4aac64edf0 | ||
|
c97bbfdfb1 | ||
|
a44598772d | ||
|
933a0e5a98 | ||
|
e33e9c506d | ||
|
0108a5f56d | ||
|
c995473407 | ||
|
3f9bdaa4c8 | ||
|
a70998aa50 | ||
|
0fb1f44eec | ||
|
26cc96bb7f | ||
|
1c8b22cf05 | ||
|
abbbd08931 | ||
|
587cf28dd3 | ||
|
53231a137c | ||
|
104a264d8b | ||
|
75fd582b97 | ||
|
89977412e9 | ||
|
ce030b1b36 | ||
|
6c5dc8cd1f | ||
|
fb4b38e5ea | ||
|
fc405f8882 | ||
|
afe61e28e0 | ||
|
4f3f3c9ae2 | ||
|
e699685003 | ||
|
9583195e96 | ||
|
a526f0770e | ||
|
707e492f0d | ||
|
680dba6524 | ||
|
d1bb1d091c | ||
|
6510b876d1 | ||
|
e376941e49 | ||
|
4889199b14 | ||
|
2e15225446 | ||
|
9dad71513c | ||
|
ed072b4b5d | ||
|
7ffc4e0a21 | ||
|
b9403f4f5b | ||
|
9f1aa3141b | ||
|
06e905f87d | ||
|
2ba8dcebff | ||
|
95a8def7c2 | ||
|
777799070d | ||
|
0f83a9550b | ||
|
17f2443350 | ||
|
6bfc995097 | ||
|
8068111c6e | ||
|
6e1c47b021 | ||
|
aed4ced032 | ||
|
96160ea5dc | ||
|
c76c07ddfe | ||
|
7b82dc7ac5 | ||
|
a63e9d38fb | ||
|
cc8db1805d | ||
|
948532f3c9 | ||
|
8f39f8d827 | ||
|
5e28c05121 | ||
|
32d15a5858 | ||
|
460eaac1f4 | ||
|
02d7817632 | ||
|
3080e2974d | ||
|
be9d98ed38 | ||
|
944274bc58 | ||
|
b555e909c4 | ||
|
c0b813940e | ||
|
9fe9ea34fd | ||
|
d90dc7f75e | ||
|
f36f1b9829 | ||
|
2b09f5ea1e | ||
|
f51c82a2aa | ||
|
11d3be278d | ||
|
cc98282caa | ||
|
85f2e1ccd8 | ||
|
91b98bc9e2 | ||
|
704ee6a9d0 | ||
|
72e9f30937 | ||
|
aadaf4adf2 | ||
|
d83ad6b505 | ||
|
b647d1a58c | ||
|
3c94e91e5e | ||
|
8a1bee1d79 | ||
|
9297439de4 | ||
|
68cff3b108 | ||
|
84846aace7 | ||
|
7bd93730d1 | ||
|
c5d05fdc88 | ||
|
f6ff2cd1cb | ||
|
9b0060e84d | ||
|
8d5633cb88 | ||
|
f74b1d48b6 | ||
|
27ebf756fe | ||
|
631da2e723 | ||
|
b5531d3d6f | ||
|
5e6bc41fdd | ||
|
d0581af2af | ||
|
cec746804d | ||
|
ade1aaa8be | ||
|
345d23898d | ||
|
415717276a | ||
|
cebe640bce | ||
|
73084b761f | ||
|
eb13ecfbe7 | ||
|
85c4507609 | ||
|
fcb6c8e447 | ||
|
0b27f39c2b | ||
|
2101f880af | ||
|
2cc241732d | ||
|
c01782b0a9 | ||
|
a62831562f | ||
|
40dd81e1a4 | ||
|
a9f3a52c18 | ||
|
0978912922 | ||
|
3c9923d395 | ||
|
0296f49eb0 | ||
|
4b7a550366 | ||
|
37e18b784e | ||
|
1275a2cb8d | ||
|
67a6f343a0 | ||
|
a98e6bff85 | ||
|
d0f5644771 | ||
|
b1a3ac8330 | ||
|
80811069ac | ||
|
6e3dc1e669 | ||
|
d1aa0a74e4 | ||
|
7a6fb09179 | ||
|
5732c5e3d0 | ||
|
79fb3d9b0c | ||
|
17455054f1 | ||
|
763f51cb98 | ||
|
9fb78603ec | ||
|
f802be88e9 | ||
|
b9d2049991 | ||
|
cfe3558610 | ||
|
35d15de3b6 | ||
|
23a336df0e | ||
|
bacdc735a4 | ||
|
19a168446e | ||
|
47ec7bc66d | ||
|
b4178870dd | ||
|
03ef792802 | ||
|
7955efef6c | ||
|
3134003376 | ||
|
a508860d1f | ||
|
c835ca41e0 | ||
|
2d5eafd014 | ||
|
9b34878208 | ||
|
4b1b956d27 | ||
|
0dd58c4d1b | ||
|
4b2b6d6212 | ||
|
2cdb53d524 | ||
|
4f7721e742 | ||
|
29c29b0e64 | ||
|
3d7fc0a598 | ||
|
9e3e0052dc | ||
|
5ecfcaec0d | ||
|
cc24401dfb | ||
|
f445d8b518 | ||
|
af4c9ea61e | ||
|
4a75c288b2 | ||
|
89fca57e68 | ||
|
d50b780551 | ||
|
f4a8787219 | ||
|
979d0f4b1d | ||
|
5af7c7d0f2 | ||
|
90aff59826 | ||
|
f0f3ea1b3e | ||
|
f4b7f5de2f | ||
|
ca5af396b0 | ||
|
9f56be3551 | ||
|
389f41ead7 | ||
|
62108f8c30 | ||
|
d3206f9b67 | ||
|
9b81f4cc31 | ||
|
a864084a4e | ||
|
ba44464d2a | ||
|
9509876f10 | ||
|
f79549f5fc | ||
|
bfb451ff4d | ||
|
edfbfb2ba7 | ||
|
6aa37a116d | ||
|
a34c018592 | ||
|
710d8b948b | ||
|
3df85581d5 | ||
|
91e3bc4496 | ||
|
1f5df481a5 | ||
|
768522ce7f | ||
|
5f4e5db91b | ||
|
c5f73cb406 | ||
|
86c4a9b3bd | ||
|
fb915dc8da | ||
|
7a2569be14 | ||
|
b1eed1c153 | ||
|
fac6f6c712 | ||
|
3f1fc798f0 | ||
|
e6a86f61dc | ||
|
2799632c02 | ||
|
8ffa681e02 | ||
|
154035e76f | ||
|
1d4c664bfa | ||
|
85a650afce | ||
|
f6c4d3731c | ||
|
5e9070145e | ||
|
81ced841dd | ||
|
9837a9dcfd | ||
|
1704ec3c7d | ||
|
c70a326055 | ||
|
53616a73e9 | ||
|
2d3a3d6a78 | ||
|
6ca9e5987b | ||
|
2c1590001f | ||
|
82aee038e9 | ||
|
a94d7abf0d | ||
|
3b87903889 | ||
|
191f826075 | ||
|
5d52c43074 | ||
|
f6a67aeb20 | ||
|
370e2f0940 | ||
|
2ec9fc26d3 | ||
|
c2d898d462 | ||
|
7c04231255 | ||
|
08216dcee9 | ||
|
9817df12ff | ||
|
5b0e8eb574 | ||
|
cecde85faa | ||
|
aa95b4f341 | ||
|
816f8807a3 | ||
|
26d3c407b3 | ||
|
a973e8ea8d | ||
|
b007597c58 | ||
|
1e83a44c93 | ||
|
e1406d2e95 | ||
|
259ad83de9 | ||
|
2fe467983c | ||
|
b4f5432d5a | ||
|
4fe4523c49 | ||
|
ee4a56ed4a | ||
|
2408e227aa | ||
|
144cd2d91c | ||
|
6abd9def55 | ||
|
f5685cc0ae | ||
|
54bd03573e | ||
|
bc81b33990 | ||
|
de764d61ef | ||
|
68fa9bcf2e | ||
|
2f124bc712 | ||
|
c648bb7b19 | ||
|
90956b15d9 | ||
|
195ebf6848 | ||
|
0615b48318 | ||
|
aff34e8d1b | ||
|
c05bb504ff | ||
|
47307dc7c1 | ||
|
16ea91c1fe | ||
|
96b800fa0c | ||
|
e7a2baf78c | ||
|
438d86fcf5 | ||
|
4fd848c9de | ||
|
a23a7d4149 | ||
|
1cbdf88b0f | ||
|
0a0feef57d | ||
|
2701a2bfdd | ||
|
2aea75f426 | ||
|
b1fb7cd4ae | ||
|
33ffe28236 | ||
|
fd90b56df6 | ||
|
43373e6350 | ||
|
afd5ea53d8 | ||
|
f725bdad25 | ||
|
cfbe3709bf | ||
|
4e453acd4f | ||
|
3a04542146 | ||
|
d6a1eb1b2f | ||
|
802110bfe5 | ||
|
141769fb46 | ||
|
0fdb6a9243 | ||
|
d007d136c5 | ||
|
cb374efb9a | ||
|
8334d21c87 | ||
|
6e132463f1 | ||
|
3f8f6f6792 | ||
|
93cdcc5e88 | ||
|
d51912c0b4 | ||
|
bad6e1e102 | ||
|
28a8dc5a14 | ||
|
975cdd8c30 | ||
|
153b78e2bc | ||
|
de2b10e46c | ||
|
7cf4414f4a | ||
|
a9dfec8478 | ||
|
60ddf7c421 | ||
|
1922174c9f | ||
|
3c39c5259e | ||
|
f5a6d93939 | ||
|
30dddf2412 | ||
|
19a9215e4f | ||
|
b43950d0f7 | ||
|
6e5a183c98 | ||
|
d224110b48 | ||
|
8f356c2e8c | ||
|
139ed2c900 | ||
|
32e21d5402 | ||
|
fb3d8b8523 | ||
|
380523b41b | ||
|
2fda256bb0 | ||
|
c71a66b6f6 | ||
|
cb92778478 | ||
|
ab67936a64 | ||
|
0ae2c1a8a7 | ||
|
4e166f39fe | ||
|
5f79958716 | ||
|
aee0af34af | ||
|
7e32eb2e98 | ||
|
7ea7d5c390 | ||
|
e3e9dda429 | ||
|
a3ab25bf1d | ||
|
095dec9238 | ||
|
0e34365139 | ||
|
88a62564f1 | ||
|
6ac94dc5c3 | ||
|
5a9a0874bd | ||
|
91992111c3 | ||
|
120d874805 | ||
|
9454bad891 | ||
|
9cb410fd9b | ||
|
0f3fbed13c | ||
|
43ee9746bd | ||
|
7283c5c22f | ||
|
8b71fe4af6 | ||
|
b627fb5970 | ||
|
be3ad1ef99 | ||
|
54264a9f78 | ||
|
65380c66bd | ||
|
8c96991ce0 | ||
|
07a44993ac | ||
|
60d2d25463 | ||
|
907f99b176 | ||
|
ce6aa73c64 | ||
|
257bef85d0 | ||
|
a48df87a85 | ||
|
fe4cd7cf0f | ||
|
229b34d478 | ||
|
1985f2c9ad | ||
|
01d57a7566 | ||
|
7a4b2c10c7 | ||
|
208b2d37b6 | ||
|
ef98912779 | ||
|
b1e3b18ede | ||
|
0194cadbc0 | ||
|
b4dfc4adfc | ||
|
fd556ec377 | ||
|
1dbc1d67f5 | ||
|
8790c83a76 | ||
|
6b202fb838 | ||
|
f69476435f | ||
|
8df6e2cdaf | ||
|
2861ab38ac | ||
|
23c2122c13 | ||
|
5b83ffa4a0 | ||
|
cf8e3157a7 | ||
|
7323172755 | ||
|
cfee8f4b11 | ||
|
7ae099c94c | ||
|
42298d8ab1 | ||
|
68912698f1 | ||
|
c8c56f8d42 | ||
|
7f48b5a05c | ||
|
1e5e977b37 | ||
|
62d44b6bc7 | ||
|
862afeffe0 | ||
|
92f9195015 | ||
|
fc6e08082b | ||
|
af7516b797 | ||
|
3f1821e372 | ||
|
b569470b87 | ||
|
f1a3235039 | ||
|
34e90005af | ||
|
4f1cc8ec6d | ||
|
5242205a65 | ||
|
59633a6781 | ||
|
d82316edda | ||
|
0815640b22 | ||
|
26de2eae20 | ||
|
8fa358c4d4 | ||
|
fc72449228 | ||
|
84a304e66e | ||
|
ecf1b7c18a | ||
|
a7c5b53f46 | ||
|
09736dde93 | ||
|
66c00dc9f3 | ||
|
3eacf8bd39 | ||
|
34e9ef9e78 | ||
|
a5955106ea | ||
|
ea0cfed735 | ||
|
f312d1ee6a | ||
|
69b6f4cf4f | ||
|
d7e1c377fe | ||
|
cc17577763 | ||
|
ef4ae61c66 | ||
|
e04ea3f311 | ||
|
77a2cd4d8d | ||
|
0986981d1a | ||
|
913f850f83 | ||
|
ed31da3730 | ||
|
428ff6c4ab | ||
|
53786841cc | ||
|
8f8ece44a8 | ||
|
41a892b958 | ||
|
b494ed5876 | ||
|
7b589f991d | ||
|
d83faf82d7 | ||
|
cd46016238 | ||
|
f2a3218455 | ||
|
85b1959714 | ||
|
b23600ae4b | ||
|
bdc43b8fca | ||
|
da2ef6911f | ||
|
0626246367 | ||
|
0edfafdfdf | ||
|
1863b79fb3 | ||
|
9aa90f8df0 | ||
|
8080d9e7c1 | ||
|
f432ee775f | ||
|
77f9cb11a9 | ||
|
d92e3cb864 | ||
|
733fa156b9 | ||
|
d181d53762 | ||
|
644e6f8ebe | ||
|
0b4c695d65 | ||
|
448287bd58 | ||
|
5e6aff69c6 | ||
|
d88e616711 | ||
|
0e5c94a094 | ||
|
bb0aeec99c | ||
|
880e3ef289 | ||
|
94a09263d7 | ||
|
ab9106ac89 | ||
|
ff6451a77e | ||
|
4f2d63b8ac | ||
|
81c97f0910 | ||
|
d1b52cc292 | ||
|
ddedb39329 | ||
|
d45987e637 | ||
|
b95eceea60 | ||
|
2774e80fc4 | ||
|
7c207c4868 | ||
|
c6c8abcf21 | ||
|
a59c967675 | ||
|
c3329f5fcc | ||
|
4f06e46759 | ||
|
7e522a8c55 | ||
|
d9447fd2e7 | ||
|
95214f3697 | ||
|
fe64c998f8 | ||
|
84582ad762 | ||
|
fcc7a58058 | ||
|
8a48becb7e | ||
|
465446430e | ||
|
4060c43ae7 | ||
|
4ec9a2a330 | ||
|
90c017a762 | ||
|
e011434223 | ||
|
b1ccb4103d | ||
|
8033809f8b | ||
|
66ba1f76ba | ||
|
0ca822c716 | ||
|
4ac288c1b4 | ||
|
64316ab185 | ||
|
4d90a693ae | ||
|
0c5f943783 | ||
|
42fc165b94 | ||
|
20a4e3f351 | ||
|
f3f90e1d71 | ||
|
b018da2acd | ||
|
ab5f3f59ce | ||
|
0127217e10 | ||
|
16a476fe22 | ||
|
c8ca6930c5 | ||
|
c4f33f36de | ||
|
0543c48862 | ||
|
fcb17a86e6 | ||
|
5633b5b637 | ||
|
f7eaf69d67 | ||
|
32411943ea | ||
|
58fa5d7617 | ||
|
f9ee1967f4 | ||
|
6a376f0a30 | ||
|
66826c26db | ||
|
8d1e37789e | ||
|
6c39a5946e | ||
|
2a98928286 | ||
|
c7806eb908 | ||
|
9015734e65 | ||
|
f5159e1ecb | ||
|
aec2f50d82 | ||
|
74860f7602 | ||
|
a9175e0c03 | ||
|
e1c56555af | ||
|
24120c8fd0 | ||
|
f284331f79 | ||
|
a82de96e1a | ||
|
eba9b116ed | ||
|
1f89b3c7df | ||
|
c739b9fe7f | ||
|
556b729b97 | ||
|
9fd5558acd | ||
|
b7422c0f62 | ||
|
ace684c7ab | ||
|
752e704e99 | ||
|
8c7e13746b | ||
|
c2311c7154 | ||
|
44fa748826 | ||
|
dfed398371 | ||
|
962ba49a8e | ||
|
5811e443f8 | ||
|
f55e1392d4 | ||
|
0fbe5ba40c | ||
|
980ea63d78 | ||
|
85cf995af7 | ||
|
dcc3533363 | ||
|
28964aa0a4 | ||
|
7fd8a0ac99 | ||
|
d919ed4e4b | ||
|
61ec6fb5eb | ||
|
237eb8bb90 | ||
|
ff57cd9331 | ||
|
c97d02f487 | ||
|
36ced69ebf | ||
|
427a52a9ad | ||
|
9b5aee0d1b | ||
|
ee5afdf919 | ||
|
49a6b5d50a | ||
|
dd7a0cbeb7 | ||
|
38d808f3e2 | ||
|
16a608b9e5 | ||
|
f1ff37e970 | ||
|
71c68f5f36 | ||
|
0d3265edc7 | ||
|
854e40c60c | ||
|
882387a62a | ||
|
73f7370ead | ||
|
8e9241f3ba | ||
|
3c67931f5f | ||
|
06f3b5dfd4 | ||
|
05acb70d1c | ||
|
7b380b2ffc | ||
|
f6e4b964b7 | ||
|
0b2d08f076 | ||
|
1ad1a9fe4a | ||
|
fe15db92bd | ||
|
682b7773fc | ||
|
9055b6c6e5 | ||
|
9fd56dc5ad | ||
|
1ec7f2bbcd | ||
|
4eb7208e35 | ||
|
1ad88f7662 | ||
|
96b30073cf | ||
|
456956a2bd | ||
|
4c794505da | ||
|
34028ea31e | ||
|
4244314a40 | ||
|
f627c9443e | ||
|
06fa9befe0 | ||
|
a95dc5d609 | ||
|
575bd64698 | ||
|
2abe588e91 | ||
|
ecdee288a7 | ||
|
e363fcca3c | ||
|
f46fb7c6fc | ||
|
985d964a34 | ||
|
2a0286c19c | ||
|
9a05af61e8 | ||
|
68d2e9c068 | ||
|
89ba937fd3 | ||
|
840cd6f10f | ||
|
cccfc1a38d | ||
|
ff26aa2fa7 | ||
|
7192e67a6f | ||
|
5354b91e64 | ||
|
c9c6b7bb2a | ||
|
c93fa922dc | ||
|
8d7bfa2628 | ||
|
e6a4cc8ba2 | ||
|
7926ee68b8 | ||
|
239d47791d | ||
|
33f210bc85 | ||
|
021aae84dd | ||
|
e8508762f5 | ||
|
a0bbdfbeee | ||
|
f6561fc401 | ||
|
dfe56c8b70 | ||
|
7f29b466be | ||
|
8f5a185ae5 | ||
|
309b28fa2c | ||
|
e9f311e6b6 | ||
|
045262282b | ||
|
a44701faa2 | ||
|
eeee3151b6 | ||
|
0cd077e80f | ||
|
0e9b098f4e | ||
|
40b5002338 | ||
|
28fd3fbf50 | ||
|
10c782b106 | ||
|
5dd1803288 | ||
|
7e9f2e2311 | ||
|
610a5d6c0d | ||
|
5453628491 | ||
|
6e0596e122 | ||
|
0ca8d74842 | ||
|
04f8170841 | ||
|
1124793702 | ||
|
8d4b0f05da | ||
|
ca8ba8ce87 | ||
|
849e3403cd | ||
|
02a7a30978 | ||
|
79568d2944 | ||
|
ae45be7875 | ||
|
73e8b39bc6 | ||
|
72b2938e43 | ||
|
785aaa8c03 | ||
|
1d7983da05 | ||
|
cb652c7f0f | ||
|
a2b84fc98a | ||
|
0d9bbc9d64 | ||
|
6fd5e5f61c | ||
|
b7285bd688 | ||
|
938e50c876 | ||
|
e76bfcf2f6 | ||
|
ee06ac3ad2 | ||
|
19a8870f76 | ||
|
d828f2477e | ||
|
99a3a7e94e | ||
|
4d2bad4c11 | ||
|
ed14df9738 | ||
|
a516441513 | ||
|
d75abc9104 | ||
|
bc83969f6b | ||
|
dff8e34bc9 | ||
|
6d9662cf8d | ||
|
2e6b32083e | ||
|
b4b42a462a | ||
|
a48a2a3dc9 | ||
|
9628599620 | ||
|
3a4d5ff5c3 | ||
|
e7fa2571ca | ||
|
ad719a9c47 | ||
|
0c4ea9bc7c | ||
|
24de5ffd4e | ||
|
4933bc505f | ||
|
ecbee35f93 | ||
|
5552b5c0ec | ||
|
2baa899e32 | ||
|
aaaddd1b47 | ||
|
d4d4c7e119 | ||
|
ea33264a87 | ||
|
4054f33221 | ||
|
b6767d2eef | ||
|
90d84a2af8 | ||
|
eb34311c2c | ||
|
ea7ddc031c | ||
|
1ff17f1a7e | ||
|
8232ab4440 | ||
|
bb82e3e1fb | ||
|
1702cdaff6 | ||
|
a4583b03a1 | ||
|
b12169776e | ||
|
85f85bbec8 | ||
|
afc7b46264 | ||
|
86db9e2ce0 | ||
|
1afc7a9210 | ||
|
cb6c720d37 | ||
|
35eae8751f | ||
|
a246d1a995 | ||
|
718d68eccd | ||
|
fb4023af22 | ||
|
370ecd5d15 | ||
|
fdff21ae13 | ||
|
69500f356e | ||
|
3b794c4951 | ||
|
72614fdb67 | ||
|
230ee92857 | ||
|
c6c952477a | ||
|
fd4f22bba5 | ||
|
1e8d7c7891 | ||
|
73316a83c4 | ||
|
b2d22d8125 | ||
|
afb75bedfe | ||
|
ee34781a13 | ||
|
9fc80a0bd5 | ||
|
d4203d147a | ||
|
a1dda0ec3c | ||
|
f9b66dff8b | ||
|
dbbc16947f | ||
|
dc47abc60e | ||
|
ca9ba3cc80 | ||
|
59f6218426 | ||
|
f533d08537 | ||
|
230aa7899e | ||
|
cc51604267 | ||
|
3b2622267d | ||
|
4fc05e7c64 | ||
|
4e680cae48 | ||
|
d957e40a63 | ||
|
d1bc8e580d | ||
|
5dadee1591 | ||
|
ea7a61a763 | ||
|
8bd6927daf | ||
|
67912c1051 | ||
|
6314a5240d | ||
|
e7f55d8706 | ||
|
671756cb13 | ||
|
7cf567b4f9 | ||
|
82e695d94a | ||
|
2104d7b062 | ||
|
6c4739a2f1 | ||
|
f858daeca4 | ||
|
efa0033fb4 | ||
|
546378e65c | ||
|
a997dea414 | ||
|
e75af999dc | ||
|
e8dcbbe86f | ||
|
3c048caa30 | ||
|
925d2ba9ae | ||
|
645070ef7f | ||
|
2fe1f47e6d | ||
|
db8f87d539 | ||
|
a75d97c788 | ||
|
ea9e414ad6 | ||
|
c1bcbcdee5 | ||
|
8f293f3153 | ||
|
70380661fe | ||
|
d91d0f1c0a | ||
|
1db696be79 | ||
|
9a30ea1f69 | ||
|
0495359eca | ||
|
1995b9d92c | ||
|
29c0babdda | ||
|
5b55456b75 | ||
|
70205f59a4 | ||
|
df7889d7f3 | ||
|
26c25cc6b7 | ||
|
2cf90b6158 | ||
|
f8e89f2224 | ||
|
30afac9a6b | ||
|
dac56dd757 | ||
|
e4ca3a285e | ||
|
30b5a33444 | ||
|
e647ebae87 | ||
|
0b34af438f | ||
|
a9949a102b | ||
|
90296dab76 | ||
|
ed605f01a2 | ||
|
bed3c6f807 | ||
|
f6221835ef | ||
|
7e9ce1b266 | ||
|
c40f29cb54 | ||
|
d7afa91023 | ||
|
9bd6d431af | ||
|
f126986c2b | ||
|
865564b32f | ||
|
3ae6da10b1 | ||
|
1b9002afd3 | ||
|
9e72260c3b | ||
|
9d52b4e269 | ||
|
6ed4eece04 | ||
|
cfaddb5d47 | ||
|
7c861d8b59 | ||
|
1c3457adfb | ||
|
a2e46c4d39 | ||
|
df1d024059 | ||
|
e492dac7fe | ||
|
fabe0516fa | ||
|
84971b9076 | ||
|
5efc33fe65 | ||
|
52c228fd9e | ||
|
674b5b808e | ||
|
af62aa4497 | ||
|
137a7096c3 | ||
|
703e5ab9a8 | ||
|
e2dc94d0e8 | ||
|
b821103d1e | ||
|
b40c9d8dcd | ||
|
87b66de109 | ||
|
e934a8984d | ||
|
fa3bbed200 | ||
|
d08412aaa4 | ||
|
56e7c4ab50 | ||
|
3be03ea56f | ||
|
ac65495434 | ||
|
3a26e29795 | ||
|
21f64b987a | ||
|
da227386ad | ||
|
1ac82528d9 | ||
|
50fb19b10d | ||
|
7c38945abf | ||
|
be2dcdd897 | ||
|
16f91fc5d2 | ||
|
46cb0c5fc8 | ||
|
49e0ae8742 | ||
|
933ce71ec6 | ||
|
149e884658 | ||
|
4b34c10d05 | ||
|
e4ec066337 | ||
|
b734614aed | ||
|
7880095fd8 | ||
|
53519d7da1 | ||
|
d418b0984c | ||
|
e20b0b2a35 | ||
|
28cec6c9a7 | ||
|
887d5307ca | ||
|
f6c84a435e | ||
|
bff31f58a8 | ||
|
3921398e66 | ||
|
f30c3d8133 | ||
|
9c0ca8803d | ||
|
5b184a10a9 | ||
|
0bfd4b232b | ||
|
269662c888 | ||
|
9c87dd503a | ||
|
f2ec3e336f | ||
|
691ea8f11a | ||
|
f9ba19c4de | ||
|
1319f41d46 | ||
|
da024cfc90 | ||
|
6c6577dd6b | ||
|
bfdd738d0b | ||
|
3cce78d02c | ||
|
5cc952fa3f | ||
|
7271eff628 | ||
|
42bc89688c | ||
|
a4ff25485c | ||
|
55f6517751 | ||
|
cefa09f74f | ||
|
906661d40b | ||
|
32abe5b8bb | ||
|
cb9de9a48e | ||
|
d823502af7 | ||
|
62774c2e53 | ||
|
b885d288cc | ||
|
da36a6a5d2 | ||
|
09ac592114 | ||
|
19fccb13c3 | ||
|
c654cb0f37 | ||
|
6dfa6fe442 | ||
|
a61c7f7871 | ||
|
8e4a235f56 | ||
|
3cb1b9d4cb | ||
|
eaf944938b | ||
|
930fb24053 | ||
|
12069d2b91 | ||
|
d3666f7b28 | ||
|
67e50a6cfd | ||
|
9e05ce18d9 | ||
|
a77598d6ec | ||
|
9a2ba3053b | ||
|
7e71f1197b | ||
|
4e091b1791 | ||
|
dcebddc908 | ||
|
6f67991e0e | ||
|
9bc4585247 | ||
|
305ef51684 | ||
|
0c61610699 | ||
|
99dd6c579d | ||
|
8f3d85007b | ||
|
7823e8120d | ||
|
5ff7b37b61 | ||
|
d3e4d310b2 | ||
|
77c115c224 | ||
|
c76fd1548e | ||
|
da142e02be | ||
|
8602745858 | ||
|
3e3eda416c | ||
|
140ad373f7 | ||
|
7e9c18c16e | ||
|
88b3e8552a | ||
|
a6f9bab8f3 | ||
|
12e15c0ee0 | ||
|
9216779963 | ||
|
2e669099a6 | ||
|
2a3a5753c1 | ||
|
88bed27f85 | ||
|
b49b055183 | ||
|
988c7d1626 | ||
|
f9acf3bb20 | ||
|
1b0f2cfeb8 | ||
|
26a342279f | ||
|
ed38d9b662 | ||
|
e8b249281d | ||
|
5483821ea0 | ||
|
05e25557e1 | ||
|
f80989332f | ||
|
8df8d0bd5d | ||
|
ea6ad66ee3 | ||
|
5ceb9a7692 | ||
|
216dbf1e88 | ||
|
ff4db4ed71 | ||
|
57dde7e877 | ||
|
9581d060d2 | ||
|
b4069ba15b | ||
|
63e44a34ae | ||
|
afbd7cfe55 | ||
|
ead1b36afd | ||
|
1ffa01b38a | ||
|
f93601ed2b | ||
|
e1722777e5 | ||
|
24850dff0e | ||
|
d790268031 | ||
|
89712fc750 | ||
|
9b62a5c931 | ||
|
fbf3836502 | ||
|
8d80f97597 | ||
|
e6ec8133a5 | ||
|
6b436fdbbb | ||
|
7b2b5469eb | ||
|
3fc325d799 | ||
|
dee6742931 | ||
|
d2097d0449 | ||
|
c7f00d51eb | ||
|
f5308dfbec | ||
|
1097e1349c | ||
|
d577e4421e | ||
|
1bac8b439a | ||
|
ee52e98b7d | ||
|
5e4eda15c9 | ||
|
e861ea4bd2 | ||
|
8009ed3a3c | ||
|
1d95a171f6 | ||
|
e0136b283a | ||
|
42867c7a3c | ||
|
40f20fee3d | ||
|
63e814a45f | ||
|
c1270cf52b | ||
|
f2ec2f2a58 | ||
|
e67bb62b1f | ||
|
c17ac8c599 | ||
|
ee8a800763 | ||
|
746cfe48b0 | ||
|
3a93d52718 | ||
|
1994e1940c | ||
|
d74855fe9f | ||
|
979749a3bc | ||
|
29c7725416 | ||
|
3abf6acb16 | ||
|
df8cf0e030 | ||
|
7952b2a0bc | ||
|
c98e568583 | ||
|
f90e77d173 | ||
|
98e3fca284 | ||
|
a7c98227e6 | ||
|
f2856e494c | ||
|
dc1f12682c | ||
|
502fb250ab | ||
|
7d7d3ff35c | ||
|
9fb449793d | ||
|
3d88c44803 | ||
|
b05000d8bd | ||
|
4b45adaf39 | ||
|
6f2d33369b | ||
|
e08727fa47 | ||
|
7624e6621a | ||
|
cdddb6cb96 | ||
|
f6c01a7674 | ||
|
ffa5bf1b7d | ||
|
4c6e623ec5 | ||
|
621ef0703a | ||
|
f514caadb0 | ||
|
4d92093c67 | ||
|
bd9ea05ebb | ||
|
e8599bd36e | ||
|
1accd0c1ba | ||
|
14488041bc | ||
|
c11b29583e | ||
|
9467243ac3 | ||
|
32f1f7280b | ||
|
ff81104834 | ||
|
6e7893d527 | ||
|
6efe5eefd3 | ||
|
3fd869a8ba | ||
|
d337eed643 | ||
|
296d44159b | ||
|
4ce9f9b3ac | ||
|
9fb37229a1 | ||
|
c8299f5b3e | ||
|
f019a325ef | ||
|
0d69b723fc | ||
|
d632258abb | ||
|
969fc17737 | ||
|
ada0ea0f68 | ||
|
fff912efd3 | ||
|
c31b6ff1d5 | ||
|
cf4b9dcb4d | ||
|
549c8aec4a | ||
|
b7f7487b53 | ||
|
dfc34b7295 | ||
|
83230766b2 | ||
|
3bd1f491d1 | ||
|
2c1562630d | ||
|
f947aafc2e | ||
|
3e9f2aa4bb | ||
|
a6ce506714 | ||
|
3b96cf3789 | ||
|
e6046e9493 | ||
|
6d0cef41b4 | ||
|
caf389c4e5 | ||
|
1237fd9ab5 | ||
|
1e5a9eb7b9 | ||
|
41fc0955f6 | ||
|
2f5278a139 | ||
|
4da8d39ec5 | ||
|
f96c72c4b3 | ||
|
bcf78aeb39 | ||
|
02cdb36421 | ||
|
b3d4d70bc1 | ||
|
e5ffbb19c0 | ||
|
715c0bfc0a |
@@ -1,4 +1,4 @@
|
||||
# See https://wiki.apertis.org/Guidelines/Coding_conventions#Code_formatting
|
||||
# See https://www.apertis.org/policies/coding_conventions/#code-formatting
|
||||
BasedOnStyle: GNU
|
||||
AlwaysBreakAfterDefinitionReturnType: All
|
||||
BreakBeforeBinaryOperators: None
|
||||
|
@@ -26,7 +26,8 @@ variables:
|
||||
BACKEND_FLAGS: "-Dx11-backend=true -Dwayland-backend=true -Dbroadway-backend=true"
|
||||
FEATURE_FLAGS: "-Dvulkan=enabled -Dcloudproviders=enabled -Dbuild-testsuite=true -Dintrospection=enabled"
|
||||
MESON_TEST_TIMEOUT_MULTIPLIER: 3
|
||||
FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora:v49"
|
||||
MESON_TEST_MAX_PROCESSES: 8
|
||||
FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora:v52"
|
||||
|
||||
workflow:
|
||||
rules:
|
||||
@@ -78,6 +79,7 @@ style-check-diff:
|
||||
- "${CI_PROJECT_DIR}/_build/testsuite/reftests/output/*/*.node"
|
||||
- "${CI_PROJECT_DIR}/_build/testsuite/tools/output/*/*"
|
||||
- "${CI_PROJECT_DIR}/_build/testsuite/gsk/compare/*/*/*.png"
|
||||
- "${CI_PROJECT_DIR}/_build/testsuite/gsk/compare/*/*/*.node"
|
||||
- "${CI_PROJECT_DIR}/_build/testsuite/css/output/*/*.syscap"
|
||||
- "${CI_PROJECT_DIR}/_build/testsuite/headless/*/*.log"
|
||||
- "${CI_PROJECT_DIR}/_build_hello/meson-logs"
|
||||
@@ -116,10 +118,11 @@ release-build:
|
||||
EXTRA_MESON_FLAGS: "--buildtype=release"
|
||||
script:
|
||||
- .gitlab-ci/show-info-linux.sh
|
||||
- export PATH="$HOME/.local/bin:$PATH"
|
||||
- mkdir _install
|
||||
- export PATH="$HOME/.local/bin:${CI_PROJECT_DIR}/_install/bin:$PATH"
|
||||
- .gitlab-ci/install-meson-project.sh --prefix ${CI_PROJECT_DIR}/_install https://gitlab.gnome.org/jadahl/catch.git main
|
||||
- meson subprojects download
|
||||
- meson subprojects update --reset
|
||||
- mkdir _install
|
||||
- meson setup
|
||||
--prefix=${CI_PROJECT_DIR}/_install
|
||||
${COMMON_MESON_FLAGS}
|
||||
@@ -209,51 +212,54 @@ msys2-mingw64:
|
||||
paths:
|
||||
- "${CI_PROJECT_DIR}/_build/gtkdll.tar.gz"
|
||||
|
||||
macos-x86_64:
|
||||
macos:
|
||||
rules:
|
||||
# Do not run in forks as the runner is not available there.
|
||||
- if: $CI_PROJECT_NAMESPACE == "GNOME"
|
||||
# (except for dehesselle who maintains the runner)
|
||||
- if: $CI_PROJECT_NAMESPACE != "GNOME" && $CI_PROJECT_NAMESPACE != "dehesselle"
|
||||
when: never
|
||||
- if: $RUNNER == "macosintel"
|
||||
variables:
|
||||
SDKROOT: /opt/sdks/MacOSX10.13.4.sdk
|
||||
NINJA_PKG: $CI_API_V4_URL/projects/30745/packages/generic/ninja_macos/v1.11.1.1+9/ninja-1.11.1.1-cp38-cp38-macosx_11_0_x86_64.whl
|
||||
when: manual
|
||||
allow_failure: true
|
||||
- if: $RUNNER == "macosarm"
|
||||
variables:
|
||||
SDKROOT: /opt/sdks/MacOSX11.3.sdk
|
||||
NINJA_PKG: ninja==1.11.1.1
|
||||
stage: build
|
||||
parallel:
|
||||
matrix:
|
||||
- RUNNER: [ "macosintel", "macosarm" ]
|
||||
tags:
|
||||
- macosintel
|
||||
- ${RUNNER}
|
||||
needs: []
|
||||
variables:
|
||||
MESON_FORCE_BACKTRACKE: 1
|
||||
EXTRA_MESON_FLAGS: ""
|
||||
BACKEND_FLAGS: "-Dx11-backend=false -Dbroadway-backend=true"
|
||||
FEATURE_FLAGS: "-Dmedia-gstreamer=disabled -Dintrospection=enabled -Dgobject-introspection:werror=false"
|
||||
TMPDIR: /Users/Shared/work/tmp
|
||||
SDKROOT: /opt/sdks/MacOSX10.13.4.sdk
|
||||
PIP_CACHE_DIR: /Users/Shared/build/cache
|
||||
PIPENV_CACHE_DIR: $PIP_CACHE_DIR
|
||||
PYTHONPYCACHEPREFIX: $PIP_CACHE_DIR
|
||||
EXTRA_MESON_FLAGS: "-Dgobject-introspection:werror=false"
|
||||
before_script:
|
||||
# Not using ccache on purpose as it accelerates the build so much that it
|
||||
# can trigger race conditions in the gobject-introspection subproject.
|
||||
- bash .gitlab-ci/show-info-osx.sh
|
||||
- /opt/macports/bin/python3.10 -m venv .venv
|
||||
- ln -s /opt/cmake/CMake.app/Contents/bin/cmake .venv/bin
|
||||
- ln -s /opt/pkg-config/bin/pkg-config .venv/bin
|
||||
- ln -s /opt/bison/bin/bison .venv/bin
|
||||
- .gitlab-ci/show-info-macos.sh
|
||||
- python3 -m venv .venv
|
||||
# Building the introspection feature requires pkg-config and bison.
|
||||
- curl -L $CI_API_V4_URL/projects/30437/packages/generic/pkgconfig/v0.29.2+10/pkg-config-0.29.2+10_$(uname -m).tar.xz | tar -C .venv -xJ
|
||||
- curl -L $CI_API_V4_URL/projects/30438/packages/generic/bison/v3.8.2+3/bison-3.8.2+3_$(uname -m).tar.xz | tar -C .venv -xJ
|
||||
- source .venv/bin/activate
|
||||
- pip3 install meson==1.2.0
|
||||
- pip3 install ninja==1.11.1
|
||||
- pip3 install /Users/Shared/build/pkgs/PyGObject-3.44.0-cp310-cp310-macosx_10_13_x86_64.whl
|
||||
/Users/Shared/build/pkgs/pycairo-1.23.0-cp310-cp310-macosx_10_13_x86_64.whl
|
||||
- pip3 install meson==1.3.2 $NINJA_PKG
|
||||
# We're not setting up ccache here on purpose as it accelerates the build
|
||||
# so much that it triggers race conditions in the gobject-introspection
|
||||
# subproject.
|
||||
script:
|
||||
- meson setup
|
||||
${COMMON_MESON_FLAGS}
|
||||
${EXTRA_MESON_FLAGS}
|
||||
-Dx11-backend=false
|
||||
-Dbroadway-backend=true
|
||||
-Dmacos-backend=true
|
||||
-Dmedia-gstreamer=disabled
|
||||
-Dintrospection=enabled
|
||||
-Dcpp_std=c++11
|
||||
-Dpixman:tests=disabled
|
||||
-Dlibjpeg-turbo:simd=disabled
|
||||
-Dbuild-demos=false
|
||||
-Dbuild-tests=false
|
||||
-Dbuild-examples=false
|
||||
-Dbuild-testsuite=false
|
||||
${BACKEND_FLAGS}
|
||||
${FEATURE_FLAGS}
|
||||
_build
|
||||
- meson compile -C _build
|
||||
artifacts:
|
||||
@@ -409,11 +415,12 @@ static-scan:
|
||||
# Run tests with the address sanitizer. We need to turn off introspection
|
||||
# and f16c, since they are incompatible with asan
|
||||
asan-build:
|
||||
image: $FEDORA_IMAGE
|
||||
extends: .build-fedora-default
|
||||
tags: [ asan ]
|
||||
stage: analysis
|
||||
needs: []
|
||||
variables:
|
||||
MESON_TEST_MAX_PROCESSES: 4
|
||||
script:
|
||||
- export PATH="$HOME/.local/bin:$PATH"
|
||||
- CC=clang meson setup
|
||||
@@ -428,13 +435,6 @@ asan-build:
|
||||
_build
|
||||
- ninja -C _build
|
||||
- .gitlab-ci/run-tests.sh _build wayland gtk
|
||||
artifacts:
|
||||
when: always
|
||||
reports:
|
||||
junit:
|
||||
- "${CI_PROJECT_DIR}/_build/report-wayland.xml"
|
||||
paths:
|
||||
- "${CI_PROJECT_DIR}/_build/meson-logs"
|
||||
|
||||
reference:
|
||||
image: $FEDORA_IMAGE
|
||||
@@ -448,10 +448,10 @@ reference:
|
||||
--force-fallback-for=gdk-pixbuf,pango
|
||||
-Dintrospection=enabled
|
||||
-Ddocumentation=true
|
||||
-Dgtk_doc=true
|
||||
-Dman-pages=true
|
||||
-Dgdk-pixbuf:gtk_doc=true
|
||||
-Dpango:gtk_doc=true
|
||||
-Dbuild-demos=false
|
||||
-Dpango:documentation=true
|
||||
-Dbuild-demos=true
|
||||
-Dbuild-examples=false
|
||||
-Dbuild-tests=false
|
||||
-Dbuild-testsuite=false
|
||||
@@ -463,6 +463,7 @@ reference:
|
||||
- mv _build/docs/reference/gdk/gdk4-wayland/ _reference/gdk4-wayland/
|
||||
- mv _build/docs/reference/gsk/gsk4/ _reference/gsk4/
|
||||
- mv _build/docs/reference/gtk/gtk4/ _reference/gtk4/
|
||||
- mv _build/docs/reference/gtk/*.html _reference/gtk4/
|
||||
- mv _build/subprojects/pango/docs/Pango/ _reference/Pango/
|
||||
- mv _build/subprojects/pango/docs/PangoCairo/ _reference/PangoCairo/
|
||||
- mv _build/subprojects/pango/docs/PangoFc/ _reference/PangoFc/
|
||||
@@ -484,3 +485,4 @@ publish-docs:
|
||||
- "curl -X POST -F token=${PAGES_TRIGGER_TOKEN} -F ref=docs-gtk-org https://gitlab.gnome.org/api/v4/projects/665/trigger/pipeline"
|
||||
rules:
|
||||
- if: $CI_COMMIT_REF_NAME == "main"
|
||||
|
||||
|
@@ -1,9 +1,7 @@
|
||||
FROM fedora:39
|
||||
FROM fedora:40
|
||||
|
||||
RUN dnf -y install \
|
||||
adwaita-icon-theme \
|
||||
atk-devel \
|
||||
at-spi2-atk-devel \
|
||||
avahi-gobject-devel \
|
||||
cairo-devel \
|
||||
cairo-gobject-devel \
|
||||
@@ -18,7 +16,6 @@ RUN dnf -y install \
|
||||
dejavu-sans-mono-fonts \
|
||||
desktop-file-utils \
|
||||
diffutils \
|
||||
docbook-style-xsl \
|
||||
elfutils-libelf-devel \
|
||||
expat-devel \
|
||||
fribidi-devel \
|
||||
@@ -102,8 +99,11 @@ RUN dnf -y install \
|
||||
which \
|
||||
wireplumber \
|
||||
xorg-x11-server-Xvfb \
|
||||
&& dnf -y update \
|
||||
&& dnf clean all
|
||||
|
||||
RUN rm /usr/share/vulkan/icd.d/powervr_mesa_icd.x86_64.json
|
||||
|
||||
# Enable sudo for wheel users
|
||||
RUN sed -i -e 's/# %wheel/%wheel/' -e '0,/%wheel/{s/%wheel/# %wheel/}' /etc/sudoers
|
||||
|
||||
|
@@ -19,13 +19,12 @@ flatpak build ${builddir} meson \
|
||||
--buildtype=debugoptimized \
|
||||
-Dx11-backend=true \
|
||||
-Dwayland-backend=true \
|
||||
-Dvulkan=disabled \
|
||||
-Dbuild-tests=false \
|
||||
-Dbuild-testsuite=false \
|
||||
-Dbuild-examples=false \
|
||||
-Dintrospection=disabled \
|
||||
-Dbuild-demos=true \
|
||||
-Ddemo-profile=devel \
|
||||
-Dprofile=devel \
|
||||
_flatpak_build
|
||||
|
||||
flatpak build --env=CI_COMMIT_SHORT_SHA=$CI_COMMIT_SHORT_SHA ${builddir} ninja -C _flatpak_build install
|
||||
|
91
.gitlab-ci/install-meson-project.sh
Executable file
@@ -0,0 +1,91 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
usage() {
|
||||
cat <<-EOF
|
||||
Usage: $(basename $0) [OPTION…] REPO_URL COMMIT
|
||||
|
||||
Check out and install a meson project
|
||||
|
||||
Options:
|
||||
-Dkey=val Option to pass on to meson
|
||||
--prefix Prefix to install to
|
||||
--subdir Build subdirectory instead of whole project
|
||||
--prepare Script to run before build
|
||||
|
||||
-h, --help Display this help
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
TEMP=$(getopt \
|
||||
--name=$(basename $0) \
|
||||
--options='D:h' \
|
||||
--longoptions='prefix:' \
|
||||
--longoptions='subdir:' \
|
||||
--longoptions='prepare:' \
|
||||
--longoptions='help' \
|
||||
-- "$@")
|
||||
|
||||
eval set -- "$TEMP"
|
||||
unset TEMP
|
||||
|
||||
MESON_OPTIONS=()
|
||||
PREFIX=/usr
|
||||
SUBDIR=.
|
||||
PREPARE=:
|
||||
|
||||
while true; do
|
||||
case "$1" in
|
||||
-D)
|
||||
MESON_OPTIONS+=( -D$2 )
|
||||
shift 2
|
||||
;;
|
||||
|
||||
--prefix)
|
||||
PREFIX=$2
|
||||
shift 2
|
||||
;;
|
||||
|
||||
--subdir)
|
||||
SUBDIR=$2
|
||||
shift 2
|
||||
;;
|
||||
|
||||
--prepare)
|
||||
PREPARE=$2
|
||||
shift 2
|
||||
;;
|
||||
|
||||
-h|--help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--)
|
||||
shift
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ $# -lt 2 ]]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
REPO_URL="$1"
|
||||
COMMIT="$2"
|
||||
|
||||
CHECKOUT_DIR=$(mktemp --directory)
|
||||
trap "rm -rf $CHECKOUT_DIR" EXIT
|
||||
|
||||
git clone --depth 1 "$REPO_URL" -b "$COMMIT" "$CHECKOUT_DIR"
|
||||
|
||||
pushd "$CHECKOUT_DIR/$SUBDIR"
|
||||
sh -c "$PREPARE"
|
||||
meson setup --prefix "$PREFIX" _build "${MESON_OPTIONS[@]}"
|
||||
meson compile -C _build
|
||||
meson install -C _build
|
||||
popd
|
@@ -8,17 +8,19 @@ builddir=$1
|
||||
setup=$2
|
||||
suite=$3
|
||||
multiplier=${MESON_TEST_TIMEOUT_MULTIPLIER:-1}
|
||||
n_processes=${MESON_TEST_MAX_PROCESSES:-1}
|
||||
|
||||
# Ignore memory leaks lower in dependencies
|
||||
export LSAN_OPTIONS=suppressions=$srcdir/lsan.supp:print_suppressions=0:detect_leaks=0:allocator_may_return_null=1
|
||||
export G_SLICE=always-malloc
|
||||
|
||||
case "${setup}" in
|
||||
x11*)
|
||||
xvfb-run -a -s "-screen 0 1024x768x24 -noreset" \
|
||||
dbus-run-session -- \
|
||||
xvfb-run -a -s "-screen 0 1024x768x24 -noreset" \
|
||||
meson test -C ${builddir} \
|
||||
--quiet \
|
||||
--timeout-multiplier "${multiplier}" \
|
||||
--num-processes "${n_processes}" \
|
||||
--print-errorlogs \
|
||||
--setup=${setup} \
|
||||
--suite=${suite//,/ --suite=} \
|
||||
@@ -40,9 +42,11 @@ case "${setup}" in
|
||||
compositor=$!
|
||||
export WAYLAND_DISPLAY=wayland-5
|
||||
|
||||
meson test -C ${builddir} \
|
||||
dbus-run-session -- \
|
||||
meson test -C ${builddir} \
|
||||
--quiet \
|
||||
--timeout-multiplier "${multiplier}" \
|
||||
--num-processes "${n_processes}" \
|
||||
--print-errorlogs \
|
||||
--setup=${setup} \
|
||||
--suite=${suite//,/ --suite=} \
|
||||
@@ -63,9 +67,11 @@ case "${setup}" in
|
||||
server=$!
|
||||
export BROADWAY_DISPLAY=:5
|
||||
|
||||
meson test -C ${builddir} \
|
||||
dbus-run-session -- \
|
||||
meson test -C ${builddir} \
|
||||
--quiet \
|
||||
--timeout-multiplier "${multiplier}" \
|
||||
--num-processes "${n_processes}" \
|
||||
--print-errorlogs \
|
||||
--setup=${setup} \
|
||||
--suite=${suite//,/ --suite=} \
|
||||
|
@@ -3,6 +3,11 @@
|
||||
set -eux -o pipefail
|
||||
|
||||
xcodebuild -version || :
|
||||
xcodebuild -showsdks || :
|
||||
|
||||
if [ -z "$SDKROOT" ]; then
|
||||
xcodebuild -showsdks || :
|
||||
else
|
||||
echo "SDKROOT = $SDKROOT"
|
||||
fi
|
||||
|
||||
system_profiler SPSoftwareDataType || :
|
@@ -34,7 +34,8 @@ pacman --noconfirm -S --needed \
|
||||
mingw-w64-$MSYS2_ARCH-shared-mime-info \
|
||||
mingw-w64-$MSYS2_ARCH-python-gobject \
|
||||
mingw-w64-$MSYS2_ARCH-shaderc \
|
||||
mingw-w64-$MSYS2_ARCH-vulkan
|
||||
mingw-w64-$MSYS2_ARCH-vulkan \
|
||||
mingw-w64-$MSYS2_ARCH-vulkan-headers
|
||||
|
||||
mkdir -p _ccache
|
||||
export CCACHE_BASEDIR="$(pwd)"
|
||||
@@ -44,7 +45,7 @@ export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
|
||||
ccache --zero-stats
|
||||
ccache --show-stats
|
||||
export CCACHE_DISABLE=true
|
||||
meson \
|
||||
meson setup \
|
||||
-Dx11-backend=false \
|
||||
-Dwayland-backend=false \
|
||||
-Dwin32-backend=true \
|
||||
|
@@ -35,7 +35,7 @@ The issue tracker is meant to be used for actionable issues only.
|
||||
|
||||
You should not open a new issue for security related questions.
|
||||
|
||||
When in doubt, follow [security](https://security.gnome.org/).
|
||||
When in doubt, follow the process for [GNOME security issues](https://security.gnome.org/).
|
||||
|
||||
### Bug reports
|
||||
|
||||
@@ -100,14 +100,16 @@ development tools appropriate for your operating system, including:
|
||||
- Meson
|
||||
- Ninja
|
||||
- Gettext (19.7 or newer)
|
||||
- a [C99 compatible compiler](https://wiki.gnome.org/Projects/GLib/CompilerRequirements)
|
||||
- a [C99 compatible compiler][glib-toolchain-reqs]
|
||||
|
||||
Up-to-date instructions about developing GNOME applications and libraries
|
||||
can be found on [the GNOME Developer Center](https://developer.gnome.org).
|
||||
|
||||
The GTK project uses GitLab for code hosting and for tracking issues. More
|
||||
information about using GitLab can be found [on the GNOME
|
||||
wiki](https://wiki.gnome.org/GitLab).
|
||||
information about using GitLab can be found on [the GNOME handbook][handbook].
|
||||
|
||||
[glib-toolchain-reqs]: https://gitlab.gnome.org/GNOME/glib/-/blob/main/docs/toolchain-requirements.md
|
||||
[handbook]: https://handbook.gnome.org/infrastructure/gitlab.html
|
||||
|
||||
### Dependencies
|
||||
|
||||
@@ -131,7 +133,7 @@ GTK will attempt to download and build some of these dependencies if it
|
||||
cannot find them on your system.
|
||||
|
||||
Additionally, you may want to look at projects that create a development
|
||||
environment for you, like [jhbuild](https://wiki.gnome.org/HowDoI/Jhbuild)
|
||||
environment for you, like [jhbuild](https://gitlab.gnome.org/GNOME/jhbuild)
|
||||
and [gvsbuild](https://github.com/wingtk/gvsbuild).
|
||||
|
||||
### Getting started
|
||||
@@ -144,33 +146,28 @@ $ git clone https://gitlab.gnome.org/yourusername/gtk.git
|
||||
$ cd gtk
|
||||
```
|
||||
|
||||
**Note**: if you plan to push changes to back to the main repository and
|
||||
have a GNOME account, you can skip the fork, and use the following instead:
|
||||
|
||||
```sh
|
||||
$ git clone git@gitlab.gnome.org:GNOME/gtk.git
|
||||
$ cd gtk
|
||||
```
|
||||
|
||||
To compile the Git version of GTK on your system, you will need to
|
||||
configure your build using Meson:
|
||||
|
||||
```sh
|
||||
$ meson _builddir .
|
||||
$ cd _builddir
|
||||
$ ninja
|
||||
$ meson setup _builddir .
|
||||
$ meson compile -C _builddir
|
||||
```
|
||||
|
||||
Typically, you should work on your own branch:
|
||||
|
||||
```sh
|
||||
$ git checkout -b your-branch
|
||||
$ git switch -C your-branch
|
||||
```
|
||||
|
||||
Once you've finished working on the bug fix or feature, push the branch
|
||||
to the Git repository and open a new merge request, to let the GTK
|
||||
maintainers review your contribution.
|
||||
|
||||
**Important**: Do **not** attach a diff or a patch file to a GitLab issue.
|
||||
Patches cannot be reviewed, and do not not go through the CI pipeline. If
|
||||
you wish to submit your changes to GTK, always use a merge request.
|
||||
|
||||
### Code reviews
|
||||
|
||||
Each contribution is reviewed by the core developers of the GTK project.
|
||||
@@ -262,4 +259,4 @@ people committing to GTK to follow a few rules:
|
||||
|
||||
If you have been contributing to GTK for a while and you don't have commit
|
||||
access to the repository, you may ask to obtain it following the [GNOME account
|
||||
process](https://wiki.gnome.org/AccountsTeam/NewAccounts).
|
||||
process](https://handbook.gnome.org/infrastructure/developer-access.html).
|
||||
|
877
NEWS
@@ -1,6 +1,881 @@
|
||||
Overview of Changes in 4.13.6, xx-xx-xxxx
|
||||
Overview of Changes in 4.16.0, 09-06-2024
|
||||
=========================================
|
||||
|
||||
Note: This release changes the default GSK renderer to be Vulkan,
|
||||
on Wayland. Other platforms still use ngl. The intent of this change
|
||||
is to use the best available platform APIs. You can still override
|
||||
the renderer choice using the GSK_RENDERER environment variable.
|
||||
|
||||
We believe that most of the problems reported with the new renderers
|
||||
during the 4.13 and 4.15 development cycles have been addressed by now.
|
||||
|
||||
But the new renderers and dmabuf support are using graphics drivers
|
||||
in different ways than the old gl renderer, and trigger new driver bugs.
|
||||
Therefore, it is recommended to use the latest mesa release (24.2)
|
||||
with the new renderers.
|
||||
|
||||
* GtkScale:
|
||||
- Fix positioning of scale values
|
||||
|
||||
* GtkEmojiChooser:
|
||||
- Make Control-clicks work for the recent section
|
||||
|
||||
* GtkPopover:
|
||||
- Make sure focus lands on the right widget when cascading
|
||||
|
||||
* GtkSpinButton:
|
||||
- Disable Emoji input for numeric spin buttons
|
||||
|
||||
* GtkSingleSelection:
|
||||
- Implement unselect_all
|
||||
|
||||
* Accssibility:
|
||||
- Fix roles for radio buttons
|
||||
- Check if ATs are listening before exporting trees
|
||||
- Add a check for sandboxed accessibility bus
|
||||
- Fix handling of the error message relation
|
||||
- Turn criticals into debug messages
|
||||
- Set expanded states properly in menus
|
||||
|
||||
* CSS:
|
||||
- Fix a few issues on bigendian systems
|
||||
- Avoid a crash with relative colors
|
||||
|
||||
* GSK:
|
||||
- Use the right GL context when exporting textures
|
||||
- Don't let colors influence depth decisions
|
||||
- Allow uploading of mipmap levels when tiling textures
|
||||
|
||||
* GDK:
|
||||
- Update keysyms from libX11 1.8.10
|
||||
- Implement cpu-side mipmapping
|
||||
- Use a thread pool for color conversions and mipmapping
|
||||
|
||||
* Vulkan:
|
||||
- Fix drag surface offsets
|
||||
|
||||
* Wayland:
|
||||
- Fix a crash
|
||||
- Associate EGL windows with context later
|
||||
|
||||
* X11:
|
||||
- Fix initial EGL context creation
|
||||
- Fix a problem with GL context creation
|
||||
|
||||
* Broadway:
|
||||
- Implement compute_size and request_layout
|
||||
|
||||
* MacOS:
|
||||
- Set transparent backgroiund for toplevel windows
|
||||
|
||||
* Windows:
|
||||
- Improve debug output
|
||||
- Detect Mesas d3d12 driver and request GDI compat
|
||||
|
||||
* Demos:
|
||||
- Set window icons in demos
|
||||
- Add a 64k x 64k image to the image scaling demo
|
||||
|
||||
* Translation updates
|
||||
Belarusian
|
||||
Brazilian Portuguese
|
||||
Catalan
|
||||
Czech
|
||||
Galician
|
||||
German
|
||||
Hebrew
|
||||
Indonesian
|
||||
Korean
|
||||
Lithuanian
|
||||
Persian
|
||||
Polish
|
||||
Portuguese
|
||||
Slovenian
|
||||
Spanish
|
||||
Turkish
|
||||
Ukrainian
|
||||
|
||||
|
||||
Overview of Changes in 4.15.6, 08-26-2024
|
||||
=========================================
|
||||
|
||||
* GtkCheckButton:
|
||||
- Add a grouped style class for radio buttons
|
||||
|
||||
* GtkScale:
|
||||
- Fix alignment and positioning problems
|
||||
|
||||
* Css:
|
||||
- Fix crashes in the variable support
|
||||
|
||||
* Gsk:
|
||||
- Make graphics offloading work better with kwin
|
||||
- Make colorstate transfer functions more robust
|
||||
- GC dead textures more agressively
|
||||
- Only use a single render pass per frame
|
||||
|
||||
* GL:
|
||||
- Round damage rectangles properly
|
||||
- Use the shared context when creating textures
|
||||
- Fix a file descriptor leak in dmabuf export
|
||||
|
||||
* Vulkan:
|
||||
- Round damage rectangles properly
|
||||
|
||||
* Wayland:
|
||||
- Work with the kwin implementation of xx-color-management-v4
|
||||
|
||||
* Windows:
|
||||
- Make gtk_show_uri use SHOpenWithDialog()
|
||||
- Enable incremental rendering with WGL
|
||||
|
||||
* Macos:
|
||||
- Open context menus on Ctrl-left click
|
||||
|
||||
* Debugging:
|
||||
- Show color state information in the inspector
|
||||
- Collect input event traces in the recorder
|
||||
- Add shortcuts for toggling recording: Super-r
|
||||
and for screenshots: Super-c
|
||||
- Split the GDK_DEBUG env var into GDK_DEBUG and GDK_DISABLE
|
||||
- Add GDK_DISABLE=color-mgmt and GDK_DISABLE=offload
|
||||
|
||||
* Tools:
|
||||
- Add a 'Paste as node' action in gtk4-node-editor
|
||||
|
||||
* Translations updates
|
||||
Basque
|
||||
Belarusian
|
||||
Brazilian Portuguese
|
||||
Chinese (China)
|
||||
Georgian
|
||||
Hebrew
|
||||
Hindi
|
||||
Russian
|
||||
Slovenian
|
||||
Turkish
|
||||
Ukrainian
|
||||
|
||||
|
||||
Overview of Changes in 4.15.5, 11-08-2024
|
||||
=========================================
|
||||
|
||||
* GtkTextView:
|
||||
- ADd GtkTextBufferCommitNotify
|
||||
|
||||
* CSS:
|
||||
- Propagate color state information to GSK for many features:
|
||||
colors, borders, shadows, text
|
||||
|
||||
* Gdk:
|
||||
- Fix an fd leak in the Vulkan code
|
||||
- Fix a leak of EGLSurfaces and DMA buffers
|
||||
- Set the opaque region of surfaces automatically based on their content
|
||||
|
||||
* Gsk:
|
||||
- Fix Emoji rendering in Vulkan
|
||||
- Rework color handling to take color states into account
|
||||
- Implement more powerful occlusion culling
|
||||
- Minimize our use of renderpasses
|
||||
|
||||
* Macos:
|
||||
- Fix window transparency
|
||||
|
||||
* Debugging:
|
||||
- The inspector shows details about color states
|
||||
|
||||
* Deprecations:
|
||||
- gdk_draw_context_begin/end_frame
|
||||
- gdk_surface_set_opaque_region
|
||||
|
||||
* Build:
|
||||
- Require gstreamer 1.24
|
||||
|
||||
* Translation updates
|
||||
Romanian
|
||||
|
||||
|
||||
Overview of Changes in 4.15.4, 30-07-2024
|
||||
=========================================
|
||||
|
||||
* GtkPopover:
|
||||
- Fix size allocation with wrapping labels
|
||||
|
||||
* GtkColumnView:
|
||||
- Check column visibility when measuring
|
||||
|
||||
* CSS:
|
||||
- Fix fallout from recent changes
|
||||
- Make implementation of currentcolor inheritance match browsers
|
||||
|
||||
* Gdk:
|
||||
- Introduce GdkColorState for encoding color space information
|
||||
Currently, we support srgb, srgb-linear, rec2100-pq and rec2100-linear
|
||||
- Add color states to GdkTexture, as well as to the texture builder
|
||||
and downloader objects, and convert as necessary
|
||||
- Add GdkMemoryTextureBuilder
|
||||
- Attach color states when loading or saving textures
|
||||
- Add GdkCicpParams to create color state objects for cicp tuples
|
||||
- Drop GDK_DEBUG=vulkan-validate
|
||||
Use VK_INSTEANCE_LAYERS=VK_LAYER_KHRONOS_validation instead
|
||||
|
||||
* Gsk:
|
||||
- Improve caching of glyphs and textures
|
||||
- Remove the uber shader
|
||||
- Numerous bug fixes
|
||||
- Fix corner cases in offload handling
|
||||
- Implement occlusion culling for opaque content
|
||||
- Allow offloading (some) transformed textures
|
||||
- Take colorstate into account when compositing
|
||||
- Add GDK_DEBUG=linear to opt into linear compositing
|
||||
- Implement tiling for large textures
|
||||
- Stop using descriptors and go back to simpler texture
|
||||
management that should work better with older GL
|
||||
- Use correct shader clip mode for glyphs
|
||||
- Improve shadow rendering
|
||||
|
||||
* Media:
|
||||
- Attach color states to textures obtained from gstreamer
|
||||
|
||||
* Wayland:
|
||||
- Allow offloading GL textures via dmabuf export
|
||||
- Suppot the xx-color-management-v4 protocol
|
||||
|
||||
* Deprecations:
|
||||
- GskGLShader and the render node
|
||||
|
||||
* Tools:
|
||||
- Improve the rendernode tool extract command
|
||||
- Add an image tool that is about manipulating textures
|
||||
|
||||
* Build:
|
||||
- GTK now requires a C11 compiler
|
||||
|
||||
* Translation updates
|
||||
Georgian
|
||||
Hebrew
|
||||
Hindi
|
||||
Occitan
|
||||
Slovenian
|
||||
|
||||
|
||||
Overview of Changes in 4.15.3, 29-06-2024
|
||||
=========================================
|
||||
|
||||
* Accessibility:
|
||||
- Only emit notifications when cursor positions change in GtkText
|
||||
- Fix handling of help text properties
|
||||
|
||||
* CSS:
|
||||
- Fix some crashes introduced in recent currentcolor changes
|
||||
|
||||
* DND:
|
||||
- Avoid a critical
|
||||
|
||||
* Documentation:
|
||||
- Fix many oversights and missing docs
|
||||
|
||||
* maxOS:
|
||||
- Add native keyboard shortcuts
|
||||
|
||||
|
||||
Overview of Changes in 4.15.2, 28-06-2024
|
||||
=========================================
|
||||
|
||||
* GtkFileChooserWidget:
|
||||
- Plug some memory leaks
|
||||
- Make Ctrl-Shift-N create a new folder
|
||||
|
||||
* GtkPopover:
|
||||
- Handle resizing and position changes better
|
||||
|
||||
* CSS:
|
||||
- Support color(), oklab(), etc (https://www.w3.org/TR/css-color-4/)
|
||||
- Support color-mix() (https://www.w3.org/TR/css-color-5/)
|
||||
- Support relative colors (https://www.w3.org/TR/css-color-5/)
|
||||
- Support more colorspaces in color()
|
||||
- Allow percentages for opacity
|
||||
- Handle currentcolor more correctly
|
||||
|
||||
* Accessibility:
|
||||
- Avoid markup when reading labels
|
||||
|
||||
* GSK:
|
||||
- Subset fonts when serializing node trees
|
||||
- Make ngl export render_texture results as dmabufs
|
||||
|
||||
* Wayland:
|
||||
- Use xdg-dialog protocol for attached dialogs
|
||||
|
||||
* Windows:
|
||||
- Build with UNICODE
|
||||
|
||||
* macOS:
|
||||
- Implement fullscreen-on-monitor
|
||||
|
||||
* Documentation:
|
||||
- Widget shortcuts and actions are now described in the docs
|
||||
|
||||
* Debugging:
|
||||
- Add GTK_DEBUG=css for warning about deprecated css syntax
|
||||
|
||||
* Tools:
|
||||
- rendernode-tool: Add an extract command for data urls
|
||||
|
||||
* Deprecations:
|
||||
- CSS Color functions shade(), lighter(), darker(), alpha(), mix()
|
||||
|
||||
* Translation updates:
|
||||
Czech
|
||||
Hebrew
|
||||
Serbian
|
||||
|
||||
|
||||
Overview of Changes in 4.15.1, 21-05-2024
|
||||
=========================================
|
||||
|
||||
* GtkGraphicsOffload:
|
||||
- Don't crash without a child
|
||||
|
||||
* GtkSpinner:
|
||||
- Don't animate when unmapped
|
||||
|
||||
* CSS:
|
||||
- Support the :root selector
|
||||
- Support variables and custom properties (https://www.w3.org/TR/css-variables-1/)
|
||||
- Implement math functions (https://www.w3.org/TR/css-values-4/)
|
||||
- Support modern syntax and calc in rgb() and hsl()
|
||||
|
||||
* Icontheme:
|
||||
- Make symbolic svg loading more efficient
|
||||
- Handle color-free symbolics more efficiently
|
||||
|
||||
* Accessibility:
|
||||
- Make the gtk-demo sidebar search more accessible
|
||||
- Stop emitting focus events
|
||||
- Realize child contexts when necessary
|
||||
|
||||
* GDK:
|
||||
- Support XDG_ACTIVATION_TOKEN
|
||||
- dmabuf: Be more defensive when importing unknown formats to GL
|
||||
- dmabuf: Use narrow range for YUV
|
||||
- vulkan: Recreate swapchains when necessary or beneficial
|
||||
|
||||
* GSK:
|
||||
- Improve logging for GDK_DEBUG=offload
|
||||
- Improve logging for GSK_DEBUG=renderer
|
||||
- gpu: Warn about inefficient texture import
|
||||
- gpu: Handle tiny offscreens correctly
|
||||
- vulkan: Add profiler marks in various places
|
||||
- vulkan: Fix a problem with imported dmabufs showing up black
|
||||
- cairo: Speed up mask nodes, since we use them for symbolic icons
|
||||
|
||||
* Wayland:
|
||||
- Use wl_compositor version 6
|
||||
|
||||
* X11:
|
||||
- Implement a missing method
|
||||
|
||||
* Build:
|
||||
- Fix many ubsan warnings
|
||||
|
||||
* Debugging:
|
||||
- Show more texture details in the recorder
|
||||
- Use GTK_DEBUG=css to see CSS deprecations
|
||||
|
||||
* macOS:
|
||||
- Fix problems with events handed back to the OS
|
||||
- Respect GDK_DEBUG=default-settings
|
||||
- Allow applictions to handle Dock > Quit
|
||||
|
||||
* Deprecations:
|
||||
- Use of @name colors in CSS
|
||||
|
||||
* Translation updates:
|
||||
Catalan
|
||||
Georgian
|
||||
Hungarian
|
||||
Korean
|
||||
Portuguese
|
||||
Turkish
|
||||
|
||||
|
||||
Overview of Changes in 4.15.0, 21-04-2024
|
||||
=========================================
|
||||
|
||||
This release changes the default GSK renderer to be Vulkan, on
|
||||
Wayland. Other platforms still use ngl.
|
||||
|
||||
The intent of this change is to get wider testing and verify that
|
||||
Vulkan drivers are good enough for us to rely on. If significant
|
||||
problems show up, we will revert this change for 4.16.
|
||||
|
||||
You can still override the renderer choice using the GSK_RENDERER
|
||||
environment variable.
|
||||
|
||||
---
|
||||
|
||||
This release also changes font rendering settings by introducing
|
||||
a new high-level gtk-font-rendering settings which gives GTK more
|
||||
freedom to decide on font rendering.
|
||||
|
||||
You can still use the low-level font-related settings by changing
|
||||
the new property to 'manual'.
|
||||
|
||||
---
|
||||
|
||||
* GtkColumnView:
|
||||
- Fix infinite loops in dispose
|
||||
- Fix problems with weak ref cycles in GtkExpression
|
||||
|
||||
* GtkListView:
|
||||
* GtkShortcutManager:
|
||||
- Track the propagation phase of added controllers
|
||||
|
||||
* GtkGLArea:
|
||||
- Produce dmabuf textures, so graphics offload is possible
|
||||
|
||||
* GtkTextView:
|
||||
- Support text shadows
|
||||
|
||||
* GtkGraphicsOffload:
|
||||
- Add a black-background property
|
||||
|
||||
* Settings:
|
||||
- Add a new gtk-font-rendering setting
|
||||
|
||||
* Accessibility:
|
||||
- Add support for GetRangeExtents to GtkAccessibleText
|
||||
- Add support for GetOffsetAtPoint to GtkAccessibleText
|
||||
- Implement GtkAccessibleRange for scrollbars
|
||||
|
||||
* GDK:
|
||||
- Add a callback-based cursor API
|
||||
|
||||
* GSK:
|
||||
- Use the Vulkan renderer by default
|
||||
- Avoid an infinite recursion with offscreens in some cases
|
||||
- Optimize graphics offload to make it more likely that compositors
|
||||
can use direct scanout
|
||||
|
||||
* X11:
|
||||
- Fix some confusing debug messages
|
||||
- Drop a no-longer-relevant optimization that was interfering with
|
||||
getting the current window manager capabilities
|
||||
|
||||
* macOS:
|
||||
- Implement the color picker for macOS 10.15+
|
||||
|
||||
* Debugging:
|
||||
- Snow monitor resolution in the inspector
|
||||
|
||||
* Demos:
|
||||
- Use graphics offload in the shadertoy demo
|
||||
- Show more reliable fps numbers in the fishbowl demo
|
||||
|
||||
* Tools:
|
||||
- Support generating pdf in gtk4-rendernode-tool
|
||||
|
||||
* Build:
|
||||
- Require pango 1.52
|
||||
- Require cairo 1.18
|
||||
- Add a missing dependency that was causing build failures
|
||||
- Drop deprecated build options:
|
||||
gtk_doc -> documentation
|
||||
update_screenshots -> screenshots
|
||||
demo-profile -> profile
|
||||
demos -> build-demos
|
||||
|
||||
* Deprecations:
|
||||
- gdk_widget_set/get_font_options
|
||||
- gdk_wayland/x11_display_set_cursor_theme
|
||||
|
||||
* Translation updates:
|
||||
Basque
|
||||
Brazilian Portuguese
|
||||
British English
|
||||
Chinese (China)
|
||||
Hebrew
|
||||
Kabyle
|
||||
Persian
|
||||
Polish
|
||||
Russian
|
||||
Slovenian
|
||||
Swedish
|
||||
Turkish
|
||||
|
||||
|
||||
Overview of Changes in 4.14.2, 03-04-2024
|
||||
=========================================
|
||||
|
||||
* GtkScale:
|
||||
- Improve positioning of values in some cases
|
||||
|
||||
* Theme:
|
||||
- Make progress in entries visible
|
||||
|
||||
* Accessibility:
|
||||
- Fix text insertion handling
|
||||
|
||||
* GDK:
|
||||
- dnd: Use the default cursor durion motion
|
||||
- dnd: Use a better cursor for indicating the move action
|
||||
|
||||
* GSK:
|
||||
- gl: Handle offloads in offscreen context better
|
||||
- Fix text rendering problems with some fonts
|
||||
|
||||
* Wayland:
|
||||
- Tighten up some protocol version checks
|
||||
- Use the presentation time protocol
|
||||
- Fix a crash with subsurfaces
|
||||
- Improve settings portal handling
|
||||
|
||||
* macOS:
|
||||
- Fix up the app menu support
|
||||
|
||||
* Windows:
|
||||
- Fix problems with minimization
|
||||
- Fix build without fontconfig
|
||||
|
||||
* Debugging:
|
||||
- Add font settings in the inspector
|
||||
|
||||
* Demos:
|
||||
- Clean up the application demo
|
||||
- Update cursor images for the cursor demo
|
||||
|
||||
* Translation updates:
|
||||
Catalan
|
||||
Czech
|
||||
French
|
||||
Georgian
|
||||
Hebrew
|
||||
Persian
|
||||
Slovenian
|
||||
Turkish
|
||||
Ukrainian
|
||||
|
||||
|
||||
Overview of Changes in 4.14.1, 16-03-2024
|
||||
=========================================
|
||||
|
||||
* GtkTextView:
|
||||
- Fix a mixup of cursor and anchor when retrieving surrounding text
|
||||
in input methods
|
||||
|
||||
* Printing:
|
||||
- Avoid accessing freed printers
|
||||
|
||||
* Accessibility:
|
||||
- Fix memory leaks
|
||||
|
||||
* GDK:
|
||||
- Rename the GDK_VULKAN_SKIP environment variable to GDK_VULKAN_DISABLE
|
||||
- Add a GDK_GL_DISABLE environment variable
|
||||
|
||||
* GSK:
|
||||
- Rename the GSK_GPU_SKIP environment variable to GSK_GPU_DISABLE
|
||||
- Speed up handling of repeated ops, which should help for text
|
||||
- Speed up the inner loop of text node conversion
|
||||
- Drop the glyph-align optimization flag
|
||||
- ngl: Avoid reusing frames while they are in use
|
||||
- Fix flickering thumbnails in nautilus
|
||||
- Speed up buffer handling in both ngl and Vulkan
|
||||
|
||||
* Demos:
|
||||
- Skip demos using gl shaders when we're not using the gl renderer
|
||||
|
||||
* Build:
|
||||
- Fix some ubsan warnings
|
||||
- Avoid zink in ci since it spams stderr
|
||||
|
||||
* Translation updates:
|
||||
Czech
|
||||
German
|
||||
Korean
|
||||
Russian
|
||||
|
||||
|
||||
Overview of Changes in 4.14.0, 12-03-2024
|
||||
=========================================
|
||||
|
||||
Note: The new renderers and dmabuf support are using graphics drivers
|
||||
in different ways than the old gl renderer, and trigger new driver bugs,
|
||||
(see for example https://gitlab.gnome.org/GNOME/gtk/-/issues/6418 and
|
||||
https://gitlab.gnome.org/GNOME/gtk/-/issues/6388). Therefore, it is
|
||||
recommended to use the latest mesa release (24.x) with the new renderers.
|
||||
|
||||
* GtkTextView:
|
||||
- Don't snapshot children twice
|
||||
- Don't blink the cursor when hidden
|
||||
|
||||
* GtkEmojiChooser:
|
||||
- Fix presentation selector handling
|
||||
|
||||
* GtkSnapshot:
|
||||
- Fix wrong nodes with transformed shadows
|
||||
|
||||
* GtkIMContext:
|
||||
- Make gtk_im_context_activate_osk public
|
||||
|
||||
* Accessibility:
|
||||
- Implement get_contents_at for all our text widgets
|
||||
- Add GtkAccessibleText.get_default_attributes
|
||||
|
||||
* GSK:
|
||||
- Don't fall back to cairo for software rendering. gl+llvmpipe is better
|
||||
- Round vertical glyph position to a device pixel position if the font is hinted
|
||||
- Fix problems with clip handling
|
||||
- Make vulkan and ngl match their font handling
|
||||
- Fix some corner-cases with offloading and clips
|
||||
- Fix problem with rendering of missing glyphs in hinted fonts
|
||||
|
||||
* MacOs:
|
||||
- Implement cursor-from-texture
|
||||
|
||||
* Translation updates:
|
||||
Basque
|
||||
British English
|
||||
French
|
||||
Indonesian
|
||||
Kazakh
|
||||
Latvian
|
||||
Lithuanian
|
||||
Norwegian Bokmål
|
||||
Slovenian
|
||||
Spanish
|
||||
Turkish
|
||||
|
||||
|
||||
Overview of Changes in 4.13.9, 02-03-2024
|
||||
=========================================
|
||||
|
||||
* GtkEditable:
|
||||
- Fix preconditions to be not too strict
|
||||
|
||||
* GtkEmojiChooser:
|
||||
- Support search in the locale as well as in English
|
||||
|
||||
* GtkIconTheme:
|
||||
- Make gtk_icon_paintable_new_for_file support symbolics
|
||||
|
||||
* GtkVideo:
|
||||
- Fix a problem with cursor handling that could lead to crashes
|
||||
|
||||
* Accessibility:
|
||||
- Fix GetCharacterAtOffset implementation
|
||||
- Add a Terminal role
|
||||
- Make TextCaretMoved match gtk3
|
||||
- Support multiple levels of GtkEditable delegates
|
||||
|
||||
* GSK:
|
||||
- Make the node parser more flexible for text nodes
|
||||
- Change the way font scaling is handled to avoid clipping
|
||||
- Fix handling of missing glyphs in the new renderers
|
||||
|
||||
* X11:
|
||||
- Don't claim to support shadows without a compositor
|
||||
|
||||
* Wayland:
|
||||
- Fix handling of output scales
|
||||
|
||||
* Tools:
|
||||
- Add a compare command to gtk4-rendernode-tool
|
||||
|
||||
* Build:
|
||||
- Fix some ubsan complaints
|
||||
|
||||
* Translation updates:
|
||||
Basque
|
||||
British English
|
||||
Catalan
|
||||
Finnish
|
||||
Galician
|
||||
Georgian
|
||||
Hebrew
|
||||
Indonesian
|
||||
Kazakh
|
||||
Latvian
|
||||
Lithuanian
|
||||
Persian
|
||||
Polish
|
||||
Russian
|
||||
Slovenian
|
||||
Spanish
|
||||
Turkish
|
||||
Ukrainian
|
||||
|
||||
|
||||
Overview of Changes in 4.13.8, 20-02-2024
|
||||
=========================================
|
||||
|
||||
* Accessibility:
|
||||
- Add a GtkAccessibleText interface for allowing 3rd party
|
||||
text widgets (notably vte) to be accessible
|
||||
- Avoid duplicate accessible descriptions
|
||||
- Fix GetAccessibleAtPoint
|
||||
|
||||
* GSK:
|
||||
- Avoid offscreens for disjoint containers
|
||||
- Don't use the gpu renderers with llvmpipe
|
||||
- Fix various rendering issues found by tests
|
||||
- Allow unnormalized node bounds again
|
||||
- Fix a broken case of rounded-rect intersection
|
||||
- Fix handling of external textures in gpu renderers
|
||||
- Make gpu renderers work with WGL on Windows
|
||||
|
||||
* build:
|
||||
- Allow building without dmabuf support on (old) Linux
|
||||
|
||||
* X11:
|
||||
- Fix monitor enter/leave signals
|
||||
|
||||
* Translation updates:
|
||||
Basque
|
||||
Brazilian Portuguese
|
||||
Catalan
|
||||
Czech
|
||||
Galician
|
||||
Georgian
|
||||
Hebrew
|
||||
Lithuanian
|
||||
Persian
|
||||
Russian
|
||||
Turkish
|
||||
Ukrainian
|
||||
|
||||
|
||||
Overview of Changes in 4.13.7, 11-02-2024
|
||||
=========================================
|
||||
|
||||
* GtkFileChooser:
|
||||
- Speed up opening
|
||||
|
||||
* GtkCalendar:
|
||||
- Add some missing setters and getters
|
||||
|
||||
* Accessibility:
|
||||
- Add socket support for webkit accessibility
|
||||
- Implement AT-SPI text for GtkText
|
||||
- Implement AT-SPI component generically
|
||||
- Add an announce API
|
||||
|
||||
* GSK:
|
||||
- Make the ngl renderer work on macOS
|
||||
- Fix a crash in the vulkan renderer
|
||||
- Make nodeparser allow aliases for fonts again
|
||||
- Implement cache eviction for glyph and texture caches
|
||||
- Fix ngl shaders to work on GL < 4.0
|
||||
- Require GL 3.3 for the ngl renderer
|
||||
- Fix problems with scaled shadows
|
||||
- Fix problems with holes for underlaid subsurfaces
|
||||
- Improve handling of scales and glyph cache efficiency
|
||||
|
||||
* Media:
|
||||
- Support dmabufs in the gstreamer backend. This allows
|
||||
zero-copy video playback on Wayland when paired with
|
||||
hardware video decoding
|
||||
- Drop the experimental ffmpeg backend. It hasn't been
|
||||
building for a year
|
||||
|
||||
* Wayland:
|
||||
- Commit empty frames if and double-buffered state is pending
|
||||
- Fix monitor size information when using mutter without
|
||||
the scale-monitor-framebuffer setting
|
||||
- Clear the current tablet on tab leave, fixing a crash
|
||||
|
||||
* macOS:
|
||||
- Propagate unhandled input events back to the OS
|
||||
|
||||
* Tools:
|
||||
- Make the crash handling in gtk4-node-editor more robust
|
||||
|
||||
* Translation updates
|
||||
Galician
|
||||
Georgian
|
||||
Occitan
|
||||
Turkish
|
||||
|
||||
|
||||
Overview of Changes in 4.13.6, 25-01-2024
|
||||
=========================================
|
||||
|
||||
This release changes the ngl renderer to be the default renderer.
|
||||
|
||||
The intent of this change is to get wider testing and verify that
|
||||
the new renderers are production-ready. If significant problems
|
||||
show up, we will revert this change for 4.14.
|
||||
|
||||
You can still override the renderer choice using the GSK_RENDERER
|
||||
environment variable.
|
||||
|
||||
Since ngl can handle fractional scaling much better than the old gl
|
||||
renderer, we allow fractional scaling by default with gl now. If you
|
||||
are using the old gl renderer (e.g. because your system is limited to
|
||||
GLES2), you can disable fractional scaling by setting the GDK_DEBUG
|
||||
environment variable to include the gl-no-fractional key.
|
||||
|
||||
* GtkColumnView:
|
||||
- Fix infinite loops in dispose
|
||||
- Fix problems with weak ref cycles in GtkExpression
|
||||
|
||||
* GtkListView:
|
||||
- Fix some corner cases with sections during insertions and deletions
|
||||
- Don't double-recycle widgets
|
||||
|
||||
* GtkStack:
|
||||
- Add automatic cleanup for GtkStackPage
|
||||
|
||||
* GDK:
|
||||
- Use standard cursor names for drag cursors
|
||||
- Enable fractional scaling with gl by default
|
||||
|
||||
* GSK:
|
||||
- Many fixes and improvements to the unified renderers:
|
||||
- Fix text rendering with the uber shader
|
||||
- Fix rounding issues with fractional scales
|
||||
- Fix some memory leaks
|
||||
- Many text rendering fixes
|
||||
- Implement subpixel positioning for glyphs
|
||||
- Support custom fonts in node files
|
||||
- Add tests for font rendering
|
||||
- Fix drawing of repeat nodes
|
||||
- Implement subpixels positioning
|
||||
- Evict stale textures, glyphs and atlases from the cache
|
||||
- Some fixes and improvements to the GL renderer:
|
||||
- Fix problems with GLES on Nvidia
|
||||
- Avoid a crash in the mask demo
|
||||
- Respect opacity of the first child node in containers
|
||||
- Some fixes and improvements to the fallback renderer:
|
||||
- Fix drawing of repeat nodes
|
||||
- Make ngl the default renderer
|
||||
|
||||
* Wayland:
|
||||
- Fix problems with tablet cursors
|
||||
- Fix problems without seats
|
||||
|
||||
* Accessibility:
|
||||
- Respect a separate "show-status-shapes setting
|
||||
- Fix change notification for accessible names on some widgets
|
||||
|
||||
* Inspector:
|
||||
- Show the git commit in devel builds
|
||||
|
||||
* Tools:
|
||||
- Make gtk4-node-editor autosave its contents
|
||||
- Add a benchmark command to gtk4-rendernode-tool
|
||||
|
||||
* Translation updates:
|
||||
French
|
||||
Galician
|
||||
Georgian
|
||||
Occitan
|
||||
Persian
|
||||
Russian
|
||||
Vietnamese
|
||||
|
||||
|
||||
Overview of Changes in 4.13.5, 07-01-2024
|
||||
=========================================
|
||||
|
||||
|
17
README.md
@@ -39,18 +39,21 @@ Nightly documentation can be found at
|
||||
- Gsk: https://gnome.pages.gitlab.gnome.org/gtk/gsk4/
|
||||
|
||||
Nightly flatpaks of our demos can be installed from the
|
||||
[GNOME Nightly](https://wiki.gnome.org/Apps/Nightly) repository:
|
||||
- `flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo`
|
||||
- `flatpak install gnome-nightly org.gtk.Demo4`
|
||||
- `flatpak install gnome-nightly org.gtk.WidgetFactory4`
|
||||
- `flatpak install gnome-nightly org.gtk.IconBrowser4`
|
||||
[GNOME Nightly](https://nightly.gnome.org/) repository:
|
||||
|
||||
```sh
|
||||
flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
|
||||
flatpak install gnome-nightly org.gtk.Demo4
|
||||
flatpak install gnome-nightly org.gtk.WidgetFactory4
|
||||
flatpak install gnome-nightly org.gtk.IconBrowser4
|
||||
```
|
||||
|
||||
Building and installing
|
||||
-----------------------
|
||||
|
||||
In order to build GTK you will need:
|
||||
|
||||
- [a C99 compatible compiler](https://wiki.gnome.org/Projects/GLib/CompilerRequirements)
|
||||
- [a C11 compatible compiler](https://gitlab.gnome.org/GNOME/glib/-/blob/main/docs/toolchain-requirements.md)
|
||||
- [Python 3](https://www.python.org/)
|
||||
- [Meson](http://mesonbuild.com)
|
||||
- [Ninja](https://ninja-build.org)
|
||||
@@ -125,7 +128,7 @@ version, for example `gtk-4-10`.
|
||||
How to report bugs
|
||||
------------------
|
||||
|
||||
Bugs should be reported on the [issues page](https://gitlab.gnome.org/GNOME/gtk/issues/new).
|
||||
Bugs should be reported on the [issues page](https://gitlab.gnome.org/GNOME/gtk/issues/).
|
||||
|
||||
In the bug report please include:
|
||||
|
||||
|
@@ -185,9 +185,8 @@
|
||||
"builddir" : true,
|
||||
"config-opts" : [
|
||||
"--libdir=/app/lib",
|
||||
"-Dvulkan=disabled",
|
||||
"-Dbuildtype=debugoptimized",
|
||||
"-Ddemo-profile=devel"
|
||||
"-Dprofile=devel"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
|
@@ -114,9 +114,8 @@
|
||||
"builddir" : true,
|
||||
"config-opts" : [
|
||||
"--libdir=/app/lib",
|
||||
"-Dvulkan=disabled",
|
||||
"-Dbuildtype=debugoptimized",
|
||||
"-Ddemo-profile=devel"
|
||||
"-Dprofile=devel"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
|
@@ -114,9 +114,8 @@
|
||||
"builddir" : true,
|
||||
"config-opts" : [
|
||||
"--libdir=/app/lib",
|
||||
"-Dvulkan=disabled",
|
||||
"-Dbuildtype=debugoptimized",
|
||||
"-Ddemo-profile=devel"
|
||||
"-Dprofile=devel"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
@@ -131,7 +130,6 @@
|
||||
"env" : {
|
||||
"DBUS_SESSION_BUS_ADDRESS" : "''",
|
||||
"GSK_RENDERER" : "opengl",
|
||||
"GDK_DEBUG" : "vulkan-disable",
|
||||
"G_ENABLE_DEBUG" : "true"
|
||||
}
|
||||
}
|
||||
|
@@ -114,9 +114,8 @@
|
||||
"builddir" : true,
|
||||
"config-opts" : [
|
||||
"--libdir=/app/lib",
|
||||
"-Dvulkan=disabled",
|
||||
"-Dbuildtype=debugoptimized",
|
||||
"-Ddemo-profile=devel"
|
||||
"-Dprofile=devel"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
@@ -131,7 +130,6 @@
|
||||
"env" : {
|
||||
"DBUS_SESSION_BUS_ADDRESS" : "''",
|
||||
"GSK_RENDERER" : "opengl",
|
||||
"GDK_DEBUG" : "vulkan-disable",
|
||||
"G_ENABLE_DEBUG" : "true"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
@@ -15,12 +15,54 @@ on_destroy (gpointer data)
|
||||
window = NULL;
|
||||
}
|
||||
|
||||
static GdkTexture *
|
||||
cursor_callback (GdkCursor *cursor,
|
||||
int cursor_size,
|
||||
double scale,
|
||||
int *width,
|
||||
int *height,
|
||||
int *hotspot_x,
|
||||
int *hotspot_y,
|
||||
gpointer data)
|
||||
{
|
||||
GdkPixbuf *pixbuf;
|
||||
GdkTexture *texture;
|
||||
GError *error = NULL;
|
||||
int scaled_size;
|
||||
|
||||
scaled_size = ceil (cursor_size * scale);
|
||||
|
||||
pixbuf = gdk_pixbuf_new_from_resource_at_scale ("/cursors/images/gtk-logo.svg",
|
||||
scaled_size, scaled_size,
|
||||
TRUE,
|
||||
&error);
|
||||
if (!pixbuf)
|
||||
{
|
||||
g_print ("%s\n", error->message);
|
||||
g_error_free (error);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
texture = gdk_texture_new_for_pixbuf (pixbuf);
|
||||
|
||||
g_object_unref (pixbuf);
|
||||
|
||||
*width = cursor_size;
|
||||
*height = cursor_size;
|
||||
*hotspot_x = 18 * cursor_size / 32.0;
|
||||
*hotspot_y = 2 * cursor_size / 32.0;
|
||||
|
||||
return texture;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
do_cursors (GtkWidget *do_widget)
|
||||
{
|
||||
if (!window)
|
||||
{
|
||||
GtkBuilder *builder;
|
||||
GtkWidget *logo_callback;
|
||||
GdkCursor *cursor;
|
||||
|
||||
builder = gtk_builder_new_from_resource ("/cursors/cursors.ui");
|
||||
window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));
|
||||
@@ -29,6 +71,10 @@ do_cursors (GtkWidget *do_widget)
|
||||
gtk_widget_get_display (do_widget));
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (on_destroy), NULL);
|
||||
logo_callback = GTK_WIDGET (gtk_builder_get_object (builder, "logo_callback"));
|
||||
cursor = gdk_cursor_new_from_callback (cursor_callback, NULL, NULL, NULL);
|
||||
gtk_widget_set_cursor (logo_callback, cursor);
|
||||
g_object_unref (cursor);
|
||||
g_object_unref (builder);
|
||||
}
|
||||
|
||||
|
@@ -116,6 +116,7 @@
|
||||
<file>w_resize_cursor.png</file>
|
||||
<file>zoom_in_cursor.png</file>
|
||||
<file>zoom_out_cursor.png</file>
|
||||
<file>gtk-logo.svg</file>
|
||||
</gresource>
|
||||
<gresource prefix="/dnd">
|
||||
<file>dnd.css</file>
|
||||
@@ -453,6 +454,9 @@
|
||||
<file>icons/16x16/categories/applications-other.png</file>
|
||||
<file>icons/48x48/status/starred.png</file>
|
||||
<file alias="icons/scalable/apps/org.gtk.Demo4.svg">data/scalable/apps/org.gtk.Demo4.svg</file>
|
||||
<file>portland-rose-thumbnail.png</file>
|
||||
<file>large-image-thumbnail.png</file>
|
||||
<file compressed="true">large-image.png</file>
|
||||
</gresource>
|
||||
<gresource prefix="/org/gtk/Demo4/gtk">
|
||||
<file preprocess="xml-stripblanks">help-overlay.ui</file>
|
||||
|
@@ -55,7 +55,7 @@ mode_switch_state_set (GtkSwitch *sw,
|
||||
{
|
||||
gtk_widget_set_visible (label, TRUE);
|
||||
gtk_accessible_update_relation (GTK_ACCESSIBLE (sw),
|
||||
GTK_ACCESSIBLE_RELATION_ERROR_MESSAGE, label,
|
||||
GTK_ACCESSIBLE_RELATION_ERROR_MESSAGE, label, NULL,
|
||||
-1);
|
||||
gtk_accessible_update_state (GTK_ACCESSIBLE (sw),
|
||||
GTK_ACCESSIBLE_STATE_INVALID, GTK_ACCESSIBLE_INVALID_TRUE,
|
||||
|
@@ -170,6 +170,7 @@ update_paintable (GtkWidget *widget,
|
||||
static GtkWidget *
|
||||
create_cogs (void)
|
||||
{
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
GtkWidget *picture;
|
||||
static GskGLShader *cog_shader = NULL;
|
||||
GdkPaintable *paintable;
|
||||
@@ -182,6 +183,13 @@ create_cogs (void)
|
||||
gtk_widget_add_tick_callback (picture, update_paintable, NULL, NULL);
|
||||
|
||||
return picture;
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
}
|
||||
|
||||
static gboolean
|
||||
check_cogs (GtkFishbowl *fb)
|
||||
{
|
||||
return GSK_IS_GL_RENDERER (gtk_native_get_renderer (gtk_widget_get_native (GTK_WIDGET (fb))));
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -218,36 +226,41 @@ create_graph (void)
|
||||
|
||||
static const struct {
|
||||
const char *name;
|
||||
GtkWidget * (*create_func) (void);
|
||||
GtkWidget * (* create_func) (void);
|
||||
gboolean (* check) (GtkFishbowl *fb);
|
||||
} widget_types[] = {
|
||||
{ "Icon", create_icon },
|
||||
{ "Button", create_button },
|
||||
{ "Blurbutton", create_blurred_button },
|
||||
{ "Fontbutton", create_font_button },
|
||||
{ "Levelbar", create_level_bar },
|
||||
{ "Label", create_label },
|
||||
{ "Spinner", create_spinner },
|
||||
{ "Spinbutton", create_spinbutton },
|
||||
{ "Video", create_video },
|
||||
{ "Gears", create_gears },
|
||||
{ "Switch", create_switch },
|
||||
{ "Menubutton", create_menu_button },
|
||||
{ "Shader", create_cogs },
|
||||
{ "Tiger", create_tiger },
|
||||
{ "Graph", create_graph },
|
||||
{ "Icon", create_icon, NULL },
|
||||
{ "Button", create_button, NULL },
|
||||
{ "Blurbutton", create_blurred_button, NULL },
|
||||
{ "Fontbutton", create_font_button, NULL },
|
||||
{ "Levelbar", create_level_bar, NULL },
|
||||
{ "Label", create_label, NULL },
|
||||
{ "Spinner", create_spinner, NULL },
|
||||
{ "Spinbutton", create_spinbutton, NULL },
|
||||
{ "Video", create_video, NULL },
|
||||
{ "Gears", create_gears, NULL },
|
||||
{ "Switch", create_switch, NULL },
|
||||
{ "Menubutton", create_menu_button, NULL },
|
||||
{ "Shader", create_cogs, check_cogs },
|
||||
{ "Tiger", create_tiger, NULL },
|
||||
{ "Graph", create_graph, NULL },
|
||||
};
|
||||
|
||||
static int selected_widget_type = -1;
|
||||
static const int N_WIDGET_TYPES = G_N_ELEMENTS (widget_types);
|
||||
|
||||
static void
|
||||
static gboolean
|
||||
set_widget_type (GtkFishbowl *fishbowl,
|
||||
int widget_type_index)
|
||||
{
|
||||
GtkWidget *window;
|
||||
|
||||
if (widget_type_index == selected_widget_type)
|
||||
return;
|
||||
return TRUE;
|
||||
|
||||
if (widget_types[widget_type_index].check != NULL &&
|
||||
!widget_types[widget_type_index].check (fishbowl))
|
||||
return FALSE;
|
||||
|
||||
selected_widget_type = widget_type_index;
|
||||
|
||||
@@ -257,6 +270,8 @@ set_widget_type (GtkFishbowl *fishbowl,
|
||||
window = GTK_WIDGET (gtk_widget_get_root (GTK_WIDGET (fishbowl)));
|
||||
gtk_window_set_title (GTK_WINDOW (window),
|
||||
widget_types[selected_widget_type].name);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
G_MODULE_EXPORT void
|
||||
@@ -264,14 +279,17 @@ fishbowl_next_button_clicked_cb (GtkButton *source,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkFishbowl *fishbowl = user_data;
|
||||
int new_index;
|
||||
int new_index = selected_widget_type;
|
||||
|
||||
if (selected_widget_type + 1 >= N_WIDGET_TYPES)
|
||||
new_index = 0;
|
||||
else
|
||||
new_index = selected_widget_type + 1;
|
||||
do
|
||||
{
|
||||
if (new_index + 1 >= N_WIDGET_TYPES)
|
||||
new_index = 0;
|
||||
else
|
||||
new_index = new_index + 1;
|
||||
|
||||
set_widget_type (fishbowl, new_index);
|
||||
}
|
||||
while (!set_widget_type (fishbowl, new_index));
|
||||
}
|
||||
|
||||
G_MODULE_EXPORT void
|
||||
@@ -279,14 +297,18 @@ fishbowl_prev_button_clicked_cb (GtkButton *source,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkFishbowl *fishbowl = user_data;
|
||||
int new_index;
|
||||
int new_index = selected_widget_type;
|
||||
|
||||
if (selected_widget_type - 1 < 0)
|
||||
new_index = N_WIDGET_TYPES - 1;
|
||||
else
|
||||
new_index = selected_widget_type - 1;
|
||||
do
|
||||
{
|
||||
if (new_index - 1 < 0)
|
||||
new_index = N_WIDGET_TYPES - 1;
|
||||
else
|
||||
new_index = new_index - 1;
|
||||
|
||||
set_widget_type (fishbowl, new_index);
|
||||
}
|
||||
|
||||
while (!set_widget_type (fishbowl, new_index));
|
||||
}
|
||||
|
||||
G_MODULE_EXPORT void
|
||||
|
@@ -600,8 +600,8 @@ update_display (void)
|
||||
if (s->len > 0)
|
||||
{
|
||||
pango_font_description_set_variations (desc, s->str);
|
||||
g_string_free (s, TRUE);
|
||||
}
|
||||
g_string_free (s, TRUE);
|
||||
|
||||
font_desc = pango_font_description_to_string (desc);
|
||||
|
||||
|
@@ -363,7 +363,9 @@ insert_markup_idle (gpointer data)
|
||||
|
||||
if (g_get_monotonic_time () - begin > G_TIME_SPAN_MILLISECOND)
|
||||
{
|
||||
g_idle_add (insert_markup_idle, data);
|
||||
guint id;
|
||||
id = g_idle_add (insert_markup_idle, data);
|
||||
g_source_set_name_by_id (id, "[gtk-demo] insert_markup_idle");
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
@@ -398,7 +400,9 @@ parse_markup_idle (gpointer data)
|
||||
do {
|
||||
if (g_get_monotonic_time () - begin > G_TIME_SPAN_MILLISECOND)
|
||||
{
|
||||
g_idle_add (parse_markup_idle, data);
|
||||
guint id;
|
||||
id = g_idle_add (parse_markup_idle, data);
|
||||
g_source_set_name_by_id (id, "[gtk-demo] parse_markup_idle");
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
|
@@ -20,6 +20,8 @@
|
||||
#include "gtkshadertoy.h"
|
||||
#include "gskshaderpaintable.h"
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
|
||||
static GtkWidget *demo_window = NULL;
|
||||
|
||||
static void
|
||||
@@ -360,3 +362,5 @@ do_gltransition (GtkWidget *do_widget)
|
||||
|
||||
return demo_window;
|
||||
}
|
||||
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
@@ -22,6 +22,8 @@
|
||||
#include <gtk/gtk.h>
|
||||
#include "gskshaderpaintable.h"
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
|
||||
/**
|
||||
* GskShaderPaintable:
|
||||
*
|
||||
@@ -332,3 +334,5 @@ gsk_shader_paintable_update_time (GskShaderPaintable *self,
|
||||
|
||||
g_bytes_unref (args);
|
||||
}
|
||||
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
@@ -22,6 +22,8 @@
|
||||
#include <gdk/gdk.h>
|
||||
#include <gsk/gsk.h>
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GSK_TYPE_SHADER_PAINTABLE (gsk_shader_paintable_get_type ())
|
||||
@@ -41,3 +43,5 @@ void gsk_shader_paintable_update_time (GskShaderPaintable *self
|
||||
int time_idx,
|
||||
gint64 frame_time);
|
||||
G_END_DECLS
|
||||
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
138
demos/gtk-demo/gtk-logo.svg
Normal file
@@ -0,0 +1,138 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128"
|
||||
height="128"
|
||||
id="svg6843"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14"
|
||||
version="1.0"
|
||||
sodipodi:docname="gtk-logo.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
inkscape:export-filename="/home/ebassi/Pictures/gtk-logo-256.png"
|
||||
inkscape:export-xdpi="192"
|
||||
inkscape:export-ydpi="192">
|
||||
<defs
|
||||
id="defs6845">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="-50 : 600 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="700 : 600 : 1"
|
||||
inkscape:persp3d-origin="300 : 400 : 1"
|
||||
id="perspective13" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.8284271"
|
||||
inkscape:cx="69.874353"
|
||||
inkscape:cy="64.313526"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:document-units="px"
|
||||
inkscape:grid-bbox="true"
|
||||
width="128px"
|
||||
height="128px"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid7947" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata6848">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<dc:date />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title />
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:rights>
|
||||
<cc:Agent>
|
||||
<dc:title />
|
||||
</cc:Agent>
|
||||
</dc:rights>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title />
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:identifier />
|
||||
<dc:source />
|
||||
<dc:relation />
|
||||
<dc:language />
|
||||
<dc:subject>
|
||||
<rdf:Bag />
|
||||
</dc:subject>
|
||||
<dc:coverage />
|
||||
<dc:description />
|
||||
<dc:contributor>
|
||||
<cc:Agent>
|
||||
<dc:title />
|
||||
</cc:Agent>
|
||||
</dc:contributor>
|
||||
<cc:license
|
||||
rdf:resource="" />
|
||||
</cc:Work>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path6976"
|
||||
d="M 20.88413,30.82696 L 53.816977,55.527708 L 107.33282,39.060543 L 70.587303,17.177763 L 20.88413,30.82696 z"
|
||||
style="fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.12364459;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
|
||||
<path
|
||||
id="path6978"
|
||||
d="M 22.94243,82.287118 L 20.88413,30.82696 L 53.816977,55.527708 L 53.816977,111.10486 L 22.94243,82.287118 z"
|
||||
style="fill:#e40000;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.12364459;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
|
||||
<path
|
||||
id="path6980"
|
||||
d="M 53.816977,111.10486 L 103.21619,90.5207 L 107.33282,39.060543 L 53.816977,55.527708 L 53.816977,111.10486 z"
|
||||
style="fill:#7fe719;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.12364459;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccc"
|
||||
id="path6982"
|
||||
d="M 23.216626,81.319479 L 70.48573,67.361442 L 103.38422,90.444516"
|
||||
style="opacity:1;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path6984"
|
||||
d="M 70.434539,17.875593 L 70.434539,66.984877"
|
||||
style="opacity:1;fill:#babdb6;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.8 KiB |
@@ -456,43 +456,33 @@ gtk_fishbowl_do_update (GtkFishbowl *fishbowl)
|
||||
{
|
||||
GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl);
|
||||
GdkFrameClock *frame_clock;
|
||||
GdkFrameTimings *start, *end;
|
||||
gint64 start_counter, end_counter;
|
||||
gint64 n_frames, expected_frames;
|
||||
gint64 start_timestamp, end_timestamp;
|
||||
GdkFrameTimings *end;
|
||||
gint64 end_counter;
|
||||
double fps, expected_fps;
|
||||
gint64 interval;
|
||||
|
||||
frame_clock = gtk_widget_get_frame_clock (GTK_WIDGET (fishbowl));
|
||||
if (frame_clock == NULL)
|
||||
return;
|
||||
|
||||
start_counter = gdk_frame_clock_get_history_start (frame_clock);
|
||||
end_counter = gdk_frame_clock_get_frame_counter (frame_clock);
|
||||
start = gdk_frame_clock_get_timings (frame_clock, start_counter);
|
||||
for (end = gdk_frame_clock_get_timings (frame_clock, end_counter);
|
||||
end_counter > start_counter && end != NULL && !gdk_frame_timings_get_complete (end);
|
||||
end = gdk_frame_clock_get_timings (frame_clock, end_counter))
|
||||
end_counter--;
|
||||
if (end_counter - start_counter < 4)
|
||||
fps = gdk_frame_clock_get_fps (frame_clock);
|
||||
if (fps <= 0.0)
|
||||
return;
|
||||
|
||||
start_timestamp = gdk_frame_timings_get_presentation_time (start);
|
||||
end_timestamp = gdk_frame_timings_get_presentation_time (end);
|
||||
if (start_timestamp == 0 || end_timestamp == 0)
|
||||
{
|
||||
start_timestamp = gdk_frame_timings_get_frame_time (start);
|
||||
end_timestamp = gdk_frame_timings_get_frame_time (end);
|
||||
}
|
||||
|
||||
n_frames = end_counter - start_counter;
|
||||
priv->framerate = ((double) n_frames) * G_USEC_PER_SEC / (end_timestamp - start_timestamp);
|
||||
priv->framerate = ((int)(priv->framerate * 100))/100.0;
|
||||
|
||||
priv->framerate = fps;
|
||||
g_object_notify_by_pspec (G_OBJECT (fishbowl), props[PROP_FRAMERATE]);
|
||||
|
||||
if (!priv->benchmark)
|
||||
return;
|
||||
|
||||
end_counter = gdk_frame_clock_get_frame_counter (frame_clock);
|
||||
for (end = gdk_frame_clock_get_timings (frame_clock, end_counter);
|
||||
end != NULL && !gdk_frame_timings_get_complete (end);
|
||||
end = gdk_frame_clock_get_timings (frame_clock, end_counter))
|
||||
end_counter--;
|
||||
if (end == NULL)
|
||||
return;
|
||||
|
||||
interval = gdk_frame_timings_get_refresh_interval (end);
|
||||
if (interval == 0)
|
||||
{
|
||||
@@ -500,16 +490,16 @@ gtk_fishbowl_do_update (GtkFishbowl *fishbowl)
|
||||
if (interval == 0)
|
||||
return;
|
||||
}
|
||||
expected_frames = round ((double) (end_timestamp - start_timestamp) / interval);
|
||||
expected_fps = (double) G_USEC_PER_SEC / interval;
|
||||
|
||||
if (n_frames >= expected_frames)
|
||||
if (fps > (expected_fps - 1))
|
||||
{
|
||||
if (priv->last_benchmark_change > 0)
|
||||
priv->last_benchmark_change *= 2;
|
||||
else
|
||||
priv->last_benchmark_change = 1;
|
||||
}
|
||||
else if (n_frames + 1 < expected_frames)
|
||||
else if (0.95 * fps < expected_fps)
|
||||
{
|
||||
if (priv->last_benchmark_change < 0)
|
||||
priv->last_benchmark_change--;
|
||||
|
@@ -1,5 +1,7 @@
|
||||
#include "gtkshaderbin.h"
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
|
||||
typedef struct {
|
||||
GskGLShader *shader;
|
||||
GtkStateFlags state;
|
||||
@@ -262,3 +264,5 @@ gtk_shader_bin_new (void)
|
||||
|
||||
return GTK_WIDGET (self);
|
||||
}
|
||||
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
@@ -2,6 +2,8 @@
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GTK_TYPE_SHADER_BIN (gtk_shader_bin_get_type ())
|
||||
@@ -18,3 +20,5 @@ void gtk_shader_bin_set_child (GtkShaderBin *self,
|
||||
GtkWidget *gtk_shader_bin_get_child (GtkShaderBin *self);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
@@ -1,5 +1,7 @@
|
||||
#include "gtkshaderstack.h"
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
|
||||
struct _GtkShaderStack
|
||||
{
|
||||
GtkWidget parent_instance;
|
||||
@@ -359,3 +361,5 @@ gtk_shader_stack_set_active (GtkShaderStack *self,
|
||||
self->current = MIN (index, self->children->len);
|
||||
update_child_visible (self);
|
||||
}
|
||||
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
@@ -2,6 +2,8 @@
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GTK_TYPE_SHADER_STACK (gtk_shader_stack_get_type ())
|
||||
@@ -18,3 +20,5 @@ void gtk_shader_stack_set_active (GtkShaderStack *self,
|
||||
int index);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
@@ -116,7 +116,9 @@ static gboolean gtk_shadertoy_tick (GtkWidget *widget,
|
||||
GtkWidget *
|
||||
gtk_shadertoy_new (void)
|
||||
{
|
||||
return g_object_new (gtk_shadertoy_get_type (), NULL);
|
||||
return g_object_new (gtk_shadertoy_get_type (),
|
||||
"allowed-apis", GDK_GL_API_GL,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -14,6 +14,103 @@
|
||||
#include <gtk/gtk.h>
|
||||
#include "demo3widget.h"
|
||||
|
||||
static GtkWidget *window = NULL;
|
||||
static GCancellable *cancellable = NULL;
|
||||
|
||||
static void
|
||||
load_texture (GTask *task,
|
||||
gpointer source_object,
|
||||
gpointer task_data,
|
||||
GCancellable *cable)
|
||||
{
|
||||
GFile *file = task_data;
|
||||
GdkTexture *texture;
|
||||
GError *error = NULL;
|
||||
|
||||
texture = gdk_texture_new_from_file (file, &error);
|
||||
|
||||
if (texture)
|
||||
g_task_return_pointer (task, texture, g_object_unref);
|
||||
else
|
||||
g_task_return_error (task, error);
|
||||
}
|
||||
|
||||
static void
|
||||
set_wait_cursor (GtkWidget *widget)
|
||||
{
|
||||
gtk_widget_set_cursor_from_name (GTK_WIDGET (gtk_widget_get_root (widget)), "wait");
|
||||
}
|
||||
|
||||
static void
|
||||
unset_wait_cursor (GtkWidget *widget)
|
||||
{
|
||||
gtk_widget_set_cursor (GTK_WIDGET (gtk_widget_get_root (widget)), NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
texture_loaded (GObject *source,
|
||||
GAsyncResult *result,
|
||||
gpointer data)
|
||||
{
|
||||
GdkTexture *texture;
|
||||
GError *error = NULL;
|
||||
|
||||
texture = g_task_propagate_pointer (G_TASK (result), &error);
|
||||
|
||||
if (!texture)
|
||||
{
|
||||
g_print ("%s\n", error->message);
|
||||
g_error_free (error);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!window)
|
||||
{
|
||||
g_object_unref (texture);
|
||||
return;
|
||||
}
|
||||
|
||||
unset_wait_cursor (GTK_WIDGET (data));
|
||||
|
||||
g_object_set (G_OBJECT (data), "texture", texture, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
open_file_async (GFile *file,
|
||||
GtkWidget *demo)
|
||||
{
|
||||
GTask *task;
|
||||
|
||||
set_wait_cursor (demo);
|
||||
|
||||
task = g_task_new (demo, cancellable, texture_loaded, demo);
|
||||
g_task_set_task_data (task, g_object_ref (file), g_object_unref);
|
||||
g_task_run_in_thread (task, load_texture);
|
||||
g_object_unref (task);
|
||||
}
|
||||
|
||||
static void
|
||||
open_portland_rose (GtkWidget *button,
|
||||
GtkWidget *demo)
|
||||
{
|
||||
GFile *file;
|
||||
|
||||
file = g_file_new_for_uri ("resource:///transparent/portland-rose.jpg");
|
||||
open_file_async (file, demo);
|
||||
g_object_unref (file);
|
||||
}
|
||||
|
||||
static void
|
||||
open_large_image (GtkWidget *button,
|
||||
GtkWidget *demo)
|
||||
{
|
||||
GFile *file;
|
||||
|
||||
file = g_file_new_for_uri ("resource:///org/gtk/Demo4/large-image.png");
|
||||
open_file_async (file, demo);
|
||||
g_object_unref (file);
|
||||
}
|
||||
|
||||
static void
|
||||
file_opened (GObject *source,
|
||||
GAsyncResult *result,
|
||||
@@ -21,7 +118,6 @@ file_opened (GObject *source,
|
||||
{
|
||||
GFile *file;
|
||||
GError *error = NULL;
|
||||
GdkTexture *texture;
|
||||
|
||||
file = gtk_file_dialog_open_finish (GTK_FILE_DIALOG (source), result, &error);
|
||||
|
||||
@@ -32,17 +128,9 @@ file_opened (GObject *source,
|
||||
return;
|
||||
}
|
||||
|
||||
texture = gdk_texture_new_from_file (file, &error);
|
||||
g_object_unref (file);
|
||||
if (!texture)
|
||||
{
|
||||
g_print ("%s\n", error->message);
|
||||
g_error_free (error);
|
||||
return;
|
||||
}
|
||||
open_file_async (file, data);
|
||||
|
||||
g_object_set (G_OBJECT (data), "texture", texture, NULL);
|
||||
g_object_unref (texture);
|
||||
g_object_unref (file);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -116,11 +204,26 @@ transform_from (GBinding *binding,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
free_cancellable (gpointer data)
|
||||
{
|
||||
g_cancellable_cancel (cancellable);
|
||||
g_clear_object (&cancellable);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
cancel_load (GtkWidget *widget,
|
||||
GVariant *args,
|
||||
gpointer data)
|
||||
{
|
||||
unset_wait_cursor (widget);
|
||||
g_cancellable_cancel (G_CANCELLABLE (data));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
do_image_scaling (GtkWidget *do_widget)
|
||||
{
|
||||
static GtkWidget *window = NULL;
|
||||
|
||||
if (!window)
|
||||
{
|
||||
GtkWidget *box;
|
||||
@@ -130,6 +233,7 @@ do_image_scaling (GtkWidget *do_widget)
|
||||
GtkWidget *scale;
|
||||
GtkWidget *dropdown;
|
||||
GtkWidget *button;
|
||||
GtkEventController *controller;
|
||||
|
||||
window = gtk_window_new ();
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Image Scaling");
|
||||
@@ -138,6 +242,20 @@ do_image_scaling (GtkWidget *do_widget)
|
||||
gtk_widget_get_display (do_widget));
|
||||
g_object_add_weak_pointer (G_OBJECT (window), (gpointer *)&window);
|
||||
|
||||
cancellable = g_cancellable_new ();
|
||||
g_object_set_data_full (G_OBJECT (window), "cancellable",
|
||||
cancellable, free_cancellable);
|
||||
|
||||
controller = gtk_shortcut_controller_new ();
|
||||
gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller),
|
||||
gtk_shortcut_new (
|
||||
gtk_keyval_trigger_new (GDK_KEY_Escape, 0),
|
||||
gtk_callback_action_new (cancel_load, cancellable, NULL)
|
||||
));
|
||||
gtk_shortcut_controller_set_scope (GTK_SHORTCUT_CONTROLLER (controller),
|
||||
GTK_SHORTCUT_SCOPE_GLOBAL);
|
||||
gtk_widget_add_controller (window, controller);
|
||||
|
||||
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
|
||||
gtk_window_set_child (GTK_WINDOW (window), box);
|
||||
|
||||
@@ -156,6 +274,22 @@ do_image_scaling (GtkWidget *do_widget)
|
||||
g_signal_connect (button, "clicked", G_CALLBACK (open_file), widget);
|
||||
gtk_box_append (GTK_BOX (box2), button);
|
||||
|
||||
button = gtk_button_new ();
|
||||
gtk_button_set_child (GTK_BUTTON (button),
|
||||
gtk_image_new_from_resource ("/org/gtk/Demo4/portland-rose-thumbnail.png"));
|
||||
gtk_widget_add_css_class (button, "image-button");
|
||||
gtk_widget_set_tooltip_text (button, "Portland Rose");
|
||||
g_signal_connect (button, "clicked", G_CALLBACK (open_portland_rose), widget);
|
||||
gtk_box_append (GTK_BOX (box2), button);
|
||||
|
||||
button = gtk_button_new ();
|
||||
gtk_button_set_child (GTK_BUTTON (button),
|
||||
gtk_image_new_from_resource ("/org/gtk/Demo4/large-image-thumbnail.png"));
|
||||
gtk_widget_add_css_class (button, "image-button");
|
||||
gtk_widget_set_tooltip_text (button, "Large image");
|
||||
g_signal_connect (button, "clicked", G_CALLBACK (open_large_image), widget);
|
||||
gtk_box_append (GTK_BOX (box2), button);
|
||||
|
||||
button = gtk_button_new_from_icon_name ("object-rotate-right-symbolic");
|
||||
gtk_widget_set_tooltip_text (button, "Rotate");
|
||||
g_signal_connect (button, "clicked", G_CALLBACK (rotate), widget);
|
||||
@@ -191,7 +325,9 @@ do_image_scaling (GtkWidget *do_widget)
|
||||
if (!gtk_widget_get_visible (window))
|
||||
gtk_widget_set_visible (window, TRUE);
|
||||
else
|
||||
gtk_window_destroy (GTK_WINDOW (window));
|
||||
{
|
||||
gtk_window_destroy (GTK_WINDOW (window));
|
||||
}
|
||||
|
||||
return window;
|
||||
}
|
||||
|
@@ -354,6 +354,7 @@ do_images (GtkWidget *do_widget)
|
||||
gicon = g_themed_icon_new_with_default_fallbacks ("battery-caution-charging-symbolic");
|
||||
image = gtk_image_new_from_gicon (gicon);
|
||||
gtk_image_set_icon_size (GTK_IMAGE (image), GTK_ICON_SIZE_LARGE);
|
||||
g_object_unref (gicon);
|
||||
|
||||
gtk_frame_set_child (GTK_FRAME (frame), image);
|
||||
|
||||
|
@@ -40,7 +40,7 @@ get_win32_all_locales_scripts (LPWSTR locale_w, DWORD flags, LPARAM param)
|
||||
{
|
||||
wchar_t *langname_w = NULL;
|
||||
wchar_t locale_abbrev_w[9];
|
||||
gchar *langname, *locale_abbrev, *locale, *p;
|
||||
gchar *langname, *locale_abbrev, *locale;
|
||||
gint i;
|
||||
const LCTYPE iso639_lctypes[] = { LOCALE_SISO639LANGNAME, LOCALE_SISO639LANGNAME2 };
|
||||
GHashTable *ht_scripts_langs = (GHashTable *) param;
|
||||
@@ -59,7 +59,6 @@ get_win32_all_locales_scripts (LPWSTR locale_w, DWORD flags, LPARAM param)
|
||||
GetLocaleInfoEx (locale_w, LOCALE_SLOCALIZEDDISPLAYNAME, langname_w, langname_size);
|
||||
langname = g_utf16_to_utf8 (langname_w, -1, NULL, NULL, NULL);
|
||||
locale = g_utf16_to_utf8 (locale_w, -1, NULL, NULL, NULL);
|
||||
p = strchr (locale, '-');
|
||||
lang = pango_language_from_string (locale);
|
||||
if (g_hash_table_lookup (ht_scripts_langs, lang) == NULL)
|
||||
g_hash_table_insert (ht_scripts_langs, lang, langname);
|
||||
|
BIN
demos/gtk-demo/large-image-thumbnail.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
demos/gtk-demo/large-image.png
Normal file
After Width: | Height: | Size: 622 KiB |
@@ -1,4 +1,5 @@
|
||||
/* Lists/Selections
|
||||
* #Keywords: suggestion, completion
|
||||
*
|
||||
* The GtkDropDown widget is a modern alternative to GtkComboBox.
|
||||
* It uses list models instead of tree models, and the content is
|
||||
|
@@ -20,6 +20,7 @@
|
||||
#include "config.h"
|
||||
#include <gtk/gtk.h>
|
||||
#include <glib/gstdio.h>
|
||||
#include <glib/gi18n.h>
|
||||
|
||||
#include "demos.h"
|
||||
#include "fontify.h"
|
||||
@@ -827,13 +828,25 @@ demo_search_changed_cb (GtkSearchEntry *entry,
|
||||
gtk_filter_changed (filter, GTK_FILTER_CHANGE_DIFFERENT);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
demo_can_run (GtkWidget *window,
|
||||
const char *name)
|
||||
{
|
||||
if (name != NULL && strcmp (name, "gltransition") == 0)
|
||||
return GSK_IS_GL_RENDERER (gtk_native_get_renderer (GTK_NATIVE (window)));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static GListModel *
|
||||
create_demo_model (void)
|
||||
create_demo_model (GtkWidget *window)
|
||||
{
|
||||
GListStore *store = g_list_store_new (GTK_TYPE_DEMO);
|
||||
DemoData *demo = gtk_demos;
|
||||
GtkDemo *d;
|
||||
|
||||
gtk_widget_realize (window);
|
||||
|
||||
d = GTK_DEMO (g_object_new (GTK_TYPE_DEMO, NULL));
|
||||
d->name = "main";
|
||||
d->title = "GTK Demo";
|
||||
@@ -845,16 +858,20 @@ create_demo_model (void)
|
||||
|
||||
while (demo->title)
|
||||
{
|
||||
d = GTK_DEMO (g_object_new (GTK_TYPE_DEMO, NULL));
|
||||
DemoData *children = demo->children;
|
||||
DemoData *children = demo->children;
|
||||
|
||||
d->name = demo->name;
|
||||
d->title = demo->title;
|
||||
d->keywords = demo->keywords;
|
||||
d->filename = demo->filename;
|
||||
d->func = demo->func;
|
||||
if (demo_can_run (window, demo->name))
|
||||
{
|
||||
d = GTK_DEMO (g_object_new (GTK_TYPE_DEMO, NULL));
|
||||
|
||||
g_list_store_append (store, d);
|
||||
d->name = demo->name;
|
||||
d->title = demo->title;
|
||||
d->keywords = demo->keywords;
|
||||
d->filename = demo->filename;
|
||||
d->func = demo->func;
|
||||
|
||||
g_list_store_append (store, d);
|
||||
}
|
||||
|
||||
if (children)
|
||||
{
|
||||
@@ -862,15 +879,19 @@ create_demo_model (void)
|
||||
|
||||
while (children->title)
|
||||
{
|
||||
GtkDemo *child = GTK_DEMO (g_object_new (GTK_TYPE_DEMO, NULL));
|
||||
if (demo_can_run (window, children->name))
|
||||
{
|
||||
GtkDemo *child = GTK_DEMO (g_object_new (GTK_TYPE_DEMO, NULL));
|
||||
|
||||
child->name = children->name;
|
||||
child->title = children->title;
|
||||
child->keywords = children->keywords;
|
||||
child->filename = children->filename;
|
||||
child->func = children->func;
|
||||
child->name = children->name;
|
||||
child->title = children->title;
|
||||
child->keywords = children->keywords;
|
||||
child->filename = children->filename;
|
||||
child->func = children->func;
|
||||
|
||||
g_list_store_append (G_LIST_STORE (d->children_model), child);
|
||||
}
|
||||
|
||||
g_list_store_append (G_LIST_STORE (d->children_model), child);
|
||||
children++;
|
||||
}
|
||||
}
|
||||
@@ -903,6 +924,34 @@ clear_search (GtkSearchBar *bar)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
search_results_update (GObject *filter_model,
|
||||
GParamSpec *pspec,
|
||||
GtkEntry *entry)
|
||||
{
|
||||
gsize n_items = g_list_model_get_n_items (G_LIST_MODEL (filter_model));
|
||||
|
||||
if (strlen (gtk_editable_get_text (GTK_EDITABLE (entry))) > 0)
|
||||
{
|
||||
char *text;
|
||||
|
||||
if (n_items > 0)
|
||||
text = g_strdup_printf (ngettext ("%ld search result", "%ld search results", (long) n_items), (long) n_items);
|
||||
else
|
||||
text = g_strdup (_("No search results"));
|
||||
|
||||
gtk_accessible_update_property (GTK_ACCESSIBLE (entry),
|
||||
GTK_ACCESSIBLE_PROPERTY_DESCRIPTION, text,
|
||||
-1);
|
||||
|
||||
g_free (text);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_accessible_reset_property (GTK_ACCESSIBLE (entry), GTK_ACCESSIBLE_PROPERTY_DESCRIPTION);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
activate (GApplication *app)
|
||||
{
|
||||
@@ -936,7 +985,7 @@ activate (GApplication *app)
|
||||
search_bar = GTK_WIDGET (gtk_builder_get_object (builder, "searchbar"));
|
||||
g_signal_connect (search_bar, "notify::search-mode-enabled", G_CALLBACK (clear_search), NULL);
|
||||
|
||||
listmodel = create_demo_model ();
|
||||
listmodel = create_demo_model (window);
|
||||
treemodel = gtk_tree_list_model_new (G_LIST_MODEL (listmodel),
|
||||
FALSE,
|
||||
TRUE,
|
||||
@@ -950,6 +999,7 @@ activate (GApplication *app)
|
||||
|
||||
search_entry = GTK_WIDGET (gtk_builder_get_object (builder, "search-entry"));
|
||||
g_signal_connect (search_entry, "search-changed", G_CALLBACK (demo_search_changed_cb), filter);
|
||||
g_signal_connect (filter_model, "notify::n-items", G_CALLBACK (search_results_update), search_entry);
|
||||
|
||||
selection = gtk_single_selection_new (G_LIST_MODEL (filter_model));
|
||||
g_signal_connect (selection, "notify::selected-item", G_CALLBACK (selection_cb), NULL);
|
||||
@@ -1018,6 +1068,8 @@ command_line (GApplication *app,
|
||||
|
||||
window = gtk_application_get_windows (GTK_APPLICATION (app))->data;
|
||||
|
||||
gtk_window_set_icon_name (GTK_WINDOW (window), "org.gtk.Demo4");
|
||||
|
||||
if (name == NULL)
|
||||
goto out;
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
<interface>
|
||||
<menu id="menubar">
|
||||
<submenu>
|
||||
<attribute name="label" translatable="yes">_Application</attribute>
|
||||
<attribute name="label" translatable="yes">_File</attribute>
|
||||
<section>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_New</attribute>
|
||||
@@ -33,7 +33,7 @@
|
||||
</section>
|
||||
</submenu>
|
||||
<submenu>
|
||||
<attribute name="label" translatable="yes">_File</attribute>
|
||||
<attribute name="label" translatable="yes">_Preferences</attribute>
|
||||
<section>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Prefer Dark Theme</attribute>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
@@ -225,7 +225,8 @@ print_ready (GObject *source,
|
||||
|
||||
if (!g_output_stream_close (stream, NULL, &error))
|
||||
{
|
||||
g_print ("Error from close: %s\n", error->message);
|
||||
if (!g_error_matches (error, GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_DISMISSED))
|
||||
g_print ("Error from close: %s\n", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
|
||||
|
@@ -338,7 +338,7 @@ do_path_maze (GtkWidget *do_widget)
|
||||
GskPath *path;
|
||||
|
||||
window = gtk_window_new ();
|
||||
gtk_window_set_resizable (GTK_WINDOW (window), TRUE);
|
||||
gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Follow the maze with the mouse");
|
||||
g_object_add_weak_pointer (G_OBJECT (window), (gpointer *)&window);
|
||||
|
||||
|
BIN
demos/gtk-demo/portland-rose-thumbnail.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -120,7 +120,7 @@ create_shadertoy_window (GtkWidget *do_widget)
|
||||
gtk_box_append (GTK_BOX (box), aspect);
|
||||
|
||||
shadertoy = new_shadertoy ("/shadertoy/alienplanet.glsl");
|
||||
gtk_aspect_frame_set_child (GTK_ASPECT_FRAME (aspect), shadertoy);
|
||||
gtk_aspect_frame_set_child (GTK_ASPECT_FRAME (aspect), gtk_graphics_offload_new (shadertoy));
|
||||
|
||||
sw = gtk_scrolled_window_new ();
|
||||
gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW (sw), 250);
|
||||
|
@@ -139,6 +139,8 @@ icon_browser_app_activate (GApplication *app)
|
||||
if (g_strcmp0 (PROFILE, "devel") == 0)
|
||||
gtk_widget_add_css_class (GTK_WIDGET (win), "devel");
|
||||
|
||||
gtk_window_set_icon_name (GTK_WINDOW (win), "org.gtk.IconBrowser4");
|
||||
|
||||
gtk_window_present (GTK_WINDOW (win));
|
||||
}
|
||||
|
||||
|
@@ -219,6 +219,8 @@ node_editor_application_activate (GApplication *app)
|
||||
if (g_strcmp0 (PROFILE, "devel") == 0)
|
||||
gtk_widget_add_css_class (GTK_WIDGET (win), "devel");
|
||||
|
||||
gtk_window_set_icon_name (GTK_WINDOW (win), "org.gtk.gtk4.NodeEditor");
|
||||
|
||||
gtk_window_present (GTK_WINDOW (win));
|
||||
}
|
||||
|
||||
@@ -299,7 +301,7 @@ node_editor_application_new (void)
|
||||
|
||||
app = g_object_new (NODE_EDITOR_APPLICATION_TYPE,
|
||||
"application-id", "org.gtk.gtk4.NodeEditor",
|
||||
"flags", G_APPLICATION_HANDLES_OPEN,
|
||||
"flags", G_APPLICATION_HANDLES_OPEN | G_APPLICATION_NON_UNIQUE,
|
||||
NULL);
|
||||
|
||||
g_application_add_main_option (G_APPLICATION (app), "version", 0, 0,G_OPTION_ARG_NONE, "Show program version", NULL);
|
||||
|
@@ -68,8 +68,9 @@ struct _NodeEditorWindow
|
||||
|
||||
GArray *errors;
|
||||
|
||||
guint update_timeout;
|
||||
gboolean auto_reload;
|
||||
gboolean mark_as_safe_pending;
|
||||
gulong after_paint_handler;
|
||||
};
|
||||
|
||||
struct _NodeEditorWindowClass
|
||||
@@ -245,6 +246,41 @@ highlight_text (NodeEditorWindow *self)
|
||||
gtk_text_buffer_apply_tag_by_name (self->text_buffer, "no-hyphens", &start, &end);
|
||||
}
|
||||
|
||||
static void
|
||||
mark_autosave_as_unsafe (void)
|
||||
{
|
||||
char *path1 = NULL;
|
||||
char *path2 = NULL;
|
||||
|
||||
path1 = get_autosave_path ("-unsafe");
|
||||
path2 = get_autosave_path (NULL);
|
||||
|
||||
g_rename (path2, path1);
|
||||
}
|
||||
|
||||
static void
|
||||
mark_autosave_as_safe (void)
|
||||
{
|
||||
char *path1 = NULL;
|
||||
char *path2 = NULL;
|
||||
|
||||
path1 = get_autosave_path ("-unsafe");
|
||||
path2 = get_autosave_path (NULL);
|
||||
|
||||
g_rename (path1, path2);
|
||||
}
|
||||
|
||||
static void
|
||||
after_paint (GdkFrameClock *clock,
|
||||
NodeEditorWindow *self)
|
||||
{
|
||||
if (self->mark_as_safe_pending)
|
||||
{
|
||||
self->mark_as_safe_pending = FALSE;
|
||||
mark_autosave_as_safe ();
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
reload (NodeEditorWindow *self)
|
||||
{
|
||||
@@ -253,6 +289,8 @@ reload (NodeEditorWindow *self)
|
||||
float scale;
|
||||
GskRenderNode *big_node;
|
||||
|
||||
mark_autosave_as_unsafe ();
|
||||
|
||||
text = get_current_text (self->text_buffer);
|
||||
bytes = g_bytes_new_take (text, strlen (text));
|
||||
|
||||
@@ -314,6 +352,8 @@ reload (NodeEditorWindow *self)
|
||||
}
|
||||
|
||||
g_clear_pointer (&big_node, gsk_render_node_unref);
|
||||
|
||||
self->mark_as_safe_pending = TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1125,9 +1165,6 @@ node_editor_window_finalize (GObject *object)
|
||||
{
|
||||
NodeEditorWindow *self = (NodeEditorWindow *)object;
|
||||
|
||||
if (self->update_timeout)
|
||||
g_source_remove (self->update_timeout);
|
||||
|
||||
g_array_free (self->errors, TRUE);
|
||||
|
||||
g_clear_pointer (&self->node, gsk_render_node_unref);
|
||||
@@ -1168,10 +1205,24 @@ node_editor_window_add_renderer (NodeEditorWindow *self,
|
||||
g_object_unref (paintable);
|
||||
}
|
||||
|
||||
static void
|
||||
update_paste_action (GdkClipboard *clipboard,
|
||||
GParamSpec *pspec,
|
||||
gpointer data)
|
||||
{
|
||||
GtkWidget *widget = GTK_WIDGET (data);
|
||||
gboolean has_node;
|
||||
|
||||
has_node = gdk_content_formats_contain_mime_type (gdk_clipboard_get_formats (clipboard), "application/x-gtk-render-node");
|
||||
|
||||
gtk_widget_action_set_enabled (widget, "paste-node", has_node);
|
||||
}
|
||||
|
||||
static void
|
||||
node_editor_window_realize (GtkWidget *widget)
|
||||
{
|
||||
NodeEditorWindow *self = NODE_EDITOR_WINDOW (widget);
|
||||
GdkFrameClock *frameclock;
|
||||
|
||||
GTK_WIDGET_CLASS (node_editor_window_parent_class)->realize (widget);
|
||||
|
||||
@@ -1199,14 +1250,27 @@ node_editor_window_realize (GtkWidget *widget)
|
||||
node_editor_window_add_renderer (self,
|
||||
gsk_cairo_renderer_new (),
|
||||
"Cairo");
|
||||
|
||||
frameclock = gtk_widget_get_frame_clock (widget);
|
||||
self->after_paint_handler = g_signal_connect (frameclock, "after-paint",
|
||||
G_CALLBACK (after_paint), self);
|
||||
|
||||
g_signal_connect (gtk_widget_get_clipboard (widget), "notify::formats", G_CALLBACK (update_paste_action), widget);
|
||||
}
|
||||
|
||||
static void
|
||||
node_editor_window_unrealize (GtkWidget *widget)
|
||||
{
|
||||
NodeEditorWindow *self = NODE_EDITOR_WINDOW (widget);
|
||||
GdkFrameClock *frameclock;
|
||||
guint i;
|
||||
|
||||
g_signal_handlers_disconnect_by_func (gtk_widget_get_clipboard (widget), update_paste_action, widget);
|
||||
|
||||
frameclock = gtk_widget_get_frame_clock (widget);
|
||||
g_signal_handler_disconnect (frameclock, self->after_paint_handler);
|
||||
self->after_paint_handler = 0;
|
||||
|
||||
for (i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (self->renderers)); i ++)
|
||||
{
|
||||
gpointer item = g_list_model_get_item (G_LIST_MODEL (self->renderers), i);
|
||||
@@ -1568,20 +1632,38 @@ edit_action_cb (GtkWidget *widget,
|
||||
}
|
||||
|
||||
static void
|
||||
node_editor_window_map (GtkWidget *widget)
|
||||
text_received (GObject *source,
|
||||
GAsyncResult *result,
|
||||
gpointer data)
|
||||
{
|
||||
char *path;
|
||||
GdkClipboard *clipboard = GDK_CLIPBOARD (source);
|
||||
NodeEditorWindow *self = NODE_EDITOR_WINDOW (data);
|
||||
char *text;
|
||||
|
||||
GTK_WIDGET_CLASS (node_editor_window_parent_class)->map (widget);
|
||||
|
||||
path = get_autosave_path (NULL);
|
||||
if (g_file_test (path, G_FILE_TEST_EXISTS))
|
||||
text = gdk_clipboard_read_text_finish (clipboard, result, NULL);
|
||||
if (text)
|
||||
{
|
||||
g_free (path);
|
||||
return;
|
||||
}
|
||||
GtkTextBuffer *buffer;
|
||||
GtkTextIter start, end;
|
||||
|
||||
g_free (path);
|
||||
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (self->text_view));
|
||||
gtk_text_buffer_begin_user_action (buffer);
|
||||
gtk_text_buffer_get_bounds (buffer, &start, &end);
|
||||
gtk_text_buffer_delete (buffer, &start, &end);
|
||||
gtk_text_buffer_insert (buffer, &start, text, -1);
|
||||
gtk_text_buffer_end_user_action (buffer);
|
||||
g_free (text);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
paste_node_cb (GtkWidget *widget,
|
||||
const char *action_name,
|
||||
GVariant *parameter)
|
||||
{
|
||||
GdkClipboard *clipboard = gtk_widget_get_clipboard (widget);
|
||||
|
||||
gdk_clipboard_read_text_async (clipboard, NULL, text_received, widget);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1660,8 +1742,6 @@ node_editor_window_class_init (NodeEditorWindowClass *class)
|
||||
widget_class->realize = node_editor_window_realize;
|
||||
widget_class->unrealize = node_editor_window_unrealize;
|
||||
|
||||
widget_class->map = node_editor_window_map;
|
||||
|
||||
properties[PROP_AUTO_RELOAD] = g_param_spec_boolean ("auto-reload", NULL, NULL,
|
||||
TRUE,
|
||||
G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_STATIC_NAME);
|
||||
@@ -1698,6 +1778,13 @@ node_editor_window_class_init (NodeEditorWindowClass *class)
|
||||
action = gtk_named_action_new ("smart-edit");
|
||||
shortcut = gtk_shortcut_new (trigger, action);
|
||||
gtk_widget_class_add_shortcut (widget_class, shortcut);
|
||||
|
||||
gtk_widget_class_install_action (widget_class, "paste-node", NULL, paste_node_cb);
|
||||
|
||||
trigger = gtk_keyval_trigger_new (GDK_KEY_v, GDK_CONTROL_MASK | GDK_SHIFT_MASK);
|
||||
action = gtk_named_action_new ("paste-node");
|
||||
shortcut = gtk_shortcut_new (trigger, action);
|
||||
gtk_widget_class_add_shortcut (widget_class, shortcut);
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
@@ -1765,16 +1852,16 @@ set_initial_text (NodeEditorWindow *self)
|
||||
path = get_autosave_path (NULL);
|
||||
path1 = get_autosave_path ("-unsafe");
|
||||
|
||||
if (g_file_get_contents (path, &initial_text, &len, NULL))
|
||||
{
|
||||
gtk_text_buffer_set_text (self->text_buffer, initial_text, len);
|
||||
g_free (initial_text);
|
||||
}
|
||||
else if (g_file_get_contents (path1, &initial_text, &len, NULL))
|
||||
if (g_file_get_contents (path1, &initial_text, &len, NULL))
|
||||
{
|
||||
self->auto_reload = FALSE;
|
||||
gtk_revealer_set_reveal_child (GTK_REVEALER (self->crash_warning), TRUE);
|
||||
|
||||
gtk_text_buffer_set_text (self->text_buffer, initial_text, len);
|
||||
g_free (initial_text);
|
||||
}
|
||||
else if (g_file_get_contents (path, &initial_text, &len, NULL))
|
||||
{
|
||||
gtk_text_buffer_set_text (self->text_buffer, initial_text, len);
|
||||
g_free (initial_text);
|
||||
}
|
||||
@@ -1825,41 +1912,6 @@ autosave_contents (NodeEditorWindow *self)
|
||||
g_free (contents);
|
||||
}
|
||||
|
||||
static void
|
||||
mark_autosave_as_safe (void)
|
||||
{
|
||||
char *path1 = NULL;
|
||||
char *path2 = NULL;
|
||||
|
||||
path1 = get_autosave_path ("-unsafe");
|
||||
path2 = get_autosave_path (NULL);
|
||||
|
||||
g_rename (path1, path2);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
update_timeout_cb (gpointer data)
|
||||
{
|
||||
NodeEditorWindow *self = data;
|
||||
|
||||
self->update_timeout = 0;
|
||||
|
||||
mark_autosave_as_safe ();
|
||||
|
||||
return G_SOURCE_REMOVE;
|
||||
}
|
||||
|
||||
static void
|
||||
initiate_autosave (NodeEditorWindow *self)
|
||||
{
|
||||
autosave_contents (self);
|
||||
|
||||
if (self->update_timeout != 0)
|
||||
g_source_remove (self->update_timeout);
|
||||
|
||||
self->update_timeout = g_timeout_add (100, update_timeout_cb, self);
|
||||
}
|
||||
|
||||
static void
|
||||
node_editor_window_init (NodeEditorWindow *self)
|
||||
{
|
||||
@@ -1924,7 +1976,7 @@ node_editor_window_init (NodeEditorWindow *self)
|
||||
|
||||
set_initial_text (self);
|
||||
|
||||
g_signal_connect_swapped (self->text_buffer, "changed", G_CALLBACK (initiate_autosave), self);
|
||||
g_signal_connect_swapped (self->text_buffer, "changed", G_CALLBACK (autosave_contents), self);
|
||||
|
||||
if (g_getenv ("GSK_RENDERER"))
|
||||
{
|
||||
|
@@ -10,10 +10,6 @@
|
||||
<attribute name="label" translatable="yes">_Help</attribute>
|
||||
<attribute name="action">app.help</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Help</attribute>
|
||||
<attribute name="action">app.help</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Inspector</attribute>
|
||||
<attribute name="action">app.inspector</attribute>
|
||||
@@ -26,6 +22,10 @@
|
||||
</menu>
|
||||
<menu id="extra_menu">
|
||||
<section>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">Paste _Node</attribute>
|
||||
<attribute name="action">paste-node</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">Assisted _Edit</attribute>
|
||||
<attribute name="action">smart-edit</attribute>
|
||||
@@ -213,6 +213,7 @@
|
||||
<property name="halign">1</property>
|
||||
<property name="label" translatable="1">The application may have crashed.
|
||||
As a precaution, auto-loading has been turned off.
|
||||
You can turn it back on in the menu.
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
|
@@ -3,7 +3,7 @@
|
||||
<gresource prefix="/org/gtk/gtk4/node-editor">
|
||||
<file preprocess="xml-stripblanks">node-editor-window.ui</file>
|
||||
<file preprocess="xml-stripblanks">help-window.ui</file>
|
||||
<file>node-format.md</file>
|
||||
<file alias='node-format.md'>../../docs/reference/gtk/node-format.md</file>
|
||||
<file alias='icons/apps/org.gtk.gtk4.NodeEditor.svg'>data/scalable/apps/org.gtk.gtk4.NodeEditor.svg</file>
|
||||
</gresource>
|
||||
</gresources>
|
||||
|
@@ -798,7 +798,7 @@ activate (GApplication *app)
|
||||
if (g_strcmp0 (PROFILE, "devel") == 0)
|
||||
gtk_widget_add_css_class (GTK_WIDGET (main_window), "devel");
|
||||
|
||||
gtk_window_set_icon_name (GTK_WINDOW (main_window), "text-editor");
|
||||
gtk_window_set_icon_name (GTK_WINDOW (main_window), "org.gtk.PrintEditor4");
|
||||
gtk_window_set_default_size (GTK_WINDOW (main_window), 400, 600);
|
||||
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (main_window), TRUE);
|
||||
update_title (GTK_WINDOW (main_window));
|
||||
|
@@ -2241,6 +2241,7 @@ activate (GApplication *app)
|
||||
if (g_strcmp0 (PROFILE, "devel") == 0)
|
||||
gtk_widget_add_css_class (GTK_WIDGET (window), "devel");
|
||||
|
||||
gtk_window_set_icon_name (window, "org.gtk.WidgetFactory4");
|
||||
gtk_application_add_window (GTK_APPLICATION (app), window);
|
||||
g_action_map_add_action_entries (G_ACTION_MAP (window),
|
||||
win_entries, G_N_ELEMENTS (win_entries),
|
||||
|
@@ -69,9 +69,9 @@ Image:
|
||||
4 CARD32 IMAGE_DATA_OFFSET
|
||||
|
||||
ICON_FLAGS
|
||||
HAS_SUFFIX_PNG 1
|
||||
HAS_SUFFIX_XPM 2
|
||||
HAS_SUFFIX_SVG 4
|
||||
HAS_SUFFIX_XPM 1
|
||||
HAS_SUFFIX_SVG 2
|
||||
HAS_SUFFIX_PNG 4
|
||||
HAS_ICON_FILE 8
|
||||
|
||||
ImageData:
|
||||
|
@@ -5,8 +5,11 @@ Title: Cairo interaction
|
||||
[Cairo](http://cairographics.org) is a graphics library that supports vector
|
||||
graphics and image compositing that can be used with GTK.
|
||||
|
||||
GDK does not wrap the Cairo API; instead it allows to create Cairo
|
||||
drawing contexts which can be used to draw on [class@Gdk.Surface]s.
|
||||
GDK does not wrap the Cairo API and it is not possible to use cairo directly
|
||||
to draw on a [class@Gdk.Surface]. You can either use a
|
||||
[GtkDrawingArea](../gtk4/class.DrawingArea.html) widget or
|
||||
[gtk_snapshot_append_cairo](../gtk4/func.Snapshot.append_cairo.html)
|
||||
for drawing with cairo in a GTK4 application.
|
||||
|
||||
Additional functions allow use [struct@Gdk.Rectangle]s with Cairo
|
||||
and to use [struct@Gdk.RGBA], `GdkPixbuf`, and [class@Gdk.Surface]
|
||||
|
@@ -25,6 +25,8 @@ base_url = "https://gitlab.gnome.org/GNOME/gtk/-/blob/main/"
|
||||
|
||||
[extra]
|
||||
content_images = [
|
||||
"../images/favicon.svg",
|
||||
"../images/favicon-192x192.png",
|
||||
"images/gtk-logo.svg",
|
||||
]
|
||||
urlmap_file = "urlmap.js"
|
||||
|
@@ -24,6 +24,8 @@ base_url = "https://gitlab.gnome.org/GNOME/gtk/-/blob/main/"
|
||||
|
||||
[extra]
|
||||
content_images = [
|
||||
"../images/favicon.svg",
|
||||
"../images/favicon-192x192.png",
|
||||
"images/gtk-logo.svg",
|
||||
]
|
||||
urlmap_file = "urlmap.js"
|
||||
|
@@ -67,6 +67,8 @@ content_files = [
|
||||
"macos.md",
|
||||
]
|
||||
content_images = [
|
||||
"../images/favicon.svg",
|
||||
"../images/favicon-192x192.png",
|
||||
"images/gtk-logo.svg",
|
||||
"images/rotated-text.png",
|
||||
"images/default_cursor.png",
|
||||
@@ -109,3 +111,11 @@ content_images = [
|
||||
]
|
||||
content_base_url = "https://gitlab.gnome.org/GNOME/gtk/-/blob/main/docs/reference/gdk/"
|
||||
urlmap_file = "urlmap.js"
|
||||
|
||||
[[object]]
|
||||
name = "DECLARE_INTERNAL_TYPE"
|
||||
hidden = true
|
||||
|
||||
[[object]]
|
||||
pattern = "KEY_*"
|
||||
check_ignore = true
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -29,6 +29,18 @@ if get_option('documentation')
|
||||
install_dir: docs_dir,
|
||||
)
|
||||
|
||||
test('doc-check-gdk',
|
||||
gidocgen,
|
||||
args: [
|
||||
'check',
|
||||
'--config', gdk4_toml,
|
||||
'--add-include-path=@0@'.format(meson.current_build_dir() / '../../../gtk'),
|
||||
gdk_gir[0],
|
||||
],
|
||||
depends: gdk_gir[0],
|
||||
suite: ['docs', 'failing'],
|
||||
)
|
||||
|
||||
if x11_enabled
|
||||
gdk4x11_toml = configure_file(
|
||||
input: 'gdk4-x11.toml.in',
|
||||
@@ -87,5 +99,17 @@ if get_option('documentation')
|
||||
install: true,
|
||||
install_dir: docs_dir,
|
||||
)
|
||||
|
||||
test('doc-check-gdk-wayland',
|
||||
gidocgen,
|
||||
args: [
|
||||
'check',
|
||||
'--config', gdk4wayland_toml,
|
||||
'--add-include-path=@0@'.format(meson.current_build_dir() / '../../../gtk'),
|
||||
gdk_wayland_gir[0],
|
||||
],
|
||||
depends: gdk_wayland_gir[0],
|
||||
suite: ['docs'],
|
||||
)
|
||||
endif
|
||||
endif
|
||||
|
@@ -36,6 +36,8 @@ content_files = [
|
||||
"paths.md",
|
||||
]
|
||||
content_images = [
|
||||
"../images/favicon.svg",
|
||||
"../images/favicon-192x192.png",
|
||||
"gtk-logo.svg",
|
||||
"images/arc-dark.png",
|
||||
"images/arc-light.png",
|
||||
@@ -64,3 +66,7 @@ content_images = [
|
||||
]
|
||||
content_base_url = "https://gitlab.gnome.org/GNOME/gtk/-/blob/main/docs/reference/gsk/"
|
||||
urlmap_file = "urlmap.js"
|
||||
|
||||
[[object]]
|
||||
name = "INCLUDE_WARNING"
|
||||
hidden = true
|
||||
|
@@ -30,4 +30,16 @@ if get_option('documentation')
|
||||
install: true,
|
||||
install_dir: docs_dir,
|
||||
)
|
||||
|
||||
test('doc-check-gsk',
|
||||
gidocgen,
|
||||
args: [
|
||||
'check',
|
||||
'--config', gsk4_toml,
|
||||
'--add-include-path=@0@'.format(meson.current_build_dir() / '../../../gtk'),
|
||||
gsk_gir[0],
|
||||
],
|
||||
depends: gsk_gir[0],
|
||||
suite: ['docs'],
|
||||
)
|
||||
endif
|
||||
|
@@ -1,12 +1,16 @@
|
||||
Title: The Broadway windowing system
|
||||
Slug: broadway
|
||||
|
||||
## Using GTK with Broadway
|
||||
|
||||
The GDK Broadway backend provides support for displaying GTK applications in
|
||||
a web browser, using HTML5 and web sockets.
|
||||
|
||||
To run your application in this way, first run the broadway server,
|
||||
Broadway was written as an experiment and is not the most actively developed
|
||||
backend. It supports the features that were required of GDK backends in GTK 4.0,
|
||||
but may not be up-to-date with the latest developments.
|
||||
|
||||
## Using GTK with Broadway
|
||||
|
||||
To run your application under Broadway, first run the broadway server,
|
||||
`gtk-broadwayd`, that ships with GTK:
|
||||
|
||||
```
|
||||
|
@@ -38,13 +38,13 @@ can run the build, using Ninja:
|
||||
|
||||
```
|
||||
cd builddir
|
||||
ninja
|
||||
ninja install
|
||||
meson compile
|
||||
meson install
|
||||
```
|
||||
|
||||
If you don't have permission to write to the directory you are
|
||||
installing in, you may have to change to root temporarily before
|
||||
running `ninja install`.
|
||||
running `meson install`.
|
||||
|
||||
Several environment variables are useful to pass to set before
|
||||
running *meson*. `CPPFLAGS` contains options to pass to the C
|
||||
@@ -112,10 +112,10 @@ responsible for controlling the debugging features of GTK with
|
||||
|
||||
## Dependencies
|
||||
|
||||
Before you can compile the GTK widget toolkit, you need to have
|
||||
various other tools and libraries installed on your
|
||||
system. Dependencies of GTK have their own build systems, so
|
||||
you will need to refer to their own installation instructions.
|
||||
Before you can compile GTK, you need to have various other tools and
|
||||
libraries installed on your system. Dependencies of GTK have their own
|
||||
build systems, so you will need to refer to their own installation
|
||||
instructions.
|
||||
|
||||
A particular important tool used by GTK to find its dependencies
|
||||
is `pkg-config`.
|
||||
@@ -140,7 +140,7 @@ Other libraries are maintained separately.
|
||||
file formats. It is available [here](ttps://download.gnome.org/sources/gdk-pixbuf/).
|
||||
- [Pango](http://www.pango.org) is a library for internationalized
|
||||
text handling. It is available [here](https://download.gnome.org/sources/pango/).
|
||||
- [GObject Introspection](https://wiki.gnome.org/Projects/GObjectIntrospection)
|
||||
- [GObject Introspection](https://gitlab.gnome.org/GNOME/gobject-introspection)
|
||||
is a framework for making introspection data available to language
|
||||
bindings. It is available [here](https://download.gnome.org/sources/gobject-introspection/).
|
||||
- The [GNU libiconv](https://www.gnu.org/software/libiconv/) library
|
||||
@@ -156,8 +156,8 @@ Other libraries are maintained separately.
|
||||
the development environment for these libraries that your
|
||||
operating system vendor provides.
|
||||
- The [fontconfig](https://www.freedesktop.org/wiki/Software/fontconfig/)
|
||||
library provides Pango with a standard way of locating
|
||||
fonts and matching them against font names.
|
||||
library provides Pango with a standard way of locating fonts and matching
|
||||
them against font names.
|
||||
- [Cairo](https://www.cairographics.org) is a graphics library that
|
||||
supports vector graphics and image compositing. Both Pango and GTK
|
||||
use Cairo for drawing. Note that we also need the auxiliary cairo-gobject
|
||||
@@ -220,13 +220,12 @@ meson configure builddir
|
||||
|
||||
### `x11-backend`, `win32-backend`, `broadway-backend`, `wayland-backend` and `macos-backend`
|
||||
|
||||
Enable specific backends for GDK. If none of these options
|
||||
are given, the Wayland backend will be enabled by default,
|
||||
if the platform is Linux; the X11 backend will also be enabled
|
||||
by default, unless the platform is Windows, in which case the
|
||||
default is win32, or the platform is macOS, in which case the
|
||||
default is macOS. If any backend is explicitly enabled or disabled,
|
||||
no other platform will be enabled automatically.
|
||||
Enable specific backends for GDK. If none of these options are given, the
|
||||
Wayland backend will be enabled by default, if the platform is Linux; the
|
||||
X11 backend will also be enabled by default, unless the platform is Windows,
|
||||
in which case the default is win32, or the platform is macOS, in which case
|
||||
the default is macOS. If any backend is explicitly enabled or disabled, no
|
||||
other platform will be enabled automatically.
|
||||
|
||||
### `vulkan`
|
||||
|
||||
@@ -234,7 +233,7 @@ By default, GTK will try to build with support for the Vulkan graphics
|
||||
API in addition to cairo and OpenGL. This option can be used to explicitly
|
||||
control whether Vulkan should be used.
|
||||
|
||||
### `media-gstreamer` and `media-ffmpeg`
|
||||
### `media-gstreamer`
|
||||
|
||||
By default, GTK will try to build the gstreamer backend for
|
||||
media playback support. These options can be used to explicitly
|
||||
|
@@ -1,7 +1,7 @@
|
||||
Title: CSS in GTK
|
||||
Slug: css
|
||||
|
||||
This chapter describes how GTK uses CSS for styling and layout.
|
||||
This chapter describes how GTK uses CSS for styling and layout.
|
||||
It is not meant to be an explanation of CSS from first principles,
|
||||
but focuses on listing supported CSS features and differences
|
||||
between Web CSS and GTK.
|
||||
@@ -74,6 +74,7 @@ in a selector, widget names must be prefixed with a # character.
|
||||
| E:not(selector) | [CSS Selector Level 3](https://www.w3.org/TR/css3-selectors/#negation) | |
|
||||
| E:dir(ltr), E:dir(rtl) | [CSS Selector Level 4](https://drafts.csswg.org/selectors/#the-dir-pseudo) | |
|
||||
| E:drop(active) | [CSS Selector Level 4](https://drafts.csswg.org/selectors/#drag-pseudos) | |
|
||||
| E:root | [CSS Selector Level 3](https://www.w3.org/TR/selectors-3/#root-pseudo) | |
|
||||
| E F | [CSS Selector Level 3](https://www.w3.org/TR/css3-selectors/#descendent-combinators) | |
|
||||
| E > F | [CSS Selector Level 3](https://www.w3.org/TR/css3-selectors/#child-combinators) | |
|
||||
| E ~ F | [CSS Selector Level 3](https://www.w3.org/TR/css3-selectors/#general-sibling-combinators) | |
|
||||
|
@@ -15,16 +15,16 @@ spec.
|
||||
The following units are supported for basic datatypes:
|
||||
|
||||
Length
|
||||
: px, pt, em, ex, rem, pc, in, cm, mm, calc()
|
||||
: px, pt, em, ex, rem, pc, in, cm, mm
|
||||
|
||||
Percentage
|
||||
: %, calc()
|
||||
: %
|
||||
|
||||
Angle
|
||||
: deg, grad, turn, calc()
|
||||
: deg, rad, grad, turn
|
||||
|
||||
Time
|
||||
: s, ms, calc()
|
||||
: s, ms
|
||||
|
||||
Length values with the em or ex units are resolved using the font
|
||||
size value, unless they occur in setting the font-size itself, in
|
||||
@@ -33,11 +33,15 @@ which case they are resolved using the inherited font size value.
|
||||
The rem unit is resolved using the initial font size value, which is
|
||||
not quite the same as the CSS definition of rem.
|
||||
|
||||
The calc() notation adds considerable expressive power. There are limits
|
||||
on what types can be combined in such an expression (e.g. it does not make
|
||||
sense to add a number and a time). For the full details, see the
|
||||
[CSS3 Values and Units](https://www.w3.org/TR/css3-values/#calc-notation)
|
||||
spec.
|
||||
Length values using physical units (pt, pc, in, cm, mm) are translated
|
||||
to px using the dpi value specified by the -gtk-dpi property, which is
|
||||
different from the CSS definition, which uses a fixed dpi of 96.
|
||||
|
||||
The calc() notation adds considerable expressive power to all of these
|
||||
datatypes. There are limits on what types can be combined in such an
|
||||
expression (e.g. it does not make sense to add a number and a time).
|
||||
For the full details, see the
|
||||
[CSS Values and Units](https://www.w3.org/TR/css-values-4/) spec.
|
||||
|
||||
A common pattern among shorthand properties (called 'four sides') is one
|
||||
where one to four values can be specified, to determine a value for each
|
||||
@@ -56,38 +60,80 @@ follows:
|
||||
1 value:
|
||||
: all
|
||||
|
||||
## Custom Properties
|
||||
|
||||
GTK supports custom properties as defined in the
|
||||
[CSS Custom Properties for Cascading Variables](https://www.w3.org/TR/css-variables-1)
|
||||
spec.
|
||||
|
||||
Custom properties are defined as follows:
|
||||
|
||||
```css
|
||||
--prop: red;
|
||||
```
|
||||
|
||||
and used via the `var` keyword:
|
||||
|
||||
```css
|
||||
color: var(--prop);
|
||||
```
|
||||
|
||||
Custom properties can have a fallback for when the referred property is invalid:
|
||||
|
||||
```css
|
||||
color: var(--prop, green);
|
||||
```
|
||||
|
||||
## Colors
|
||||
|
||||
GTK extends the CSS syntax with several additional ways to specify colors.
|
||||
### CSS Colors
|
||||
|
||||
Colors can be expressed in numerous ways in CSS (see the
|
||||
[Color Module](https://www.w3.org/TR/css-color-5/). GTK supports
|
||||
many (but not all) of these.
|
||||
|
||||
You can use rgb(), rgba(), hsl() with both the legacy or the modern CSS
|
||||
syntax, and calc() can be used as well in color expressions. hwb(), oklab(),
|
||||
oklch(), color(), color-mix() and relative colors are supported as well.
|
||||
|
||||
### Non-CSS Colors
|
||||
|
||||
GTK extends the CSS syntax with several additional ways to specify colors.
|
||||
|
||||
These extensions are deprecated and should be replaced by the equivalent
|
||||
standard CSS notions.
|
||||
|
||||
The first is a reference to a color defined via a @define-color rule in CSS.
|
||||
The syntax for @define-color rules is as follows:
|
||||
|
||||
```
|
||||
@define-color Name Color
|
||||
@define-color name color
|
||||
```
|
||||
|
||||
To refer to the color defined by a @define-color rule, prefix the name with @.
|
||||
|
||||
The standard CSS mechanisms that should be used instead of @define-color are
|
||||
custom properties, :root and var().
|
||||
|
||||
GTK also supports color expressions, which allow colors to be transformed to
|
||||
new ones. Color expressions can be nested, providing a rich language to
|
||||
define colors. Color expressions resemble functions, taking 1 or more colors
|
||||
and in some cases a number as arguments.
|
||||
|
||||
`lighter(Color)`
|
||||
: produces a brighter variant of Color
|
||||
`lighter(color)`
|
||||
: produces a brighter variant of `color`.
|
||||
|
||||
`darker(Color)`
|
||||
: produces a darker variant of Color
|
||||
`darker(color)`
|
||||
: produces a darker variant of `color`.
|
||||
|
||||
`shade(Color, Number)`
|
||||
: changes the lightness of Color. The number ranges from 0 for black to 2 for white.
|
||||
`shade(color, number)`
|
||||
: changes the lightness of `color`. The `number` ranges from 0 for black to 2 for white.
|
||||
|
||||
`alpha(Color, Number)`
|
||||
: replaces the alpha value of color with number (between 0 and 1)
|
||||
`alpha(color, number)`
|
||||
: multiplies the alpha value of `color` by `number` (between 0 and 1).
|
||||
|
||||
`mix(Color1, Color2, Number)`
|
||||
: interpolates between the two colors
|
||||
`mix(color1, color2, number)`
|
||||
: interpolates between the two colors.
|
||||
|
||||
## Images
|
||||
|
||||
@@ -95,7 +141,7 @@ GTK extends the CSS syntax for images and also uses it for specifying icons.
|
||||
To load a themed icon, use
|
||||
|
||||
```
|
||||
-gtk-icontheme(Name)
|
||||
-gtk-icontheme(name)
|
||||
```
|
||||
|
||||
The specified icon name is used to look up a themed icon, while taking into
|
||||
@@ -124,14 +170,14 @@ and the
|
||||
syntax makes this available. -gtk-recolor requires a url as first argument.
|
||||
The remaining arguments specify the color palette to use. If the palette is
|
||||
not explicitly specified, the current value of the -gtk-icon-palette property
|
||||
is used.
|
||||
is used.
|
||||
|
||||
GTK supports scaled rendering on hi-resolution displays. This works best if
|
||||
images can specify normal and hi-resolution variants. From CSS, this can be
|
||||
done with
|
||||
|
||||
```
|
||||
-gtk-scaled(Image1, Image2)
|
||||
-gtk-scaled(image1, image2)
|
||||
```
|
||||
|
||||
## GTK CSS Properties
|
||||
|
@@ -99,16 +99,15 @@ reaches the requested phase. However, in practice most things
|
||||
happen at higher levels:
|
||||
|
||||
- If you are doing an animation, you can use
|
||||
gtk_widget_add_tick_callback() which will cause a regular
|
||||
[method@Gtk.Widget.add_tick_callback] which will cause a regular
|
||||
beating of the clock with a callback in the Update phase
|
||||
until you stop the tick.
|
||||
- If some state changes that causes the size of your widget to
|
||||
change you call gtk_widget_queue_resize() which will request
|
||||
change you call [method@Gtk.Widget.queue_resize] which will request
|
||||
a Layout phase and mark your widget as needing relayout.
|
||||
- If some state changes so you need to redraw some area of
|
||||
your widget you use the normal gtk_widget_queue_draw()
|
||||
set of functions. These will request a Paint phase and
|
||||
mark the region as needing redraw.
|
||||
- If some state changes so you need to redraw your widget you
|
||||
use [method@Gtk.Widget.queue_draw] to request a Paint phase for
|
||||
your widget.
|
||||
|
||||
There are also a lot of implicit triggers of these from the
|
||||
CSS layer (which does animations, resizes and repaints as needed).
|
||||
|
@@ -245,9 +245,6 @@ to connect the "clicked" signal with [method@Gtk.Window.destroy], then the funct
|
||||
would be called on `button` (which would not go well, since the function expects
|
||||
a `GtkWindow` as argument).
|
||||
|
||||
More information about creating buttons can be found
|
||||
[here](https://wiki.gnome.org/HowDoI/Buttons).
|
||||
|
||||
The rest of the code in `example-1.c` is identical to `example-0.c`. The next
|
||||
section will elaborate further on how to add several [class@Gtk.Widget]s to your
|
||||
GTK application.
|
||||
|
@@ -8,6 +8,10 @@ gtk4-broadwayd
|
||||
The Broadway display server
|
||||
---------------------------
|
||||
|
||||
:Version: GTK
|
||||
:Manual section: 1
|
||||
:Manual group: GTK commands
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
| **gtk4-broadwayd** [OPTIONS...] <DISPLAY>
|
||||
|
@@ -8,6 +8,10 @@ gtk4-builder-tool
|
||||
GtkBuilder File Utility
|
||||
-----------------------
|
||||
|
||||
:Version: GTK
|
||||
:Manual section: 1
|
||||
:Manual group: GTK commands
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
| **gtk4-builder-tool** <COMMAND> [OPTIONS...] <FILE>
|
||||
|
@@ -8,6 +8,9 @@ gtk4-demo-application
|
||||
Demonstrate GtkApplication
|
||||
--------------------------
|
||||
|
||||
:Version: GTK
|
||||
:Manual section: 1
|
||||
:Manual group: GTK commands
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
|
@@ -8,6 +8,10 @@ gtk4-demo
|
||||
Demonstrate GTK widgets
|
||||
-----------------------
|
||||
|
||||
:Version: GTK
|
||||
:Manual section: 1
|
||||
:Manual group: GTK commands
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
|
||||
|
@@ -8,6 +8,10 @@ gtk4-encode-symbolic-svg
|
||||
Symbolic icon conversion utility
|
||||
--------------------------------
|
||||
|
||||
:Version: GTK
|
||||
:Manual section: 1
|
||||
:Manual group: GTK commands
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
|
||||
|
@@ -8,6 +8,10 @@ gtk4-icon-browser
|
||||
List themed icons
|
||||
-----------------
|
||||
|
||||
:Version: GTK
|
||||
:Manual section: 1
|
||||
:Manual group: GTK commands
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
|
||||
|
97
docs/reference/gtk/gtk4-image-tool.rst
Normal file
@@ -0,0 +1,97 @@
|
||||
.. _gtk4-image-tool(1):
|
||||
|
||||
====================
|
||||
gtk4-image-tool
|
||||
====================
|
||||
|
||||
-----------------------
|
||||
Image Utility
|
||||
-----------------------
|
||||
|
||||
:Version: GTK
|
||||
:Manual section: 1
|
||||
:Manual group: GTK commands
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
| **gtk4-image-tool** <COMMAND> [OPTIONS...] <FILE>...
|
||||
|
|
||||
| **gtk4-image-tool** compare [OPTIONS...] <FILE1> <FILE2>
|
||||
| **gtk4-image-tool** convert [OPTIONS...] <FILE1> <FILE2>
|
||||
| **gtk4-image-tool** info [OPTIONS...] <FILE>
|
||||
| **gtk4-image-tool** relabel [OPTIONS...] <FILE1> <FILE2>
|
||||
| **gtk4-image-tool** show [OPTIONS...] <FILE>...
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
||||
``gtk4-image-tool`` can perform various operations on images.
|
||||
|
||||
COMMANDS
|
||||
--------
|
||||
|
||||
Information
|
||||
^^^^^^^^^^^
|
||||
|
||||
The ``info`` command shows general information about the image, such
|
||||
as its format and color state.
|
||||
|
||||
Showing
|
||||
^^^^^^^
|
||||
|
||||
The ``show`` command displays one or more images, side-by-side.
|
||||
|
||||
``--undecorated``
|
||||
|
||||
Removes window decorations. This is meant for rendering of exactly the image
|
||||
without any titlebar.
|
||||
|
||||
Compare
|
||||
^^^^^^^
|
||||
|
||||
The ``compare`` command compares two images. If any differences are found,
|
||||
the exit code is 1. If the images are identical, it is 0.
|
||||
|
||||
``--output=FILE``
|
||||
|
||||
Save the differences as a png image in ``FILE``.
|
||||
|
||||
``--quiet``
|
||||
|
||||
Don't write results to stdout.
|
||||
|
||||
Conversion
|
||||
^^^^^^^^^^
|
||||
|
||||
The ``convert`` command converts the image to a different format or color state.
|
||||
|
||||
``--format=FORMAT``
|
||||
|
||||
Convert to the given format. The supported formats can be listed
|
||||
with ``--format=list``.
|
||||
|
||||
``--color-state=COLORSTATE``
|
||||
|
||||
Convert to the given color state. The supported color states can be
|
||||
listed with ``--format=list``.
|
||||
|
||||
``--cicp=CICP``
|
||||
|
||||
Convert to a color state that is specified as a cicp tuple. The cicp tuple
|
||||
must be specified as four numbers, separated by /, e.g. 1/13/6/0.
|
||||
|
||||
Relabeling
|
||||
^^^^^^^^^^
|
||||
|
||||
The ``relabel`` command changes the color state of an image without conversion.
|
||||
This can be useful to produce wrong color renderings for diagnostics.
|
||||
|
||||
``--color-state=COLORSTATE``
|
||||
|
||||
Relabel to the given color state. The supported color states can be
|
||||
listed with ``--format=list``.
|
||||
|
||||
``--cicp=CICP``
|
||||
|
||||
Relabel to a color state that is specified as a cicp tuple. The cicp tuple
|
||||
must be specified as four numbers, separated by /, e.g. 1/13/6/0.
|
@@ -8,6 +8,10 @@ gtk4-launch
|
||||
Launch an application
|
||||
---------------------
|
||||
|
||||
:Version: GTK
|
||||
:Manual section: 1
|
||||
:Manual group: GTK commands
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
|
||||
|
@@ -8,6 +8,10 @@ gtk4-node-editor
|
||||
Editor render nodes
|
||||
-----------------
|
||||
|
||||
:Version: GTK
|
||||
:Manual section: 1
|
||||
:Manual group: GTK commands
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
|
||||
|
@@ -8,6 +8,10 @@ gtk4-path-tool
|
||||
GskPath Utility
|
||||
-----------------------
|
||||
|
||||
:Version: GTK
|
||||
:Manual section: 1
|
||||
:Manual group: GTK commands
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
| **gtk4-path-tool** <COMMAND> [OPTIONS...] <PATH>
|
||||
|
@@ -8,6 +8,10 @@ gtk4-query-settings
|
||||
Print name and value of GTK settings
|
||||
------------------------------------
|
||||
|
||||
:Version: GTK
|
||||
:Manual section: 1
|
||||
:Manual group: GTK commands
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
|
||||
|
@@ -8,11 +8,17 @@ gtk4-rendernode-tool
|
||||
GskRenderNode Utility
|
||||
-----------------------
|
||||
|
||||
:Version: GTK
|
||||
:Manual section: 1
|
||||
:Manual group: GTK commands
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
| **gtk4-rendernode-tool** <COMMAND> [OPTIONS...] <FILE>
|
||||
|
|
||||
| **gtk4-rendernode-tool** benchmark [OPTIONS...] <FILE>
|
||||
| **gtk4-rendernode-tool** compare [OPTIONS...] <FILE1> <FILE2>
|
||||
| **gtk4-rendernode-tool** extract [OPTIONS...] <FILE>
|
||||
| **gtk4-rendernode-tool** info [OPTIONS...] <FILE>
|
||||
| **gtk4-rendernode-tool** render [OPTIONS...] <FILE> [<FILE>]
|
||||
| **gtk4-rendernode-tool** show [OPTIONS...] <FILE>
|
||||
@@ -44,13 +50,14 @@ without any titlebar.
|
||||
Rendering
|
||||
^^^^^^^^^
|
||||
|
||||
The ``render`` command saves a rendering of the rendernode as a png or tiff image.
|
||||
The name of the file to write can be specified as a second FILE argument.
|
||||
The ``render`` command saves a rendering of the rendernode as a png, tiff or svg
|
||||
image or as pdf document. The name of the file to write can be specified as a second
|
||||
FILE argument.
|
||||
|
||||
``--renderer=RENDERER``
|
||||
|
||||
Use the given renderer. Use ``--renderer=help`` to get a information
|
||||
about poassible values for the ``RENDERER``.
|
||||
about possible values for the ``RENDERER``.
|
||||
|
||||
Benchmark
|
||||
^^^^^^^^^
|
||||
@@ -75,7 +82,33 @@ and prints the runtimes.
|
||||
the execution of the commands on the GPU. It can be useful to use this flag to test
|
||||
command submission performance.
|
||||
|
||||
Compare
|
||||
^^^^^^^
|
||||
|
||||
The ``compare`` command compares the rendering of a node with a reference image,
|
||||
or the renderings of two nodes, or two images. If any differences are found, the
|
||||
exit code is 1. If the images are identical, it is 0.
|
||||
|
||||
``--renderer=RENDERER``
|
||||
|
||||
Use the given renderer.
|
||||
|
||||
``--output=FILE``
|
||||
|
||||
Save the differences as a png image in ``FILE``.
|
||||
|
||||
``--quiet``
|
||||
|
||||
Don't write results to stdout.
|
||||
|
||||
|
||||
Extract
|
||||
^^^^^^^
|
||||
|
||||
The ``extract`` command saves all the data urls found in a node file to a given
|
||||
directory. The file names for the extracted files are derived from the mimetype
|
||||
of the url.
|
||||
|
||||
``--dir=DIRECTORY``
|
||||
|
||||
Save extracted files in ``DIRECTORY`` (defaults to the current directory).
|
||||
|
@@ -8,6 +8,10 @@ gtk4-update-icon-cache
|
||||
Icon theme caching utility
|
||||
--------------------------
|
||||
|
||||
:Version: GTK
|
||||
:Manual section: 1
|
||||
:Manual group: GTK commands
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
|
||||
|
@@ -8,6 +8,10 @@ gtk4-widget-factory
|
||||
Showcase GTK widgets and styles
|
||||
-------------------------------
|
||||
|
||||
:Version: GTK
|
||||
:Manual section: 1
|
||||
:Manual group: GTK commands
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
|
||||
|
@@ -77,14 +77,19 @@ content_files = [
|
||||
"section-tree-widget.md",
|
||||
"migrating-2to4.md",
|
||||
"migrating-3to4.md",
|
||||
"migrating-4to5.md",
|
||||
"broadway.md",
|
||||
"osx.md",
|
||||
"wayland.md",
|
||||
"windows.md",
|
||||
"x11.md",
|
||||
"tools.md",
|
||||
"visual_index.md",
|
||||
"node-format.md",
|
||||
]
|
||||
content_images = [
|
||||
"../images/favicon.svg",
|
||||
"../images/favicon-192x192.png",
|
||||
"images/aboutdialog.png",
|
||||
"images/action-bar.png",
|
||||
"images/appchooserbutton.png",
|
||||
@@ -247,3 +252,12 @@ content_images = [
|
||||
]
|
||||
content_base_url = "https://gitlab.gnome.org/GNOME/gtk/-/blob/main/docs/reference/gtk/"
|
||||
urlmap_file = "urlmap.js"
|
||||
|
||||
[[object]]
|
||||
name = "StyleProvider"
|
||||
[[object.signal]]
|
||||
name = "gtk-private-changed"
|
||||
hidden = true
|
||||
|
||||
[check]
|
||||
ignore_deprecated = true
|
||||
|
@@ -140,6 +140,11 @@ capture phase, and key bindings locally, during the target phase.
|
||||
Under the hood, all shortcuts are represented as instances of `GtkShortcut`,
|
||||
and they are managed by `GtkShortcutController`.
|
||||
|
||||
Note that GTK does not do anything to map the primary shortcut modifier
|
||||
to <kbd>Command</kbd> on macOS. If you want to let your application to follow
|
||||
macOS user experience conventions, you must create macOS-specific keyboard shortcuts.
|
||||
The <kbd>Command</kbd> is named `Meta` (`GDK_META_MASK`) in GTK.
|
||||
|
||||
## Text input
|
||||
|
||||
When actual text input is needed (i.e. not just keyboard shortcuts),
|
||||
|
@@ -14,6 +14,7 @@ expand_content_md_files = [
|
||||
'running.md',
|
||||
'migrating-2to4.md',
|
||||
'migrating-3to4.md',
|
||||
'migrating-4to5.md',
|
||||
'actions.md',
|
||||
'input-handling.md',
|
||||
'drawing-model.md',
|
||||
@@ -25,7 +26,8 @@ expand_content_md_files = [
|
||||
'section-tree-widget.md',
|
||||
'section-list-widget.md',
|
||||
'question_index.md',
|
||||
'visual_index.md'
|
||||
'visual_index.md',
|
||||
'tools.md',
|
||||
]
|
||||
|
||||
gtk_images = []
|
||||
@@ -60,39 +62,52 @@ if get_option('documentation')
|
||||
build_by_default: true,
|
||||
install: true,
|
||||
install_dir: docs_dir,
|
||||
install_tag: 'doc',
|
||||
)
|
||||
|
||||
test('doc-check-gtk',
|
||||
gidocgen,
|
||||
args: [
|
||||
'check',
|
||||
'--config', gtk4_toml,
|
||||
'--add-include-path=@0@'.format(meson.current_build_dir() / '../../../gtk'),
|
||||
gtk_gir[0],
|
||||
],
|
||||
depends: gtk_gir[0],
|
||||
suite: ['docs', 'failing'],
|
||||
)
|
||||
endif
|
||||
|
||||
rst2man = find_program('rst2man', 'rst2man.py', required: false)
|
||||
if get_option('man-pages') and not rst2man.found()
|
||||
error('No rst2man found, but man pages were explicitly enabled')
|
||||
rst2man = find_program('rst2man', 'rst2man.py', required: get_option('man-pages'))
|
||||
rst2html5 = find_program('rst2html5', 'rst2html5.py', required: get_option('documentation'))
|
||||
|
||||
rst_files = [
|
||||
[ 'gtk4-broadwayd', '1' ],
|
||||
[ 'gtk4-builder-tool', '1' ],
|
||||
[ 'gtk4-encode-symbolic-svg', '1', ],
|
||||
[ 'gtk4-image-tool', '1' ],
|
||||
[ 'gtk4-launch', '1', ],
|
||||
[ 'gtk4-query-settings', '1', ],
|
||||
[ 'gtk4-rendernode-tool', '1' ],
|
||||
[ 'gtk4-update-icon-cache', '1', ],
|
||||
[ 'gtk4-path-tool', '1', ],
|
||||
]
|
||||
|
||||
if get_option('build-demos')
|
||||
rst_files += [
|
||||
[ 'gtk4-demo', '1', ],
|
||||
[ 'gtk4-demo-application', '1', ],
|
||||
[ 'gtk4-widget-factory', '1', ],
|
||||
[ 'gtk4-icon-browser', '1', ],
|
||||
[ 'gtk4-node-editor', '1', ],
|
||||
]
|
||||
endif
|
||||
|
||||
if get_option('man-pages') and rst2man.found()
|
||||
rst_files = [
|
||||
[ 'gtk4-broadwayd', '1' ],
|
||||
[ 'gtk4-builder-tool', '1' ],
|
||||
[ 'gtk4-encode-symbolic-svg', '1', ],
|
||||
[ 'gtk4-launch', '1', ],
|
||||
[ 'gtk4-query-settings', '1', ],
|
||||
[ 'gtk4-rendernode-tool', '1' ],
|
||||
[ 'gtk4-update-icon-cache', '1', ],
|
||||
[ 'gtk4-path-tool', '1', ],
|
||||
]
|
||||
rst2x_flags = [
|
||||
'--syntax-highlight=none',
|
||||
]
|
||||
|
||||
if get_option('demos')
|
||||
rst_files += [
|
||||
[ 'gtk4-demo', '1', ],
|
||||
[ 'gtk4-demo-application', '1', ],
|
||||
[ 'gtk4-widget-factory', '1', ],
|
||||
[ 'gtk4-icon-browser', '1', ],
|
||||
[ 'gtk4-node-editor', '1', ],
|
||||
]
|
||||
endif
|
||||
|
||||
rst2man_flags = [
|
||||
'--syntax-highlight=none',
|
||||
]
|
||||
if get_option('man-pages')
|
||||
|
||||
foreach rst: rst_files
|
||||
man_name = rst[0]
|
||||
@@ -103,12 +118,34 @@ if get_option('man-pages') and rst2man.found()
|
||||
output: '@0@.@1@'.format(man_name, man_section),
|
||||
command: [
|
||||
rst2man,
|
||||
rst2man_flags,
|
||||
rst2x_flags,
|
||||
'@INPUT@',
|
||||
],
|
||||
capture: true,
|
||||
install: true,
|
||||
install_dir: get_option('mandir') / 'man@0@'.format(man_section),
|
||||
install_tag: 'doc',
|
||||
)
|
||||
endforeach
|
||||
endif
|
||||
|
||||
if get_option('documentation')
|
||||
|
||||
foreach rst: rst_files
|
||||
man_name = rst[0]
|
||||
|
||||
custom_target(
|
||||
input: '@0@.rst'.format(man_name),
|
||||
output: '@0@.html'.format(man_name),
|
||||
command: [
|
||||
rst2html5,
|
||||
rst2x_flags,
|
||||
'@INPUT@',
|
||||
],
|
||||
capture: true,
|
||||
install: true,
|
||||
install_dir: docs_dir / 'gtk4',
|
||||
install_tag: 'doc',
|
||||
)
|
||||
endforeach
|
||||
endif
|
||||
|
@@ -451,11 +451,11 @@ hint about how modifiers are expected to be used. It also promoted
|
||||
the use of `<Primary>` instead of `<Control>` to specify accelerators that
|
||||
adapt to platform conventions.
|
||||
|
||||
In GTK 4, the meaning of modifiers has been fixed, and backends are
|
||||
In GTK 4, the meaning of modifiers has been fixed, and applications are
|
||||
expected to map the platform conventions to the existing modifiers.
|
||||
The expected use of modifiers in GTK 4 is:
|
||||
|
||||
`GDK_CONTROL_MASK`
|
||||
`GDK_CONTROL_MASK` (`GDK_META_MASK` on macOS)
|
||||
: Primary accelerators
|
||||
|
||||
`GDK_ALT_MASK`
|
||||
@@ -464,7 +464,7 @@ The expected use of modifiers in GTK 4 is:
|
||||
`GDK_SHIFT_MASK`
|
||||
: Extending selections
|
||||
|
||||
`GDK_CONTROL_MASK`
|
||||
`GDK_CONTROL_MASK` (`GDK_META_MASK` on macOS)
|
||||
: Modifying selections
|
||||
|
||||
`GDK_CONTROL_MASK|GDK_ALT_MASK`
|
||||
@@ -473,9 +473,15 @@ The expected use of modifiers in GTK 4 is:
|
||||
Consequently, `GdkModifierIntent` and related APIs have been removed,
|
||||
and `<Control>` is preferred over `<Primary>` in accelerators.
|
||||
|
||||
In GTK 3 on macOS, the `<Primary>` modifier mapped to the <kbd>Command</kbd> key.
|
||||
In GTK 4, this is no longer the case: `<Primary>` is synonymous to `<Control>`.
|
||||
If you want to make your application to feel native on macOS,
|
||||
you need to add accelerators for macOS that use the `<Meta>` modifier.
|
||||
|
||||
A related change is that GTK 4 no longer supports the use of archaic
|
||||
X11 'real' modifiers with the names Mod1,..., Mod5, and `GDK_MOD1_MASK`
|
||||
has been renamed to `GDK_ALT_MASK`.
|
||||
has been renamed to `GDK_ALT_MASK` and `GDK_MOD2_MASK` has been renamed to
|
||||
`GDK_META_MASK`.
|
||||
|
||||
### Replace `GtkClipboard` with `GdkClipboard`
|
||||
|
||||
|
@@ -24,83 +24,180 @@ the motivation and goals of larger API changes.
|
||||
## Cell renderers are going away
|
||||
|
||||
Cell renderers were introduced in GTK 2 to support rendering of
|
||||
"big data" UIs, in particular treeviews. Over the years, more
|
||||
"data-like" widgets have started to use them, and cell renderers
|
||||
“big data” UIs, in particular treeviews. Over the years, more
|
||||
“data-like” widgets have started to use them, and cell renderers
|
||||
have grown into a shadowy, alternative rendering infrastructure
|
||||
that duplicates much of what widgets do, while duplicating the
|
||||
code and adding their own dose of bugs.
|
||||
|
||||
In GTK 4, replacement widgets for GtkTreeView, GtkIconView and
|
||||
GtkComboBox have appeared: GtkListView, GtkColumnView, GtkGridView
|
||||
and GtkDropDown. For GTK 5, we will take the next step and remove
|
||||
In GTK 4, replacement widgets for `GtkTreeView`, `GtkIconView` and
|
||||
`GtkComboBox` have appeared: [class@Gtk.ListView], [class@Gtk.ColumnView], [class@Gtk.GridView]
|
||||
and [class@Gtk.DropDown]. For GTK 5, we will take the next step and remove
|
||||
all cell renderer-based widgets.
|
||||
|
||||
## Themed rendering APIs are going away
|
||||
|
||||
The old GTK 2 era rendering APIs for theme components like
|
||||
gtk_render_frame() or gtk_render_check() have not been used by
|
||||
`gtk_render_frame()` or `gtk_render_check()` have not been used by
|
||||
GTK itself even in later GTK 3, but they have been kept around
|
||||
for the benefit of "external drawing" users - applications that
|
||||
for the benefit of “external drawing” users — applications that
|
||||
want their controls to look like GTK without using widgets.
|
||||
|
||||
Supporting this is increasingly getting in the way of making
|
||||
the GTK CSS machinery fast and correct. One notable problem is
|
||||
that temporary style changes (using gtk_style_context_save())
|
||||
that temporary style changes (using `gtk_style_context_save()`)
|
||||
is breaking animations. Therefore, these APIs will be going away
|
||||
in GTK 5, together with their more modern GtkSnapshot variants
|
||||
like gtk_snapshot_render_background() or gtk_snapshot_render_focus().
|
||||
in GTK 5, together with their more modern [class@Gtk.Snapshot] variants
|
||||
like `gtk_snapshot_render_background()` or `gtk_snapshot_render_focus()`.
|
||||
|
||||
The best way to render parts of your widget using CSS styling
|
||||
is to use subwidgets. For example, to show a piece of text with
|
||||
fonts, effects and shadows according to the current CSS style,
|
||||
use a GtkLabel.
|
||||
use a [class@Gtk.Label].
|
||||
|
||||
If you have a need for custom drawing that fits into the current
|
||||
(dark or light) theme, e.g. for rendering a graph, you can still
|
||||
get the current style foreground color, using
|
||||
[method@Gtk.Widget.get_style_color].
|
||||
[method@Gtk.Widget.get_color].
|
||||
|
||||
## Local stylesheets are going away
|
||||
|
||||
The cascading part of GTK's CSS implementation is complicated by
|
||||
The cascading part of GTK’s CSS implementation is complicated by
|
||||
the existence of local stylesheets (i.e. those added with
|
||||
gtk_style_context_add_provider()). And local stylesheets are
|
||||
`gtk_style_context_add_provider()`). And local stylesheets are
|
||||
unintuitive in that they do not apply to the whole subtree of
|
||||
widgets, but just to the one widget where the stylesheet was
|
||||
added.
|
||||
|
||||
GTK 5 will no longer provide this functionality. The recommendations
|
||||
is to use a global stylesheet (i.e. gtk_style_context_add_provider_for_display())
|
||||
GTK 5 will no longer provide this functionality. The recommendation
|
||||
is to use a global stylesheet (i.e. [func@Gtk.StyleContext.add_provider_for_display])
|
||||
and rely on style classes to make your CSS apply only where desired.
|
||||
|
||||
## Non-standard CSS extensions are going away
|
||||
|
||||
GTK’s CSS machinery has a some non-standard extensions around colors:
|
||||
named colors with `@define-color` and color functions: `lighter()`, `darker()`,
|
||||
`shade()`, `alpha()`, `mix()`.
|
||||
|
||||
GTK now implements equivalent functionality from the CSS specs.
|
||||
|
||||
### `@define-color` is going away
|
||||
|
||||
`@define-color` should be replaced by custom properties in the `:root` scope.
|
||||
|
||||
Instead of
|
||||
|
||||
```
|
||||
@define-color fg_color #2e3436
|
||||
|
||||
...
|
||||
|
||||
box {
|
||||
color: @fg_color;
|
||||
}
|
||||
```
|
||||
|
||||
use
|
||||
|
||||
```
|
||||
:root {
|
||||
--fg-color: #2e3436;
|
||||
}
|
||||
|
||||
...
|
||||
|
||||
box {
|
||||
color: var(--fg-color);
|
||||
}
|
||||
```
|
||||
|
||||
For more information about custom CSS properties and variables, see the
|
||||
[CSS Custom Properties for Cascading Variables](https://www.w3.org/TR/css-variables-1/)
|
||||
spec.
|
||||
|
||||
### Color expressions are going away
|
||||
|
||||
The color functions can all be replaced by combinations of `calc()` and `color-mix()`.
|
||||
|
||||
`lighter(c)` and `darker(c)` are just `shade(c, 1.3)` or `shade(c, 0.7)`, respectively, and
|
||||
thus can be handled the same way as shade in the examples below.
|
||||
|
||||
Replace
|
||||
|
||||
```
|
||||
a {
|
||||
color: mix(red, green, 0.8);
|
||||
}
|
||||
|
||||
b {
|
||||
color: alpha(green, 0.6);
|
||||
}
|
||||
|
||||
c {
|
||||
color: shade(red, 1.3);
|
||||
}
|
||||
|
||||
d {
|
||||
color: shade(red, 0.7);
|
||||
}
|
||||
```
|
||||
|
||||
with
|
||||
|
||||
```
|
||||
a {
|
||||
color: color-mix(in srgb, red, green 80%);
|
||||
}
|
||||
|
||||
b {
|
||||
color: rgb(from green, r g b / calc(alpha * 0.6));
|
||||
}
|
||||
|
||||
c {
|
||||
color: hsl(from red, h calc(s * 1.3) calc(l * 1.3));
|
||||
}
|
||||
|
||||
d {
|
||||
color: hsl(from red, h calc(s * 0.7) calc(l * 0.7));
|
||||
}
|
||||
```
|
||||
|
||||
Variations of these replacements are possible.
|
||||
|
||||
Note that GTK has historically computed `mix()` and `shade()` values in the SRGB and HSL
|
||||
colorspaces, but using OKLAB instead might yield slightly better results.
|
||||
|
||||
For more information about color-mix(), see the
|
||||
[CSS Color](https://drafts.csswg.org/css-color-5) spec.
|
||||
|
||||
## Chooser interfaces are going away
|
||||
|
||||
The GtkColorChooser, GtkFontChooser, GtkFileChooser and GtkAppChooser
|
||||
The `GtkColorChooser`, `GtkFontChooser`, `GtkFileChooser` and `GtkAppChooser`
|
||||
interfaces and their implementations as dialogs, buttons and widgets
|
||||
are phased out. The are being replaced by a new family of async APIs
|
||||
that will be more convenient to use from language bindings, in particular
|
||||
for languages that have concepts like promises. The new APIs are
|
||||
[class@Gtk.ColorDialog], [class@Gtk.FontDialog] and [class@Gtk.FileDialog],
|
||||
There are also equivalents for some of the 'button' widgets:
|
||||
There are also equivalents for some of the “button” widgets:
|
||||
[class@Gtk.ColorDialogButton], [class@Gtk.FontDialogButton].
|
||||
|
||||
## GtkMessageDialog is going away
|
||||
|
||||
Like the Chooser interfaces, GtkMessageDialog has been replaced by
|
||||
Like the Chooser interfaces, `GtkMessageDialog` has been replaced by
|
||||
a new async API that will be more convenient, in particular for
|
||||
language binding. The new API is [class@Gtk.AlertDialog].
|
||||
|
||||
## GtkDialog is going away
|
||||
|
||||
After gtk_dialog_run() was removed, the usefulness of GtkDialog
|
||||
is much reduced, and it has awkward, archaice APIs. Therefore,
|
||||
After `gtk_dialog_run()` was removed, the usefulness of `GtkDialog`
|
||||
is much reduced, and it has awkward, archaic APIs. Therefore,
|
||||
it is dropped. The recommended replacement is to just create
|
||||
your own window and add buttons as required, either in the header
|
||||
or elsewhere.
|
||||
|
||||
## GtkInfoBar is going away
|
||||
|
||||
GtkInfoBar had a dialog API, and with dialogs going away, it was time to
|
||||
`GtkInfoBar` had a dialog API, and with dialogs going away, it was time to
|
||||
retire it. If you need such a widget, it is relatively trivial to create one
|
||||
using a [class@Gtk.Revealer] with labels and buttons.
|
||||
|
||||
@@ -108,11 +205,11 @@ Other libraries, such as libadwaita, may provide replacements as well.
|
||||
|
||||
## gtk_show_uri is being replaced
|
||||
|
||||
Instead of gtk_show_uri(), you should use GtkUriLauncher or GtkFileLauncher.
|
||||
Instead of `gtk_show_uri()`, you should use [class@Gtk.UriLauncher]or [class@Gtk.FileLauncher].
|
||||
|
||||
## GtkStatusbar is going away
|
||||
|
||||
This is an oldfashioned widget that does not do all that much anymore, since
|
||||
This is an old fashioned widget that does not do all that much any more, since
|
||||
it no longer has a resize handle for the window.
|
||||
|
||||
## GtkLockButton and GtkVolumeButton are going away
|
||||
@@ -120,22 +217,22 @@ it no longer has a resize handle for the window.
|
||||
These are very specialized widgets that should better live with the application
|
||||
where they are used.
|
||||
|
||||
## Widget size api changes
|
||||
## Widget size API changes
|
||||
|
||||
The functions gtk_widget_get_allocated_width() and gtk_widget_get_allocated_height()
|
||||
The functions `gtk_widget_get_allocated_width()` and `gtk_widget_get_allocated_height()`
|
||||
are going away. In most cases, [method@Gtk.Widget.get_width] and [method@Gtk.Widget.get_height]
|
||||
are suitable replacements. Note that the semantics are slightly different though:
|
||||
the old functions return the size of the CSS border area, while the new functions return
|
||||
the size of the widgets content area. In places where this difference matters, you can
|
||||
use `gtk_widget_compute_bounds (widget, widget, &bounds)` instead.
|
||||
|
||||
The function gtk_widget_get_allocation() is also going away. It does not have a direct
|
||||
The function `gtk_widget_get_allocation()` is also going away. It does not have a direct
|
||||
replacement, but the previously mentioned alternatives can be used for it too.
|
||||
|
||||
The function gtk_widget_get_allocated_baseline() has been renamed to [method@Gtk.Widget.get_baseline].
|
||||
The function `gtk_widget_get_allocated_baseline()` has been renamed to [method@Gtk.Widget.get_baseline].
|
||||
|
||||
## Stop using GdkPixbuf
|
||||
|
||||
GTK is moving away from GdkPixbuf as the primary API for transporting image data, in favor
|
||||
of GdkTexture. APIs that are accepting or returning GdkPixbufs are being replaced by equivalent
|
||||
APIs using GdkTexture or GdkPaintable objects.
|
||||
GTK is moving away from `GdkPixbuf` as the primary API for transporting image data, in favor
|
||||
of [class@Gdk.Texture]. APIs that are accepting or returning `GdkPixbuf`s are being replaced by equivalent
|
||||
APIs using `GdkTexture` or [iface@Gdk.Paintable] objects.
|
||||
|
@@ -1,13 +1,15 @@
|
||||
# The Node file format
|
||||
Title: The Node file format
|
||||
|
||||
GSK render nodes can be serialized and deserialized using APIs such as `gsk_render_node_serialize()` and `gsk_render_node_deserialize()`. The intended use for this is development - primarily the development of GTK - by allowing things such as creating testsuites and benchmarks, exchanging nodes in bug reports. GTK includes the `gtk4-node-editor` application for creating such test files.
|
||||
|
||||
The format is a text format that follows the [CSS syntax rules](https://drafts.csswg.org/css-syntax-3/). In particular, this means that every array of bytes will produce a render node when parsed, as there is a defined error recovery method. For more details on error handling, please refer to the documentation of the parsing APIs.
|
||||
|
||||
The grammar of a node text representation using [the CSS value definition syntax](https://drafts.csswg.org/css-values-3/#value-defs) looks like this:
|
||||
**document**: `<node>\*`
|
||||
**node**: container [ "name" ] { <document> } | `<node-type> [ "name" ] { <property>* }` | "name"
|
||||
**property**: `<property-name>: <node> | <value> ;`
|
||||
|
||||
document: <@-rule>*<node>
|
||||
@-rule: @cicp "name" { <property>* }
|
||||
node: container [ "name" ] { <document> } | <node-type> [ "name" ] { <property>* } | "name"
|
||||
property: <property-name>: <node> | <value> ;
|
||||
|
||||
Each node has its own `<node-type>` and supports a custom set of properties, each with their own `<property-name>` and syntax. The following paragraphs document each of the nodes and their properties.
|
||||
|
||||
@@ -25,6 +27,59 @@ Nodes can be given a name by adding a string after the `<node-type>` in their de
|
||||
|
||||
Just like nodes, textures can be referenced by name. When defining a named texture, the name has to be placed in front of the URL.
|
||||
|
||||
# Color states
|
||||
|
||||
Color states are represented either by an ident (for builtin ones) or a string
|
||||
(for custom ones):
|
||||
|
||||
color-state: <ident> | <string>
|
||||
|
||||
Custom color states can be defined at the beginning of the document, with an @cicp rule.
|
||||
|
||||
The format for @cicp rules is
|
||||
|
||||
@cicp "name" {
|
||||
...
|
||||
}
|
||||
|
||||
The following properties can be set for custom color states:
|
||||
|
||||
| property | syntax | default | printed |
|
||||
| --------- | ---------------- | -------- | ----------- |
|
||||
| primaries | `<integer>` | 2 | always |
|
||||
| transfer | `<integer>` | 2 | always |
|
||||
| matrix | `<integer>` | 2 | always |
|
||||
| range | `<range>` | full | non-default |
|
||||
|
||||
Note that the primaries, transfer and matrix properties always need
|
||||
to be specified, since GTK does not allow creating color state objects
|
||||
with these being set to 2 (== unspecified).
|
||||
|
||||
Range can have the following values:
|
||||
|
||||
range: narrow | full
|
||||
|
||||
# Colors
|
||||
|
||||
Colors can be specified with a variation of the modern CSS color syntax:
|
||||
|
||||
color(<color-state> <number> <number> <number> ["/" <number>])
|
||||
|
||||
The traditional syntax for sRGB colors still works as well:
|
||||
|
||||
rgba(<number>, <number>, <number>, <number)
|
||||
rgb(<number, <number>, <number>)
|
||||
|
||||
# Rectangles
|
||||
|
||||
Rectangles can be specified just as four integers for x, y, width and height:
|
||||
|
||||
rect: <number> <number> <number> <number>
|
||||
|
||||
Rounded rectangles use a CSS-like syntax:
|
||||
|
||||
rounded-rect: <rect> [ "/" <number>{1,4} [ "/" <number>{1,4} ] ]
|
||||
|
||||
# Nodes
|
||||
|
||||
### container
|
||||
@@ -41,6 +96,13 @@ The **container** node is a special node that allows specifying a list of child
|
||||
|
||||
Creates a node like `gsk_blend_node_new()` with the given properties.
|
||||
|
||||
Possible values for the mode property are:
|
||||
|
||||
blend-mode: normal | multiply | screen | overlay | darken |
|
||||
lighten | color-dodge | color-burn | hard-light |
|
||||
soft-light | difference | exclusion | color |
|
||||
hue | saturation | luminosity
|
||||
|
||||
### blur
|
||||
|
||||
| property | syntax | default | printed |
|
||||
@@ -160,6 +222,10 @@ Creates a node like `gsk_fill_node_new()` with the given properties.
|
||||
The default child node is the default color node, but created with the
|
||||
bounds of the path.
|
||||
|
||||
Possible values for the fill-rule property are:
|
||||
|
||||
fill-rule: winding | even-odd
|
||||
|
||||
### glshader
|
||||
|
||||
| property | syntax | default | printed |
|
||||
@@ -211,6 +277,10 @@ Creates a node like `gsk_linear_gradient_node_new()` with the given properties.
|
||||
|
||||
Creates a node like `gsk_mask_node_new()` with the given properties.
|
||||
|
||||
Possible values for the mode property are:
|
||||
|
||||
mask-mode: alpha | inverted-alpha | luminance | inverted-luminance
|
||||
|
||||
### opacity
|
||||
|
||||
| property | syntax | default | printed |
|
||||
@@ -249,11 +319,11 @@ Creates a node like `gsk_radial_gradient_node_new()` with the given properties.
|
||||
|
||||
### repeat
|
||||
|
||||
| property | syntax | default | printed |
|
||||
| ----------- | ---------------- | ---------------------- | ----------- |
|
||||
| bounds | `<rect>` | *bounds of child node* | non-default |
|
||||
| child | `<node>` | color { } | always |
|
||||
| child-bounds| `<rect>` | *bounds of child node* | non-default |
|
||||
| property | syntax | default | printed |
|
||||
| ------------ | ---------- | ---------------------- | ----------- |
|
||||
| bounds | `<rect>` | *bounds of child node* | non-default |
|
||||
| child | `<node>` | color { } | always |
|
||||
| child-bounds | `<rect>` | *bounds of child node* | non-default |
|
||||
|
||||
Creates a node like `gsk_repeat_node_new()` with the given properties.
|
||||
|
||||
@@ -320,14 +390,25 @@ Creates a node like `gsk_stroke_node_new()` with the given properties.
|
||||
The default child node is the default color node, but created with the
|
||||
stroke bounds of the path.
|
||||
|
||||
Possible values for the line-cap property are:
|
||||
|
||||
line-cap: butt | round | square
|
||||
|
||||
Possible values for the line-join property are:
|
||||
|
||||
line-join: miter | round | bevel
|
||||
|
||||
### text
|
||||
|
||||
| property | syntax | default | printed |
|
||||
| -------- | ------------------- | ------------------- | ----------- |
|
||||
| color | `<color>` | black | non-default |
|
||||
| font | `<string>` `<url>`? | "Cantarell 11" | always |
|
||||
| glyphs | `<glyphs>` | "Hello" | always |
|
||||
| offset | `<point>` | 0 0 | non-default |
|
||||
| property | syntax | default | printed |
|
||||
| ------------ | ------------------- | ------------------- | ----------- |
|
||||
| color | `<color>` | black | non-default |
|
||||
| font | `<string>` `<url>`? | "Cantarell 15px" | always |
|
||||
| glyphs | `<glyphs>` | "Hello" | always |
|
||||
| offset | `<point>` | 0 0 | non-default |
|
||||
| hint-style | `<hint-style>` | slight | non-default |
|
||||
| antialias | `<antialias>` | gray | non-default |
|
||||
| hint-metrics | `<hint-metrics>` | off | non-default |
|
||||
|
||||
Creates a node like `gsk_text_node_new()` with the given properties.
|
||||
|
||||
@@ -336,12 +417,24 @@ font that is specified in the string. It can be either a data url containing
|
||||
a base64-encoded font file, or a regular url that points to a font file.
|
||||
|
||||
Glyphs can be specified as an ASCII string, or as a comma-separated list of
|
||||
their glyph ID and advance width. Optionally, x and y offsets and flags can
|
||||
their glyph IDs. Optionally, the advance width, x and y offsets and flags can
|
||||
be specified as well, like this: 40 10 0 0 color.
|
||||
|
||||
If the given font does not exist or the given glyphs are invalid for the given
|
||||
font, an error node will be returned.
|
||||
|
||||
Possible values for the hint-style property are:
|
||||
|
||||
hint-style: none | slight | full
|
||||
|
||||
Possible value for the antialias property are:
|
||||
|
||||
antialias: none | gray
|
||||
|
||||
Possible value for hint-metrics are:
|
||||
|
||||
hint-metrics: on | off
|
||||
|
||||
### texture
|
||||
|
||||
| property | syntax | default | printed |
|
||||
@@ -366,14 +459,15 @@ representation for this texture is `url("data:image/png;base64,iVBORw0KGgoAAAANS
|
||||
| -------- | ---------------- | ---------------------- | ----------- |
|
||||
| bounds | `<rect>` | 50 | always |
|
||||
| texture | `<url>` | *see below* | always |
|
||||
| filter | `filter` | *see below* | non-default |
|
||||
| filter | `filter` | linear | non-default |
|
||||
|
||||
Creates a node like `gsk_texture_scale_node_new()` with the given properties.
|
||||
|
||||
The default texture is a 10x10 checkerboard, just like for texture.
|
||||
|
||||
The possible filter values are `linear`, `nearest` and `trilinear`, with
|
||||
`linear` being the default.
|
||||
Possible values for the filter property are:
|
||||
|
||||
filter: linear | nearest | trilinear
|
||||
|
||||
### transform
|
||||
|
@@ -7,5 +7,5 @@ on top of the Quartz API.
|
||||
Currently, the macOS port does not use any additional commandline options
|
||||
or environment variables.
|
||||
|
||||
For up-to-date information about the current status of this port, see the
|
||||
[project page](https://wiki.gnome.org/Projects/GTK/OSX).
|
||||
For up-to-date information on building, installation, and bundling, see the
|
||||
[GTK website](https://www.gtk.org/docs/installations/macos).
|
||||
|
@@ -28,6 +28,9 @@ GTK depends on the following libraries:
|
||||
- **OpenGL**: OpenGL is the premier environment for developing portable,
|
||||
interactive 2D and 3D graphics applications. More information available
|
||||
on the [Khronos website][opengl].
|
||||
- **Vulkan**: Vulkan is the a newer graphics API, that can be considered
|
||||
the successor of OpenGL. More information available on the
|
||||
[Khronos website][vulkan].
|
||||
- **Pango**: Pango is a library for internationalized text handling. It
|
||||
centers around the `PangoLayout` object, representing a paragraph of
|
||||
text. Pango provides the engine for `GtkTextView`, `GtkLabel`,
|
||||
@@ -55,11 +58,12 @@ GTK is divided into three parts:
|
||||
storage types for efficient use in GUI applications, and much more.
|
||||
|
||||
[gnu-lgpl]: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
|
||||
[glib]: https://developer.gnome.org/glib/stable/
|
||||
[gobject]: https://developer.gnome.org/gobject/stable/
|
||||
[gio]: https://developer.gnome.org/gio/stable/
|
||||
[glib]: https://docs.gtk.org/glib/
|
||||
[gobject]: https://docs.gtk.org/gobject/
|
||||
[gio]: https://docs.gtk.org/gio/
|
||||
[cairo]: https://www.cairographics.org/manual/
|
||||
[opengl]: https://www.opengl.org/about/
|
||||
[pango]: https://pango.gnome.org/
|
||||
[gdkpixbuf]: https://developer.gnome.org/gdk-pixbuf/stable/
|
||||
[vulkan]: https://www.vulkan.org/
|
||||
[pango]: https://docs.gtk.org/Pango/
|
||||
[gdkpixbuf]: https://docs.gtk.org/gdk-pixbuf/
|
||||
[graphene]: https://ebassi.github.io/graphene/
|
||||
|
@@ -27,7 +27,7 @@ the question you have, this list is a good place to start.
|
||||
Every major version of GTK comes with a [migration guide](#migrating). You may also
|
||||
find useful information in the documentation for specific widgets and functions. If
|
||||
you have a question not covered in the manual, feel free to ask, and please
|
||||
[file a bug report](https://gitlab.gnome.org/GNOME/gtk/issues/new) against the
|
||||
[file a bug report](https://gitlab.gnome.org/GNOME/gtk/issues/) against the
|
||||
documentation.
|
||||
|
||||
* Should I maintain parallel versions of my UI in GTK x and GTK y?
|
||||
@@ -54,7 +54,7 @@ the question you have, this list is a good place to start.
|
||||
For strings returned from functions, they will be declared "const" if they should
|
||||
not be freed. Non-const strings should be freed with `g_free()`. Arrays follow the
|
||||
same rule. If you find an undocumented exception to the rules, please
|
||||
[file a bug report.](https://gitlab.gnome.org/GNOME/gtk/issues/new).
|
||||
[file a bug report.](https://gitlab.gnome.org/GNOME/gtk/issues/).
|
||||
|
||||
The transfer annotations for gobject-introspection that are part of the
|
||||
documentation can provide useful hints for memory handling semantics as well.
|
||||
|
@@ -4,7 +4,7 @@ Slug: gtk-resources
|
||||
## Opening a bug or feature request
|
||||
|
||||
If you encounter a bug, misfeature, or missing feature in GTK, please
|
||||
file a bug report on our [GitLab project](https://gitlab.gnome.org/GNOME/gtk/issues/new).
|
||||
file a bug report on our [GitLab project](https://gitlab.gnome.org/GNOME/gtk/issues/).
|
||||
You should also file issues if the documentation is out of date with the
|
||||
existing API, or unclear.
|
||||
|
||||
|