Compare commits
2262 Commits
wip/tablet
...
wip/carlos
Author | SHA1 | Date | |
---|---|---|---|
![]() |
e62c9e1c5d | ||
![]() |
7bd668e6d0 | ||
![]() |
1dc602e289 | ||
![]() |
ec518c4f24 | ||
![]() |
0d9295523e | ||
![]() |
a4443885a3 | ||
![]() |
ef8f2876e3 | ||
![]() |
75071aba68 | ||
![]() |
a81435ab5f | ||
![]() |
6fe46cac60 | ||
![]() |
c3b9ef7bf5 | ||
![]() |
b70c0eb9a5 | ||
![]() |
f3dd97e67b | ||
![]() |
77fb0a0003 | ||
![]() |
58d2a674c4 | ||
![]() |
9e2ed4104d | ||
![]() |
3f9b4a1ab5 | ||
![]() |
2aa0ec004a | ||
![]() |
f798912cbd | ||
![]() |
3bf80a967c | ||
![]() |
6c3b0cfc36 | ||
![]() |
43633d6b2f | ||
![]() |
fdd531f307 | ||
![]() |
70c45f8941 | ||
![]() |
b82fa2c610 | ||
![]() |
eaacbb3289 | ||
![]() |
54fdd633fe | ||
![]() |
29ed84e921 | ||
![]() |
d587fc1ef4 | ||
![]() |
285d717ceb | ||
![]() |
616a149917 | ||
![]() |
f578c4daaa | ||
![]() |
830495b7c6 | ||
![]() |
4d02f68057 | ||
![]() |
31c5a0009f | ||
![]() |
c91d9df481 | ||
![]() |
e64cbfcc3f | ||
![]() |
3c2d85b544 | ||
![]() |
96c4dd817e | ||
![]() |
ba7af4f7d3 | ||
![]() |
edfe5cc3b7 | ||
![]() |
07e65a6ef2 | ||
![]() |
d574cf59f1 | ||
![]() |
47402d848d | ||
![]() |
922f14276a | ||
![]() |
8c5ad7ea2d | ||
![]() |
20c5e2525e | ||
![]() |
325fec31da | ||
![]() |
cbb2a286f2 | ||
![]() |
e9eaa37401 | ||
![]() |
dbe73c3296 | ||
![]() |
b4ae6cdd62 | ||
![]() |
317414ab26 | ||
![]() |
b63e104561 | ||
![]() |
02b184bfd7 | ||
![]() |
d8c7583922 | ||
![]() |
25f36b3892 | ||
![]() |
0f0b411f6e | ||
![]() |
5a71ed4411 | ||
![]() |
de76074336 | ||
![]() |
f63b69bb23 | ||
![]() |
a54f9e835c | ||
![]() |
7a941138de | ||
![]() |
2c5404532b | ||
![]() |
be259117f5 | ||
![]() |
6932b3cbb3 | ||
![]() |
b76bf20092 | ||
![]() |
a62dbc6680 | ||
![]() |
442dcc7855 | ||
![]() |
23e7a0a099 | ||
![]() |
7f2dbb6c44 | ||
![]() |
8a0d0ce987 | ||
![]() |
0789c3fb9f | ||
![]() |
31d99c51cb | ||
![]() |
30550ef688 | ||
![]() |
b04cca9eab | ||
![]() |
e0fd7a6d05 | ||
![]() |
923751aa39 | ||
![]() |
6de81b0513 | ||
![]() |
7ae698795e | ||
![]() |
72692b1144 | ||
![]() |
177b4df217 | ||
![]() |
a08d7cf48a | ||
![]() |
3fa6a92cc5 | ||
![]() |
d5a7bbd094 | ||
![]() |
de41f3ea28 | ||
![]() |
5c3ec27b4b | ||
![]() |
8655bc5d8d | ||
![]() |
2e53ce8e75 | ||
![]() |
2528a39781 | ||
![]() |
e02fef8e2f | ||
![]() |
e352011830 | ||
![]() |
7f551ba776 | ||
![]() |
3838341d83 | ||
![]() |
adc5670ea9 | ||
![]() |
08130912f0 | ||
![]() |
371b97af27 | ||
![]() |
562cf14258 | ||
![]() |
c57ae7fc9c | ||
![]() |
6c91683380 | ||
![]() |
25f416c13d | ||
![]() |
8d91135926 | ||
![]() |
1bbb5c8107 | ||
![]() |
12a42a9295 | ||
![]() |
01cea0d9ef | ||
![]() |
f615eea7ee | ||
![]() |
cbbd3e366a | ||
![]() |
ede10dded0 | ||
![]() |
982d135ace | ||
![]() |
548c0f16f4 | ||
![]() |
bbd295ae09 | ||
![]() |
c55004864d | ||
![]() |
54685091f1 | ||
![]() |
d4a9535f04 | ||
![]() |
44477390a9 | ||
![]() |
caf27c4c16 | ||
![]() |
576e7a43df | ||
![]() |
c242558398 | ||
![]() |
8c9e827aab | ||
![]() |
2bcc9e2b86 | ||
![]() |
5c66afbf63 | ||
![]() |
84aeb8f715 | ||
![]() |
3738579dd3 | ||
![]() |
1ca60f424a | ||
![]() |
ff507273d2 | ||
![]() |
f033d0e846 | ||
![]() |
ca67d52cac | ||
![]() |
60d22b7cd0 | ||
![]() |
e9778eba18 | ||
![]() |
56d260cfb3 | ||
![]() |
c45d5f53ff | ||
![]() |
4e402b3972 | ||
![]() |
79d99cbe3f | ||
![]() |
328eff7352 | ||
![]() |
ed5c1f433b | ||
![]() |
7ac2083134 | ||
![]() |
bd97b11414 | ||
![]() |
0da0207eed | ||
![]() |
08229a6f5d | ||
![]() |
50071303af | ||
![]() |
2b2d77dc3e | ||
![]() |
a0909c3440 | ||
![]() |
22f865122c | ||
![]() |
60ac2838b5 | ||
![]() |
dfde2f59da | ||
![]() |
3d2ca9a67f | ||
![]() |
9182c8b801 | ||
![]() |
1def099047 | ||
![]() |
ddb0ef1e8d | ||
![]() |
a56a59feee | ||
![]() |
174df4eaeb | ||
![]() |
e3e933c47a | ||
![]() |
fda2e798bb | ||
![]() |
fb38738fe9 | ||
![]() |
5eb749d690 | ||
![]() |
763ae36cee | ||
![]() |
582b67a2f1 | ||
![]() |
f740e8ed79 | ||
![]() |
d360b25b81 | ||
![]() |
3693f6f630 | ||
![]() |
ebfc6184b2 | ||
![]() |
8715f7481b | ||
![]() |
12f8325cbc | ||
![]() |
956ab4bd58 | ||
![]() |
58b5dee869 | ||
![]() |
b448ced8e4 | ||
![]() |
73ddd7cd48 | ||
![]() |
e7fb45364a | ||
![]() |
0478c225b7 | ||
![]() |
93c29318b2 | ||
![]() |
51e4fe7fef | ||
![]() |
d52081bed4 | ||
![]() |
686b7f8baa | ||
![]() |
b7a9c7e7d3 | ||
![]() |
676a8da005 | ||
![]() |
490f27efcb | ||
![]() |
173867c12b | ||
![]() |
df1384a856 | ||
![]() |
5fbeecaac6 | ||
![]() |
54febd1419 | ||
![]() |
7952808469 | ||
![]() |
0442fc8ddc | ||
![]() |
80e3c1de57 | ||
![]() |
ac2f8cad0c | ||
![]() |
7e8fc13504 | ||
![]() |
60f7ff3a69 | ||
![]() |
2fe05d7c35 | ||
![]() |
012691bebf | ||
![]() |
c84d7ebc6d | ||
![]() |
f9118fb99b | ||
![]() |
d3301d6b53 | ||
![]() |
1755a8b8de | ||
![]() |
36b46af92f | ||
![]() |
e1370ee209 | ||
![]() |
37e36e8208 | ||
![]() |
eac18647c3 | ||
![]() |
c681ccef3c | ||
![]() |
b329256113 | ||
![]() |
177d0c2d63 | ||
![]() |
f7d4a727a8 | ||
![]() |
d539fe28d5 | ||
![]() |
7759adf8e9 | ||
![]() |
7a75692e11 | ||
![]() |
9bd427a74c | ||
![]() |
ebb6c56f67 | ||
![]() |
dcb525397c | ||
![]() |
05ab8eebe8 | ||
![]() |
981b045459 | ||
![]() |
6502735f01 | ||
![]() |
1d73533f78 | ||
![]() |
697aeae2ad | ||
![]() |
2e79d05e04 | ||
![]() |
4139907a7e | ||
![]() |
3c6a518d40 | ||
![]() |
a7df459416 | ||
![]() |
9f3d321bf2 | ||
![]() |
49c2be40bb | ||
![]() |
781ec74fd2 | ||
![]() |
7a5e0c7824 | ||
![]() |
c786b6c13c | ||
![]() |
bbcb66ddf4 | ||
![]() |
ec25f3a6b7 | ||
![]() |
dbe7279c7f | ||
![]() |
931934511c | ||
![]() |
20c9ca25c0 | ||
![]() |
f64eba57ce | ||
![]() |
149e4d6934 | ||
![]() |
8d514095cb | ||
![]() |
bdf8d0f1c3 | ||
![]() |
8e9184b62e | ||
![]() |
b34bb773a4 | ||
![]() |
efd9f86efe | ||
![]() |
7a9805554c | ||
![]() |
ffca9b999d | ||
![]() |
d30301c00a | ||
![]() |
faf89ff35f | ||
![]() |
87858a4e01 | ||
![]() |
08a5e660d3 | ||
![]() |
df48b94889 | ||
![]() |
2b938ce795 | ||
![]() |
df284f9c9d | ||
![]() |
7d20101198 | ||
![]() |
ae4d3bc27d | ||
![]() |
fe0a394e69 | ||
![]() |
1f3e9176fc | ||
![]() |
ffaec917e5 | ||
![]() |
bf4ccd21c1 | ||
![]() |
9a843857b3 | ||
![]() |
9004253c4e | ||
![]() |
c5471e5b8b | ||
![]() |
eacf2f2187 | ||
![]() |
7821256f5c | ||
![]() |
4baefe46b3 | ||
![]() |
c388a8fc9d | ||
![]() |
e4a2d15171 | ||
![]() |
4786cc85bd | ||
![]() |
666bef7af9 | ||
![]() |
19e3c21667 | ||
![]() |
da5a2d3cb8 | ||
![]() |
7226c5c7bf | ||
![]() |
acacd3dd64 | ||
![]() |
20b271fa49 | ||
![]() |
e4de9ed580 | ||
![]() |
452ef4d5bb | ||
![]() |
1467b6b02a | ||
![]() |
9ca6c74267 | ||
![]() |
319500e4f3 | ||
![]() |
b2e75b5da0 | ||
![]() |
365ea2fd56 | ||
![]() |
88f8228425 | ||
![]() |
f8cd1e55a4 | ||
![]() |
f6f188dad4 | ||
![]() |
262a3ecbd6 | ||
![]() |
231aadd3f0 | ||
![]() |
c8db8bbe22 | ||
![]() |
f67e1a55ee | ||
![]() |
169022cbb0 | ||
![]() |
0d29609aec | ||
![]() |
00619f3a1c | ||
![]() |
bc5e76c76f | ||
![]() |
557b2a0e8c | ||
![]() |
49cb691bb5 | ||
![]() |
6e1b14b26b | ||
![]() |
ca7c5c1223 | ||
![]() |
e11ee44236 | ||
![]() |
6b7bd91610 | ||
![]() |
92349a4668 | ||
![]() |
7635d0631b | ||
![]() |
ec6a536d36 | ||
![]() |
4d92979b43 | ||
![]() |
4a69a0d7f7 | ||
![]() |
8a10196382 | ||
![]() |
91ce24d4b4 | ||
![]() |
26fbd56a95 | ||
![]() |
576cd08088 | ||
![]() |
e8c27603dd | ||
![]() |
e9e4b2b72e | ||
![]() |
6834bedb95 | ||
![]() |
bf8a3b1c1c | ||
![]() |
3a4a858ce3 | ||
![]() |
0a178a01b3 | ||
![]() |
332360be7c | ||
![]() |
718ddc9c96 | ||
![]() |
f795725aaf | ||
![]() |
70741a051b | ||
![]() |
ad7d6e4a37 | ||
![]() |
a6178990cd | ||
![]() |
081842bac6 | ||
![]() |
63a6ead7d9 | ||
![]() |
1c044a8fa0 | ||
![]() |
d4bea60e1a | ||
![]() |
8c4743ee2a | ||
![]() |
cbbd6d71bf | ||
![]() |
4aa1e221e4 | ||
![]() |
ac6039bd2a | ||
![]() |
97230a2b64 | ||
![]() |
791bec3cf7 | ||
![]() |
fb8dc91893 | ||
![]() |
5e005316ef | ||
![]() |
4bc6a64d47 | ||
![]() |
91d4f30ebd | ||
![]() |
c585b214b8 | ||
![]() |
0304433b20 | ||
![]() |
fcd1ff9c56 | ||
![]() |
a227e4078b | ||
![]() |
cabcad1856 | ||
![]() |
4c3d9fccc1 | ||
![]() |
203725bfd3 | ||
![]() |
c1b6184e0a | ||
![]() |
dd82fbebf6 | ||
![]() |
605f35dd25 | ||
![]() |
aecf588d8d | ||
![]() |
740c2298c6 | ||
![]() |
787bb4316d | ||
![]() |
563c5b0612 | ||
![]() |
c8a4e37e0c | ||
![]() |
1266c20d4c | ||
![]() |
76760bfd79 | ||
![]() |
18c1d9672a | ||
![]() |
bd624e4dfb | ||
![]() |
fe1d9fb4a7 | ||
![]() |
e2cd9abf46 | ||
![]() |
a892e7a6aa | ||
![]() |
5b3e439c5d | ||
![]() |
626c3745e2 | ||
![]() |
bda9c359af | ||
![]() |
6c5baf89ed | ||
![]() |
9a12befd22 | ||
![]() |
9f79cf8a60 | ||
![]() |
59acb38951 | ||
![]() |
fa495286a1 | ||
![]() |
0b9404dcbe | ||
![]() |
9fb46cca55 | ||
![]() |
2a4f1be81b | ||
![]() |
1dff74e71c | ||
![]() |
25c53b2fb2 | ||
![]() |
213ed80284 | ||
![]() |
9adf8826d2 | ||
![]() |
19930c6577 | ||
![]() |
80d5f326e8 | ||
![]() |
15732851bc | ||
![]() |
996949806a | ||
![]() |
c5ac3d6217 | ||
![]() |
3d23ecc456 | ||
![]() |
cbf6e74915 | ||
![]() |
b5c4437287 | ||
![]() |
426d7f3bdf | ||
![]() |
3483be8566 | ||
![]() |
4a7a803c34 | ||
![]() |
4673eeaf5f | ||
![]() |
4f3de88b3d | ||
![]() |
180bb02fa5 | ||
![]() |
d59cf98690 | ||
![]() |
27fee69ca4 | ||
![]() |
640a04d0e4 | ||
![]() |
5fc07fcc23 | ||
![]() |
f31cf0c3ef | ||
![]() |
d21478b0f0 | ||
![]() |
b86d87453d | ||
![]() |
cf7c39e2c1 | ||
![]() |
7c774ab53e | ||
![]() |
c03a401f4c | ||
![]() |
c7e6cd4e27 | ||
![]() |
fc5b94e077 | ||
![]() |
4ce4a2b134 | ||
![]() |
93e20cf21c | ||
![]() |
a8e9f46ed8 | ||
![]() |
fe78467815 | ||
![]() |
d1c4c46281 | ||
![]() |
d3dc7d6f49 | ||
![]() |
b607d35aad | ||
![]() |
ef85d1a643 | ||
![]() |
417c00b8fa | ||
![]() |
6192e944b8 | ||
![]() |
8f2680c612 | ||
![]() |
d686dc9f46 | ||
![]() |
f139360569 | ||
![]() |
bf42b54faa | ||
![]() |
d48d56f831 | ||
![]() |
32f3bb02e1 | ||
![]() |
d21022f562 | ||
![]() |
2af229fe98 | ||
![]() |
c65617cb5a | ||
![]() |
c663f4ae84 | ||
![]() |
0afaf5262b | ||
![]() |
85fbf66179 | ||
![]() |
a97cc84b81 | ||
![]() |
bc32655c28 | ||
![]() |
176e6fcded | ||
![]() |
ecec99eedb | ||
![]() |
2f4a68c8c3 | ||
![]() |
92f4ffc0dd | ||
![]() |
8a03f1ad02 | ||
![]() |
e0727aba5f | ||
![]() |
14be04a630 | ||
![]() |
0067f78155 | ||
![]() |
3e03d1e38e | ||
![]() |
fe7a67f0e7 | ||
![]() |
db77e2e187 | ||
![]() |
e3c6e3b84d | ||
![]() |
0d9391e282 | ||
![]() |
1e2610e4f4 | ||
![]() |
0095c2e340 | ||
![]() |
c90e63a91d | ||
![]() |
8c0e13ca7a | ||
![]() |
8894ec462a | ||
![]() |
331e830cf6 | ||
![]() |
d68fcbc887 | ||
![]() |
9dbdf6b724 | ||
![]() |
530861b24d | ||
![]() |
11f8b12a9d | ||
![]() |
0163a0b0cd | ||
![]() |
12171e413b | ||
![]() |
99fb79f4cb | ||
![]() |
24d8d40deb | ||
![]() |
97004e6114 | ||
![]() |
8f58ad02fb | ||
![]() |
98af9bb251 | ||
![]() |
7b2eaa76a4 | ||
![]() |
00a5523667 | ||
![]() |
f30cef3046 | ||
![]() |
fba7d8c79c | ||
![]() |
46942c24a3 | ||
![]() |
9846a4d812 | ||
![]() |
da741ead25 | ||
![]() |
31f525d566 | ||
![]() |
92cccf53df | ||
![]() |
4282067e24 | ||
![]() |
85e9784a22 | ||
![]() |
49fea735aa | ||
![]() |
8200995fdb | ||
![]() |
71a62bb18f | ||
![]() |
76abe87090 | ||
![]() |
62775d1913 | ||
![]() |
e24947a460 | ||
![]() |
d387aa428a | ||
![]() |
3faaa9ce14 | ||
![]() |
f19260bfde | ||
![]() |
df94a18791 | ||
![]() |
2e18f6d793 | ||
![]() |
67aab7c138 | ||
![]() |
fa1add2ee6 | ||
![]() |
6267732bec | ||
![]() |
95649fd2bc | ||
![]() |
49780245f4 | ||
![]() |
ff08e19f52 | ||
![]() |
9c77e52ad3 | ||
![]() |
0ae7ef4bc4 | ||
![]() |
556ed7b937 | ||
![]() |
b5a0068091 | ||
![]() |
a3d826c54b | ||
![]() |
72e236106f | ||
![]() |
3e1ca62782 | ||
![]() |
c71f6a18ad | ||
![]() |
f7c1f418ba | ||
![]() |
0210b95109 | ||
![]() |
68ec9ac017 | ||
![]() |
8dcac664fa | ||
![]() |
2fb3db7659 | ||
![]() |
7d82cdeea3 | ||
![]() |
e2e7296612 | ||
![]() |
8685de9607 | ||
![]() |
a8a3c1017f | ||
![]() |
5d19aee23a | ||
![]() |
4270eef16e | ||
![]() |
b443bd42ac | ||
![]() |
267503b5f3 | ||
![]() |
a3d9f987c8 | ||
![]() |
9cfd185316 | ||
![]() |
176117c5f7 | ||
![]() |
8083065579 | ||
![]() |
34f5be726d | ||
![]() |
b53707f8c4 | ||
![]() |
d9294e4eb0 | ||
![]() |
94f8acc8fe | ||
![]() |
4841c1b13e | ||
![]() |
1e00cd290d | ||
![]() |
3daa2d2751 | ||
![]() |
444af437a0 | ||
![]() |
eebcf98284 | ||
![]() |
7d973ac538 | ||
![]() |
0ada04089c | ||
![]() |
85284acb00 | ||
![]() |
388d065699 | ||
![]() |
e191c21e04 | ||
![]() |
5376c31a33 | ||
![]() |
ca5b27baf5 | ||
![]() |
64df627688 | ||
![]() |
a740f50cd7 | ||
![]() |
5fd0f62a62 | ||
![]() |
80d420ff43 | ||
![]() |
407d62943c | ||
![]() |
0ace58d05f | ||
![]() |
d791710197 | ||
![]() |
b30c907ef9 | ||
![]() |
784a774d9c | ||
![]() |
8d3e053059 | ||
![]() |
f4d07caa38 | ||
![]() |
8a6d502e68 | ||
![]() |
b6c2eec487 | ||
![]() |
093aa086af | ||
![]() |
ebafc256a0 | ||
![]() |
aaed7c9a4f | ||
![]() |
fa8930817e | ||
![]() |
e741adb82e | ||
![]() |
deb541ef5a | ||
![]() |
29cc526e2e | ||
![]() |
6a92c6f83f | ||
![]() |
b8340f1355 | ||
![]() |
c7db234c11 | ||
![]() |
db22c13c4f | ||
![]() |
ad864083f9 | ||
![]() |
5f99eeb926 | ||
![]() |
e1513b6b00 | ||
![]() |
0cc3cd62ba | ||
![]() |
0f40541bb2 | ||
![]() |
db604dda89 | ||
![]() |
21ce6f96f1 | ||
![]() |
323a806d35 | ||
![]() |
84ac28cbee | ||
![]() |
2860adcf65 | ||
![]() |
2dbacfa8d6 | ||
![]() |
85e5b160ee | ||
![]() |
9510fbcbac | ||
![]() |
7c06e21e5a | ||
![]() |
1bfa20929b | ||
![]() |
bafc43ca26 | ||
![]() |
d37528f693 | ||
![]() |
37eeda0320 | ||
![]() |
acf70a3561 | ||
![]() |
24aef44baf | ||
![]() |
f7af32a3ea | ||
![]() |
252dd52439 | ||
![]() |
c216397974 | ||
![]() |
841dc09d21 | ||
![]() |
192b7887c3 | ||
![]() |
1fd8fe65c5 | ||
![]() |
a87c447b72 | ||
![]() |
c624fcbb8b | ||
![]() |
b393f3d540 | ||
![]() |
3e3bc3e67f | ||
![]() |
11d5e00003 | ||
![]() |
f0c9c25cf8 | ||
![]() |
7fdaf7721c | ||
![]() |
c403785d36 | ||
![]() |
4fe594bf9c | ||
![]() |
ec451b4674 | ||
![]() |
43eb724b94 | ||
![]() |
3d75b48d50 | ||
![]() |
4d465eac08 | ||
![]() |
db5abbb225 | ||
![]() |
eb0865fe11 | ||
![]() |
e283cd7b91 | ||
![]() |
d99442d6e6 | ||
![]() |
148da24f95 | ||
![]() |
649c26e05a | ||
![]() |
48eaa36d41 | ||
![]() |
6e953e2725 | ||
![]() |
3e357bd36f | ||
![]() |
a3da4b8d5b | ||
![]() |
0f43f86341 | ||
![]() |
d30a78767d | ||
![]() |
5f37369adb | ||
![]() |
c6691afa38 | ||
![]() |
ff5d561ca6 | ||
![]() |
5ac7109aaa | ||
![]() |
7749f4d983 | ||
![]() |
22aea3dc67 | ||
![]() |
3d5784342d | ||
![]() |
fa9e330f2c | ||
![]() |
951219650f | ||
![]() |
49b23c7490 | ||
![]() |
644a618fb1 | ||
![]() |
1e3ac3cf2c | ||
![]() |
658c373580 | ||
![]() |
6d12d2eac2 | ||
![]() |
356cad094b | ||
![]() |
161d2540e6 | ||
![]() |
94f4009882 | ||
![]() |
ec8138773a | ||
![]() |
041be7c565 | ||
![]() |
0407a8b33d | ||
![]() |
912a6f5e3f | ||
![]() |
89162a90aa | ||
![]() |
90a68f3118 | ||
![]() |
951fb03a7c | ||
![]() |
4837ea3434 | ||
![]() |
3fbeeb9072 | ||
![]() |
0ca3526627 | ||
![]() |
5b8c8a4114 | ||
![]() |
f635876eac | ||
![]() |
1caaf0cd1e | ||
![]() |
e2464660bc | ||
![]() |
81c1c70c0a | ||
![]() |
e05cd6009a | ||
![]() |
390314adfb | ||
![]() |
2ac7afe8a9 | ||
![]() |
d5c5669f2a | ||
![]() |
e8171ccdc1 | ||
![]() |
43f9cd537e | ||
![]() |
d4c4d6e64d | ||
![]() |
89727aa747 | ||
![]() |
de5e7a7175 | ||
![]() |
e6b885210c | ||
![]() |
9f1ab1c3af | ||
![]() |
9333a6da75 | ||
![]() |
8adab02757 | ||
![]() |
14d8aec4b8 | ||
![]() |
8e7e1eeef5 | ||
![]() |
0a8ae8417c | ||
![]() |
1d5e37050d | ||
![]() |
b7c3dada81 | ||
![]() |
d79ffd3976 | ||
![]() |
6458139c04 | ||
![]() |
82307dd694 | ||
![]() |
e1c67a1824 | ||
![]() |
68f261e8e2 | ||
![]() |
1530f27513 | ||
![]() |
05899596d1 | ||
![]() |
98d912ba5f | ||
![]() |
9e5ea8def4 | ||
![]() |
722c975aca | ||
![]() |
937a9853cd | ||
![]() |
cd8f4259be | ||
![]() |
c64d5ad8af | ||
![]() |
dacc041d0c | ||
![]() |
18779109de | ||
![]() |
522f9b4c38 | ||
![]() |
3d2b9a3a69 | ||
![]() |
15fa7816bd | ||
![]() |
6621a9b5a0 | ||
![]() |
04e411c2c0 | ||
![]() |
859bea629b | ||
![]() |
cbc783108e | ||
![]() |
2383801f7b | ||
![]() |
8626c69c2f | ||
![]() |
768ec15ea0 | ||
![]() |
1200182d70 | ||
![]() |
d9c18fd5bb | ||
![]() |
54709c16b5 | ||
![]() |
8da95b17f5 | ||
![]() |
d535c1eb6d | ||
![]() |
435b3c4bdb | ||
![]() |
22723ca371 | ||
![]() |
edd3634bb5 | ||
![]() |
1bf2eb95b5 | ||
![]() |
516fb524cb | ||
![]() |
596b30096d | ||
![]() |
7412794c66 | ||
![]() |
ad22b3f098 | ||
![]() |
206634e0ed | ||
![]() |
ea05d2af49 | ||
![]() |
6c7c566c6c | ||
![]() |
b596cf97ee | ||
![]() |
9dcf9782b6 | ||
![]() |
0f519ffb05 | ||
![]() |
42c78bd41f | ||
![]() |
b702c0fa5c | ||
![]() |
c80fd487f1 | ||
![]() |
817c8e568c | ||
![]() |
b7e9388906 | ||
![]() |
b8336633a7 | ||
![]() |
3c538d4a92 | ||
![]() |
2fc978ca9d | ||
![]() |
10dfc67dad | ||
![]() |
9ebcb719a1 | ||
![]() |
2a20df0c50 | ||
![]() |
d3441f7577 | ||
![]() |
65c02e26db | ||
![]() |
50ff9d4c71 | ||
![]() |
a3269dde95 | ||
![]() |
f2dea5d139 | ||
![]() |
3649795108 | ||
![]() |
36b9551f92 | ||
![]() |
6abe4703c7 | ||
![]() |
69ca584168 | ||
![]() |
8ee14a7cb7 | ||
![]() |
909dbafd67 | ||
![]() |
d5203f170e | ||
![]() |
2a45b7de7c | ||
![]() |
62c67be4c8 | ||
![]() |
0332b7394e | ||
![]() |
15f41c9f68 | ||
![]() |
2a38601b42 | ||
![]() |
d7bdc1591f | ||
![]() |
bd36764b4d | ||
![]() |
473bf38753 | ||
![]() |
f7747e4d4f | ||
![]() |
e8dc2acfca | ||
![]() |
cf734999fb | ||
![]() |
c9c3283540 | ||
![]() |
d2a8cdfd7c | ||
![]() |
3e85ac8131 | ||
![]() |
5f83d9a5c8 | ||
![]() |
ac20bf2000 | ||
![]() |
3561082aba | ||
![]() |
e34c330f66 | ||
![]() |
7655e09d00 | ||
![]() |
be069fb8ae | ||
![]() |
a30166a547 | ||
![]() |
0f9c6aef99 | ||
![]() |
332d55f7f6 | ||
![]() |
98d7024288 | ||
![]() |
82564772dc | ||
![]() |
33c2a38ff7 | ||
![]() |
52fdd24467 | ||
![]() |
2319cd9c40 | ||
![]() |
3b4319a87c | ||
![]() |
20176d0395 | ||
![]() |
762a3f89a9 | ||
![]() |
822c2666f5 | ||
![]() |
b412e6c493 | ||
![]() |
ae26cd0774 | ||
![]() |
3104d697c0 | ||
![]() |
0b3a1c9c31 | ||
![]() |
423c5f8e77 | ||
![]() |
3bbff94878 | ||
![]() |
4ef886f51e | ||
![]() |
22485ba36f | ||
![]() |
8df2a1452c | ||
![]() |
b12c92e206 | ||
![]() |
70036429bd | ||
![]() |
44502be560 | ||
![]() |
8cf42cd06c | ||
![]() |
b5328c977e | ||
![]() |
4339b23dd0 | ||
![]() |
a95cbd0aca | ||
![]() |
6df2b7af55 | ||
![]() |
c01b099dbd | ||
![]() |
2d80fd02e7 | ||
![]() |
bb65854065 | ||
![]() |
bc05e49eba | ||
![]() |
773b8384fa | ||
![]() |
7fdac6d310 | ||
![]() |
f6cd87734d | ||
![]() |
01a0fa9437 | ||
![]() |
657417a578 | ||
![]() |
4af00ae296 | ||
![]() |
84e575be77 | ||
![]() |
7945ee5beb | ||
![]() |
b6f5bab212 | ||
![]() |
5ad34e0efb | ||
![]() |
a1c34aad09 | ||
![]() |
98dfd5b887 | ||
![]() |
17a745bf81 | ||
![]() |
85bbd82ae8 | ||
![]() |
deda7a5235 | ||
![]() |
96141e28f9 | ||
![]() |
e6109cfc22 | ||
![]() |
3684f6b0ac | ||
![]() |
31b5059068 | ||
![]() |
ebff7fd7f4 | ||
![]() |
6e415353e3 | ||
![]() |
67917db45f | ||
![]() |
8286557a05 | ||
![]() |
63e2c0329f | ||
![]() |
06c357d781 | ||
![]() |
2f260edf19 | ||
![]() |
a5fd9a6e2f | ||
![]() |
4e6114b14d | ||
![]() |
65630d6310 | ||
![]() |
b8a81128e0 | ||
![]() |
19e55b9a8c | ||
![]() |
9ea9352c93 | ||
![]() |
817a76a7f5 | ||
![]() |
cb40049ec1 | ||
![]() |
481e87032c | ||
![]() |
bf5ac39d46 | ||
![]() |
47856d9701 | ||
![]() |
06429b12e2 | ||
![]() |
419fb81d40 | ||
![]() |
f1bbe5c251 | ||
![]() |
27fef44d48 | ||
![]() |
00b8ca7aeb | ||
![]() |
675d429ba0 | ||
![]() |
f4d754c934 | ||
![]() |
8ae79182c1 | ||
![]() |
712ec30cd9 | ||
![]() |
7a41483ea0 | ||
![]() |
b4d642be52 | ||
![]() |
0bf0e5780c | ||
![]() |
d7c5e57134 | ||
![]() |
67bf936ef8 | ||
![]() |
15b7b40ea8 | ||
![]() |
81bff3eba6 | ||
![]() |
da3fd8f7fb | ||
![]() |
6e125d9d04 | ||
![]() |
80705018f9 | ||
![]() |
f39dacd451 | ||
![]() |
33c070cdd5 | ||
![]() |
8d2f794bd3 | ||
![]() |
1458dc394a | ||
![]() |
c93877abb5 | ||
![]() |
ef0efc9589 | ||
![]() |
09cdf39b68 | ||
![]() |
a6ccbbfe68 | ||
![]() |
e502adfa04 | ||
![]() |
8dd377da38 | ||
![]() |
03a12f9458 | ||
![]() |
061f69f2a2 | ||
![]() |
4d5e1f690d | ||
![]() |
f3203f0330 | ||
![]() |
d27e6921d6 | ||
![]() |
c459ad7932 | ||
![]() |
5ee825c081 | ||
![]() |
1ead513b66 | ||
![]() |
9ed236bd67 | ||
![]() |
a1517cae1c | ||
![]() |
542502be53 | ||
![]() |
203a0b37ed | ||
![]() |
b6477a826d | ||
![]() |
95adc45b71 | ||
![]() |
f20daf567d | ||
![]() |
4345906663 | ||
![]() |
d714a94d97 | ||
![]() |
514c7028f4 | ||
![]() |
44624736c5 | ||
![]() |
0162cdf8ef | ||
![]() |
7e17dd0098 | ||
![]() |
704b73b041 | ||
![]() |
bd5e36cf0e | ||
![]() |
dbf56e24cb | ||
![]() |
0371897e22 | ||
![]() |
cc5fe05c4d | ||
![]() |
d8f13f6b4c | ||
![]() |
a2959510e5 | ||
![]() |
c8fbd4bee8 | ||
![]() |
d5631f793e | ||
![]() |
d4d160a186 | ||
![]() |
4719c3f31e | ||
![]() |
1f5a2d6029 | ||
![]() |
19bf4cf4f8 | ||
![]() |
6f59e4858e | ||
![]() |
aec85281ba | ||
![]() |
b22875aae9 | ||
![]() |
962712ddc2 | ||
![]() |
de29627855 | ||
![]() |
54dcff3aa2 | ||
![]() |
bcd5882081 | ||
![]() |
69f56578a3 | ||
![]() |
c00e092456 | ||
![]() |
a8cee14417 | ||
![]() |
8a89b0007c | ||
![]() |
6934b83f44 | ||
![]() |
37aab9280a | ||
![]() |
49e8bc8a52 | ||
![]() |
abd6b7affd | ||
![]() |
748223b896 | ||
![]() |
c75eac27a8 | ||
![]() |
ac502c921d | ||
![]() |
134765c634 | ||
![]() |
5149d6eb40 | ||
![]() |
006cdac531 | ||
![]() |
61bc1a7d6f | ||
![]() |
86ab3878e7 | ||
![]() |
f2d0e5021a | ||
![]() |
6d8286614f | ||
![]() |
70fcf745b8 | ||
![]() |
589e999049 | ||
![]() |
d8f2f583e6 | ||
![]() |
db866eb052 | ||
![]() |
d092e913d6 | ||
![]() |
6147be3dff | ||
![]() |
57f55d486d | ||
![]() |
6be56de140 | ||
![]() |
206ca43c91 | ||
![]() |
f8f1bcfa9e | ||
![]() |
91df801ffb | ||
![]() |
97f142d1cc | ||
![]() |
5ea3a4ecbb | ||
![]() |
fbd5a74a0b | ||
![]() |
58bb61e161 | ||
![]() |
dbd053020a | ||
![]() |
c063d43be8 | ||
![]() |
35b77a61c8 | ||
![]() |
32547d2eff | ||
![]() |
dc37ee2782 | ||
![]() |
371e5df568 | ||
![]() |
cc4e007148 | ||
![]() |
c0d9b08ef9 | ||
![]() |
d99cd279d2 | ||
![]() |
d670a1aa78 | ||
![]() |
76b396846d | ||
![]() |
bd0105ba8d | ||
![]() |
6dcce19932 | ||
![]() |
cc40a885ef | ||
![]() |
513c278077 | ||
![]() |
ac8ee9a08c | ||
![]() |
952c1fefa2 | ||
![]() |
18b8f9bfed | ||
![]() |
f08417b618 | ||
![]() |
62c9713361 | ||
![]() |
efd7a4af5e | ||
![]() |
3a914a915e | ||
![]() |
aa6561a3b1 | ||
![]() |
9eb9623288 | ||
![]() |
8c988aa632 | ||
![]() |
13cf19e0b6 | ||
![]() |
eac0e253e1 | ||
![]() |
7346419295 | ||
![]() |
3e77f6704b | ||
![]() |
01e27a4366 | ||
![]() |
4e3b26d2ed | ||
![]() |
5f05112b9a | ||
![]() |
6cf7d2d47f | ||
![]() |
1139ace244 | ||
![]() |
bd9a300801 | ||
![]() |
2d090f9232 | ||
![]() |
1c8aebd811 | ||
![]() |
31eafba93a | ||
![]() |
5eacdf7af7 | ||
![]() |
ca638d1354 | ||
![]() |
f12e6ad4f1 | ||
![]() |
0bbda3ad87 | ||
![]() |
dd43d04d42 | ||
![]() |
383ac76d00 | ||
![]() |
e59ca14f6c | ||
![]() |
7917b083cb | ||
![]() |
2b3040d04f | ||
![]() |
6cc48d8cbb | ||
![]() |
798026498d | ||
![]() |
49f029571c | ||
![]() |
290b257288 | ||
![]() |
2b60fb0144 | ||
![]() |
7f5f5eb847 | ||
![]() |
44269e6a1d | ||
![]() |
70dfe8c97d | ||
![]() |
072afa5fa3 | ||
![]() |
519a0fd93d | ||
![]() |
5f132f3975 | ||
![]() |
1546989845 | ||
![]() |
1923db97c1 | ||
![]() |
db32047a5d | ||
![]() |
b505eb261e | ||
![]() |
1a1db9ef8d | ||
![]() |
b1587f0716 | ||
![]() |
93e450f37c | ||
![]() |
fc713ecb70 | ||
![]() |
500c13ab6f | ||
![]() |
050267fe74 | ||
![]() |
ce25a0171c | ||
![]() |
b7518c8651 | ||
![]() |
62dedfbef3 | ||
![]() |
4508978ea5 | ||
![]() |
c533a06e93 | ||
![]() |
5d3b4f0134 | ||
![]() |
4cf340ae9b | ||
![]() |
053ac03f01 | ||
![]() |
28a9439209 | ||
![]() |
cf4b5efdd1 | ||
![]() |
3067dab84c | ||
![]() |
1790320ba3 | ||
![]() |
f45df4265d | ||
![]() |
bcbcd6a68c | ||
![]() |
b1a0bf8916 | ||
![]() |
6c18bae83c | ||
![]() |
d0531966eb | ||
![]() |
989a47ee8c | ||
![]() |
03be6b687b | ||
![]() |
32c22d375a | ||
![]() |
bdf3f49a82 | ||
![]() |
356b4b0dc5 | ||
![]() |
3fc2ea8297 | ||
![]() |
06d976e853 | ||
![]() |
96ebd1c214 | ||
![]() |
fa28481736 | ||
![]() |
76b064cffc | ||
![]() |
333b5d12a0 | ||
![]() |
aa73504d95 | ||
![]() |
32305b453d | ||
![]() |
7d5e08c843 | ||
![]() |
dc0fc65229 | ||
![]() |
428af6d213 | ||
![]() |
2ffe597617 | ||
![]() |
0461eed0cb | ||
![]() |
ca1bacc212 | ||
![]() |
2229365ca8 | ||
![]() |
8c367364b6 | ||
![]() |
58909da425 | ||
![]() |
ff32bf467c | ||
![]() |
c5572d3095 | ||
![]() |
e706bcdf73 | ||
![]() |
d9ebcbd55c | ||
![]() |
240b13aa74 | ||
![]() |
97635d6f84 | ||
![]() |
6c21a22e4d | ||
![]() |
0add6f62b6 | ||
![]() |
049418cd03 | ||
![]() |
3ee1999c70 | ||
![]() |
e4b8920688 | ||
![]() |
eb236649fc | ||
![]() |
0a36a4545f | ||
![]() |
180985018b | ||
![]() |
c86c5d6905 | ||
![]() |
c2fad2dc7c | ||
![]() |
1196b7bde4 | ||
![]() |
19eddfd756 | ||
![]() |
ed280ef4ac | ||
![]() |
b6200ac3ff | ||
![]() |
626621a53a | ||
![]() |
fb3a64491e | ||
![]() |
294f9419f7 | ||
![]() |
a37956c95f | ||
![]() |
89f5ca3301 | ||
![]() |
07745b3082 | ||
![]() |
054c25f693 | ||
![]() |
01de04d8c9 | ||
![]() |
08e4cb54a8 | ||
![]() |
c71faffb71 | ||
![]() |
91e3a0b3a9 | ||
![]() |
5fa8f78434 | ||
![]() |
ab5ac21104 | ||
![]() |
0ebea2be9c | ||
![]() |
6f54bab0a8 | ||
![]() |
5d7deab6da | ||
![]() |
35fcf4a4ae | ||
![]() |
74565380aa | ||
![]() |
fa37496ffb | ||
![]() |
cc772ddd61 | ||
![]() |
4d2647cdbc | ||
![]() |
3caefd8fda | ||
![]() |
12381d57d1 | ||
![]() |
4ad8c4b86b | ||
![]() |
dbd2827ca1 | ||
![]() |
1a78557e0b | ||
![]() |
2e99963087 | ||
![]() |
4d763e1828 | ||
![]() |
a17b343c21 | ||
![]() |
556136dacc | ||
![]() |
a8c80ccece | ||
![]() |
f044511037 | ||
![]() |
b31e545c9d | ||
![]() |
fad5657eda | ||
![]() |
eaf9ccde39 | ||
![]() |
f9c625924e | ||
![]() |
64cb735abf | ||
![]() |
c85f322b20 | ||
![]() |
76096a725b | ||
![]() |
6eb7d13894 | ||
![]() |
7928b25ebf | ||
![]() |
78e6258b44 | ||
![]() |
c9259c2b15 | ||
![]() |
492d2eb573 | ||
![]() |
376dcd3b92 | ||
![]() |
60781bc6c2 | ||
![]() |
2d8827cb0c | ||
![]() |
802f7dcd30 | ||
![]() |
e62cfd9043 | ||
![]() |
cbcf6a4f23 | ||
![]() |
b0e42d3f6e | ||
![]() |
18eb66de06 | ||
![]() |
b32cccddf9 | ||
![]() |
362e26b3e2 | ||
![]() |
5c53284bde | ||
![]() |
e45d7f70e8 | ||
![]() |
70edc7dda4 | ||
![]() |
3244ed37a9 | ||
![]() |
406359bba1 | ||
![]() |
8b23dd915f | ||
![]() |
7e1f65405f | ||
![]() |
c1683073f1 | ||
![]() |
18ec86bd90 | ||
![]() |
315a6f43d7 | ||
![]() |
7603bb5fd5 | ||
![]() |
d53b79f8c3 | ||
![]() |
f534452c6a | ||
![]() |
0f6b83e7df | ||
![]() |
16a6aef5a7 | ||
![]() |
518fb9fb5e | ||
![]() |
547ace3cf8 | ||
![]() |
a4ba38ee78 | ||
![]() |
e32d52b9b8 | ||
![]() |
de40ced8b4 | ||
![]() |
cfee58798e | ||
![]() |
7ea01693a7 | ||
![]() |
e0d839aea2 | ||
![]() |
d3efd73429 | ||
![]() |
2db5505216 | ||
![]() |
f44b6c772a | ||
![]() |
f64fab1d2d | ||
![]() |
39bc2e0333 | ||
![]() |
5bb6f0ad8b | ||
![]() |
903537a2a0 | ||
![]() |
1db937826c | ||
![]() |
c1fe1c5d6b | ||
![]() |
a62e9f99a2 | ||
![]() |
9817a6aa47 | ||
![]() |
8185373bd4 | ||
![]() |
18c41aefc9 | ||
![]() |
32917f1922 | ||
![]() |
7a843e1fd1 | ||
![]() |
0e154ccf76 | ||
![]() |
120db06c60 | ||
![]() |
e76ab05d45 | ||
![]() |
43eeb009ce | ||
![]() |
9000eef49d | ||
![]() |
e198c8452b | ||
![]() |
aea66ddff6 | ||
![]() |
a5f4ffa58c | ||
![]() |
a1c39e142d | ||
![]() |
e76a0f564c | ||
![]() |
8307d9c4de | ||
![]() |
1dbf6b096b | ||
![]() |
6fe71ecc01 | ||
![]() |
57e58eaf2a | ||
![]() |
00a5db71cf | ||
![]() |
c7fa57cd28 | ||
![]() |
8f2c86d79e | ||
![]() |
56f1da5c66 | ||
![]() |
30a205c0e3 | ||
![]() |
98d77d37d0 | ||
![]() |
0853fb940a | ||
![]() |
6dd819a61e | ||
![]() |
39aae19ed7 | ||
![]() |
20749e5dbd | ||
![]() |
99e1cd549d | ||
![]() |
efdbeb7c1b | ||
![]() |
ea4dbd14bc | ||
![]() |
838df4b00b | ||
![]() |
b6110ba8dc | ||
![]() |
fd763ad857 | ||
![]() |
e3d59832c5 | ||
![]() |
2c85bb4178 | ||
![]() |
8493777961 | ||
![]() |
4e7405aca9 | ||
![]() |
34207ba509 | ||
![]() |
6dc499f305 | ||
![]() |
92e2242cf0 | ||
![]() |
ea214fbe0f | ||
![]() |
487b8a0430 | ||
![]() |
8b060342bd | ||
![]() |
27d6c063ad | ||
![]() |
0e62b71959 | ||
![]() |
2c3f79829e | ||
![]() |
5d2b0bc0cc | ||
![]() |
7e3a780dcd | ||
![]() |
1035200f26 | ||
![]() |
8532b10290 | ||
![]() |
f0c6c4eb1f | ||
![]() |
ba194bd19e | ||
![]() |
a35274ddb7 | ||
![]() |
ab541e3e0f | ||
![]() |
67ce04993e | ||
![]() |
22cdc8f414 | ||
![]() |
8b022a5595 | ||
![]() |
7a1393ba26 | ||
![]() |
5ed954e6de | ||
![]() |
96572fbe6a | ||
![]() |
4ab47e72e5 | ||
![]() |
70e0fd0b45 | ||
![]() |
26cd031be8 | ||
![]() |
743e8cc249 | ||
![]() |
2bf7974076 | ||
![]() |
9c16e4e2f3 | ||
![]() |
07f6c85cc7 | ||
![]() |
d4968e10e5 | ||
![]() |
bd3817198e | ||
![]() |
5b5737f65e | ||
![]() |
5af8753171 | ||
![]() |
8bef74f441 | ||
![]() |
f1a42b0f97 | ||
![]() |
95682a9494 | ||
![]() |
ef41867303 | ||
![]() |
8d4b03ce87 | ||
![]() |
06263354a5 | ||
![]() |
aa30e11c8b | ||
![]() |
65bca8e008 | ||
![]() |
068791f6c1 | ||
![]() |
cbc4563b30 | ||
![]() |
f381d7c3bf | ||
![]() |
0a8d8128b3 | ||
![]() |
46135d4f0f | ||
![]() |
7ba44e7945 | ||
![]() |
dd4ad4efc4 | ||
![]() |
807658e972 | ||
![]() |
8499a29d0a | ||
![]() |
283eedef90 | ||
![]() |
ce515c5389 | ||
![]() |
83440614bc | ||
![]() |
a93661f9e1 | ||
![]() |
216f7631de | ||
![]() |
361bf847af | ||
![]() |
46f54eb3d9 | ||
![]() |
bc47c6cc4f | ||
![]() |
8bfdfa1f46 | ||
![]() |
999542c915 | ||
![]() |
cb38e9c4a2 | ||
![]() |
42c56c2460 | ||
![]() |
e2d904c32b | ||
![]() |
fa9c09feee | ||
![]() |
3f6a2d02fd | ||
![]() |
5b37901b57 | ||
![]() |
2df4ccd1cd | ||
![]() |
dcd15e6145 | ||
![]() |
2a318eb3f2 | ||
![]() |
522eec00cd | ||
![]() |
be11c32815 | ||
![]() |
24c91d95de | ||
![]() |
7562eb6006 | ||
![]() |
0aa7405a2a | ||
![]() |
a119e58773 | ||
![]() |
8a32b42172 | ||
![]() |
94a15404da | ||
![]() |
fefede5b51 | ||
![]() |
5be00f23be | ||
![]() |
bdbd2e96de | ||
![]() |
7785a57f8a | ||
![]() |
cf01e26b2f | ||
![]() |
6e46ad9f3a | ||
![]() |
921b18f713 | ||
![]() |
53175e8788 | ||
![]() |
920541fa26 | ||
![]() |
9d8922764c | ||
![]() |
97f2c7c161 | ||
![]() |
38235bc145 | ||
![]() |
3ce3a5a952 | ||
![]() |
3005a400ca | ||
![]() |
34e7134db2 | ||
![]() |
12710dc644 | ||
![]() |
a10ad577a7 | ||
![]() |
d3c559a917 | ||
![]() |
1e7628a3ef | ||
![]() |
d5a85997f2 | ||
![]() |
5a37e0e1ef | ||
![]() |
00f6a74397 | ||
![]() |
c9439107c1 | ||
![]() |
ba65664cbd | ||
![]() |
3da0730a31 | ||
![]() |
98fcd616a3 | ||
![]() |
06d0989014 | ||
![]() |
c248feb3c1 | ||
![]() |
3f2c5ca9bd | ||
![]() |
520c56fe53 | ||
![]() |
d3a670b043 | ||
![]() |
6eca267eee | ||
![]() |
fdefe776d3 | ||
![]() |
bba8776184 | ||
![]() |
e075242801 | ||
![]() |
0f9686fb5a | ||
![]() |
168479862d | ||
![]() |
483ed98777 | ||
![]() |
14fe6e9c95 | ||
![]() |
6584d06bb5 | ||
![]() |
92a53f08f4 | ||
![]() |
a81d4aed7a | ||
![]() |
517488ef67 | ||
![]() |
33f1706634 | ||
![]() |
5685449e15 | ||
![]() |
a6d67b164a | ||
![]() |
f950380202 | ||
![]() |
a4270fa7ac | ||
![]() |
35c9280fb6 | ||
![]() |
8b92ad1d4b | ||
![]() |
0d6e3fd675 | ||
![]() |
b140e7fbeb | ||
![]() |
6c0f107db0 | ||
![]() |
61950755ec | ||
![]() |
bc3162460f | ||
![]() |
27a4f9f862 | ||
![]() |
88f2441330 | ||
![]() |
ab04286c6b | ||
![]() |
e8a62861c9 | ||
![]() |
9ac87b36c1 | ||
![]() |
ce7819949f | ||
![]() |
12792f99a0 | ||
![]() |
66996dee4b | ||
![]() |
2f45e88f06 | ||
![]() |
c1439e141e | ||
![]() |
dceb0f1f1f | ||
![]() |
a7915ff8ae | ||
![]() |
420a712ad5 | ||
![]() |
9a47e5c832 | ||
![]() |
dbc63430d8 | ||
![]() |
0f861cecac | ||
![]() |
586f9666d7 | ||
![]() |
05a2331052 | ||
![]() |
9f8bee7781 | ||
![]() |
d9505315da | ||
![]() |
c9937faf1e | ||
![]() |
98606bc046 | ||
![]() |
49096f0530 | ||
![]() |
ff6eb86bb4 | ||
![]() |
c735eab216 | ||
![]() |
299aa9759c | ||
![]() |
35e9020f4c | ||
![]() |
6d4234e300 | ||
![]() |
0457870ff1 | ||
![]() |
a52c4c2795 | ||
![]() |
bb8c388a37 | ||
![]() |
46cb506f8f | ||
![]() |
ce20c964a6 | ||
![]() |
e3f76e9482 | ||
![]() |
b894fbd9ff | ||
![]() |
2ca0871724 | ||
![]() |
dd12f569d9 | ||
![]() |
c54377e3ba | ||
![]() |
346acaf7f6 | ||
![]() |
3343a199c2 | ||
![]() |
1fb3c9f8bf | ||
![]() |
b7b5fb293d | ||
![]() |
1455c402b9 | ||
![]() |
4c1fe4c30d | ||
![]() |
9b97a44760 | ||
![]() |
26fa7b8f6a | ||
![]() |
7486783692 | ||
![]() |
9929efb65e | ||
![]() |
5db48faca4 | ||
![]() |
b0c54b6675 | ||
![]() |
d8354cb153 | ||
![]() |
9a348aa859 | ||
![]() |
fe6e24ddbd | ||
![]() |
7e330bd65f | ||
![]() |
3f9c5823cb | ||
![]() |
2bdd97e067 | ||
![]() |
32fd1e8c08 | ||
![]() |
e126b6ed16 | ||
![]() |
4d8cb5408b | ||
![]() |
f852d2b0eb | ||
![]() |
5c3b27d02f | ||
![]() |
ead6556b50 | ||
![]() |
4afa66fe41 | ||
![]() |
408292959e | ||
![]() |
2d8d9dea97 | ||
![]() |
f38c90961a | ||
![]() |
aa47374d0e | ||
![]() |
5aee5048ba | ||
![]() |
0e3f80d238 | ||
![]() |
ef13ee4488 | ||
![]() |
8b5d34b24a | ||
![]() |
c614a2db28 | ||
![]() |
7360f51ee8 | ||
![]() |
6ae42f3845 | ||
![]() |
26b66826dc | ||
![]() |
6d082bf442 | ||
![]() |
aad2280309 | ||
![]() |
e3d5bc077d | ||
![]() |
777963eeb6 | ||
![]() |
4cc5b25493 | ||
![]() |
49c5228655 | ||
![]() |
85638c1b19 | ||
![]() |
2507e53d04 | ||
![]() |
a9c1c6d9fb | ||
![]() |
0a8e108f10 | ||
![]() |
859b01fc39 | ||
![]() |
e42206cc43 | ||
![]() |
41eea5a942 | ||
![]() |
197401fbf8 | ||
![]() |
9ab338d7b6 | ||
![]() |
aa5d8ac68c | ||
![]() |
0adc56779f | ||
![]() |
67eb289a6a | ||
![]() |
dfc4d0d523 | ||
![]() |
5f2bb43061 | ||
![]() |
fef81cd628 | ||
![]() |
3e8d0204bd | ||
![]() |
b2a530b326 | ||
![]() |
5ab116a87f | ||
![]() |
10b0351a59 | ||
![]() |
b64c69e4bc | ||
![]() |
c2e49f1bb5 | ||
![]() |
a3d63d0ac0 | ||
![]() |
88cae8bd3d | ||
![]() |
a6ec2b1d42 | ||
![]() |
ca600973ba | ||
![]() |
4b8dd51c4d | ||
![]() |
56c468a2ef | ||
![]() |
10b30eaba5 | ||
![]() |
328e3f8f4f | ||
![]() |
7bd69f0b32 | ||
![]() |
538e402d71 | ||
![]() |
9af6ec78ab | ||
![]() |
41e22ab592 | ||
![]() |
1303c626b1 | ||
![]() |
7eea82d3d7 | ||
![]() |
80e5955918 | ||
![]() |
ce989976fa | ||
![]() |
529e5adb2e | ||
![]() |
a70ae50ca9 | ||
![]() |
74882b2502 | ||
![]() |
5f49bda591 | ||
![]() |
edab8c3a4c | ||
![]() |
8153c5b544 | ||
![]() |
a4cef8586c | ||
![]() |
9b9bb9cf86 | ||
![]() |
dc5b2e396c | ||
![]() |
d23275bc76 | ||
![]() |
48e820235e | ||
![]() |
2d3c56b089 | ||
![]() |
85b2e59e7e | ||
![]() |
e1950ed76f | ||
![]() |
7938f41c11 | ||
![]() |
9f41bdb086 | ||
![]() |
8457e2bad6 | ||
![]() |
4d7329a7e2 | ||
![]() |
b4120a75e0 | ||
![]() |
b19e4592df | ||
![]() |
e9c9ee844c | ||
![]() |
f5f0ff0a2f | ||
![]() |
68dacb531b | ||
![]() |
dd82f4afcd | ||
![]() |
fc010e0edc | ||
![]() |
5132ea64be | ||
![]() |
82325cbcfd | ||
![]() |
fb5ebffb8d | ||
![]() |
94d843b80e | ||
![]() |
c32e2d17d9 | ||
![]() |
2b05748d5c | ||
![]() |
cd775929bf | ||
![]() |
7303a78b06 | ||
![]() |
07b8cc0773 | ||
![]() |
1bb0e18042 | ||
![]() |
05bc2e2331 | ||
![]() |
3b097c7e77 | ||
![]() |
0bc312a54b | ||
![]() |
2718699ccc | ||
![]() |
be175558c3 | ||
![]() |
df39a7d0fd | ||
![]() |
43cdf81f6b | ||
![]() |
183f4b0c13 | ||
![]() |
38a772bce7 | ||
![]() |
dd451547a5 | ||
![]() |
270da95cbc | ||
![]() |
76198e0b3b | ||
![]() |
efc190789f | ||
![]() |
81e99c2680 | ||
![]() |
755755a2f3 | ||
![]() |
4b23eb064c | ||
![]() |
498200776c | ||
![]() |
27b949d6ba | ||
![]() |
27ea62a79d | ||
![]() |
cf1edff9ed | ||
![]() |
5cb5baa7d4 | ||
![]() |
d620189ae3 | ||
![]() |
bc041e02b3 | ||
![]() |
4b4c2b1afa | ||
![]() |
05d15f8885 | ||
![]() |
561d71b8ae | ||
![]() |
177e47952a | ||
![]() |
374bb630f0 | ||
![]() |
fe5138dfc4 | ||
![]() |
68a9675d42 | ||
![]() |
020e0bb2ac | ||
![]() |
b47de58edd | ||
![]() |
24195d8d15 | ||
![]() |
3a7c37c60a | ||
![]() |
c69d5d978c | ||
![]() |
2f30098ab5 | ||
![]() |
e146428038 | ||
![]() |
5758401443 | ||
![]() |
f241bdba93 | ||
![]() |
410d66ca37 | ||
![]() |
f2309cdb55 | ||
![]() |
3887d25dbc | ||
![]() |
d6d01c85a6 | ||
![]() |
d0bfb94ff0 | ||
![]() |
2b1537cdf5 | ||
![]() |
d3362a6f05 | ||
![]() |
9cf8aa4584 | ||
![]() |
c76eedd794 | ||
![]() |
9131f26cae | ||
![]() |
8ed0dda40d | ||
![]() |
0fd9e38175 | ||
![]() |
891cab3bb3 | ||
![]() |
454bd88d27 | ||
![]() |
3ced749c89 | ||
![]() |
69b6479502 | ||
![]() |
a641b59f22 | ||
![]() |
704bd4c331 | ||
![]() |
229ac9c9dc | ||
![]() |
e435cf301f | ||
![]() |
0608ae2d4e | ||
![]() |
3f107da479 | ||
![]() |
813de50eba | ||
![]() |
a4cb1f0f7a | ||
![]() |
612432ac3e | ||
![]() |
47a01013b1 | ||
![]() |
69e7ad4402 | ||
![]() |
c214eb15bf | ||
![]() |
e6eac46629 | ||
![]() |
de61da16ae | ||
![]() |
bdcb395b33 | ||
![]() |
1caa7f7627 | ||
![]() |
5b4a96e3a3 | ||
![]() |
15dd23a323 | ||
![]() |
04d7fcf60d | ||
![]() |
9755cd469c | ||
![]() |
1bdadfa3e1 | ||
![]() |
20fcb88632 | ||
![]() |
6791d1b8e2 | ||
![]() |
6c8b103a7b | ||
![]() |
95d0117784 | ||
![]() |
740436ab4d | ||
![]() |
89fbf1e1d2 | ||
![]() |
c391cefd71 | ||
![]() |
52af529950 | ||
![]() |
c30cb069f5 | ||
![]() |
99a0b43f28 | ||
![]() |
af4017de49 | ||
![]() |
d804ecbd95 | ||
![]() |
1ad3382bff | ||
![]() |
9787b1cfd5 | ||
![]() |
0ac2eba4d3 | ||
![]() |
17c54c6e03 | ||
![]() |
dd14e1cebc | ||
![]() |
1e2266aa47 | ||
![]() |
472a434212 | ||
![]() |
7c226462e0 | ||
![]() |
93c6a869ec | ||
![]() |
9d914091f5 | ||
![]() |
afcc1bf512 | ||
![]() |
8a29c51b73 | ||
![]() |
d38c4c1f2d | ||
![]() |
2091df3856 | ||
![]() |
744b4dcb7c | ||
![]() |
0c64c35a8a | ||
![]() |
57acbc53fb | ||
![]() |
ac68631f4c | ||
![]() |
8163ca6821 | ||
![]() |
094e0356e8 | ||
![]() |
63450d69d3 | ||
![]() |
0952409de4 | ||
![]() |
1c54c7a1bb | ||
![]() |
f25f14351c | ||
![]() |
691e7951ea | ||
![]() |
7eaeba520a | ||
![]() |
9a5b94a340 | ||
![]() |
079b125430 | ||
![]() |
770a5a5bff | ||
![]() |
0548c9e7d5 | ||
![]() |
68a6cc5976 | ||
![]() |
2035f2f2e2 | ||
![]() |
1892a6b0c4 | ||
![]() |
b464004bb3 | ||
![]() |
ea4438284f | ||
![]() |
d050fdb17f | ||
![]() |
9003a42df3 | ||
![]() |
9e8ee491e6 | ||
![]() |
3b46345db4 | ||
![]() |
6b2a111428 | ||
![]() |
bc56971e18 | ||
![]() |
fcc0288f0c | ||
![]() |
4e03e89869 | ||
![]() |
4e17017501 | ||
![]() |
63bc86cd43 | ||
![]() |
ee32ca3efe | ||
![]() |
a393a614a1 | ||
![]() |
753e9c65a1 | ||
![]() |
409c92a68f | ||
![]() |
53a93deafc | ||
![]() |
3a374a6db5 | ||
![]() |
aec4b4af97 | ||
![]() |
2392432780 | ||
![]() |
0d5274b3b7 | ||
![]() |
42c0809216 | ||
![]() |
420311b463 | ||
![]() |
efae039ad9 | ||
![]() |
e60dfd5b23 | ||
![]() |
df45c50d0b | ||
![]() |
8f691c28f3 | ||
![]() |
a77da353f3 | ||
![]() |
70a4f59960 | ||
![]() |
ac813d5285 | ||
![]() |
5d3e7d6ffd | ||
![]() |
5b378ea648 | ||
![]() |
ea04ff5d46 | ||
![]() |
982ad7361b | ||
![]() |
10dfe2059b | ||
![]() |
61e9594f63 | ||
![]() |
2d8eaa082f | ||
![]() |
29b240e883 | ||
![]() |
e081bb3921 | ||
![]() |
ad24967d78 | ||
![]() |
90d83b4bb9 | ||
![]() |
eb3ff3f44a | ||
![]() |
db14e6099e | ||
![]() |
5aa02c0378 | ||
![]() |
73b2b30a1d | ||
![]() |
cf6b7bcb79 | ||
![]() |
4b86af839f | ||
![]() |
f434f88c0c | ||
![]() |
cdedd017d6 | ||
![]() |
a48c9d6cd9 | ||
![]() |
1039386e10 | ||
![]() |
944339f6a5 | ||
![]() |
4cfcd4bce0 | ||
![]() |
4f386e5131 | ||
![]() |
3ace913aed | ||
![]() |
8f2daed9e0 | ||
![]() |
c5dc0f4a2e | ||
![]() |
615587cd06 | ||
![]() |
df068a3649 | ||
![]() |
7967ceee98 | ||
![]() |
979bc4390a | ||
![]() |
e20e60783a | ||
![]() |
38c5a1610e | ||
![]() |
572610d01e | ||
![]() |
21b2eff334 | ||
![]() |
35388fb33c | ||
![]() |
aa5738c777 | ||
![]() |
f7ffb1790f | ||
![]() |
65e9c89ed9 | ||
![]() |
5fafaf92df | ||
![]() |
4e4b24e7a8 | ||
![]() |
542ed1d024 | ||
![]() |
eda0f45ab5 | ||
![]() |
4fdc551209 | ||
![]() |
58043cbc8b | ||
![]() |
09fa27cd09 | ||
![]() |
d8ee96c6cb | ||
![]() |
3821ed162b | ||
![]() |
1f20e82a96 | ||
![]() |
1079850621 | ||
![]() |
aab5f7c42b | ||
![]() |
f8a6c27791 | ||
![]() |
95e9fa10ef | ||
![]() |
89871e04aa | ||
![]() |
1705a26fc7 | ||
![]() |
95c924460a | ||
![]() |
97b1a8dfc8 | ||
![]() |
fbcc8fae77 | ||
![]() |
3d2cb7f1ef | ||
![]() |
fc9a24824a | ||
![]() |
383ba566bd | ||
![]() |
d200868459 | ||
![]() |
690b232258 | ||
![]() |
e078838774 | ||
![]() |
1b03dd6704 | ||
![]() |
1171c4f16d | ||
![]() |
a9f139cab6 | ||
![]() |
5ba38a4ab6 | ||
![]() |
8f5a0ec83d | ||
![]() |
bb2e8ff09a | ||
![]() |
1fe10f09d7 | ||
![]() |
328b4d24c6 | ||
![]() |
4b2d4a0169 | ||
![]() |
3564b5845e | ||
![]() |
2907b234c9 | ||
![]() |
e1ffe15d94 | ||
![]() |
1b0a3f11f9 | ||
![]() |
b202f5d094 | ||
![]() |
cd5c52b550 | ||
![]() |
46d516cb04 | ||
![]() |
4d0a886c45 | ||
![]() |
5db3eebfbb | ||
![]() |
36ee6f656a | ||
![]() |
966725fcb4 | ||
![]() |
90923903ae | ||
![]() |
191525cdb4 | ||
![]() |
2d18b18fe5 | ||
![]() |
ead62f1901 | ||
![]() |
f97b2d49f5 | ||
![]() |
827db6f7c7 | ||
![]() |
91c6a144da | ||
![]() |
cb86745245 | ||
![]() |
6b384dc8d1 | ||
![]() |
a25915f4f9 | ||
![]() |
92a7690e19 | ||
![]() |
1372690c7f | ||
![]() |
bd2ca79a48 | ||
![]() |
6d64123849 | ||
![]() |
042a95ef98 | ||
![]() |
2d3af657e7 | ||
![]() |
4ebc55f2b3 | ||
![]() |
7c80e80a92 | ||
![]() |
4c5ec5dfa8 | ||
![]() |
c995c0ad1f | ||
![]() |
d870ed4317 | ||
![]() |
9950b4de75 | ||
![]() |
7e3fbfbdd2 | ||
![]() |
ff453c1143 | ||
![]() |
efd9d467f2 | ||
![]() |
07ce981cb0 | ||
![]() |
5af848d991 | ||
![]() |
fff7da2a96 | ||
![]() |
d6fc41b73e | ||
![]() |
9d38ffa6e3 | ||
![]() |
8bcdf9ba61 | ||
![]() |
938891a2e2 | ||
![]() |
45c9786434 | ||
![]() |
cfbc4fe4d0 | ||
![]() |
dae5f06069 | ||
![]() |
1ff9bbd59c | ||
![]() |
cc838ead8b | ||
![]() |
9a123847e0 | ||
![]() |
1f0659d516 | ||
![]() |
4f31b53521 | ||
![]() |
962e1d5a69 | ||
![]() |
57f80f091f | ||
![]() |
9c79a1631d | ||
![]() |
c7853730ed | ||
![]() |
2cd78bffd9 | ||
![]() |
1597b357a1 | ||
![]() |
73524cadd4 | ||
![]() |
6fa8238ebf | ||
![]() |
1c6eef48f1 | ||
![]() |
1fdf2ac746 | ||
![]() |
3ae9feef0c | ||
![]() |
e9a8208607 | ||
![]() |
e357b4a46a | ||
![]() |
097ca01411 | ||
![]() |
e8197e8e05 | ||
![]() |
7fc6b8a746 | ||
![]() |
0fd9c00580 | ||
![]() |
4a51a1dfe5 | ||
![]() |
9fb8abf840 | ||
![]() |
449320cd23 | ||
![]() |
12b69dbabb | ||
![]() |
4652bde3d7 | ||
![]() |
9b4e1903e1 | ||
![]() |
702facbc91 | ||
![]() |
339340df34 | ||
![]() |
1ad386bc28 | ||
![]() |
28a8c714ea | ||
![]() |
c9f18bfef3 | ||
![]() |
20cd885443 | ||
![]() |
3f994646f2 | ||
![]() |
f45e7703ba | ||
![]() |
1ee0412177 | ||
![]() |
4b33f05eda | ||
![]() |
81923410f6 | ||
![]() |
f19cb6a610 | ||
![]() |
cde1a730e8 | ||
![]() |
d6efdfab4b | ||
![]() |
f7b6271d86 | ||
![]() |
8d1be7ffc0 | ||
![]() |
a0af7e94a6 | ||
![]() |
f607b03456 | ||
![]() |
644ee666f6 | ||
![]() |
ee0677a021 | ||
![]() |
0b4d80d74f | ||
![]() |
1a2b493d17 | ||
![]() |
9ceeddd952 | ||
![]() |
e1849ccbfa | ||
![]() |
6262b46928 | ||
![]() |
8752f40792 | ||
![]() |
8c5600e81b | ||
![]() |
4c1b48d0cc | ||
![]() |
536ae8430b | ||
![]() |
aaddf44d45 | ||
![]() |
0c42faf34d | ||
![]() |
be13d0f8ee | ||
![]() |
81438eebef | ||
![]() |
b70187c2d9 | ||
![]() |
c041851fa5 | ||
![]() |
b59a8b1de3 | ||
![]() |
e3b9fe7e58 | ||
![]() |
0177ab45af | ||
![]() |
bc951557e8 | ||
![]() |
2c32d94e1d | ||
![]() |
5d9e2d8d2e | ||
![]() |
0637537355 | ||
![]() |
63ed134165 | ||
![]() |
a6f464a600 | ||
![]() |
0a0c49af71 | ||
![]() |
3c6d688c87 | ||
![]() |
5d66a13397 | ||
![]() |
ff633f295e | ||
![]() |
310064601c | ||
![]() |
78799e58d2 | ||
![]() |
4fa8b74dc7 | ||
![]() |
bf8b4e9927 | ||
![]() |
f48acd8448 | ||
![]() |
d0c9d2dc7b | ||
![]() |
d9a0f2a88d | ||
![]() |
4e812410cc | ||
![]() |
0873e3812b | ||
![]() |
7eac28189b | ||
![]() |
1650c35e38 | ||
![]() |
156c478ccb | ||
![]() |
10e6eae0dd | ||
![]() |
f519093f89 | ||
![]() |
8a8ab6c673 | ||
![]() |
9e28303588 | ||
![]() |
6776329cf5 | ||
![]() |
2e4c516d43 | ||
![]() |
d920eaba4a | ||
![]() |
376a76a082 | ||
![]() |
c6d940d3b2 | ||
![]() |
95c101a0ba | ||
![]() |
239671f882 | ||
![]() |
12150c1ca7 | ||
![]() |
a251675cc0 | ||
![]() |
d188949101 | ||
![]() |
d3920ddb67 | ||
![]() |
bc5077f623 | ||
![]() |
68f3b5849a | ||
![]() |
6de3e4a07e | ||
![]() |
1fb0e8e9bb | ||
![]() |
20b8743f21 | ||
![]() |
016359ede2 | ||
![]() |
410bad88a8 | ||
![]() |
c98bab8327 | ||
![]() |
a422d6fe08 | ||
![]() |
98ee85ce82 | ||
![]() |
5a8509f895 | ||
![]() |
06770b0dd4 | ||
![]() |
af616c96d4 | ||
![]() |
f5b2d79f3b | ||
![]() |
d644993a74 | ||
![]() |
2df4ebff47 | ||
![]() |
9337d18468 | ||
![]() |
317b734dcc | ||
![]() |
e35ac9be8d | ||
![]() |
6dbb524b9f | ||
![]() |
a3f0bf3ff8 | ||
![]() |
ecf796f82b | ||
![]() |
0a4fb008f3 | ||
![]() |
79fd91ec35 | ||
![]() |
e659b07c39 | ||
![]() |
441b854d41 | ||
![]() |
c936056663 | ||
![]() |
e22bbd4b14 | ||
![]() |
103df63023 | ||
![]() |
36f2d5b0f1 | ||
![]() |
920cc15ea9 | ||
![]() |
842ff5d6aa | ||
![]() |
e1b10769e5 | ||
![]() |
4177d4f9f4 | ||
![]() |
9b64e09a24 | ||
![]() |
f5a70aa1e2 | ||
![]() |
2df35d636e | ||
![]() |
f7fd018cf8 | ||
![]() |
405aa8fb9e | ||
![]() |
0a826da330 | ||
![]() |
139bed73f8 | ||
![]() |
778f92e170 | ||
![]() |
5a43cc5cf9 | ||
![]() |
81b11929f7 | ||
![]() |
46b8624833 | ||
![]() |
76012506ff | ||
![]() |
1ab6ac2996 | ||
![]() |
c98d5448ec | ||
![]() |
cfafb0bfca | ||
![]() |
71077d582b | ||
![]() |
5eb5f72434 | ||
![]() |
7f49b5144b | ||
![]() |
e8380d11c4 | ||
![]() |
ff5a7ba9b9 | ||
![]() |
c50ae726a9 | ||
![]() |
2b59b4c793 | ||
![]() |
0249993377 | ||
![]() |
d9a9844005 | ||
![]() |
227187f1f1 | ||
![]() |
77384ffa9a | ||
![]() |
1956a6ae76 | ||
![]() |
5df5b00927 | ||
![]() |
1d280d8fa1 | ||
![]() |
9c03e78505 | ||
![]() |
4af62438f2 | ||
![]() |
0aa6d9782c | ||
![]() |
c2e72823fc | ||
![]() |
d829fa19d2 | ||
![]() |
76b6cc02d6 | ||
![]() |
8acfa0a79c | ||
![]() |
2ed7ca5b6a | ||
![]() |
5774fcdd80 | ||
![]() |
eed4dab0fc | ||
![]() |
f5bdf75f70 | ||
![]() |
1f0ce80fb4 | ||
![]() |
7c31fb2450 | ||
![]() |
11783ffdd0 | ||
![]() |
41c96921d6 | ||
![]() |
23455985cd | ||
![]() |
659c987335 | ||
![]() |
ecc1f56009 | ||
![]() |
18b9cf8a85 | ||
![]() |
934184e236 | ||
![]() |
b735bdcf2f | ||
![]() |
f692eb3677 | ||
![]() |
b1597b4291 | ||
![]() |
faa96444b5 | ||
![]() |
78c121eb10 | ||
![]() |
cb6adc45d1 | ||
![]() |
59b4b5e9e8 | ||
![]() |
ad784501a6 | ||
![]() |
68d690225a | ||
![]() |
8f716772c2 | ||
![]() |
da21f02eb9 | ||
![]() |
4ce7d3a772 | ||
![]() |
77b7ecfd04 | ||
![]() |
da1c1d9c22 | ||
![]() |
f7cd6af9c6 | ||
![]() |
678ebbb7f6 | ||
![]() |
87d6e45da5 | ||
![]() |
80c61c4b3b | ||
![]() |
4547c6e9f3 | ||
![]() |
cde622b8e1 | ||
![]() |
8b810193dd | ||
![]() |
22f019826c | ||
![]() |
7fa3f41df2 | ||
![]() |
f99a086444 | ||
![]() |
925b1aec64 | ||
![]() |
be5c2ebcb5 | ||
![]() |
ae73e9d84d | ||
![]() |
af920851ca | ||
![]() |
ea4dbdd66f | ||
![]() |
ff9753688f | ||
![]() |
b35b531f00 | ||
![]() |
6257f1195b | ||
![]() |
b252771a8f | ||
![]() |
75c3f0ffba | ||
![]() |
bd83873a7f | ||
![]() |
cea7d629d9 | ||
![]() |
1831a1dd9b | ||
![]() |
9abf6892c4 | ||
![]() |
674a48335d | ||
![]() |
db9d8fcc90 | ||
![]() |
15db18901c | ||
![]() |
4cfc21d49d | ||
![]() |
cf0a453d32 | ||
![]() |
4186833df7 | ||
![]() |
30fa764c90 | ||
![]() |
236417be38 | ||
![]() |
2641b364e8 | ||
![]() |
fb5e591bc9 | ||
![]() |
bfb46ff850 | ||
![]() |
2012eab842 | ||
![]() |
9ecb488437 | ||
![]() |
4295fdb892 | ||
![]() |
998d921d41 | ||
![]() |
d491063110 | ||
![]() |
e2bfaf0751 | ||
![]() |
f1e1a5ff06 | ||
![]() |
ef2000053a | ||
![]() |
8a7876ded5 | ||
![]() |
b50da46f43 | ||
![]() |
8b0e9706ca | ||
![]() |
1d4a5a7520 | ||
![]() |
8290e1f09a | ||
![]() |
89672fad04 | ||
![]() |
1cb9cfe11d | ||
![]() |
280e297afe | ||
![]() |
fc8de3d0c8 | ||
![]() |
3e2555667f | ||
![]() |
1ecadb6e57 | ||
![]() |
2abee91dbc | ||
![]() |
68645df3a3 | ||
![]() |
d2f79afc1a | ||
![]() |
8a6fa726d3 | ||
![]() |
a3d7ae6214 | ||
![]() |
c0c132a320 | ||
![]() |
0dfb5d3ef7 | ||
![]() |
6480a7ee4a | ||
![]() |
6cc8450f8e | ||
![]() |
7ae4b28bda | ||
![]() |
bb8e6afae6 | ||
![]() |
d7f61e48ac | ||
![]() |
9de6de5802 | ||
![]() |
6e7057426e | ||
![]() |
5306d36522 | ||
![]() |
7990182f56 | ||
![]() |
93a6be08a5 | ||
![]() |
d5d5084151 | ||
![]() |
d3cff9a962 | ||
![]() |
133bbdfefa | ||
![]() |
a8c3470cf2 | ||
![]() |
578e527869 | ||
![]() |
312f215fc3 | ||
![]() |
d639c28e3b | ||
![]() |
c3f7259cbb | ||
![]() |
56e8f98c13 | ||
![]() |
c2217373df | ||
![]() |
4a3781d7db | ||
![]() |
911a838c3a | ||
![]() |
c6106f90d4 | ||
![]() |
ed52e17886 | ||
![]() |
f63bb024fa | ||
![]() |
bccff5bdd8 | ||
![]() |
e9944350d3 | ||
![]() |
1fab6e69b7 | ||
![]() |
f89162ee73 | ||
![]() |
5261638bfd | ||
![]() |
04b75c45f8 | ||
![]() |
a50950cf8f | ||
![]() |
f1850e0d61 | ||
![]() |
e3dab70754 | ||
![]() |
b3eac93c4c | ||
![]() |
a9e386e1af | ||
![]() |
028157081c | ||
![]() |
a65c344743 | ||
![]() |
8797e5951c | ||
![]() |
a4e69f338d | ||
![]() |
d045462860 | ||
![]() |
3137ddb1a1 | ||
![]() |
5fbb479301 | ||
![]() |
a4c10b6683 | ||
![]() |
9e5491439e | ||
![]() |
417757eab8 | ||
![]() |
32b87e7bea | ||
![]() |
ed6fda84e1 | ||
![]() |
b1d95438d6 | ||
![]() |
60bc6798f4 | ||
![]() |
342532a98d | ||
![]() |
219d2304e0 | ||
![]() |
fb6b0de48b | ||
![]() |
22173fde15 | ||
![]() |
4c8dd08c77 | ||
![]() |
b78b8c9578 | ||
![]() |
e1516e4f31 | ||
![]() |
32276cf418 | ||
![]() |
98f0578f9d | ||
![]() |
87f82d9fc0 | ||
![]() |
a6646b32d0 | ||
![]() |
d2cdbd433d | ||
![]() |
5d3cacf8d2 | ||
![]() |
a9b78cea6b | ||
![]() |
bb25aa5e6b | ||
![]() |
b52f304f9d | ||
![]() |
9a076076c0 | ||
![]() |
5cae628f37 | ||
![]() |
0f0b25767d | ||
![]() |
878fb6720a | ||
![]() |
f4c2da7499 | ||
![]() |
0559308812 | ||
![]() |
30d2a94cb3 | ||
![]() |
2681647089 | ||
![]() |
4c106a9c9b | ||
![]() |
a884e4540c | ||
![]() |
f9fff98909 | ||
![]() |
abee020f71 | ||
![]() |
33ba06504b | ||
![]() |
10c7035a71 | ||
![]() |
e6a20a025d | ||
![]() |
262b52da50 | ||
![]() |
fccdd00f74 | ||
![]() |
3a41b0f221 | ||
![]() |
e5a359a032 | ||
![]() |
d893adb290 | ||
![]() |
0c53677992 | ||
![]() |
640178a94f | ||
![]() |
2e7f11305c | ||
![]() |
c1b5b76bf4 | ||
![]() |
d164ce15f2 | ||
![]() |
c9941f2d30 | ||
![]() |
330c5ffef9 | ||
![]() |
f83f5019cf | ||
![]() |
7b55592cce | ||
![]() |
99aaec6ce4 | ||
![]() |
880c9e379f | ||
![]() |
99d89299fd | ||
![]() |
f36fa53b0e | ||
![]() |
4f58a46217 | ||
![]() |
3acd562a41 | ||
![]() |
0515f73ff0 | ||
![]() |
d696fd3021 | ||
![]() |
ce7573e2b7 | ||
![]() |
6c8f6afdc4 | ||
![]() |
7a096b8686 | ||
![]() |
c7976e0dbc | ||
![]() |
f692c527e7 | ||
![]() |
2c1d3e5b70 | ||
![]() |
262e184fe7 | ||
![]() |
01edf10e82 | ||
![]() |
335764e815 | ||
![]() |
89f6fdce5d | ||
![]() |
7d9af9585d | ||
![]() |
c8f24721c5 | ||
![]() |
7ba803934c | ||
![]() |
5a1ce1b5a2 | ||
![]() |
1f570d542e | ||
![]() |
658d97d00e | ||
![]() |
8942e98e1d | ||
![]() |
b6e13c459a | ||
![]() |
43151edece | ||
![]() |
b3f27de710 | ||
![]() |
4cf14c41ef | ||
![]() |
dc03b3aa47 | ||
![]() |
ef3e036b45 | ||
![]() |
24c3844246 | ||
![]() |
f21df37190 | ||
![]() |
a5efa30f6c | ||
![]() |
817911d9d3 | ||
![]() |
a8d86b4876 | ||
![]() |
cfb3d10e1b | ||
![]() |
3a75e55cd8 | ||
![]() |
335cd8e74c | ||
![]() |
c73d3d9d83 | ||
![]() |
8833991201 | ||
![]() |
9fb891d216 | ||
![]() |
3b3f40a1aa | ||
![]() |
2114f2eb9f | ||
![]() |
3ee16a2abb | ||
![]() |
9fb4783957 | ||
![]() |
9e641f623f | ||
![]() |
8065ff5a37 | ||
![]() |
6ce918661c | ||
![]() |
a72bd1bd29 | ||
![]() |
89854f9244 | ||
![]() |
a6e15e841b | ||
![]() |
61e9c5c357 | ||
![]() |
54dc10f890 | ||
![]() |
7baa1d8a8d | ||
![]() |
4b4eb3a039 | ||
![]() |
92c03e8625 | ||
![]() |
a53ca0d8cf | ||
![]() |
913c32ee34 | ||
![]() |
f31d8bab44 | ||
![]() |
6f8e6864b2 | ||
![]() |
aea706230d | ||
![]() |
f49458ccd9 | ||
![]() |
9064b4f1f9 | ||
![]() |
c977ba197e | ||
![]() |
f271c1b4ce | ||
![]() |
ea08ed7dc4 | ||
![]() |
3248c6852c | ||
![]() |
5649734100 | ||
![]() |
c55943d753 | ||
![]() |
19e02b3bbe | ||
![]() |
eb7f33265a | ||
![]() |
9f6f778589 | ||
![]() |
1f657d2c81 | ||
![]() |
6940169f46 | ||
![]() |
4678c24d83 | ||
![]() |
1ca57e0923 | ||
![]() |
b53b94e6f2 | ||
![]() |
4abd31d863 | ||
![]() |
3c8b1462bc | ||
![]() |
27a77fa115 | ||
![]() |
0992b5c53e | ||
![]() |
e928370bf0 | ||
![]() |
d2b05f0305 | ||
![]() |
bd326d38ac | ||
![]() |
8e335ce183 | ||
![]() |
364b184f41 | ||
![]() |
94016f7257 | ||
![]() |
e38a8363e4 | ||
![]() |
76eb27e786 | ||
![]() |
5db2be414b | ||
![]() |
61bfe04b7b | ||
![]() |
1931d0ef51 | ||
![]() |
46f1dcaecc | ||
![]() |
5c9a2c54c4 | ||
![]() |
dd549604e2 | ||
![]() |
8913cbb06d | ||
![]() |
96790276c5 | ||
![]() |
84eeebe32f | ||
![]() |
01f1de704d | ||
![]() |
6894563667 | ||
![]() |
9b4e8695f3 | ||
![]() |
adcd0fe9b4 | ||
![]() |
cc4a65fe94 | ||
![]() |
53061c7005 | ||
![]() |
53e3d0df64 | ||
![]() |
97d180ee59 | ||
![]() |
740748af3e | ||
![]() |
38d61f30dc | ||
![]() |
23c4ac6c7f | ||
![]() |
cfe5d7429a | ||
![]() |
36cd7177fd | ||
![]() |
2e4eb86340 | ||
![]() |
337b833e23 | ||
![]() |
d25af2a02a | ||
![]() |
820a6ab406 | ||
![]() |
cd225c4e19 | ||
![]() |
98cd8136ca | ||
![]() |
e6972924d0 | ||
![]() |
ead09bf6cc | ||
![]() |
fe09a3c4e2 | ||
![]() |
ee6867611f | ||
![]() |
207c11d1f7 | ||
![]() |
c6beb1cfc5 | ||
![]() |
b34fe72bb7 | ||
![]() |
18f301cec9 | ||
![]() |
406677e2a0 | ||
![]() |
4f25057413 | ||
![]() |
2f492c133c | ||
![]() |
138a47b8f9 | ||
![]() |
62e4954c96 | ||
![]() |
062b696df2 | ||
![]() |
5effde59f6 | ||
![]() |
76595af8af | ||
![]() |
21c8911254 | ||
![]() |
35554555e0 | ||
![]() |
e2ad8700a9 | ||
![]() |
323c608b0c | ||
![]() |
0efe076a0a | ||
![]() |
6f7f98540f | ||
![]() |
56632d2ef7 | ||
![]() |
6296d30e1a | ||
![]() |
ed16b40c98 | ||
![]() |
7bba20e536 | ||
![]() |
8e6244238d | ||
![]() |
ba9ec00694 | ||
![]() |
08cda496f8 | ||
![]() |
f9552bb9c0 | ||
![]() |
7e267e9b01 | ||
![]() |
fbb4c0b831 | ||
![]() |
d7faab76e0 | ||
![]() |
b7892ba1c5 | ||
![]() |
ab2d2af176 | ||
![]() |
80674fc9e4 | ||
![]() |
9587a60da4 | ||
![]() |
73958aeb59 | ||
![]() |
77b33a86b8 | ||
![]() |
f3b94d9a78 | ||
![]() |
af8b938f92 | ||
![]() |
1496a7ead3 | ||
![]() |
e7e62ee4a4 | ||
![]() |
f6e471fca4 | ||
![]() |
1dd121002f | ||
![]() |
526fdca3fb | ||
![]() |
220ac7c8f2 | ||
![]() |
5ea39e0e77 | ||
![]() |
1c23d4bc51 | ||
![]() |
2e6bfa8bae | ||
![]() |
a59170c09f | ||
![]() |
aa9b2c5494 | ||
![]() |
c1d157e136 | ||
![]() |
2cd21f1b20 | ||
![]() |
5ccde659c1 | ||
![]() |
fd62a1f6ce | ||
![]() |
b8808ca24d | ||
![]() |
41ff0aaf60 | ||
![]() |
c5d0791710 | ||
![]() |
828277f5e0 | ||
![]() |
e56d6b06cf | ||
![]() |
96aed5fd2e | ||
![]() |
88c510c38a | ||
![]() |
6bcff556b5 | ||
![]() |
81736b1dea | ||
![]() |
cc09ca8892 | ||
![]() |
d76aa89be9 | ||
![]() |
8cd4b0e11f | ||
![]() |
6b08990dcc | ||
![]() |
8b769a3412 | ||
![]() |
8d3ac8c3e9 | ||
![]() |
074b0d6b2a | ||
![]() |
8e8cdf1873 | ||
![]() |
72ee6b8b65 | ||
![]() |
3d9bb1cc09 | ||
![]() |
4ed59a020d | ||
![]() |
b5e797f453 | ||
![]() |
125cba7100 | ||
![]() |
720cbc5e5f | ||
![]() |
ad7ec6b979 | ||
![]() |
991f2d696a | ||
![]() |
76175a48d5 | ||
![]() |
c8392e025f | ||
![]() |
820ffa2781 | ||
![]() |
51f7892600 | ||
![]() |
de1464f88f | ||
![]() |
aebd5ba6e0 |
56
.gitignore
vendored
56
.gitignore
vendored
@@ -1,25 +1,9 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
Makefile.in.in
|
||||
aclocal.m4
|
||||
autom4te.cache
|
||||
build-aux
|
||||
compile
|
||||
config.guess
|
||||
config.h
|
||||
config.h.in
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
intltool-extract.in
|
||||
intltool-merge.in
|
||||
libtool
|
||||
ltmain.sh
|
||||
missing
|
||||
.deps
|
||||
50-mutter-navigation.xml
|
||||
50-mutter-system.xml
|
||||
50-mutter-windows.xml
|
||||
@@ -33,22 +17,25 @@ mutter-wayland.desktop
|
||||
*.swp
|
||||
*.gir
|
||||
*.typelib
|
||||
stamp-h1
|
||||
*.gmo
|
||||
*.make
|
||||
*.log
|
||||
*.trs
|
||||
*~
|
||||
stamp-it
|
||||
.intltool-merge-cache
|
||||
POTFILES
|
||||
Makevars.template
|
||||
po/*.header
|
||||
po/*.pot
|
||||
po/*.sed
|
||||
po/*.sin
|
||||
Rules-quot
|
||||
libmutter.pc
|
||||
mutter
|
||||
mutter-restart-helper
|
||||
mutter-test-client
|
||||
mutter-test-runner
|
||||
mutter-test-unit-tests
|
||||
mutter-test-headless-start-test
|
||||
mutter-all.test
|
||||
org.gnome.mutter.gschema.valid
|
||||
org.gnome.mutter.gschema.xml
|
||||
@@ -57,14 +44,14 @@ org.gnome.mutter.wayland.gschema.xml
|
||||
testasyncgetprop
|
||||
testboxes
|
||||
testgradient
|
||||
m4/*
|
||||
INSTALL
|
||||
mkinstalldirs
|
||||
meta-enum-types.[ch]
|
||||
src/stamp-meta-enum-types.h
|
||||
src/meta-dbus-display-config.[ch]
|
||||
src/meta-dbus-idle-monitor.[ch]
|
||||
src/meta-dbus-login1.[ch]
|
||||
src/meta-dbus-remote-desktop.[ch]
|
||||
src/meta-dbus-screen-cast.[ch]
|
||||
src/gtk-primary-selection-protocol.c
|
||||
src/gtk-primary-selection-server-protocol.h
|
||||
src/gtk-shell-protocol.c
|
||||
@@ -77,7 +64,25 @@ src/relative-pointer-unstable-v*-protocol.c
|
||||
src/relative-pointer-unstable-v*-server-protocol.h
|
||||
src/pointer-constraints-unstable-v*-protocol.c
|
||||
src/pointer-constraints-unstable-v*-server-protocol.h
|
||||
src/xdg-foreign-unstable-v*-protocol.c
|
||||
src/xdg-foreign-unstable-v*-server-protocol.h
|
||||
src/xdg-output-unstable-v1-protocol.c
|
||||
src/xdg-output-unstable-v1-server-protocol.h
|
||||
src/xwayland-keyboard-grab-unstable-v1-protocol.c
|
||||
src/xwayland-keyboard-grab-unstable-v1-server-protocol.h
|
||||
src/tablet-unstable-v*-protocol.c
|
||||
src/tablet-unstable-v*-server-protocol.h
|
||||
src/text-input-unstable-v*-protocol.c
|
||||
src/text-input-unstable-v*-server-protocol.h
|
||||
src/keyboard-shortcuts-inhibit-unstable-v*-protocol.c
|
||||
src/keyboard-shortcuts-inhibit-unstable-v*-server-protocol.h
|
||||
src/linux-dmabuf-unstable-v*-protocol.c
|
||||
src/linux-dmabuf-unstable-v*-server-protocol.h
|
||||
src/xdg-shell-protocol.c
|
||||
src/xdg-shell-server-protocol.h
|
||||
src/wayland-eglstream-controller-server-protocol.h
|
||||
src/meta/meta-version.h
|
||||
src/libmutter-*.pc
|
||||
doc/reference/*.args
|
||||
doc/reference/*.bak
|
||||
doc/reference/*.hierarchy
|
||||
@@ -95,11 +100,6 @@ doc/reference/meta-undocumented.txt
|
||||
doc/reference/meta-unused.txt
|
||||
doc/reference/meta-docs.sgml
|
||||
doc/reference/meta.types
|
||||
gtk-doc.m4
|
||||
intltool.m4
|
||||
libtool.m4
|
||||
ltoptions.m4
|
||||
ltsugar.m4
|
||||
ltversion.m4
|
||||
lt~obsolete.m4
|
||||
.dirstamp
|
||||
**/tags.*
|
||||
build/
|
||||
|
44
.gitlab-ci.yml
Normal file
44
.gitlab-ci.yml
Normal file
@@ -0,0 +1,44 @@
|
||||
image: registry.gitlab.gnome.org/gnome/mutter/master:v1
|
||||
|
||||
stages:
|
||||
- review
|
||||
- build
|
||||
- test
|
||||
|
||||
check-commit-log:
|
||||
stage: review
|
||||
script:
|
||||
- ./.gitlab-ci/check-commit-log.sh
|
||||
only:
|
||||
- merge_requests
|
||||
|
||||
build-mutter:
|
||||
stage: build
|
||||
script:
|
||||
- meson . build -Dbuildtype=debugoptimized -Degl_device=true -Dwayland_eglstream=true --werror
|
||||
- ninja -C build
|
||||
- ninja -C build install
|
||||
artifacts:
|
||||
expire_in: 1 day
|
||||
paths:
|
||||
- build
|
||||
only:
|
||||
- merge_requests
|
||||
- /^.*$/
|
||||
|
||||
test-mutter:
|
||||
stage: test
|
||||
dependencies:
|
||||
- build-mutter
|
||||
variables:
|
||||
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
|
||||
GSETTINGS_SCHEMA_DIR: "$CI_PROJECT_DIR/build/data"
|
||||
script:
|
||||
- mkdir -m 700 $XDG_RUNTIME_DIR
|
||||
- glib-compile-schemas $GSETTINGS_SCHEMA_DIR
|
||||
- >
|
||||
dbus-run-session -- xvfb-run -s '+iglx -noreset'
|
||||
meson test -C build --no-rebuild -t 10 --verbose --no-stdsplit --wrap catchsegv
|
||||
only:
|
||||
- merge_requests
|
||||
- /^.*$/
|
17
.gitlab-ci/Dockerfile
Normal file
17
.gitlab-ci/Dockerfile
Normal file
@@ -0,0 +1,17 @@
|
||||
FROM fedora:29
|
||||
|
||||
RUN dnf -y update && dnf -y upgrade && \
|
||||
dnf install -y 'dnf-command(builddep)' && \
|
||||
dnf builddep -y mutter && \
|
||||
|
||||
# Until Fedora catches up with meson build-deps
|
||||
dnf install -y meson xorg-x11-server-Xorg gnome-settings-daemon-devel egl-wayland-devel xorg-x11-server-Xwayland && \
|
||||
|
||||
# For running unit tests
|
||||
dnf install -y xorg-x11-server-Xvfb mesa-dri-drivers dbus dbus-x11 && \
|
||||
|
||||
# Unpackaged versions
|
||||
dnf install -y https://copr-be.cloud.fedoraproject.org/results/jadahl/mutter-ci/fedora-29-x86_64/00848426-gsettings-desktop-schemas/gsettings-desktop-schemas-3.30.1-1.20181206git918efdd69be53.fc29.x86_64.rpm https://copr-be.cloud.fedoraproject.org/results/jadahl/mutter-ci/fedora-29-x86_64/00848426-gsettings-desktop-schemas/gsettings-desktop-schemas-devel-3.30.1-1.20181206git918efdd69be53.fc29.x86_64.rpm && \
|
||||
|
||||
dnf install -y intltool redhat-rpm-config make && \
|
||||
dnf clean all
|
31
.gitlab-ci/check-commit-log.sh
Executable file
31
.gitlab-ci/check-commit-log.sh
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
|
||||
echo Cannot review non-merge request
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git fetch $CI_MERGE_REQUEST_PROJECT_URL.git $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
||||
|
||||
branch_point=$(git merge-base HEAD FETCH_HEAD)
|
||||
|
||||
commits=$(git log --format='format:%H' $branch_point..$CI_COMMIT_SHA)
|
||||
|
||||
if [ -z "$commits" ]; then
|
||||
echo Commit range empty
|
||||
exit 1
|
||||
fi
|
||||
|
||||
function commit_message_has_url() {
|
||||
commit=$1
|
||||
commit_message=$(git show -s --format='format:%b' $commit)
|
||||
echo "$commit_message" | grep -qe "\($CI_MERGE_REQUEST_PROJECT_URL/\(issues\|merge_requests\)/[0-9]\+\|https://bugzilla.gnome.org/show_bug.cgi?id=[0-9]\+\)"
|
||||
return $?
|
||||
}
|
||||
|
||||
for commit in $commits; do
|
||||
if ! commit_message_has_url $commit; then
|
||||
echo "Missing merge request or issue URL on commit $(echo $commit | cut -c -8)"
|
||||
exit 1
|
||||
fi
|
||||
done
|
11
Makefile.am
11
Makefile.am
@@ -1,11 +0,0 @@
|
||||
|
||||
SUBDIRS = cogl clutter data src po doc
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
|
||||
|
||||
DISTCLEANFILES = \
|
||||
intltool-extract \
|
||||
intltool-merge \
|
||||
intltool-update \
|
||||
po/stamp-it \
|
||||
po/.intltool-merge-cache
|
723
NEWS
723
NEWS
@@ -1,3 +1,726 @@
|
||||
3.31.90
|
||||
=======
|
||||
* Fix support of extended characters in on-screen keyboard [Andrea; #109]
|
||||
* Improve selection of the primary GPU [Pekka, Emilio; !271]
|
||||
* Screen-cast cursor updates as PipeWire stream metadata [Jonas; !357]
|
||||
* Fix rendering glitches in magnifier [Daniel; gnome-shell#387]
|
||||
* Fix monitor recording on HiDPI [Jonas; !415]
|
||||
* Honour secondary GPU supported pixel formats [Pekka; !341]
|
||||
* Fall back to CPU copy path when using a software renderer [Emilio; !325]
|
||||
* Remove fallback app menu [Florian; gnome-shell#624]
|
||||
* wayland: Add support for viewporter protocol [Robert; !323]
|
||||
* Misc. bug fixes and cleanups [Florian, Carlos, Olivier, Marco, Robert,
|
||||
Daniel, Pekka, Jonas, Ole, Georges; !391, #335, #442, !406, !395, #447,
|
||||
!375, gnome-shell#349, #451, !416, #784199, !408, !181, !405]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Andrea Azzarone, Ole Jørgen Brønner, Piotr Drąg, Olivier Fourdan,
|
||||
Dariusz Gadomski, Carlos Garnacho, Antoine Jacoutot, Iain Lane, Robert Mader,
|
||||
Emilio Pozuelo Monfort, Florian Müllner, Georges Basile Stavracas Neto,
|
||||
Pekka Paalanen, Marco Trevisan (Treviño), Josh Triplett, Daniel van Vugt
|
||||
|
||||
Translators:
|
||||
Fabio Tomat [fur], Balázs Úr [hu], Daniel Mustieles [es], Kukuh Syafaat [id],
|
||||
Jordi Mas [ca], Piotr Drąg [pl]
|
||||
|
||||
3.31.4
|
||||
======
|
||||
* keybindings: Limit corner move to current monitor [Jānis; #320]
|
||||
* xdg-output: Report rotated physical dimensions [Olivier; #369]
|
||||
* Add continuous integration pipeline [Jonas; #193]
|
||||
* Improve performance on secondary GPUs [Pekka; #323, !313]
|
||||
* Use the actual hardware refresh rate [Daniel; #781296]
|
||||
* Remove hide-titlebar-when-maximized support [Florian; !221]
|
||||
* wayland: Implement buffer transforms [Robert; !322]
|
||||
* Remove ability to externally set sync-to-vblank [Georges; !191]
|
||||
* Turn off touchscreens together with DPMS [Carlos; gnome-settings-daemon#29]
|
||||
* Mipmap the wallpaper when shrinking [Daniel; gnome-shell#254]
|
||||
* Implement RecordWindow method for screen-casts [Olivier; !306]
|
||||
* Fix EGLStream texture downloading [Jonas; !362]
|
||||
* Split out display-server-specific code from MetaWindowActor [Georges; !368]
|
||||
* Improve render performance on some KMS devices with software GL [Jonas; #106]
|
||||
* Fix damage area of transformed surfaces [Robert; !366]
|
||||
* Remove autotools support [George]
|
||||
* Misc. bug fixes and cleanups [Jonas, Alan, Olivier, Carlos, Javier, Peter,
|
||||
Daniel, Robert, Florian; !309, #790207, #272, #393, #276, #404, #104, !343,
|
||||
#765011, #786663, #342, !356, #414, #782344, #781034, #423, !374, !382, !383]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Nikita Churaev, Alan Coopersmith, Jānis Džeriņš, Olivier Fourdan,
|
||||
Carlos Garnacho, Niels De Graef, Peter Hutterer, Javier Jardón,
|
||||
Abderrahim Kitouni, Andre Klapper, Ting-Wei Lan, Robert Mader,
|
||||
Emilio Pozuelo Monfort, Florian Müllner, Georges Basile Stavracas Neto,
|
||||
Pekka Paalanen, Daniel Stone, Marco Trevisan (Treviño), Daniel van Vugt
|
||||
|
||||
3.31.2
|
||||
======
|
||||
* Fix handling of non-UTF8 encodings [Florian; !227]
|
||||
* Fix memory leaks introduced in 3.30.1 [Jonas; #653]
|
||||
* Fix regression when overriding workspace layout [Ron; #270]
|
||||
* Fix crash when restarting window manager [Andrea; gnome-shell#595]
|
||||
* Add meson build support [Jonas; !167]
|
||||
* Freeze clock when headless [Jonas; !170]
|
||||
* Fix crash on monitor hotplug [Olivier; #189]
|
||||
* Misc. bug fixes [Jonas; #353, !132, #382]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Andrea Azzarone, Olivier Fourdan, Niels De Graef,
|
||||
Alexander Mikhaylenko, Florian Müllner, Akira Nakajima,
|
||||
Georges Basile Stavracas Neto, Pekka Paalanen, Peter Uithoven,
|
||||
Daniel van Vugt, Ron Yorston
|
||||
|
||||
3.30.1
|
||||
======
|
||||
* Improve trackball detection [Tony; #258]
|
||||
* Fix clipping of scaled surfaces [Jonas; #300]
|
||||
* Improve tracking of monitor switch configuration [Daniel; !213]
|
||||
* Fix parent-relative positioning of constrained windows [Jonas; #332]
|
||||
* Add clutter_input_method_forward_key() method [Carlos; gnome-shell#531]
|
||||
* Various crash fixes [Olivier, Jonas; #194, #336]
|
||||
* Misc. bug fixes [Carlos, Florian, Olivier, Jonas; gnome-shell#540, #294,
|
||||
#221, !229, #30, #331]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Daniel Drake, Olivier Fourdan, Carlos Garnacho, Peter Hutterer,
|
||||
Ting-Wei Lan, Florian Müllner, Tony Novak, Pekka Paalanen, Sam Spilsbury
|
||||
|
||||
Translators:
|
||||
Yuras Shumovich [be], Марко Костић [sr], Marek Cernocky [cs]
|
||||
|
||||
3.30.0
|
||||
======
|
||||
|
||||
Translators:
|
||||
Fran Dieguez [gl], Balázs Meskó [hu], Rūdolfs Mazurs [lv],
|
||||
Trần Ngọc Quân [vi], Ask Hjorth Larsen [da], gogo [hr]
|
||||
|
||||
3.29.92
|
||||
=======
|
||||
* Avoid crash when a cursor is not found [Sebastian; #254]
|
||||
* Fix screen rotation regression [Jonas; #216]
|
||||
* Handle requests to unmanaged windows gracefully [Jonas; #240]
|
||||
* Move popups together with their parent [Jonas; #274]
|
||||
* Fix non-lowercase letters on virtual key devices [Carlos; gnome-shell#135]
|
||||
* Misc. bug fixes [Iain, Jonas; #223, #192, #279]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Carlos Garnacho, Sebastian Keller, Iain Lane, Robert Mader,
|
||||
Daniel van Vugt
|
||||
|
||||
Translators:
|
||||
Gwan-gyeong Mun [ko], Kukuh Syafaat [id], Milo Casagrande [it],
|
||||
Anders Jonsson [sv], Rafael Fontenelle [pt_BR], Marek Cernocky [cs]
|
||||
|
||||
3.29.91
|
||||
=======
|
||||
* Various crash fixes [Olivier, Iain; #255, #223]
|
||||
* Fix lock up with some DRI drivers [Alex; #127]
|
||||
* Send correct button codes from virtual evdev devices [Jonas; !190]
|
||||
* Improve grab-device clock updates on X11 [Jeff; !174]
|
||||
* Fix popups closing immediately on key down [Jonas; !180]
|
||||
* Prevent clients from modifying the shared keymap [Jonas; #784206]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Andrea Azzarone, Piotr Drąg, Olivier Fourdan, Carlos Garnacho,
|
||||
Jan Grulich, Iain Lane, Alex Villacís Lasso, Jeff Smith, Daniel van Vugt
|
||||
|
||||
Translators:
|
||||
Matej Urbančič [sl], Mario Blättermann [de], Piotr Drąg [pl],
|
||||
Aurimas Černius [lt], Yi-Jyun Pan [zh_TW], Emin Tufan Çetin [tr],
|
||||
Fabio Tomat [fur], Bruce Cowan [en_GB]
|
||||
|
||||
3.29.90
|
||||
=======
|
||||
* Various crash fixes [Olivier, Jonas, Florian; #189, #70, #194, #15, #130]
|
||||
* Don't expose resolutions that are below the minimum [Andrea; #793223]
|
||||
* Remove support for preference overrides [Florian; #786496]
|
||||
* Misc. bug fixes and cleanups [Daniel, Jonas, Florian; #131, #245, !176]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Andrea Azzarone, Olivier Fourdan, Florian Müllner, Kevin Tamool,
|
||||
Daniel van Vugt
|
||||
|
||||
Translators:
|
||||
Daniel Mustieles [es], Claude Paroz [fr]
|
||||
|
||||
3.29.4
|
||||
======
|
||||
* Fix crash with parent-less modal dialogs [Olivier; #174]
|
||||
* Preserve paint volumes where possible to optimize CPU usage [Carlos; #782344]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Iain Lane, Bastien Nocera
|
||||
|
||||
Translators:
|
||||
Daniel Șerbănescu [ro]
|
||||
|
||||
3.29.3
|
||||
======
|
||||
* Fix Korean Hangul support on wayland [Changwoo; #152]
|
||||
* Improve support for proprietary Nvidia driver [Jonas; #790316]
|
||||
* Only upload HW cursor sprite to the GPU that will display them [Jonas; #77]
|
||||
* Improve EGLstream support [Miguel; #2, #782575]
|
||||
* Remove MetaScreen to prepare for non-mandatary X11 dependency
|
||||
[Armin, Jonas; #759538]
|
||||
* Misc. bug fixes [Olivier, Jonas, Sam; #160, !130, #786929, #788834]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Armin Krezović, Corentin Noël,
|
||||
Changwoo Ryu, Sam Spilsbury, Daniel Stone, Marco Trevisan (Treviño),
|
||||
Miguel A. Vico, Daniel van Vugt
|
||||
|
||||
Translators:
|
||||
Yi-Jyun Pan [zh_TW], Jordi Mas [ca], Daniel Șerbănescu [ro], Fabio Tomat [fur]
|
||||
|
||||
3.29.2
|
||||
======
|
||||
* Fix size change animations on wayland [Georges; #780292]
|
||||
* Handle touch events on server-side titlebars [Carlos; #770185]
|
||||
* Misc. bug fixes [Florian, Olivier, Jonas, Georges; #134, #124, !96, #138,
|
||||
!102, #781471, #150]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Florian Müllner,
|
||||
Georges Basile Stavracas Neto, Marco Trevisan (Treviño), Daniel van Vugt
|
||||
|
||||
Translators:
|
||||
Daniel Șerbănescu [ro], Marcos Lans [gl], Dz Chen [zh_CN]
|
||||
|
||||
3.29.1
|
||||
======
|
||||
* Fix various input-method regressions [Carlos, Olivier; #65, #74, #66, #112]
|
||||
* Fix wayland build on FreeBSD [Ting-Wei; #792280, #792717]
|
||||
* Fix swapped colors in screenshots (again) [Carlos; #72]
|
||||
* Allow building with elogind [Rasmus; !46]
|
||||
* Consider display rotation for cursor [Olivier; #85]
|
||||
* Fall back to non-modifier GBM surfaces [Daniel; #84]
|
||||
* Take inhibitors into account for monitoring idle [Bastien; #705942]
|
||||
* Misc. bug fixes [handsome-feng, Olivier, Mario, Jonas; !45, #83, #104,
|
||||
gnome-shell#157, #130, #21]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, handsome-feng, Yussuf Khalil,
|
||||
Ting-Wei Lan, Aleksandr Mezin, Alberts Muktupāvels,
|
||||
Georges Basile Stavracas Neto, Bastien Nocera, Benjamin Otte,
|
||||
Mario Sanchez Prada, Daniel Stone, Ray Strode, Rasmus Thomsen,
|
||||
Marco Trevisan (Treviño), Daniel van Vugt
|
||||
|
||||
Translators:
|
||||
Emin Tufan Çetin [tr], Dušan Kazik [sk], Matej Urbančič [sl]
|
||||
|
||||
3.28.0
|
||||
======
|
||||
* Fix xdg-foreign regression [Carlos; #63]
|
||||
|
||||
Contributors:
|
||||
Carlos Garnacho, Georges Basile Stavracas Neto
|
||||
|
||||
Translators:
|
||||
Marek Cernocky [cs], Ask Hjorth Larsen [da], Chao-Hsiung Liao [zh_TW],
|
||||
Anders Jonsson [sv], Mart Raudsepp [et]
|
||||
|
||||
3.27.92
|
||||
=======
|
||||
* Fix use of modifiers with multi-GPU systems [Louis-Francis; #18]
|
||||
* Add xdg-shell stable support [Jonas; #791938]
|
||||
* Fix scaling of icons in titlebar buttons [Egmont; #23]
|
||||
* Implement missing wacom functionality on X11 [Carlos; #48]
|
||||
* Force 8-bit RGB config [Jonas; #2]
|
||||
* Misc. bug fixes [Jonas, Olivier, Robert; #6, #27, #792203]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Egmont Koblinger, Robert Mader,
|
||||
Bastien Nocera, Louis-Francis Ratté-Boulianne
|
||||
|
||||
Translators:
|
||||
Daniel Mustieles [es], Марко Костић [sr], Милош Поповић [sr@latin],
|
||||
Fran Dieguez [gl], Balázs Úr [hu], Gwan-gyeong Mun [ko], Rūdolfs Mazurs [lv],
|
||||
Milo Casagrande [it], Mario Blättermann [de], GNOME Translation Robot [gd,
|
||||
nl], Claude Paroz [fr], Aurimas Černius [lt]
|
||||
|
||||
3.27.91
|
||||
=======
|
||||
* Fix handling of trackball settings on wayland [Carlos; #787804]
|
||||
* Apply font settings on wayland [Daniel; #645433]
|
||||
* Fix keybindings getting mixed up with some layouts [Jonas; #789300]
|
||||
* Fix bluetooth mouse cursor disappearing after idle [Benoit; #761067]
|
||||
* Support platforms that export EGL_KHR_platform_gbm [memeka; #780668]
|
||||
* Add keyboard accessibility support on wayland [Olivier; #788564]
|
||||
* Fix missing cursor when using screen magnifier [Carlos; #754806]
|
||||
* Fix external monitor shutting off on wayland when lid closes [Jonas; #788915]
|
||||
* Add xdg-output support [Olivier; #787363]
|
||||
* Add Xwayland grab keyboard support [Olivier; #783342]
|
||||
* Allow shortcut inhibition of the super key [Olivier; #790627]
|
||||
* Take "panel orientation" drm_connector property into account [Hans; #782294]
|
||||
* Fix focus window ending up below other windows on wayland [Olivier; #780820]
|
||||
* Fix maximized windows restoring to a tiny size on wayland [Olivier; #783901]
|
||||
* Fix tap-and-drag setting on X11 [Jonas; #775755]
|
||||
* Fix handling of single-touch devices on wayland [Carlos; #792005]
|
||||
* Support tiled/compressed buffers [Daniel; #785779]
|
||||
* Port screencast support to pipewire 0.1.8 [Jonas; #792854]
|
||||
* Add support for third stylus button on newer tablets [Jason; #790033]
|
||||
* Fix background corruption regression on nvidia [Jonas; #739178]
|
||||
* Misc. bug fixes [Jonas, Rui, Michael, Marco, Carlos, Olivier, Philip, Piotr,
|
||||
Ting-Wei, Daniel, Jeremy, Hans, Florian, Ray, Jeff, George, Gwan-gyeong;
|
||||
#789153, #788493, #784314, #789227, #789223, #789277, #782344, #789552,
|
||||
#789553, #788695, #789984, #788764, #789386, #784545, #790336, #790358,
|
||||
#791022, #791006, #789070, #772218, #791383, #791809, #776220, #791916,
|
||||
#792281, #790309, #791371, #792527, #792599, #788834, #792765, #792062,
|
||||
#645460, #792853, !2, #792818, #8, #12, #789501, #10, #789961, #13, !15, #1,
|
||||
#26, #28, #35, #36, #38]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Jeremy Bicha, Michael Catanzaro, Piotr Drąg, Olivier Fourdan,
|
||||
Carlos Garnacho, Jason Gerecke, Hans de Goede, Benoit Gschwind,
|
||||
Peter Hutterer, George Kiagiadakis, Ting-Wei Lan, Rui Matos, memeka,
|
||||
Florian Müllner, Gwan-gyeong Mun, Jeremy Nickurak, Marc-Antoine Perennou,
|
||||
Jeff Smith, Daniel Stone, Ray Strode, Marco Trevisan (Treviño),
|
||||
Daniel van Vugt, Philip Withnall
|
||||
|
||||
Translators:
|
||||
Khaled Hosny [ar], Kjartan Maraas [nb], Piotr Drąg [pl],
|
||||
Rafael Fontenelle [pt_BR], Christian Kirbach [de], Anders Jonsson [sv],
|
||||
Charles Monzat [fr], Marek Cernocky [cs], Muhammet Kara [tr],
|
||||
Milo Casagrande [it], Pawan Chitrakar [ne], Yosef Or Boczko [he],
|
||||
Kukuh Syafaat [id], Daniel Mustieles [es], Fabio Tomat [fur],
|
||||
Kristjan SCHMIDT [eo], Balázs Úr [hu], Andika Triwidada [id],
|
||||
Fran Dieguez [gl], gogo [hr]
|
||||
|
||||
3.27.1
|
||||
======
|
||||
* Work with clients that require older linux_dmabuf protocol [Daniel; #788558]
|
||||
* Support hybrid GPU systems [Jonas; #785381]
|
||||
* Prevent crash when closing maximized windows [Jonni; #788666]
|
||||
* Use the correct monitor for HiDPI scaling of shell chrome [Jonas; #788820]
|
||||
* Fix unredirection of fullscreen windows [Rui, Jonas; #788493]
|
||||
* Fix list of supported monitor scales on X11 [Jonas; #788901]
|
||||
* Misc. bug fixes [Florian, Jonas, Marco; #788572, #788569, #788607, #788860,
|
||||
#788921]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Carlos Garnacho, Rui Matos, Florian Müllner, Daniel Stone,
|
||||
Marco Trevisan, Jonni Westphalen
|
||||
|
||||
Translations:
|
||||
Xavi Ivars [ca@valencia]
|
||||
|
||||
3.26.1
|
||||
======
|
||||
* Fix crash when respawning shortcut inhibitor dialog [Olivier; #787568]
|
||||
* Fix crash during monitor configuration migration [Carlos, Jonas; #787668]
|
||||
* Fix multihead regressions in X11 session [Jonas; #787477]
|
||||
* Fix screen rotation regressions [Hans; #787836]
|
||||
* Fix keybindings not being resolved with non-latin layouts [Jonas; #787016]
|
||||
* Support snap packages for sandboxed app IDs [Marco; #788217]
|
||||
* Fix crash when reconnecting tablet device [Jason; #787649]
|
||||
* Support running headless [Jonas; #730551, #787637]
|
||||
* Support _NET_RESTACK_WINDOW and ConfigureRequest siblings [Vasilis; #786365]
|
||||
* Fix monitor layout not being remembered across sessions [Jonas; #787629]
|
||||
* Make sure to export _NET_NUMBER_OF_DESKTOPS [Florian; #760651]
|
||||
* Allow resizing of tiled windows [Georges, Florian; #645153]
|
||||
* Export tiling information to clients [Georges; #751857]
|
||||
* Misc. bug fixes [Jonas, Florian, Jeremy, Rico; #787570, #787715, #787953,
|
||||
#788049, #788199, #788292, #788197]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Andrea Azzarone, Georges Basile Stavracas Neto, Hans de Goede,
|
||||
Olivier Fourdan, Carlos Garnacho, Jason Gerecke, Vasilis Liaskovitis,
|
||||
Rui Matos, Florian Müllner, Jeremy Soller, Marco Trevisan, Rico Tzschichholz
|
||||
|
||||
Translations:
|
||||
Matej Urbančič [sl], gogo [hr], Cheng-Chia Tseng [zh_TW]
|
||||
|
||||
3.26.0
|
||||
======
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
|
||||
Translations:
|
||||
Trần Ngọc Quân [vi], Inaki Larranaga Murgoitio [eu], Jordi Mas [ca],
|
||||
Anders Jonsson [sv], Alexander Shopov [bg], Ask Hjorth Larsen [da],
|
||||
Jean-Baptiste Holcroft [fr], A S Alam [pa]
|
||||
|
||||
3.25.92
|
||||
=======
|
||||
* Add screencast and remote desktop support [Jonas; #784199]
|
||||
* Support running with no attached monitors [Jonas; #730551]
|
||||
* Add a vertical gradient effect to background actor [Alessandro; #786618]
|
||||
* Misc. bug fixes [Mario, Daniel, Piotr, Jonas, Bastien; #786619, #786677,
|
||||
#772218, #786918, #760670]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Alessandro Bono, Piotr Drąg, Bastien Nocera,
|
||||
Mario Sanchez Prada, Daniel Stone
|
||||
|
||||
Translations:
|
||||
Marek Cernocky [cs], Aurimas Černius [lt], Piotr Drąg [pl],
|
||||
Fran Dieguez [gl], gogo [hr], Dušan Kazik [sk], Milo Casagrande [it],
|
||||
Jordi Mas [ca], Cheng-Chia Tseng [zh_TW], Марко Костић [sr],
|
||||
Милош Поповић [sr@latin], Rūdolfs Mazurs [lv], Matej Urbančič [sl],
|
||||
Ask Hjorth Larsen [da], Piotr Drąg [it, lt], Jiri Grönroos [fi],
|
||||
Emin Tufan Çetin [tr], Wolfgang Stöggl [de], Kukuh Syafaat [id],
|
||||
Yuras Shumovich [be], Changwoo Ryu [ko], Alexander Shopov [bg],
|
||||
Rafael Fontenelle [pt_BR], Balázs Úr [hu]
|
||||
|
||||
3.25.91
|
||||
=======
|
||||
* Reduce memory use of suspended instances [Jonas; #786299]
|
||||
* Make supported scales determination saner [Rui; #786474]
|
||||
* Fix crash on inhibit-shortcuts dialog reponse [Jonas; #786385]
|
||||
* Support libinput's tag-and-drag setting [freeroot; #775755]
|
||||
* Avoid overlapping keybindings with multiple layouts [Jonas; #786408]
|
||||
* Fix non-transformed cursor on rotated monitors [Jonas; #786023]
|
||||
* Avoid unnecessary work during background painting [Alessandro; #783512]
|
||||
* Misc. bug fixes [Alberts, Jonas, Mario; #691611, #786300, #777732, #786568]
|
||||
|
||||
Contributors:
|
||||
freeroot, Jonas Ådahl, Alessandro Bono, Carlos Garnacho, Rui Matos,
|
||||
Alberts Muktupāvels, Mario Sanchez Prada
|
||||
|
||||
Translations:
|
||||
Muhammet Kara [tr], Claude Paroz [fr], Мирослав Николић [sr, sr@latin],
|
||||
Pawan Chitrakar [ne], Kukuh Syafaat [id]
|
||||
|
||||
3.25.90
|
||||
=======
|
||||
* Add zwp_linux_dmabuf_v1 support [Daniel; #785262]
|
||||
* Add (x)wayland shortcut inhibitor support [Olivier; #783342]
|
||||
* Misc. bug fixes [Daniel, Carlos, Cosimo; #785263, #785347, #767805]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Cosimo Cecchi, Olivier Fourdan, Carlos Garnacho, Daniel Stone
|
||||
|
||||
Translations:
|
||||
Fabio Tomat [fur], Kukuh Syafaat [id], Aurimas Černius [lt],
|
||||
Daniel Mustieles [es], Baurzhan Muftakhidinov [kk], Jordi Mas [ca],
|
||||
Matej Urbančič [sl], Marek Cernocky [cs], gogo [hr], Fran Dieguez [gl],
|
||||
Balázs Meskó [hu]
|
||||
|
||||
3.25.4
|
||||
======
|
||||
* Do not throttle motion events on tablet tools [Carlos; #783535]
|
||||
* Handle left-handed mode on pen/eraser devices [Carlos; #782027]
|
||||
* Add wl_surface.damage_buffer() support [Jonas; #784080]
|
||||
* Fix crash when moving across on-adjacent monitors [Jonas; #783630]
|
||||
* Fix window moving/resizing via tablet tools [Jason; #777333]
|
||||
* Support fractional monitor scaling [Jonas, Marco; #765011]
|
||||
* Keep override-redirect windows stacked on top [Rui; #780485]
|
||||
* Implement tablet rings/strips configuration [Carlos; #782033]
|
||||
* Support tablet wheel events on wayland [Jason; #783716]
|
||||
* Move g-s-d xrandr functionality into mutter [Rui; #781906]
|
||||
* Misc. bug fixes [Florian, Jason, Miguel, Carlos, Jonas; #783502, #784009,
|
||||
#784223, #784272, #784402, #784881, #762083, #784867, #781723]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Miguel A. Vico, Emmanuele Bassi, Carlos Garnacho, Jason Gerecke,
|
||||
Rui Matos, Florian Müllner, Marco Trevisan (Treviño)
|
||||
|
||||
3.25.3
|
||||
======
|
||||
* Ignore hotplug-mode-update value on startup [Marco; #783073]
|
||||
* Implement configurable monitor scales on X11 [Jonas; #777732]
|
||||
* Fix handling of tiled monitors [Jonas; #781723]
|
||||
* Handle multiple keycodes for keysym [Christian; #781223]
|
||||
* Consider subsurfaces when grabbing [mindtree; #781811]
|
||||
* Fix logic for HiPDPI scaling of TV outputs [Christian; #777347]
|
||||
* Fix handling of left-handed mode on pen/eraser devices [Carlos; #782027]
|
||||
* Fix output cycling in non-display-attached tablets [Carlos; #782032]
|
||||
* Fix wacom cursor offset on wayland [Jason; #784009]
|
||||
* Handle EXIF orientation of backgrounds [Silvère; #783125]
|
||||
* Misc. bug fixes [Piotr, Tim, Bastien, Jonas, Florian, Benoit, Carlos; #772218,
|
||||
#783161, #780407, #783113, #783293, #783505, #781703]
|
||||
|
||||
Contributors:
|
||||
mitchmindtree, Jonas Ådahl, Ikey Doherty, Piotr Drąg, Carlos Garnacho,
|
||||
Jason Gerecke, Benoit Gschwind, Christian Kellner, Silvère Latchurié,
|
||||
Tim Lunn, Florian Müllner, Bastien Nocera, Marco Trevisan (Treviño)
|
||||
|
||||
Translations:
|
||||
Fabio Tomat [fur], Kukuh Syafaat [id], Khaled Hosny [ar],
|
||||
Daniel Mustieles [es]
|
||||
|
||||
3.25.2
|
||||
======
|
||||
* Fix frame updates on hide-titlebar-when-maximized changes [Florian; #781862]
|
||||
* Fix accessible screen coordinates on X11 [Florian; #781902]
|
||||
* Use less CPU when rendering fast-updating windows [Carlos, Emmanuele; #782344]
|
||||
* Compute geometry of clients that don't set one explicitly [Olivier; #782213]
|
||||
* Fix copy+paste of UTF8 strings between X11 and wayland [Carlos; #782472]
|
||||
* Fix non-wayland builds [Chris; #780533]
|
||||
* Add plugin vfunc to implement a custom force-quit dialog [Carlos; #711619]
|
||||
* Fix swapped red and blue channels in CoglTexture data [Carlos; #779234
|
||||
* Fix build where libtool's link_all_deplibs defaults to 'no' [Marco; #782821]
|
||||
* Fix glitches when opening a window maximized [Olivier; #781353, #782183]
|
||||
* Fix wrong cursor after window underneath the pointer changed [Carlos; #755164]
|
||||
* Implement support for disable-while-typing option [Evan; #764852]
|
||||
* Emit size-change signal when tiling [Alessandro; #782968]
|
||||
* Misc. bug fixes [Nigel, Matthias, Jonas; #759085, #780215, #782156, #782152]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Emmanuele Bassi, Alessandro Bono, Olivier Fourdan,
|
||||
Carlos Garnacho, Matthias Liertzer, Florian Müllner, Nigel Taylor,
|
||||
Marco Trevisan (Treviño), Chris Vine, Evan Welsh
|
||||
|
||||
Translations:
|
||||
Fabio Tomat [fur], Jordi Mas [ca], Mario Blättermann [de],
|
||||
Emin Tufan Çetin [tr], Balázs Úr [hu]
|
||||
|
||||
3.25.1
|
||||
======
|
||||
* Always sync window geometry on state changes [Jonas; #780292]
|
||||
* Use EGL instead of GLX when drawing using GLES [Jonas; #771636]
|
||||
* Fix HiDPI detection on vertical monitor layouts [Carlos; #777687]
|
||||
* Get double-click timing from desktop mouse settings [Armin; #771576]
|
||||
* Scale relative motion deltas with monitor scale [Jonas, Carlos; #778119]
|
||||
* Use texture fallback when setting hardware cursor fails [Jente; #770020]
|
||||
* Fix lock-up when using additional theme variants [Shantanu; #780254]
|
||||
* Rework low-level monitor configuration [Jonas; #777732]
|
||||
* Fix building with GLES2 instead of GL [Mario; #781398]
|
||||
* Misc. bug fixes [Jonas, Piotr, Philip; #780304, #772218, #781242, #781391]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Philip Chimento, Piotr Drąg, Carlos Garnacho, Shantanu Goel,
|
||||
Jente Hidskes, Armin Krezović, Rui Matos, Florian Müllner, Mario Sanchez Prada
|
||||
|
||||
Translations:
|
||||
Yuras Shumovich [be], Yosef Or Boczko [he], Tom Tryfonidis [el],
|
||||
Fabio Tomat [fur], Kukuh Syafaat [id]
|
||||
|
||||
3.24.0
|
||||
======
|
||||
|
||||
Translations:
|
||||
Yuri Myasoedov [ru], Rūdolfs Mazurs [lv], Jordi Mas [ca]
|
||||
|
||||
3.23.92
|
||||
=======
|
||||
* Properly handle EGLOutput acquire errors [Jonas, Miguel; #779112]
|
||||
* Fix crash when a window closes during Alt+Tab [Rui; #779483]
|
||||
* Implement DnD handling code in wayland [Hyungwon; #765003]
|
||||
* Fix fallout from pixel conversion optimization in 3.23.91 [Carlos; #779234]
|
||||
* Fix mouse input stopping to work in applications [Carlos; #763246]
|
||||
* Fix DnD between QT5 and GTK3 applications on wayland [Carlos; #779757]
|
||||
* Make EDID reading less fragile [Jonas; #779837]
|
||||
* Add support for tablet grouping [Carlos; #779986]
|
||||
* Misc. bug fixes and cleanups [Rui, Jonas; #779436, #779001, #779745]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Miguel A. Vico, Olivier Fourdan, Carlos Garnacho,
|
||||
Hyungwon Hwang, Rui Matos
|
||||
|
||||
Translations:
|
||||
Chao-Hsiung Liao [zh_TW], Sveinn í Felli [is], Ask Hjorth Larsen [da],
|
||||
Changwoo Ryu [ko], Aurimas Černius [lt], GNOME Translation Robot [gd],
|
||||
Marek Černocký [cs], Fran Dieguez [gl], Dušan Kazik [sk]
|
||||
|
||||
3.23.91
|
||||
=======
|
||||
* Give libinput read-only access to /sys [Carlos; #778472]
|
||||
* Allow edge-scrolling without 2-finger-scroll capable devices [Rui; #778554]
|
||||
* Fullscreen windows on the requested monitor on wayland [Rui; #772525]
|
||||
* Implement threaded swap_event fallback for NVIDIA driver [Owen; #779039]
|
||||
* Avoid pixel conversions when storing textures from cairo [Carlos; #779234]
|
||||
* Misc. bug fixes [Piotr, Rui, Florian; #772218, #776919, #778831, #642652]
|
||||
|
||||
Contributors:
|
||||
Piotr Drąg, Carlos Garnacho, Rui Matos, Florian Müllner, Owen W. Taylor
|
||||
|
||||
Translations:
|
||||
Inaki Larranaga Murgoitio [eu], Daniel Mustieles [es], Claude Paroz [fr],
|
||||
Mario Blättermann [de], Kjartan Maraas [nb], Piotr Drąg [pl],
|
||||
Andika Triwidada [id], Anders Jonsson [sv], Milo Casagrande [it],
|
||||
Fabio Tomat [fur], Rafael Fontenelle [pt_BR],
|
||||
Мирослав Николић [sr, sr@latin], Balázs Meskó [hu], Chao-Hsiung Liao [zh_TW]
|
||||
|
||||
3.23.90
|
||||
=======
|
||||
* Fix window menu placement with HiDPI [Jonas; #776055]
|
||||
* Improve EGLStream support [Jonas; #773629]
|
||||
* Start moving low-level monitor configuration into mutter [Jonas; #777732]
|
||||
* Fix erroneous key event repeats [Rui; #774989]
|
||||
* Don't hardcode seat ID in ClutterDeviceManager [Carlos; #778092]
|
||||
* Fix "ghost" cursors in multi-monitor setups [Jonas; #771056]
|
||||
* Use eglGetPlatformDisplay [Adam; #772422]
|
||||
* Fix erratic raise_or_lower behavior [Jose; #705200]
|
||||
* Fix coordinate mapping of absolute devices [Carlos; #774115]
|
||||
* Show OSD on tablet mode switches [Carlos; #771098]
|
||||
* Make mutter libs parallel installable [Jonas; #777317]
|
||||
* Only apply keymap when not running nested [Jonas; #777800]
|
||||
* Set right scale for tablet tool cursors on HiDPI [Carlos; #778474]
|
||||
* Adjust server-side shadows to match Adwaita [Juraj; #744667]
|
||||
* Misc. bug fixes [Jonas, Bastien, Carlos, Peter, Lionel, Jeremy, Florian;
|
||||
#774891, #777389, #777691, #778262, #776543, #778684, #778699, #744667]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Jeremy Bicha, Piotr Drąg, Juraj Fiala, Carlos Garnacho,
|
||||
Peter Hutterer, Adam Jackson, Lionel Landwerlin, Jose Marino, Rui Matos,
|
||||
Florian Müllner, Bastien Nocera
|
||||
|
||||
Translations:
|
||||
Kjartan Maraas [nb], Mandy Wang [zh_CN], Marek Černocký [cs],
|
||||
Anders Jonsson [sv], Dušan Kazik [sk], Piotr Drąg [pl], Matej Urbančič [sl]
|
||||
|
||||
3.23.3
|
||||
======
|
||||
* Fix frequent freezes in multihead setups on wayland [Rui; #774557]
|
||||
* Preserve root window mask on XSelectionRequest [Olivier; #776128]
|
||||
* Misc. bug fixes [Carlos, Florian, Rui, Olivier; #775478, #774891, #775986,
|
||||
#776036]
|
||||
|
||||
Contributors:
|
||||
Olivier Fourdan, Carlos Garnacho, Rui Matos, Florian Müllner
|
||||
|
||||
3.23.2
|
||||
======
|
||||
* Stack docks below other windows on fullscreen monitors [Rui; #772937]
|
||||
* Fix popup grabs blocking screen lock on wayland [Rui; #771235]
|
||||
* Handle touchpad pinch gestures with more than two fingers [Carlos; #765937]
|
||||
* Implement drawing tablet support on X11 [Carlos; #773779]
|
||||
* Fix some Wine games starting minimized [Carlos; #774333]
|
||||
* Fix switching between two finger- and edge scrolling on wayland [Rui; #771744]
|
||||
* Implement support for EGLStream/EGLDevice [Jonas; #773629]
|
||||
* Add size_changed vfunc to handle async client size changes [Rui; #770345]
|
||||
* Change focus window on clicks with any modifiers [Rui; #746642]
|
||||
* Misc. bug fixes and cleanups [Carlos, Daniel, Jonas, Rui; #771067, #774330, #774613,
|
||||
#771297, #774135, #774827, #774923]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Carlos Garnacho, Rui Matos, Florian Müllner, Daniel Stone
|
||||
|
||||
Translations:
|
||||
Kjartan Maraas [nb]
|
||||
|
||||
3.23.1
|
||||
======
|
||||
* Fix handling of Escape shortcut in force-quit dialog [Landry; #737109]
|
||||
* Improve pointer constraints support [Jonas; #771859]
|
||||
* Really fix framebuffer capture origin offset [Rui; #771502]
|
||||
* Fix session going into idle mode immediately on startup [Rui; #772839]
|
||||
* Fix mirror mode with stage views [Rui; #773115]
|
||||
* Fall back to X with connectors spread across multiple GPUs [Ray; #771442]
|
||||
* Fix various crashes on wayland [Jonas, Carlos; #771646, #771858, #772929]
|
||||
* Fix various placement issues on wayland [Olivier, Jonas, Sjoerd; #772729,
|
||||
#768039, #771841, #771841, #773141]
|
||||
* Misc. bug fixes [Rui, Jonas, Olivier; #771019, #773116, #772914, #773210]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Rui Matos, Landry MINOZA,
|
||||
Sjoerd Simons, Ray Strode
|
||||
|
||||
Translations:
|
||||
Theppitak Karoonboonyanan [th], Kjartan Maraas [nb], Hannie Dumoleyn [nl],
|
||||
liushuyu [zh_CN]
|
||||
|
||||
3.22.1
|
||||
======
|
||||
* Fix feedback loop between StClipboard and X11 bridge [Carlos; #760745]
|
||||
* Fall back gracefully if DRM plane rotation fails [Carlos; #772512]
|
||||
* Approximate native monitor backend behavior to X [Rui; #772176]
|
||||
* Fix crash on VT switch on wayland [Jonas; #771646]
|
||||
* Expose Flatpak ID for application matching [Florian; #772613, #772614]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Carlos Garnacho, Rui Matos, Florian Müllner, Olav Vitters
|
||||
|
||||
Translations:
|
||||
Inaki Larranaga Murgoitio [eu], Milo Casagrande [it]
|
||||
|
||||
3.22.0
|
||||
======
|
||||
* Fix wayland crashes [Jonas; #771305, #771345, #770940, #771495]
|
||||
* Fix display rotation on wayland [Jonas; #770672]
|
||||
* Fix framebuffer capture origin offset [Rui; #771502]
|
||||
* Misc. bug fixes [Jonas, Florian, Carlos; #770937, #771536, #771628, #771549]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Carlos Garnacho, Rui Matos, Florian Müllner
|
||||
|
||||
Translations:
|
||||
Ask Hjorth Larsen [da], Charles Monzat [fr], Stas Solovey [ru],
|
||||
Tom Tryfonidis [el], David King [en_GB]
|
||||
|
||||
3.21.92
|
||||
=======
|
||||
* Fix absolute pointer motion events on wayland [Jonas; #770557]
|
||||
* Default to using stage views [Jonas; #770366]
|
||||
* Fix animated cursors on wayland [Rui; #749913]
|
||||
* Fix various crashes on wayland [Jonas; #757568, #770727, #770992]
|
||||
* Fix screen capture for stage views not at (0, 0) [Jonas; #770127]
|
||||
* Compress motion events instead of discarding them [Jonas; #771049]
|
||||
* Fix XWayland pointer warp emulation [Jonas; #771050]
|
||||
* Add common monitor modes in KMS backend [Rui; #744544]
|
||||
* Temporarily use g-s-d schemas for tablet configuration [Carlos; #771315]
|
||||
* Misc. bug fixes [Jonas, Carlos; #770402, #770647, #770991, #770994, #770929]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Rui Matos, Florian Müllner
|
||||
|
||||
Translations:
|
||||
Changwoo Ryu [ko], Baurzhan Muftakhidinov [kk], Anders Jonsson [sv],
|
||||
Tiago Santos [pt], Rafael Fontenelle [pt_BR], Mario Blättermann [de],
|
||||
Alexander Shopov [bg], Rūdolfs Mazurs [lv], Fran Dieguez [gl],
|
||||
Trần Ngọc Quân [vi], Piotr Drąg [pl], Мирослав Николић [sr, sr@latin]
|
||||
|
||||
3.21.91
|
||||
=======
|
||||
* Add support for xdg-foreign protocol [Jonas; #769786]
|
||||
* Support monitor rotation on wayland [Carlos; #745079]
|
||||
* Port xdg-shell implementation to unstable v6 [Jonas; #769936]
|
||||
* Handle unsupported buffer sizes more gracefully [Olivier; #770387]
|
||||
* Use the same output naming logic as the X server on wayland [Rui; #770338]
|
||||
* Fix replies in gnome-shell's chat notifications on wayland [Florian; #758167]
|
||||
* Misc. bug fixes and cleanups [Bastien, Sjoerd, Jonas; #769276, #769636,
|
||||
#770131, #770324, #769731]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Rui Matos, Florian Müllner,
|
||||
Bastien Nocera, Sjoerd Simons
|
||||
|
||||
Translations:
|
||||
Piotr Drąg [pl], Mario Blättermann [de], Andika Triwidada [id],
|
||||
Enrico Nicoletto [pt_BR], Мирослав Николић [sr, sr@latin]
|
||||
|
||||
3.21.90
|
||||
=======
|
||||
* Consider XDG_SESSION_TYPE when determining session type [Jouke; #759388]
|
||||
* Re-add support for edge scrolling on some touchpads [Bastien; #768245]
|
||||
* Support mouse and trackball acceleration profile [Jonas; #769179]
|
||||
* Draw monitor contentn to individual framebuffer [Jonas; #768976]
|
||||
* Support virtual input devices [Jonas, Carlos; #765009]
|
||||
* Set correct output scale on hotplug [Jonas; #769505]
|
||||
* Misc. bug fixes and cleanups [Florian, Jonas, Thomas, Bastien, Carlos;
|
||||
#769014, #769024, #769054, #769070, #769036, #769305, #769578, #769800,
|
||||
#769073]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Carlos Garnacho, Thomas Hindoe Paaboel Andersen, Simon McVittie,
|
||||
Alberts Muktupāvels, Florian Müllner, Bastien Nocera, Jouke Witteveen
|
||||
|
||||
Translations:
|
||||
Daniel Mustieles [es], Aurimas Černius [lt], Dušan Kazik [sk],
|
||||
Fabio Tomat [fur], Balázs Úr [hu], Yosef Or Boczko [he], Marek Černocký [cs],
|
||||
Matej Urbančič [sl]
|
||||
|
||||
3.21.4
|
||||
======
|
||||
* Fix missing frame border around GTK+ dialogs [Florian; #745060]
|
||||
* Improve X11 <-> wayland copy and paste interaction [Carlos; #768007]
|
||||
* Add support for NV_robustness_video_memory_purge extension [Rui; #739178]
|
||||
* Fix restoring the old focused window on restart [Owen; #766243]
|
||||
* Fix fullscreen windows on other monitors stealing focus after closing
|
||||
a window [Rui; #768221]
|
||||
* Draw monitor content to individual framebuffer [Jonas; #768976]
|
||||
* Provide screen capture API [Jonas; #768978]
|
||||
* Misc. bug fixes and cleanups [Rui, Owen, Luca, Olivier, Jonas, Carlos;
|
||||
#767969, #768243, #762407, #767997, #768039, #768977, #768977]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Luca Bruno, Olivier Fourdan, Carlos Garnacho, Rui Matos,
|
||||
Florian Müllner, Owen W. Taylor
|
||||
|
||||
Translations:
|
||||
Andika Triwidada [id]
|
||||
|
||||
3.21.3
|
||||
======
|
||||
* Don't create invalid UTF-8 window description strings [Rui; #765535]
|
||||
|
45
README.md
Normal file
45
README.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# Mutter
|
||||
|
||||
Mutter is a Wayland display server and X11 window manager and compositor library.
|
||||
|
||||
When used as a Wayland display server, it runs on top of KMS and libinput. It
|
||||
implements the compositor side of the Wayland core protocol as well as various
|
||||
protocol extensions. It also has functionality related to running X11
|
||||
applications using Xwayland.
|
||||
|
||||
When used on top of Xorg it acts as a X11 window manager and compositing manager.
|
||||
|
||||
It contains functionality related to, among other things, window management,
|
||||
window compositing, focus tracking, workspace management, keybindings and
|
||||
monitor configuration.
|
||||
|
||||
Internally it uses a fork of Cogl, a hardware acceleration abstraction library
|
||||
used to simplify usage of OpenGL pipelines, as well as a fork af Clutter, a
|
||||
scene graph and user interface toolkit.
|
||||
|
||||
Mutter is used by, for example, GNOME Shell, the GNOME core user interface, and
|
||||
by Gala, elementary OS's window manager. It can also be run standalone, using
|
||||
the command "mutter", but just running plain mutter is only intended for
|
||||
debugging purposes.
|
||||
|
||||
## Contributing
|
||||
|
||||
To contribute, open merge requests at https://gitlab.gnome.org/GNOME/mutter.
|
||||
|
||||
The coding style used is primarily the GNU flavor of the [GNOME coding
|
||||
style](https://developer.gnome.org/programming-guidelines/stable/c-coding-style.html.en)
|
||||
with some minor additions such as preferring `stdint.h` types over GLib
|
||||
fundamental types, and a soft 80 character line limit. However, in general,
|
||||
look at the file you're editing for inspiration.
|
||||
|
||||
Commit messages should follow the [GNOME commit message
|
||||
guidelines](https://wiki.gnome.org/Git/CommitMessages). We require an URL
|
||||
to either an issue or a merge request in each commit.
|
||||
|
||||
## License
|
||||
|
||||
Mutter is distributed under the terms of the GNU General Public License,
|
||||
version 2 or later. See the [COPYING][license] file for detalis.
|
||||
|
||||
[bug-tracker]: https://gitlab.gnome.org/GNOME/mutter/issues
|
||||
[license]: COPYING
|
21
autogen.sh
21
autogen.sh
@@ -1,21 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Run this to generate all the initial makefiles, etc.
|
||||
|
||||
srcdir=`dirname $0`
|
||||
test -z "$srcdir" && srcdir=.
|
||||
|
||||
REQUIRED_AUTOMAKE_VERSION=1.11
|
||||
|
||||
(test -f $srcdir/configure.ac \
|
||||
&& test -d $srcdir/src) || {
|
||||
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
|
||||
echo " top-level metacity directory"
|
||||
exit 1
|
||||
}
|
||||
|
||||
which gnome-autogen.sh || {
|
||||
echo "You need to install gnome-common from GNOME Subversion (or from"
|
||||
echo "your distribution's package manager)."
|
||||
exit 1
|
||||
}
|
||||
. gnome-autogen.sh
|
1
clutter/.gitignore
vendored
1
clutter/.gitignore
vendored
@@ -23,7 +23,6 @@ clutter-build-config.h.in
|
||||
clutter-config.h
|
||||
clutter-enum-types.[ch]
|
||||
clutter-marshal.[ch]
|
||||
clutter-version.h
|
||||
gcov-report.txt
|
||||
clutter-json.h
|
||||
clutter-lcov.info
|
||||
|
@@ -1,53 +0,0 @@
|
||||
NULL =
|
||||
|
||||
SUBDIRS = build clutter tests
|
||||
|
||||
if BUILD_EXAMPLES
|
||||
SUBDIRS += examples
|
||||
endif
|
||||
|
||||
DIST_SUBDIRS = clutter tests examples build
|
||||
|
||||
# XXX - this is a massive hack to make autoreconf honour the ACLOCAL_FLAGS
|
||||
# that jhbuild sets while still retaining build/autotools as the authoritative
|
||||
# source for m4 macros
|
||||
ACLOCAL_AMFLAGS = -I build/autotools ${ACLOCAL_FLAGS}
|
||||
|
||||
CLEANFILES = $(pcfiles)
|
||||
|
||||
DISTCLEANFILES =
|
||||
|
||||
DISTCHECK_CONFIGURE_FLAGS = --enable-maintainer-flags
|
||||
|
||||
# proxy rules for tests
|
||||
test-report full-report:
|
||||
$(MAKE) -C tests/conform $(@)
|
||||
|
||||
perf-report:
|
||||
$(MAKE) -C tests/performance $(@)
|
||||
|
||||
if ENABLE_GCOV
|
||||
# use recursive makes in order to ignore errors during check/perf
|
||||
lcov:
|
||||
-$(MAKE) $(AM_MAKEFLAGS) -C clutter check
|
||||
-$(MAKE) $(AM_MAKEFLAGS) -C tests/conform test
|
||||
$(MAKE) $(AM_MAKEFLAGS) genlcov
|
||||
|
||||
# we have to massage the lcov.info file slightly to hide the effect of libtool
|
||||
# placing the objects files in the .libs/ directory separate from the *.c
|
||||
genlcov:
|
||||
$(LTP) --directory $(top_builddir) --capture --output-file clutter-lcov.info --test-name CLUTTER_TEST --no-checksum
|
||||
$(SED) -e 's#.libs/##' < clutter-lcov.info > clutter-lcov.info.tmp
|
||||
LANG=C $(LTP_GENHTML) --prefix $(top_builddir) --output-directory clutter-lcov --title "Clutter Code Coverage" --show-details clutter-lcov.info.tmp
|
||||
rm -f clutter-lcov.info.tmp
|
||||
|
||||
lcov-clean:
|
||||
-$(LTP) --directory $(top_builddir) -z
|
||||
-$(RM) -rf clutter-lcov.info clutter-lcov
|
||||
else
|
||||
lcov genlcov lcov-clean:
|
||||
@echo You need to configure Clutter with support for gcov enabled.
|
||||
@echo e.g., ./configure --enable-gcov
|
||||
endif
|
||||
|
||||
.PHONY: test-report full-report perf-report lcov genlcov lcov-clean
|
@@ -1 +0,0 @@
|
||||
SUBDIRS = autotools
|
8
clutter/build/autotools/.gitignore
vendored
8
clutter/build/autotools/.gitignore
vendored
@@ -1,8 +0,0 @@
|
||||
gtk-doc.m4
|
||||
libtool.m4
|
||||
ltoptions.m4
|
||||
ltsugar.m4
|
||||
ltversion.m4
|
||||
lt~obsolete.m4
|
||||
shave
|
||||
shave-libtool
|
@@ -1,10 +0,0 @@
|
||||
NULL =
|
||||
|
||||
EXTRA_DIST = \
|
||||
introspection.m4 \
|
||||
as-compiler-flag.m4 \
|
||||
glibtests.m4 \
|
||||
glib-tap.mk \
|
||||
tap-driver.sh \
|
||||
tap-test \
|
||||
$(NULL)
|
@@ -1,62 +0,0 @@
|
||||
dnl as-compiler-flag.m4 0.1.0
|
||||
|
||||
dnl autostars m4 macro for detection of compiler flags
|
||||
|
||||
dnl David Schleef <ds@schleef.org>
|
||||
|
||||
dnl $Id: as-compiler-flag.m4,v 1.1 2005/12/15 23:35:19 ds Exp $
|
||||
|
||||
dnl AS_COMPILER_FLAG(CFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED])
|
||||
dnl Tries to compile with the given CFLAGS.
|
||||
dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags,
|
||||
dnl and ACTION-IF-NOT-ACCEPTED otherwise.
|
||||
|
||||
AC_DEFUN([AS_COMPILER_FLAG],
|
||||
[
|
||||
AC_MSG_CHECKING([to see if compiler understands $1])
|
||||
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $1"
|
||||
|
||||
AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no])
|
||||
CFLAGS="$save_CFLAGS"
|
||||
|
||||
if test "X$flag_ok" = Xyes ; then
|
||||
m4_ifvaln([$2],[$2])
|
||||
true
|
||||
else
|
||||
m4_ifvaln([$3],[$3])
|
||||
true
|
||||
fi
|
||||
AC_MSG_RESULT([$flag_ok])
|
||||
])
|
||||
|
||||
dnl AS_COMPILER_FLAGS(VAR, FLAGS)
|
||||
dnl Tries to compile with the given CFLAGS.
|
||||
|
||||
AC_DEFUN([AS_COMPILER_FLAGS],
|
||||
[
|
||||
list=$2
|
||||
flags_supported=""
|
||||
flags_unsupported=""
|
||||
AC_MSG_CHECKING([for supported compiler flags])
|
||||
for each in $list
|
||||
do
|
||||
save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS $each"
|
||||
AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no])
|
||||
CFLAGS="$save_CFLAGS"
|
||||
|
||||
if test "X$flag_ok" = Xyes ; then
|
||||
flags_supported="$flags_supported $each"
|
||||
else
|
||||
flags_unsupported="$flags_unsupported $each"
|
||||
fi
|
||||
done
|
||||
AC_MSG_RESULT([$flags_supported])
|
||||
if test "X$flags_unsupported" != X ; then
|
||||
AC_MSG_WARN([unsupported compiler flags: $flags_unsupported])
|
||||
fi
|
||||
$1="$$1 $flags_supported"
|
||||
])
|
||||
|
@@ -1,134 +0,0 @@
|
||||
# GLIB - Library of useful C routines
|
||||
|
||||
TESTS_ENVIRONMENT= \
|
||||
G_TEST_SRCDIR="$(abs_srcdir)" \
|
||||
G_TEST_BUILDDIR="$(abs_builddir)" \
|
||||
G_DEBUG=gc-friendly \
|
||||
MALLOC_CHECK_=2 \
|
||||
MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256))
|
||||
LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/build/autotools/tap-driver.sh
|
||||
LOG_COMPILER = $(top_srcdir)/build/autotools/tap-test
|
||||
|
||||
NULL =
|
||||
|
||||
# initialize variables for unconditional += appending
|
||||
BUILT_SOURCES =
|
||||
BUILT_EXTRA_DIST =
|
||||
CLEANFILES = *.log *.trs
|
||||
DISTCLEANFILES =
|
||||
MAINTAINERCLEANFILES =
|
||||
EXTRA_DIST =
|
||||
TESTS =
|
||||
|
||||
installed_test_LTLIBRARIES =
|
||||
installed_test_PROGRAMS =
|
||||
installed_test_SCRIPTS =
|
||||
nobase_installed_test_DATA =
|
||||
|
||||
noinst_LTLIBRARIES =
|
||||
noinst_PROGRAMS =
|
||||
noinst_SCRIPTS =
|
||||
noinst_DATA =
|
||||
|
||||
check_LTLIBRARIES =
|
||||
check_PROGRAMS =
|
||||
check_SCRIPTS =
|
||||
check_DATA =
|
||||
|
||||
# We support a fairly large range of possible variables. It is expected that all types of files in a test suite
|
||||
# will belong in exactly one of the following variables.
|
||||
#
|
||||
# First, we support the usual automake suffixes, but in lowercase, with the customary meaning:
|
||||
#
|
||||
# test_programs, test_scripts, test_data, test_ltlibraries
|
||||
#
|
||||
# The above are used to list files that are involved in both uninstalled and installed testing. The
|
||||
# test_programs and test_scripts are taken to be actual testcases and will be run as part of the test suite.
|
||||
# Note that _data is always used with the nobase_ automake variable name to ensure that installed test data is
|
||||
# installed in the same way as it appears in the package layout.
|
||||
#
|
||||
# In order to mark a particular file as being only for one type of testing, use 'installed' or 'uninstalled',
|
||||
# like so:
|
||||
#
|
||||
# installed_test_programs, uninstalled_test_programs
|
||||
# installed_test_scripts, uninstalled_test_scripts
|
||||
# installed_test_data, uninstalled_test_data
|
||||
# installed_test_ltlibraries, uninstalled_test_ltlibraries
|
||||
#
|
||||
# Additionally, we support 'extra' infixes for programs and scripts. This is used for support programs/scripts
|
||||
# that should not themselves be run as testcases (but exist to be used from other testcases):
|
||||
#
|
||||
# test_extra_programs, installed_test_extra_programs, uninstalled_test_extra_programs
|
||||
# test_extra_scripts, installed_test_extra_scripts, uninstalled_test_extra_scripts
|
||||
#
|
||||
# Additionally, for _scripts and _data, we support the customary dist_ prefix so that the named script or data
|
||||
# file automatically end up in the tarball.
|
||||
#
|
||||
# dist_test_scripts, dist_test_data, dist_test_extra_scripts
|
||||
# dist_installed_test_scripts, dist_installed_test_data, dist_installed_test_extra_scripts
|
||||
# dist_uninstalled_test_scripts, dist_uninstalled_test_data, dist_uninstalled_test_extra_scripts
|
||||
#
|
||||
# Note that no file is automatically disted unless it appears in one of the dist_ variables. This follows the
|
||||
# standard automake convention of not disting programs scripts or data by default.
|
||||
#
|
||||
# test_programs, test_scripts, uninstalled_test_programs and uninstalled_test_scripts (as well as their disted
|
||||
# variants) will be run as part of the in-tree 'make check'. These are all assumed to be runnable under
|
||||
# gtester. That's a bit strange for scripts, but it's possible.
|
||||
|
||||
TESTS += $(test_programs) $(test_scripts) $(uninstalled_test_programs) $(uninstalled_test_scripts) \
|
||||
$(dist_test_scripts) $(dist_uninstalled_test_scripts)
|
||||
|
||||
# Note: build even the installed-only targets during 'make check' to ensure that they still work.
|
||||
# We need to do a bit of trickery here and manage disting via EXTRA_DIST instead of using dist_ prefixes to
|
||||
# prevent automake from mistreating gmake functions like $(wildcard ...) and $(addprefix ...) as if they were
|
||||
# filenames, including removing duplicate instances of the opening part before the space, eg. '$(addprefix'.
|
||||
all_test_programs = $(test_programs) $(uninstalled_test_programs) $(installed_test_programs) \
|
||||
$(test_extra_programs) $(uninstalled_test_extra_programs) $(installed_test_extra_programs)
|
||||
all_test_scripts = $(test_scripts) $(uninstalled_test_scripts) $(installed_test_scripts) \
|
||||
$(test_extra_scripts) $(uninstalled_test_extra_scripts) $(installed_test_extra_scripts)
|
||||
all_dist_test_scripts = $(dist_test_scripts) $(dist_uninstalled_test_scripts) $(dist_installed_test_scripts) \
|
||||
$(dist_test_extra_scripts) $(dist_uninstalled_test_extra_scripts) $(dist_installed_test_extra_scripts)
|
||||
all_test_scripts += $(all_dist_test_scripts)
|
||||
EXTRA_DIST += $(all_dist_test_scripts)
|
||||
all_test_data = $(test_data) $(uninstalled_test_data) $(installed_test_data)
|
||||
all_dist_test_data = $(dist_test_data) $(dist_uninstalled_test_data) $(dist_installed_test_data)
|
||||
all_test_data += $(all_dist_test_data)
|
||||
EXTRA_DIST += $(all_dist_test_data)
|
||||
all_test_ltlibs = $(test_ltlibraries) $(uninstalled_test_ltlibraries) $(installed_test_ltlibraries)
|
||||
|
||||
if ENABLE_ALWAYS_BUILD_TESTS
|
||||
noinst_LTLIBRARIES += $(all_test_ltlibs)
|
||||
noinst_PROGRAMS += $(all_test_programs)
|
||||
noinst_SCRIPTS += $(all_test_scripts)
|
||||
noinst_DATA += $(all_test_data)
|
||||
else
|
||||
check_LTLIBRARIES += $(all_test_ltlibs)
|
||||
check_PROGRAMS += $(all_test_programs)
|
||||
check_SCRIPTS += $(all_test_scripts)
|
||||
check_DATA += $(all_test_data)
|
||||
endif
|
||||
|
||||
if ENABLE_INSTALLED_TESTS
|
||||
installed_test_PROGRAMS += $(test_programs) $(installed_test_programs) \
|
||||
$(test_extra_programs) $(installed_test_extra_programs)
|
||||
installed_test_SCRIPTS += $(test_scripts) $(installed_test_scripts) \
|
||||
$(test_extra_scripts) $(test_installed_extra_scripts)
|
||||
installed_test_SCRIPTS += $(dist_test_scripts) $(dist_test_extra_scripts) \
|
||||
$(dist_installed_test_scripts) $(dist_installed_test_extra_scripts)
|
||||
nobase_installed_test_DATA += $(test_data) $(installed_test_data)
|
||||
nobase_installed_test_DATA += $(dist_test_data) $(dist_installed_test_data)
|
||||
installed_test_LTLIBRARIES += $(test_ltlibraries) $(installed_test_ltlibraries)
|
||||
installed_testcases = $(test_programs) $(installed_test_programs) \
|
||||
$(test_scripts) $(installed_test_scripts) \
|
||||
$(dist_test_scripts) $(dist_installed_test_scripts)
|
||||
|
||||
installed_test_meta_DATA = $(installed_testcases:=.test)
|
||||
|
||||
%.test: %$(EXEEXT) Makefile
|
||||
$(AM_V_GEN) (echo '[Test]' > $@.tmp; \
|
||||
echo 'Type=session' >> $@.tmp; \
|
||||
echo 'Exec=env G_ENABLE_DIAGNOSTIC=0 CLUTTER_ENABLE_DIAGNOSTIC=0 $(installed_testdir)/$<' >> $@.tmp; \
|
||||
mv $@.tmp $@)
|
||||
|
||||
CLEANFILES += $(installed_test_meta_DATA)
|
||||
endif
|
@@ -1,28 +0,0 @@
|
||||
dnl GLIB_TESTS
|
||||
dnl
|
||||
|
||||
AC_DEFUN([GLIB_TESTS],
|
||||
[
|
||||
AC_ARG_ENABLE(installed-tests,
|
||||
AS_HELP_STRING([--enable-installed-tests],
|
||||
[Enable installation of some test cases]),
|
||||
[case ${enableval} in
|
||||
yes) ENABLE_INSTALLED_TESTS="1" ;;
|
||||
no) ENABLE_INSTALLED_TESTS="" ;;
|
||||
*) AC_MSG_ERROR([bad value ${enableval} for --enable-installed-tests]) ;;
|
||||
esac])
|
||||
AM_CONDITIONAL([ENABLE_INSTALLED_TESTS], test "$ENABLE_INSTALLED_TESTS" = "1")
|
||||
AC_ARG_ENABLE(always-build-tests,
|
||||
AS_HELP_STRING([--enable-always-build-tests],
|
||||
[Enable always building tests during 'make all']),
|
||||
[case ${enableval} in
|
||||
yes) ENABLE_ALWAYS_BUILD_TESTS="1" ;;
|
||||
no) ENABLE_ALWAYS_BUILD_TESTS="" ;;
|
||||
*) AC_MSG_ERROR([bad value ${enableval} for --enable-always-build-tests]) ;;
|
||||
esac])
|
||||
AM_CONDITIONAL([ENABLE_ALWAYS_BUILD_TESTS], test "$ENABLE_ALWAYS_BUILD_TESTS" = "1")
|
||||
if test "$ENABLE_INSTALLED_TESTS" = "1"; then
|
||||
AC_SUBST(installed_test_metadir, [${datadir}/installed-tests/]AC_PACKAGE_NAME)
|
||||
AC_SUBST(installed_testdir, [${libexecdir}/installed-tests/]AC_PACKAGE_NAME)
|
||||
fi
|
||||
])
|
@@ -1,96 +0,0 @@
|
||||
dnl -*- mode: autoconf -*-
|
||||
dnl Copyright 2009 Johan Dahlin
|
||||
dnl
|
||||
dnl This file is free software; the author(s) gives unlimited
|
||||
dnl permission to copy and/or distribute it, with or without
|
||||
dnl modifications, as long as this notice is preserved.
|
||||
dnl
|
||||
|
||||
# serial 1
|
||||
|
||||
m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
|
||||
[
|
||||
AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
|
||||
AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
|
||||
AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
|
||||
|
||||
dnl enable/disable introspection
|
||||
m4_if([$2], [require],
|
||||
[dnl
|
||||
enable_introspection=yes
|
||||
],[dnl
|
||||
AC_ARG_ENABLE(introspection,
|
||||
AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
|
||||
[Enable introspection for this build]),,
|
||||
[enable_introspection=auto])
|
||||
])dnl
|
||||
|
||||
AC_MSG_CHECKING([for gobject-introspection])
|
||||
|
||||
dnl presence/version checking
|
||||
AS_CASE([$enable_introspection],
|
||||
[no], [dnl
|
||||
found_introspection="no (disabled, use --enable-introspection to enable)"
|
||||
],dnl
|
||||
[yes],[dnl
|
||||
PKG_CHECK_EXISTS([gobject-introspection-1.0],,
|
||||
AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
|
||||
PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
|
||||
found_introspection=yes,
|
||||
AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
|
||||
],dnl
|
||||
[auto],[dnl
|
||||
PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
|
||||
dnl Canonicalize enable_introspection
|
||||
enable_introspection=$found_introspection
|
||||
],dnl
|
||||
[dnl
|
||||
AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
|
||||
])dnl
|
||||
|
||||
AC_MSG_RESULT([$found_introspection])
|
||||
|
||||
INTROSPECTION_SCANNER=
|
||||
INTROSPECTION_COMPILER=
|
||||
INTROSPECTION_GENERATE=
|
||||
INTROSPECTION_GIRDIR=
|
||||
INTROSPECTION_TYPELIBDIR=
|
||||
if test "x$found_introspection" = "xyes"; then
|
||||
INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
|
||||
INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
|
||||
INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
|
||||
INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
|
||||
INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
|
||||
INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
|
||||
INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
|
||||
INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
|
||||
fi
|
||||
AC_SUBST(INTROSPECTION_SCANNER)
|
||||
AC_SUBST(INTROSPECTION_COMPILER)
|
||||
AC_SUBST(INTROSPECTION_GENERATE)
|
||||
AC_SUBST(INTROSPECTION_GIRDIR)
|
||||
AC_SUBST(INTROSPECTION_TYPELIBDIR)
|
||||
AC_SUBST(INTROSPECTION_CFLAGS)
|
||||
AC_SUBST(INTROSPECTION_LIBS)
|
||||
AC_SUBST(INTROSPECTION_MAKEFILE)
|
||||
|
||||
AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
|
||||
])
|
||||
|
||||
|
||||
dnl Usage:
|
||||
dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
|
||||
|
||||
AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
|
||||
[
|
||||
_GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
|
||||
])
|
||||
|
||||
dnl Usage:
|
||||
dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
|
||||
|
||||
|
||||
AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
|
||||
[
|
||||
_GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
|
||||
])
|
@@ -1,652 +0,0 @@
|
||||
#! /bin/sh
|
||||
# Copyright (C) 2011-2013 Free Software Foundation, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
scriptversion=2011-12-27.17; # UTC
|
||||
|
||||
# Make unconditional expansion of undefined variables an error. This
|
||||
# helps a lot in preventing typo-related bugs.
|
||||
set -u
|
||||
|
||||
me=tap-driver.sh
|
||||
|
||||
fatal ()
|
||||
{
|
||||
echo "$me: fatal: $*" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
usage_error ()
|
||||
{
|
||||
echo "$me: $*" >&2
|
||||
print_usage >&2
|
||||
exit 2
|
||||
}
|
||||
|
||||
print_usage ()
|
||||
{
|
||||
cat <<END
|
||||
Usage:
|
||||
tap-driver.sh --test-name=NAME --log-file=PATH --trs-file=PATH
|
||||
[--expect-failure={yes|no}] [--color-tests={yes|no}]
|
||||
[--enable-hard-errors={yes|no}] [--ignore-exit]
|
||||
[--diagnostic-string=STRING] [--merge|--no-merge]
|
||||
[--comments|--no-comments] [--] TEST-COMMAND
|
||||
The \`--test-name', \`--log-file' and \`--trs-file' options are mandatory.
|
||||
END
|
||||
}
|
||||
|
||||
# TODO: better error handling in option parsing (in particular, ensure
|
||||
# TODO: $log_file, $trs_file and $test_name are defined).
|
||||
test_name= # Used for reporting.
|
||||
log_file= # Where to save the result and output of the test script.
|
||||
trs_file= # Where to save the metadata of the test run.
|
||||
expect_failure=0
|
||||
color_tests=0
|
||||
merge=0
|
||||
ignore_exit=0
|
||||
comments=0
|
||||
diag_string='#'
|
||||
while test $# -gt 0; do
|
||||
case $1 in
|
||||
--help) print_usage; exit $?;;
|
||||
--version) echo "$me $scriptversion"; exit $?;;
|
||||
--test-name) test_name=$2; shift;;
|
||||
--log-file) log_file=$2; shift;;
|
||||
--trs-file) trs_file=$2; shift;;
|
||||
--color-tests) color_tests=$2; shift;;
|
||||
--expect-failure) expect_failure=$2; shift;;
|
||||
--enable-hard-errors) shift;; # No-op.
|
||||
--merge) merge=1;;
|
||||
--no-merge) merge=0;;
|
||||
--ignore-exit) ignore_exit=1;;
|
||||
--comments) comments=1;;
|
||||
--no-comments) comments=0;;
|
||||
--diagnostic-string) diag_string=$2; shift;;
|
||||
--) shift; break;;
|
||||
-*) usage_error "invalid option: '$1'";;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
test $# -gt 0 || usage_error "missing test command"
|
||||
|
||||
case $expect_failure in
|
||||
yes) expect_failure=1;;
|
||||
*) expect_failure=0;;
|
||||
esac
|
||||
|
||||
if test $color_tests = yes; then
|
||||
init_colors='
|
||||
color_map["red"]="[0;31m" # Red.
|
||||
color_map["grn"]="[0;32m" # Green.
|
||||
color_map["lgn"]="[1;32m" # Light green.
|
||||
color_map["blu"]="[1;34m" # Blue.
|
||||
color_map["mgn"]="[0;35m" # Magenta.
|
||||
color_map["std"]="[m" # No color.
|
||||
color_for_result["ERROR"] = "mgn"
|
||||
color_for_result["PASS"] = "grn"
|
||||
color_for_result["XPASS"] = "red"
|
||||
color_for_result["FAIL"] = "red"
|
||||
color_for_result["XFAIL"] = "lgn"
|
||||
color_for_result["SKIP"] = "blu"'
|
||||
else
|
||||
init_colors=''
|
||||
fi
|
||||
|
||||
# :; is there to work around a bug in bash 3.2 (and earlier) which
|
||||
# does not always set '$?' properly on redirection failure.
|
||||
# See the Autoconf manual for more details.
|
||||
:;{
|
||||
(
|
||||
# Ignore common signals (in this subshell only!), to avoid potential
|
||||
# problems with Korn shells. Some Korn shells are known to propagate
|
||||
# to themselves signals that have killed a child process they were
|
||||
# waiting for; this is done at least for SIGINT (and usually only for
|
||||
# it, in truth). Without the `trap' below, such a behaviour could
|
||||
# cause a premature exit in the current subshell, e.g., in case the
|
||||
# test command it runs gets terminated by a SIGINT. Thus, the awk
|
||||
# script we are piping into would never seen the exit status it
|
||||
# expects on its last input line (which is displayed below by the
|
||||
# last `echo $?' statement), and would thus die reporting an internal
|
||||
# error.
|
||||
# For more information, see the Autoconf manual and the threads:
|
||||
# <http://lists.gnu.org/archive/html/bug-autoconf/2011-09/msg00004.html>
|
||||
# <http://mail.opensolaris.org/pipermail/ksh93-integration-discuss/2009-February/004121.html>
|
||||
trap : 1 3 2 13 15
|
||||
if test $merge -gt 0; then
|
||||
exec 2>&1
|
||||
else
|
||||
exec 2>&3
|
||||
fi
|
||||
"$@"
|
||||
echo $?
|
||||
) | LC_ALL=C ${AM_TAP_AWK-awk} \
|
||||
-v me="$me" \
|
||||
-v test_script_name="$test_name" \
|
||||
-v log_file="$log_file" \
|
||||
-v trs_file="$trs_file" \
|
||||
-v expect_failure="$expect_failure" \
|
||||
-v merge="$merge" \
|
||||
-v ignore_exit="$ignore_exit" \
|
||||
-v comments="$comments" \
|
||||
-v diag_string="$diag_string" \
|
||||
'
|
||||
# FIXME: the usages of "cat >&3" below could be optimized when using
|
||||
# FIXME: GNU awk, and/on on systems that supports /dev/fd/.
|
||||
|
||||
# Implementation note: in what follows, `result_obj` will be an
|
||||
# associative array that (partly) simulates a TAP result object
|
||||
# from the `TAP::Parser` perl module.
|
||||
|
||||
## ----------- ##
|
||||
## FUNCTIONS ##
|
||||
## ----------- ##
|
||||
|
||||
function fatal(msg)
|
||||
{
|
||||
print me ": " msg | "cat >&2"
|
||||
exit 1
|
||||
}
|
||||
|
||||
function abort(where)
|
||||
{
|
||||
fatal("internal error " where)
|
||||
}
|
||||
|
||||
# Convert a boolean to a "yes"/"no" string.
|
||||
function yn(bool)
|
||||
{
|
||||
return bool ? "yes" : "no";
|
||||
}
|
||||
|
||||
function add_test_result(result)
|
||||
{
|
||||
if (!test_results_index)
|
||||
test_results_index = 0
|
||||
test_results_list[test_results_index] = result
|
||||
test_results_index += 1
|
||||
test_results_seen[result] = 1;
|
||||
}
|
||||
|
||||
# Whether the test script should be re-run by "make recheck".
|
||||
function must_recheck()
|
||||
{
|
||||
for (k in test_results_seen)
|
||||
if (k != "XFAIL" && k != "PASS" && k != "SKIP")
|
||||
return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
# Whether the content of the log file associated to this test should
|
||||
# be copied into the "global" test-suite.log.
|
||||
function copy_in_global_log()
|
||||
{
|
||||
for (k in test_results_seen)
|
||||
if (k != "PASS")
|
||||
return 1
|
||||
return 0
|
||||
}
|
||||
|
||||
# FIXME: this can certainly be improved ...
|
||||
function get_global_test_result()
|
||||
{
|
||||
if ("ERROR" in test_results_seen)
|
||||
return "ERROR"
|
||||
if ("FAIL" in test_results_seen || "XPASS" in test_results_seen)
|
||||
return "FAIL"
|
||||
all_skipped = 1
|
||||
for (k in test_results_seen)
|
||||
if (k != "SKIP")
|
||||
all_skipped = 0
|
||||
if (all_skipped)
|
||||
return "SKIP"
|
||||
return "PASS";
|
||||
}
|
||||
|
||||
function stringify_result_obj(result_obj)
|
||||
{
|
||||
if (result_obj["is_unplanned"] || result_obj["number"] != testno)
|
||||
return "ERROR"
|
||||
|
||||
if (plan_seen == LATE_PLAN)
|
||||
return "ERROR"
|
||||
|
||||
if (result_obj["directive"] == "TODO")
|
||||
return result_obj["is_ok"] ? "XPASS" : "XFAIL"
|
||||
|
||||
if (result_obj["directive"] == "SKIP")
|
||||
return result_obj["is_ok"] ? "SKIP" : COOKED_FAIL;
|
||||
|
||||
if (length(result_obj["directive"]))
|
||||
abort("in function stringify_result_obj()")
|
||||
|
||||
return result_obj["is_ok"] ? COOKED_PASS : COOKED_FAIL
|
||||
}
|
||||
|
||||
function decorate_result(result)
|
||||
{
|
||||
color_name = color_for_result[result]
|
||||
if (color_name)
|
||||
return color_map[color_name] "" result "" color_map["std"]
|
||||
# If we are not using colorized output, or if we do not know how
|
||||
# to colorize the given result, we should return it unchanged.
|
||||
return result
|
||||
}
|
||||
|
||||
function report(result, details)
|
||||
{
|
||||
if (result ~ /^(X?(PASS|FAIL)|SKIP|ERROR)/)
|
||||
{
|
||||
msg = ": " test_script_name
|
||||
add_test_result(result)
|
||||
}
|
||||
else if (result == "#")
|
||||
{
|
||||
msg = " " test_script_name ":"
|
||||
}
|
||||
else
|
||||
{
|
||||
abort("in function report()")
|
||||
}
|
||||
if (length(details))
|
||||
msg = msg " " details
|
||||
# Output on console might be colorized.
|
||||
print decorate_result(result) msg
|
||||
# Log the result in the log file too, to help debugging (this is
|
||||
# especially true when said result is a TAP error or "Bail out!").
|
||||
print result msg | "cat >&3";
|
||||
}
|
||||
|
||||
function testsuite_error(error_message)
|
||||
{
|
||||
report("ERROR", "- " error_message)
|
||||
}
|
||||
|
||||
function handle_tap_result()
|
||||
{
|
||||
details = result_obj["number"];
|
||||
if (length(result_obj["description"]))
|
||||
details = details " " result_obj["description"]
|
||||
|
||||
if (plan_seen == LATE_PLAN)
|
||||
{
|
||||
details = details " # AFTER LATE PLAN";
|
||||
}
|
||||
else if (result_obj["is_unplanned"])
|
||||
{
|
||||
details = details " # UNPLANNED";
|
||||
}
|
||||
else if (result_obj["number"] != testno)
|
||||
{
|
||||
details = sprintf("%s # OUT-OF-ORDER (expecting %d)",
|
||||
details, testno);
|
||||
}
|
||||
else if (result_obj["directive"])
|
||||
{
|
||||
details = details " # " result_obj["directive"];
|
||||
if (length(result_obj["explanation"]))
|
||||
details = details " " result_obj["explanation"]
|
||||
}
|
||||
|
||||
report(stringify_result_obj(result_obj), details)
|
||||
}
|
||||
|
||||
# `skip_reason` should be empty whenever planned > 0.
|
||||
function handle_tap_plan(planned, skip_reason)
|
||||
{
|
||||
planned += 0 # Avoid getting confused if, say, `planned` is "00"
|
||||
if (length(skip_reason) && planned > 0)
|
||||
abort("in function handle_tap_plan()")
|
||||
if (plan_seen)
|
||||
{
|
||||
# Error, only one plan per stream is acceptable.
|
||||
testsuite_error("multiple test plans")
|
||||
return;
|
||||
}
|
||||
planned_tests = planned
|
||||
# The TAP plan can come before or after *all* the TAP results; we speak
|
||||
# respectively of an "early" or a "late" plan. If we see the plan line
|
||||
# after at least one TAP result has been seen, assume we have a late
|
||||
# plan; in this case, any further test result seen after the plan will
|
||||
# be flagged as an error.
|
||||
plan_seen = (testno >= 1 ? LATE_PLAN : EARLY_PLAN)
|
||||
# If testno > 0, we have an error ("too many tests run") that will be
|
||||
# automatically dealt with later, so do not worry about it here. If
|
||||
# $plan_seen is true, we have an error due to a repeated plan, and that
|
||||
# has already been dealt with above. Otherwise, we have a valid "plan
|
||||
# with SKIP" specification, and should report it as a particular kind
|
||||
# of SKIP result.
|
||||
if (planned == 0 && testno == 0)
|
||||
{
|
||||
if (length(skip_reason))
|
||||
skip_reason = "- " skip_reason;
|
||||
report("SKIP", skip_reason);
|
||||
}
|
||||
}
|
||||
|
||||
function extract_tap_comment(line)
|
||||
{
|
||||
if (index(line, diag_string) == 1)
|
||||
{
|
||||
# Strip leading `diag_string` from `line`.
|
||||
line = substr(line, length(diag_string) + 1)
|
||||
# And strip any leading and trailing whitespace left.
|
||||
sub("^[ \t]*", "", line)
|
||||
sub("[ \t]*$", "", line)
|
||||
# Return what is left (if any).
|
||||
return line;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
# When this function is called, we know that line is a TAP result line,
|
||||
# so that it matches the (perl) RE "^(not )?ok\b".
|
||||
function setup_result_obj(line)
|
||||
{
|
||||
# Get the result, and remove it from the line.
|
||||
result_obj["is_ok"] = (substr(line, 1, 2) == "ok" ? 1 : 0)
|
||||
sub("^(not )?ok[ \t]*", "", line)
|
||||
|
||||
# If the result has an explicit number, get it and strip it; otherwise,
|
||||
# automatically assing the next progresive number to it.
|
||||
if (line ~ /^[0-9]+$/ || line ~ /^[0-9]+[^a-zA-Z0-9_]/)
|
||||
{
|
||||
match(line, "^[0-9]+")
|
||||
# The final `+ 0` is to normalize numbers with leading zeros.
|
||||
result_obj["number"] = substr(line, 1, RLENGTH) + 0
|
||||
line = substr(line, RLENGTH + 1)
|
||||
}
|
||||
else
|
||||
{
|
||||
result_obj["number"] = testno
|
||||
}
|
||||
|
||||
if (plan_seen == LATE_PLAN)
|
||||
# No further test results are acceptable after a "late" TAP plan
|
||||
# has been seen.
|
||||
result_obj["is_unplanned"] = 1
|
||||
else if (plan_seen && testno > planned_tests)
|
||||
result_obj["is_unplanned"] = 1
|
||||
else
|
||||
result_obj["is_unplanned"] = 0
|
||||
|
||||
# Strip trailing and leading whitespace.
|
||||
sub("^[ \t]*", "", line)
|
||||
sub("[ \t]*$", "", line)
|
||||
|
||||
# This will have to be corrected if we have a "TODO"/"SKIP" directive.
|
||||
result_obj["description"] = line
|
||||
result_obj["directive"] = ""
|
||||
result_obj["explanation"] = ""
|
||||
|
||||
if (index(line, "#") == 0)
|
||||
return # No possible directive, nothing more to do.
|
||||
|
||||
# Directives are case-insensitive.
|
||||
rx = "[ \t]*#[ \t]*([tT][oO][dD][oO]|[sS][kK][iI][pP])[ \t]*"
|
||||
|
||||
# See whether we have the directive, and if yes, where.
|
||||
pos = match(line, rx "$")
|
||||
if (!pos)
|
||||
pos = match(line, rx "[^a-zA-Z0-9_]")
|
||||
|
||||
# If there was no TAP directive, we have nothing more to do.
|
||||
if (!pos)
|
||||
return
|
||||
|
||||
# Let`s now see if the TAP directive has been escaped. For example:
|
||||
# escaped: ok \# SKIP
|
||||
# not escaped: ok \\# SKIP
|
||||
# escaped: ok \\\\\# SKIP
|
||||
# not escaped: ok \ # SKIP
|
||||
if (substr(line, pos, 1) == "#")
|
||||
{
|
||||
bslash_count = 0
|
||||
for (i = pos; i > 1 && substr(line, i - 1, 1) == "\\"; i--)
|
||||
bslash_count += 1
|
||||
if (bslash_count % 2)
|
||||
return # Directive was escaped.
|
||||
}
|
||||
|
||||
# Strip the directive and its explanation (if any) from the test
|
||||
# description.
|
||||
result_obj["description"] = substr(line, 1, pos - 1)
|
||||
# Now remove the test description from the line, that has been dealt
|
||||
# with already.
|
||||
line = substr(line, pos)
|
||||
# Strip the directive, and save its value (normalized to upper case).
|
||||
sub("^[ \t]*#[ \t]*", "", line)
|
||||
result_obj["directive"] = toupper(substr(line, 1, 4))
|
||||
line = substr(line, 5)
|
||||
# Now get the explanation for the directive (if any), with leading
|
||||
# and trailing whitespace removed.
|
||||
sub("^[ \t]*", "", line)
|
||||
sub("[ \t]*$", "", line)
|
||||
result_obj["explanation"] = line
|
||||
}
|
||||
|
||||
function get_test_exit_message(status)
|
||||
{
|
||||
if (status == 0)
|
||||
return ""
|
||||
if (status !~ /^[1-9][0-9]*$/)
|
||||
abort("getting exit status")
|
||||
if (status < 127)
|
||||
exit_details = ""
|
||||
else if (status == 127)
|
||||
exit_details = " (command not found?)"
|
||||
else if (status >= 128 && status <= 255)
|
||||
exit_details = sprintf(" (terminated by signal %d?)", status - 128)
|
||||
else if (status > 256 && status <= 384)
|
||||
# We used to report an "abnormal termination" here, but some Korn
|
||||
# shells, when a child process die due to signal number n, can leave
|
||||
# in $? an exit status of 256+n instead of the more standard 128+n.
|
||||
# Apparently, both behaviours are allowed by POSIX (2008), so be
|
||||
# prepared to handle them both. See also Austing Group report ID
|
||||
# 0000051 <http://www.austingroupbugs.net/view.php?id=51>
|
||||
exit_details = sprintf(" (terminated by signal %d?)", status - 256)
|
||||
else
|
||||
# Never seen in practice.
|
||||
exit_details = " (abnormal termination)"
|
||||
return sprintf("exited with status %d%s", status, exit_details)
|
||||
}
|
||||
|
||||
function write_test_results()
|
||||
{
|
||||
print ":global-test-result: " get_global_test_result() > trs_file
|
||||
print ":recheck: " yn(must_recheck()) > trs_file
|
||||
print ":copy-in-global-log: " yn(copy_in_global_log()) > trs_file
|
||||
for (i = 0; i < test_results_index; i += 1)
|
||||
print ":test-result: " test_results_list[i] > trs_file
|
||||
close(trs_file);
|
||||
}
|
||||
|
||||
BEGIN {
|
||||
|
||||
## ------- ##
|
||||
## SETUP ##
|
||||
## ------- ##
|
||||
|
||||
'"$init_colors"'
|
||||
|
||||
# Properly initialized once the TAP plan is seen.
|
||||
planned_tests = 0
|
||||
|
||||
COOKED_PASS = expect_failure ? "XPASS": "PASS";
|
||||
COOKED_FAIL = expect_failure ? "XFAIL": "FAIL";
|
||||
|
||||
# Enumeration-like constants to remember which kind of plan (if any)
|
||||
# has been seen. It is important that NO_PLAN evaluates "false" as
|
||||
# a boolean.
|
||||
NO_PLAN = 0
|
||||
EARLY_PLAN = 1
|
||||
LATE_PLAN = 2
|
||||
|
||||
testno = 0 # Number of test results seen so far.
|
||||
bailed_out = 0 # Whether a "Bail out!" directive has been seen.
|
||||
|
||||
# Whether the TAP plan has been seen or not, and if yes, which kind
|
||||
# it is ("early" is seen before any test result, "late" otherwise).
|
||||
plan_seen = NO_PLAN
|
||||
|
||||
## --------- ##
|
||||
## PARSING ##
|
||||
## --------- ##
|
||||
|
||||
is_first_read = 1
|
||||
|
||||
while (1)
|
||||
{
|
||||
# Involutions required so that we are able to read the exit status
|
||||
# from the last input line.
|
||||
st = getline
|
||||
if (st < 0) # I/O error.
|
||||
fatal("I/O error while reading from input stream")
|
||||
else if (st == 0) # End-of-input
|
||||
{
|
||||
if (is_first_read)
|
||||
abort("in input loop: only one input line")
|
||||
break
|
||||
}
|
||||
if (is_first_read)
|
||||
{
|
||||
is_first_read = 0
|
||||
nextline = $0
|
||||
continue
|
||||
}
|
||||
else
|
||||
{
|
||||
curline = nextline
|
||||
nextline = $0
|
||||
$0 = curline
|
||||
}
|
||||
# Copy any input line verbatim into the log file.
|
||||
print | "cat >&3"
|
||||
# Parsing of TAP input should stop after a "Bail out!" directive.
|
||||
if (bailed_out)
|
||||
continue
|
||||
|
||||
# TAP test result.
|
||||
if ($0 ~ /^(not )?ok$/ || $0 ~ /^(not )?ok[^a-zA-Z0-9_]/)
|
||||
{
|
||||
testno += 1
|
||||
setup_result_obj($0)
|
||||
handle_tap_result()
|
||||
}
|
||||
# TAP plan (normal or "SKIP" without explanation).
|
||||
else if ($0 ~ /^1\.\.[0-9]+[ \t]*$/)
|
||||
{
|
||||
# The next two lines will put the number of planned tests in $0.
|
||||
sub("^1\\.\\.", "")
|
||||
sub("[^0-9]*$", "")
|
||||
handle_tap_plan($0, "")
|
||||
continue
|
||||
}
|
||||
# TAP "SKIP" plan, with an explanation.
|
||||
else if ($0 ~ /^1\.\.0+[ \t]*#/)
|
||||
{
|
||||
# The next lines will put the skip explanation in $0, stripping
|
||||
# any leading and trailing whitespace. This is a little more
|
||||
# tricky in truth, since we want to also strip a potential leading
|
||||
# "SKIP" string from the message.
|
||||
sub("^[^#]*#[ \t]*(SKIP[: \t][ \t]*)?", "")
|
||||
sub("[ \t]*$", "");
|
||||
handle_tap_plan(0, $0)
|
||||
}
|
||||
# "Bail out!" magic.
|
||||
# Older versions of prove and TAP::Harness (e.g., 3.17) did not
|
||||
# recognize a "Bail out!" directive when preceded by leading
|
||||
# whitespace, but more modern versions (e.g., 3.23) do. So we
|
||||
# emulate the latter, "more modern" behaviour.
|
||||
else if ($0 ~ /^[ \t]*Bail out!/)
|
||||
{
|
||||
bailed_out = 1
|
||||
# Get the bailout message (if any), with leading and trailing
|
||||
# whitespace stripped. The message remains stored in `$0`.
|
||||
sub("^[ \t]*Bail out![ \t]*", "");
|
||||
sub("[ \t]*$", "");
|
||||
# Format the error message for the
|
||||
bailout_message = "Bail out!"
|
||||
if (length($0))
|
||||
bailout_message = bailout_message " " $0
|
||||
testsuite_error(bailout_message)
|
||||
}
|
||||
# Maybe we have too look for dianogtic comments too.
|
||||
else if (comments != 0)
|
||||
{
|
||||
comment = extract_tap_comment($0);
|
||||
if (length(comment))
|
||||
report("#", comment);
|
||||
}
|
||||
}
|
||||
|
||||
## -------- ##
|
||||
## FINISH ##
|
||||
## -------- ##
|
||||
|
||||
# A "Bail out!" directive should cause us to ignore any following TAP
|
||||
# error, as well as a non-zero exit status from the TAP producer.
|
||||
if (!bailed_out)
|
||||
{
|
||||
if (!plan_seen)
|
||||
{
|
||||
testsuite_error("missing test plan")
|
||||
}
|
||||
else if (planned_tests != testno)
|
||||
{
|
||||
bad_amount = testno > planned_tests ? "many" : "few"
|
||||
testsuite_error(sprintf("too %s tests run (expected %d, got %d)",
|
||||
bad_amount, planned_tests, testno))
|
||||
}
|
||||
if (!ignore_exit)
|
||||
{
|
||||
# Fetch exit status from the last line.
|
||||
exit_message = get_test_exit_message(nextline)
|
||||
if (exit_message)
|
||||
testsuite_error(exit_message)
|
||||
}
|
||||
}
|
||||
|
||||
write_test_results()
|
||||
|
||||
exit 0
|
||||
|
||||
} # End of "BEGIN" block.
|
||||
'
|
||||
|
||||
# TODO: document that we consume the file descriptor 3 :-(
|
||||
} 3>"$log_file"
|
||||
|
||||
test $? -eq 0 || fatal "I/O or internal error"
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
@@ -1,5 +0,0 @@
|
||||
#! /bin/sh
|
||||
|
||||
# run a GTest in tap mode. The test binary is passed as $1
|
||||
|
||||
$1 -k --tap
|
@@ -1,696 +0,0 @@
|
||||
AUTOMAKE_OPTIONS = subdir-objects
|
||||
|
||||
# preamble
|
||||
NULL =
|
||||
|
||||
# common definitions
|
||||
CLEANFILES =
|
||||
DISTCLEANFILES =
|
||||
EXTRA_DIST =
|
||||
BUILT_SOURCES =
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
-DCLUTTER_PREFIX=\""$(prefix)"\" \
|
||||
-DCLUTTER_LIBDIR=\""$(libdir)"\" \
|
||||
-DCLUTTER_DATADIR=\""$(datadir)"\" \
|
||||
-DCLUTTER_LOCALEDIR=\""$(localedir)"\" \
|
||||
-DCLUTTER_SYSCONFDIR=\""$(sysconfdir)"\" \
|
||||
-DCLUTTER_COMPILATION=1 \
|
||||
-DCOGL_DISABLE_DEPRECATION_WARNINGS \
|
||||
-DG_LOG_DOMAIN=\"Clutter\" \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_srcdir)/clutter \
|
||||
-I$(top_srcdir)/clutter/cally \
|
||||
-I$(top_builddir) \
|
||||
-I$(top_builddir)/clutter \
|
||||
-I$(top_srcdir)/../cogl \
|
||||
-I$(top_builddir)/../cogl \
|
||||
$(CLUTTER_DEPRECATED_CFLAGS) \
|
||||
$(CLUTTER_DEBUG_CFLAGS) \
|
||||
$(CLUTTER_HIDDEN_VISIBILITY_CFLAGS) \
|
||||
$(NULL)
|
||||
|
||||
AM_CFLAGS = $(CLUTTER_CFLAGS) $(MAINTAINER_CFLAGS)
|
||||
|
||||
# these are the gir files we generate using g-ir-scanner
|
||||
INTROSPECTION_GIRS =
|
||||
|
||||
# the base include path for headers
|
||||
clutter_base_includedir = $(includedir)/mutter/clutter-$(CLUTTER_API_VERSION)
|
||||
clutter_includedir = $(clutter_base_includedir)/clutter
|
||||
clutter_deprecateddir = $(clutter_base_includedir)/clutter/deprecated
|
||||
|
||||
# pkg-config files
|
||||
pc_files =
|
||||
|
||||
# common sources - please, keep these sorted alphabetically
|
||||
source_h = \
|
||||
clutter-action.h \
|
||||
clutter-actor-meta.h \
|
||||
clutter-actor.h \
|
||||
clutter-align-constraint.h \
|
||||
clutter-animatable.h \
|
||||
clutter-backend.h \
|
||||
clutter-bind-constraint.h \
|
||||
clutter-binding-pool.h \
|
||||
clutter-bin-layout.h \
|
||||
clutter-blur-effect.h \
|
||||
clutter-box-layout.h \
|
||||
clutter-brightness-contrast-effect.h \
|
||||
clutter-cairo.h \
|
||||
clutter-canvas.h \
|
||||
clutter-child-meta.h \
|
||||
clutter-click-action.h \
|
||||
clutter-clone.h \
|
||||
clutter-color-static.h \
|
||||
clutter-color.h \
|
||||
clutter-colorize-effect.h \
|
||||
clutter-constraint.h \
|
||||
clutter-container.h \
|
||||
clutter-content.h \
|
||||
clutter-deform-effect.h \
|
||||
clutter-deprecated.h \
|
||||
clutter-desaturate-effect.h \
|
||||
clutter-device-manager.h \
|
||||
clutter-drag-action.h \
|
||||
clutter-drop-action.h \
|
||||
clutter-effect.h \
|
||||
clutter-enums.h \
|
||||
clutter-event.h \
|
||||
clutter-feature.h \
|
||||
clutter-fixed-layout.h \
|
||||
clutter-flow-layout.h \
|
||||
clutter-gesture-action.h \
|
||||
clutter-grid-layout.h \
|
||||
clutter-group.h \
|
||||
clutter-image.h \
|
||||
clutter-input-device.h \
|
||||
clutter-input-device-tool.h \
|
||||
clutter-interval.h \
|
||||
clutter-keyframe-transition.h \
|
||||
clutter-keysyms.h \
|
||||
clutter-layout-manager.h \
|
||||
clutter-layout-meta.h \
|
||||
clutter-macros.h \
|
||||
clutter-main.h \
|
||||
clutter-offscreen-effect.h \
|
||||
clutter-page-turn-effect.h \
|
||||
clutter-paint-nodes.h \
|
||||
clutter-paint-node.h \
|
||||
clutter-pan-action.h \
|
||||
clutter-path-constraint.h \
|
||||
clutter-path.h \
|
||||
clutter-property-transition.h \
|
||||
clutter-rotate-action.h \
|
||||
clutter-script.h \
|
||||
clutter-scriptable.h \
|
||||
clutter-scroll-actor.h \
|
||||
clutter-settings.h \
|
||||
clutter-shader-effect.h \
|
||||
clutter-shader-types.h \
|
||||
clutter-swipe-action.h \
|
||||
clutter-snap-constraint.h \
|
||||
clutter-stage.h \
|
||||
clutter-stage-manager.h \
|
||||
clutter-stage-view.h \
|
||||
clutter-tap-action.h \
|
||||
clutter-test-utils.h \
|
||||
clutter-texture.h \
|
||||
clutter-text.h \
|
||||
clutter-text-buffer.h \
|
||||
clutter-timeline.h \
|
||||
clutter-transition-group.h \
|
||||
clutter-transition.h \
|
||||
clutter-types.h \
|
||||
clutter-units.h \
|
||||
clutter-zoom-action.h \
|
||||
$(NULL)
|
||||
|
||||
source_c = \
|
||||
clutter-action.c \
|
||||
clutter-actor-box.c \
|
||||
clutter-actor-meta.c \
|
||||
clutter-actor.c \
|
||||
clutter-align-constraint.c \
|
||||
clutter-animatable.c \
|
||||
clutter-backend.c \
|
||||
clutter-base-types.c \
|
||||
clutter-bezier.c \
|
||||
clutter-bind-constraint.c \
|
||||
clutter-binding-pool.c \
|
||||
clutter-bin-layout.c \
|
||||
clutter-blur-effect.c \
|
||||
clutter-box-layout.c \
|
||||
clutter-brightness-contrast-effect.c \
|
||||
clutter-cairo.c \
|
||||
clutter-canvas.c \
|
||||
clutter-child-meta.c \
|
||||
clutter-click-action.c \
|
||||
clutter-clone.c \
|
||||
clutter-color.c \
|
||||
clutter-colorize-effect.c \
|
||||
clutter-constraint.c \
|
||||
clutter-container.c \
|
||||
clutter-content.c \
|
||||
clutter-deform-effect.c \
|
||||
clutter-desaturate-effect.c \
|
||||
clutter-device-manager.c \
|
||||
clutter-drag-action.c \
|
||||
clutter-drop-action.c \
|
||||
clutter-effect.c \
|
||||
clutter-event.c \
|
||||
clutter-feature.c \
|
||||
clutter-fixed-layout.c \
|
||||
clutter-flatten-effect.c \
|
||||
clutter-flow-layout.c \
|
||||
clutter-gesture-action.c \
|
||||
clutter-grid-layout.c \
|
||||
clutter-image.c \
|
||||
clutter-input-device.c \
|
||||
clutter-input-device-tool.c \
|
||||
clutter-interval.c \
|
||||
clutter-keyframe-transition.c \
|
||||
clutter-keysyms-table.c \
|
||||
clutter-layout-manager.c \
|
||||
clutter-layout-meta.c \
|
||||
clutter-main.c \
|
||||
clutter-master-clock.c \
|
||||
clutter-master-clock-default.c \
|
||||
clutter-offscreen-effect.c \
|
||||
clutter-page-turn-effect.c \
|
||||
clutter-paint-nodes.c \
|
||||
clutter-paint-node.c \
|
||||
clutter-pan-action.c \
|
||||
clutter-path-constraint.c \
|
||||
clutter-path.c \
|
||||
clutter-property-transition.c \
|
||||
clutter-rotate-action.c \
|
||||
clutter-script.c \
|
||||
clutter-script-parser.c \
|
||||
clutter-scriptable.c \
|
||||
clutter-scroll-actor.c \
|
||||
clutter-settings.c \
|
||||
clutter-shader-effect.c \
|
||||
clutter-shader-types.c \
|
||||
clutter-swipe-action.c \
|
||||
clutter-snap-constraint.c \
|
||||
clutter-stage.c \
|
||||
clutter-stage-manager.c \
|
||||
clutter-stage-view.c \
|
||||
clutter-stage-window.c \
|
||||
clutter-tap-action.c \
|
||||
clutter-test-utils.c \
|
||||
clutter-text.c \
|
||||
clutter-text-buffer.c \
|
||||
clutter-transition-group.c \
|
||||
clutter-transition.c \
|
||||
clutter-timeline.c \
|
||||
clutter-units.c \
|
||||
clutter-util.c \
|
||||
clutter-paint-volume.c \
|
||||
clutter-zoom-action.c \
|
||||
$(NULL)
|
||||
|
||||
# private headers; these should not be distributed or introspected
|
||||
source_h_priv = \
|
||||
clutter-actor-meta-private.h \
|
||||
clutter-actor-private.h \
|
||||
clutter-backend-private.h \
|
||||
clutter-bezier.h \
|
||||
clutter-constraint-private.h \
|
||||
clutter-content-private.h \
|
||||
clutter-debug.h \
|
||||
clutter-device-manager-private.h \
|
||||
clutter-easing.h \
|
||||
clutter-effect-private.h \
|
||||
clutter-event-translator.h \
|
||||
clutter-event-private.h \
|
||||
clutter-flatten-effect.h \
|
||||
clutter-gesture-action-private.h \
|
||||
clutter-id-pool.h \
|
||||
clutter-master-clock.h \
|
||||
clutter-master-clock-default.h \
|
||||
clutter-offscreen-effect-private.h \
|
||||
clutter-paint-node-private.h \
|
||||
clutter-paint-volume-private.h \
|
||||
clutter-private.h \
|
||||
clutter-script-private.h \
|
||||
clutter-settings-private.h \
|
||||
clutter-stage-manager-private.h \
|
||||
clutter-stage-private.h \
|
||||
clutter-stage-window.h \
|
||||
$(NULL)
|
||||
|
||||
# private source code; these should not be introspected
|
||||
source_c_priv = \
|
||||
clutter-easing.c \
|
||||
clutter-event-translator.c \
|
||||
clutter-id-pool.c \
|
||||
$(NULL)
|
||||
|
||||
# deprecated installed headers
|
||||
deprecated_h = \
|
||||
deprecated/clutter-actor.h \
|
||||
deprecated/clutter-alpha.h \
|
||||
deprecated/clutter-animatable.h \
|
||||
deprecated/clutter-animation.h \
|
||||
deprecated/clutter-animator.h \
|
||||
deprecated/clutter-backend.h \
|
||||
deprecated/clutter-behaviour.h \
|
||||
deprecated/clutter-behaviour-depth.h \
|
||||
deprecated/clutter-behaviour-ellipse.h \
|
||||
deprecated/clutter-behaviour-opacity.h \
|
||||
deprecated/clutter-behaviour-path.h \
|
||||
deprecated/clutter-behaviour-rotate.h \
|
||||
deprecated/clutter-behaviour-scale.h \
|
||||
deprecated/clutter-bin-layout.h \
|
||||
deprecated/clutter-box.h \
|
||||
deprecated/clutter-cairo-texture.h \
|
||||
deprecated/clutter-container.h \
|
||||
deprecated/clutter-frame-source.h \
|
||||
deprecated/clutter-group.h \
|
||||
deprecated/clutter-input-device.h \
|
||||
deprecated/clutter-keysyms.h \
|
||||
deprecated/clutter-list-model.h \
|
||||
deprecated/clutter-main.h \
|
||||
deprecated/clutter-media.h \
|
||||
deprecated/clutter-model.h \
|
||||
deprecated/clutter-rectangle.h \
|
||||
deprecated/clutter-score.h \
|
||||
deprecated/clutter-shader.h \
|
||||
deprecated/clutter-stage-manager.h \
|
||||
deprecated/clutter-stage.h \
|
||||
deprecated/clutter-state.h \
|
||||
deprecated/clutter-table-layout.h \
|
||||
deprecated/clutter-texture.h \
|
||||
deprecated/clutter-timeline.h \
|
||||
deprecated/clutter-timeout-pool.h \
|
||||
deprecated/clutter-util.h \
|
||||
$(NULL)
|
||||
|
||||
# deprecated source code
|
||||
deprecated_c = \
|
||||
deprecated/clutter-actor-deprecated.c \
|
||||
deprecated/clutter-alpha.c \
|
||||
deprecated/clutter-animation.c \
|
||||
deprecated/clutter-animator.c \
|
||||
deprecated/clutter-behaviour.c \
|
||||
deprecated/clutter-behaviour-depth.c \
|
||||
deprecated/clutter-behaviour-ellipse.c \
|
||||
deprecated/clutter-behaviour-opacity.c \
|
||||
deprecated/clutter-behaviour-path.c \
|
||||
deprecated/clutter-behaviour-rotate.c \
|
||||
deprecated/clutter-behaviour-scale.c \
|
||||
deprecated/clutter-box.c \
|
||||
deprecated/clutter-cairo-texture.c \
|
||||
deprecated/clutter-frame-source.c \
|
||||
deprecated/clutter-group.c \
|
||||
deprecated/clutter-input-device-deprecated.c \
|
||||
deprecated/clutter-layout-manager-deprecated.c \
|
||||
deprecated/clutter-list-model.c \
|
||||
deprecated/clutter-media.c \
|
||||
deprecated/clutter-model.c \
|
||||
deprecated/clutter-rectangle.c \
|
||||
deprecated/clutter-score.c \
|
||||
deprecated/clutter-shader.c \
|
||||
deprecated/clutter-state.c \
|
||||
deprecated/clutter-table-layout.c \
|
||||
deprecated/clutter-texture.c \
|
||||
deprecated/clutter-timeout-pool.c \
|
||||
$(NULL)
|
||||
|
||||
# deprecated private headers; these should not be installed
|
||||
deprecated_h_priv = \
|
||||
deprecated/clutter-model-private.h \
|
||||
deprecated/clutter-timeout-interval.h \
|
||||
$(NULL)
|
||||
|
||||
# deprecated private source code; these should not be introspected
|
||||
deprecated_c_priv = \
|
||||
deprecated/clutter-timeout-interval.c \
|
||||
$(NULL)
|
||||
|
||||
# built sources
|
||||
built_source_c = \
|
||||
clutter-enum-types.c \
|
||||
clutter-marshal.c \
|
||||
$(NULL)
|
||||
|
||||
# built headers
|
||||
built_source_h = \
|
||||
clutter-enum-types.h \
|
||||
clutter-marshal.h \
|
||||
$(NULL)
|
||||
|
||||
# config header
|
||||
DISTCLEANFILES += clutter-config.h
|
||||
EXTRA_DIST += clutter-config.h.in
|
||||
|
||||
# version header
|
||||
DISTCLEANFILES += clutter-version.h
|
||||
EXTRA_DIST += clutter-version.h.in clutter-version.h
|
||||
|
||||
# key symbol update script
|
||||
EXTRA_DIST += clutter-keysyms-update.pl
|
||||
|
||||
pc_files += mutter-clutter-$(CLUTTER_API_VERSION).pc
|
||||
|
||||
# in order to be compatible with Clutter < 1.10, when we shipped a single
|
||||
# shared library whose name was determined by the single backend it
|
||||
# supported, we need to install symbolic links so that existing applications
|
||||
# using Clutter won't break in the Brave New World of multi-backend support
|
||||
# in the same shared object.
|
||||
compat_libs =
|
||||
|
||||
# backends source listings
|
||||
#
|
||||
# backend_source_c := source code
|
||||
# backend_source_h := installed public headers
|
||||
# backend_source_c_priv := source that should not be scanned by g-i
|
||||
# backend_source_h_priv := private headers
|
||||
# backend_source_built := built sources
|
||||
#
|
||||
backend_source_c =
|
||||
backend_source_h =
|
||||
backend_source_c_priv =
|
||||
backend_source_h_priv =
|
||||
backend_source_built =
|
||||
|
||||
# X11 backend rules
|
||||
x11_source_c = \
|
||||
x11/clutter-backend-x11.c \
|
||||
x11/clutter-device-manager-core-x11.c \
|
||||
x11/clutter-event-x11.c \
|
||||
x11/clutter-input-device-core-x11.c \
|
||||
x11/clutter-keymap-x11.c \
|
||||
x11/clutter-stage-x11.c \
|
||||
x11/clutter-x11-texture-pixmap.c \
|
||||
$(NULL)
|
||||
|
||||
x11_source_h = \
|
||||
x11/clutter-x11.h \
|
||||
x11/clutter-x11-texture-pixmap.h \
|
||||
$(NULL)
|
||||
|
||||
x11_source_h_priv = \
|
||||
x11/clutter-backend-x11.h \
|
||||
x11/clutter-device-manager-core-x11.h \
|
||||
x11/clutter-input-device-core-x11.h \
|
||||
x11/clutter-keymap-x11.h \
|
||||
x11/clutter-settings-x11.h \
|
||||
x11/clutter-stage-x11.h \
|
||||
$(NULL)
|
||||
|
||||
x11_source_c_priv = \
|
||||
x11/xsettings/xsettings-client.c \
|
||||
x11/xsettings/xsettings-client.h \
|
||||
x11/xsettings/xsettings-common.c \
|
||||
x11/xsettings/xsettings-common.h \
|
||||
$(NULL)
|
||||
|
||||
x11_source_c += \
|
||||
x11/clutter-device-manager-xi2.c \
|
||||
x11/clutter-input-device-xi2.c \
|
||||
$(NULL)
|
||||
|
||||
x11_source_h_priv += \
|
||||
x11/clutter-device-manager-xi2.h \
|
||||
x11/clutter-input-device-xi2.h \
|
||||
$(NULL)
|
||||
|
||||
backend_source_h += $(x11_source_h)
|
||||
backend_source_c += $(x11_source_c)
|
||||
backend_source_h_priv += $(x11_source_h_priv)
|
||||
backend_source_c_priv += $(x11_source_c_priv)
|
||||
|
||||
# the list of files we want to introspect on X11
|
||||
x11_introspection = $(x11_source_c) $(x11_source_h)
|
||||
|
||||
clutterx11_includedir = $(clutter_includedir)/x11
|
||||
clutterx11_include_HEADERS = $(x11_source_h)
|
||||
|
||||
mutter-clutter-x11-$(CLUTTER_API_VERSION).pc: mutter-clutter-$(CLUTTER_API_VERSION).pc
|
||||
$(QUIET_GEN)cp -f $< $(@F)
|
||||
|
||||
pc_files += mutter-clutter-x11-$(CLUTTER_API_VERSION).pc
|
||||
|
||||
# Shared cogl backend files
|
||||
cogl_source_h =
|
||||
|
||||
cogl_source_c = \
|
||||
cogl/clutter-stage-cogl.c \
|
||||
$(NULL)
|
||||
|
||||
cogl_source_h_priv = \
|
||||
cogl/clutter-stage-cogl.h \
|
||||
$(NULL)
|
||||
|
||||
cogl_source_c_priv =
|
||||
|
||||
backend_source_h += $(cogl_source_h)
|
||||
backend_source_c += $(cogl_source_c)
|
||||
backend_source_h_priv += $(cogl_source_h_priv)
|
||||
backend_source_c_priv += $(cogl_source_c_priv)
|
||||
|
||||
backend_source_h += $(glx_source_h)
|
||||
backend_source_c += $(glx_source_c)
|
||||
|
||||
evdev_c_priv = \
|
||||
evdev/clutter-device-manager-evdev.c \
|
||||
evdev/clutter-input-device-evdev.c \
|
||||
evdev/clutter-event-evdev.c \
|
||||
evdev/clutter-input-device-tool-evdev.c \
|
||||
$(NULL)
|
||||
evdev_h_priv = \
|
||||
evdev/clutter-device-manager-evdev.h \
|
||||
evdev/clutter-input-device-evdev.h \
|
||||
evdev/clutter-input-device-tool-evdev.h \
|
||||
$(NULL)
|
||||
evdev_h = evdev/clutter-evdev.h
|
||||
|
||||
if SUPPORT_WAYLAND
|
||||
backend_source_c_priv += $(evdev_c_priv)
|
||||
backend_source_h_priv += $(evdev_h_priv)
|
||||
backend_source_h += $(evdev_h)
|
||||
|
||||
clutterevdev_includedir = $(clutter_includedir)/evdev
|
||||
clutterevdev_include_HEADERS = $(evdev_h)
|
||||
|
||||
backend_source_c += evdev/clutter-xkb-utils.c
|
||||
backend_source_h_priv += evdev/clutter-xkb-utils.h
|
||||
|
||||
# EGL backend rules
|
||||
egl_source_h = \
|
||||
egl/clutter-egl-headers.h \
|
||||
egl/clutter-egl.h \
|
||||
$(NULL)
|
||||
|
||||
egl_source_h_priv = egl/clutter-backend-eglnative.h
|
||||
egl_source_c = egl/clutter-backend-eglnative.c
|
||||
|
||||
wayland_compositor_source_h = \
|
||||
wayland/clutter-wayland-compositor.h \
|
||||
wayland/clutter-wayland-surface.h
|
||||
backend_source_h += $(wayland_compositor_source_h)
|
||||
backend_source_c += \
|
||||
wayland/clutter-wayland-surface.c
|
||||
|
||||
wayland_compositor_includedir = $(clutter_includedir)/wayland
|
||||
wayland_compositor_include_HEADERS = $(wayland_compositor_source_h)
|
||||
|
||||
backend_source_h += $(egl_source_h)
|
||||
backend_source_c += $(egl_source_c)
|
||||
backend_source_h_priv += $(egl_source_h_priv)
|
||||
|
||||
clutteregl_includedir = $(clutter_includedir)/egl
|
||||
clutteregl_include_HEADERS = $(egl_source_h)
|
||||
endif # SUPPORT_WAYLAND
|
||||
|
||||
# cally
|
||||
cally_sources_h = \
|
||||
cally/cally-actor.h \
|
||||
cally/cally-clone.h \
|
||||
cally/cally-factory.h \
|
||||
cally/cally-group.h \
|
||||
cally/cally.h \
|
||||
cally/cally-main.h \
|
||||
cally/cally-rectangle.h \
|
||||
cally/cally-root.h \
|
||||
cally/cally-stage.h \
|
||||
cally/cally-text.h \
|
||||
cally/cally-texture.h \
|
||||
cally/cally-util.h \
|
||||
$(NULL)
|
||||
|
||||
cally_sources_c = \
|
||||
cally/cally-actor.c \
|
||||
cally/cally.c \
|
||||
cally/cally-clone.c \
|
||||
cally/cally-group.c \
|
||||
cally/cally-rectangle.c \
|
||||
cally/cally-root.c \
|
||||
cally/cally-stage.c \
|
||||
cally/cally-text.c \
|
||||
cally/cally-texture.c \
|
||||
cally/cally-util.c \
|
||||
$(NULL)
|
||||
|
||||
cally_sources_private = \
|
||||
cally/cally-actor-private.h \
|
||||
$(NULL)
|
||||
|
||||
cally_includedir = $(clutter_base_includedir)/cally
|
||||
cally_include_HEADERS = $(cally_sources_h)
|
||||
|
||||
# general build rules:
|
||||
# you should not need to modify anything below this point
|
||||
|
||||
# glib-genmarshal rules
|
||||
glib_marshal_list = clutter-marshal.list
|
||||
glib_marshal_prefix = _clutter_marshal
|
||||
include $(srcdir)/Makefile.am.marshal
|
||||
|
||||
# glib-mkenums rules
|
||||
glib_enum_h = clutter-enum-types.h
|
||||
glib_enum_c = clutter-enum-types.c
|
||||
glib_enum_headers = $(source_h) $(deprecated_h)
|
||||
include $(srcdir)/Makefile.am.enums
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = $(pc_files)
|
||||
DISTCLEANFILES += $(pc_files)
|
||||
|
||||
clutter_include_HEADERS = $(source_h) clutter.h clutter-version.h clutter-autocleanups.h clutter-mutter.h
|
||||
nodist_clutter_include_HEADERS = clutter-config.h $(built_source_h)
|
||||
|
||||
clutter_deprecated_HEADERS = $(deprecated_h)
|
||||
|
||||
mutterlibdir = $(libdir)/mutter
|
||||
mutterlib_LTLIBRARIES = libmutter-clutter-@CLUTTER_API_VERSION@.la
|
||||
|
||||
libmutter_clutter_@CLUTTER_API_VERSION@_la_LIBADD = \
|
||||
$(LIBM) \
|
||||
$(CLUTTER_LIBS) \
|
||||
$(top_builddir)/../cogl/cogl/libmutter-cogl.la \
|
||||
$(top_builddir)/../cogl/cogl-pango/libmutter-cogl-pango.la \
|
||||
$(top_builddir)/../cogl/cogl-path/libmutter-cogl-path.la \
|
||||
$(NULL)
|
||||
|
||||
libmutter_clutter_@CLUTTER_API_VERSION@_la_SOURCES = \
|
||||
$(backend_source_c) \
|
||||
$(backend_source_h) \
|
||||
$(backend_source_c_priv) \
|
||||
$(backend_source_h_priv) \
|
||||
$(source_c) \
|
||||
$(source_h) \
|
||||
$(source_c_priv) \
|
||||
$(source_h_priv) \
|
||||
$(deprecated_c) \
|
||||
$(deprecated_h) \
|
||||
$(deprecated_c_priv) \
|
||||
$(deprecated_h_priv) \
|
||||
$(cally_sources_c) \
|
||||
$(cally_sources_h) \
|
||||
$(cally_sources_private) \
|
||||
$(NULL)
|
||||
|
||||
nodist_libmutter_clutter_@CLUTTER_API_VERSION@_la_SOURCES = \
|
||||
$(backend_source_built) \
|
||||
$(built_source_c) \
|
||||
$(built_source_h)
|
||||
|
||||
libmutter_clutter_@CLUTTER_API_VERSION@_la_LDFLAGS = \
|
||||
$(CLUTTER_LINK_FLAGS) \
|
||||
$(CLUTTER_LT_LDFLAGS) \
|
||||
-export-dynamic \
|
||||
-rpath $(mutterlibdir) \
|
||||
$(NULL)
|
||||
|
||||
install-exec-local:
|
||||
test -z "$(mutterlibdir)" || $(MKDIR_P) "$(DESTDIR)$(mutterlibdir)"
|
||||
for lib in `echo $(compat_libs)`; do \
|
||||
(cd $(DESTDIR)$(mutterlibdir) && \
|
||||
rm -f $$lib.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION); \
|
||||
) ; \
|
||||
(cd $(DESTDIR)$(mutterlibdir) && \
|
||||
{ ln -s -f libmutter-clutter-$(CLUTTER_API_VERSION).so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib.0 || \
|
||||
{ rm -f $$lib.0 && ln -s libmutter-clutter-1.0.so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib.0; }; \
|
||||
} \
|
||||
) ; \
|
||||
(cd $(DESTDIR)$(mutterlibdir) && \
|
||||
{ ln -s -f libmutter-clutter-$(CLUTTER_API_VERSION).so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib || \
|
||||
{ rm -f $$lib && ln -s libmutter-clutter-1.0.so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib; }; \
|
||||
} \
|
||||
) ; \
|
||||
done
|
||||
|
||||
# gobject-introspection rules
|
||||
-include $(INTROSPECTION_MAKEFILE)
|
||||
|
||||
INTROSPECTION_SCANNER_ARGS = --add-include-path=$(top_builddir)/../cogl/cogl --add-include-path=$(top_builddir)/../cogl/cogl-pango
|
||||
INTROSPECTION_COMPILER_ARGS = --includedir=$(top_builddir)/../cogl/cogl --includedir=$(top_builddir)/../cogl/cogl-pango
|
||||
|
||||
Clutter-@CLUTTER_API_VERSION@.gir: libmutter-clutter-@CLUTTER_API_VERSION@.la Makefile
|
||||
|
||||
Clutter_@CLUTTER_API_VERSION_AM@_gir_NAMESPACE = Clutter
|
||||
Clutter_@CLUTTER_API_VERSION_AM@_gir_VERSION = @CLUTTER_API_VERSION@
|
||||
Clutter_@CLUTTER_API_VERSION_AM@_gir_LIBS = libmutter-clutter-@CLUTTER_API_VERSION@.la
|
||||
Clutter_@CLUTTER_API_VERSION_AM@_gir_FILES = \
|
||||
$(clutter_include_HEADERS) \
|
||||
$(clutter_deprecated_HEADERS) \
|
||||
$(nodist_clutter_include_HEADERS) \
|
||||
$(source_c) \
|
||||
$(deprecated_c) \
|
||||
$(built_source_c)
|
||||
Clutter_@CLUTTER_API_VERSION_AM@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS)
|
||||
Clutter_@CLUTTER_API_VERSION_AM@_gir_INCLUDES = GL-1.0 GObject-2.0 cairo-1.0 Cogl-1.0 CoglPango-1.0 Atk-1.0 Json-1.0
|
||||
Clutter_@CLUTTER_API_VERSION_AM@_gir_SCANNERFLAGS = \
|
||||
--warn-all \
|
||||
--c-include='clutter/clutter.h' \
|
||||
--pkg-export=mutter-clutter-@CLUTTER_API_VERSION@
|
||||
|
||||
INTROSPECTION_GIRS += Clutter-@CLUTTER_API_VERSION@.gir
|
||||
|
||||
Cally-@CLUTTER_API_VERSION@.gir: Makefile Clutter-@CLUTTER_API_VERSION@.gir
|
||||
|
||||
Cally_@CLUTTER_API_VERSION_AM@_gir_NAMESPACE = Cally
|
||||
Cally_@CLUTTER_API_VERSION_AM@_gir_VERSION = @CLUTTER_API_VERSION@
|
||||
Cally_@CLUTTER_API_VERSION_AM@_gir_LIBS = libmutter-clutter-@CLUTTER_API_VERSION@.la
|
||||
Cally_@CLUTTER_API_VERSION_AM@_gir_FILES = $(cally_sources_h) $(cally_sources_c)
|
||||
Cally_@CLUTTER_API_VERSION_AM@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS)
|
||||
Cally_@CLUTTER_API_VERSION_AM@_gir_SCANNERFLAGS = \
|
||||
--warn-all \
|
||||
--c-include='cally/cally.h' \
|
||||
--pkg-export=mutter-cally-@CLUTTER_API_VERSION@ \
|
||||
--include-uninstalled=$(top_builddir)/clutter/Clutter-@CLUTTER_API_VERSION@.gir
|
||||
|
||||
INTROSPECTION_GIRS += Cally-@CLUTTER_API_VERSION@.gir
|
||||
|
||||
ClutterX11-@CLUTTER_API_VERSION@.gir: Makefile Clutter-@CLUTTER_API_VERSION@.gir
|
||||
|
||||
ClutterX11_@CLUTTER_API_VERSION_AM@_gir_NAMESPACE = ClutterX11
|
||||
ClutterX11_@CLUTTER_API_VERSION_AM@_gir_INCLUDES = xlib-2.0
|
||||
ClutterX11_@CLUTTER_API_VERSION_AM@_gir_LIBS = libmutter-clutter-@CLUTTER_API_VERSION@.la
|
||||
ClutterX11_@CLUTTER_API_VERSION_AM@_gir_FILES = $(x11_introspection)
|
||||
ClutterX11_@CLUTTER_API_VERSION_AM@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS)
|
||||
ClutterX11_@CLUTTER_API_VERSION_AM@_gir_SCANNERFLAGS = \
|
||||
--warn-all \
|
||||
--c-include='clutter/x11/clutter-x11.h' \
|
||||
--pkg-export=mutter-clutter-x11-@CLUTTER_API_VERSION@ \
|
||||
--include-uninstalled=$(top_builddir)/clutter/Clutter-@CLUTTER_API_VERSION@.gir
|
||||
|
||||
INTROSPECTION_GIRS += ClutterX11-@CLUTTER_API_VERSION@.gir
|
||||
|
||||
# INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
|
||||
# install anything - we need to install inside our prefix.
|
||||
girdir = $(mutterlibdir)
|
||||
gir_DATA = $(INTROSPECTION_GIRS)
|
||||
|
||||
typelibdir = $(mutterlibdir)
|
||||
typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
|
||||
|
||||
EXTRA_DIST += \
|
||||
Makefile.am.marshal \
|
||||
Makefile.am.enums
|
||||
|
||||
CLEANFILES += $(gir_DATA) $(typelib_DATA)
|
@@ -1,52 +0,0 @@
|
||||
# Rules for generating enumeration types using glib-mkenums
|
||||
#
|
||||
# Define:
|
||||
# glib_enum_h = header template file
|
||||
# glib_enum_c = source template file
|
||||
# glib_enum_headers = list of headers to parse
|
||||
#
|
||||
# before including Makefile.am.enums. You will also need to have
|
||||
# the following targets already defined:
|
||||
#
|
||||
# CLEANFILES
|
||||
# DISTCLEANFILES
|
||||
# BUILT_SOURCES
|
||||
# EXTRA_DIST
|
||||
#
|
||||
# Author: Emmanuele Bassi <ebassi@linux.intel.com>
|
||||
|
||||
# Basic sanity checks
|
||||
$(if $(GLIB_MKENUMS),,$(error Need to define GLIB_MKENUMS))
|
||||
|
||||
$(if $(or $(glib_enum_h), \
|
||||
$(glib_enum_c)),, \
|
||||
$(error Need to define glib_enum_h and glib_enum_c))
|
||||
|
||||
$(if $(glib_enum_headers),,$(error Need to define glib_enum_headers))
|
||||
|
||||
enum_tmpl_h=$(addprefix $(srcdir)/, $(glib_enum_h:.h=.h.in))
|
||||
enum_tmpl_c=$(addprefix $(srcdir)/, $(glib_enum_c:.c=.c.in))
|
||||
enum_headers=$(addprefix $(srcdir)/, $(glib_enum_headers))
|
||||
|
||||
CLEANFILES += stamp-enum-types
|
||||
DISTCLEANFILES += $(glib_enum_h) $(glib_enum_c)
|
||||
BUILT_SOURCES += $(glib_enum_h) $(glib_enum_c)
|
||||
EXTRA_DIST += $(enum_tmpl_h) $(enum_tmpl_c)
|
||||
|
||||
stamp-enum-types: $(enum_headers) $(enum_tmpl_h)
|
||||
$(AM_V_GEN)$(GLIB_MKENUMS) \
|
||||
--template $(enum_tmpl_h) \
|
||||
$(enum_headers) > xgen-eh \
|
||||
&& (cmp -s xgen-eh $(glib_enum_h) || cp -f xgen-eh $(glib_enum_h)) \
|
||||
&& rm -f xgen-eh \
|
||||
&& echo timestamp > $(@F)
|
||||
|
||||
$(glib_enum_h): stamp-enum-types
|
||||
@true
|
||||
|
||||
$(glib_enum_c): $(enum_headers) $(enum_tmpl_h) $(enum_tmpl_c)
|
||||
$(AM_V_GEN)$(GLIB_MKENUMS) \
|
||||
--template $(enum_tmpl_c) \
|
||||
$(enum_headers) > xgen-ec \
|
||||
&& cp -f xgen-ec $(glib_enum_c) \
|
||||
&& rm -f xgen-ec
|
@@ -1,52 +0,0 @@
|
||||
# Rules for generating marshal files using glib-genmarshal
|
||||
#
|
||||
# Define:
|
||||
# glib_marshal_list = marshal list file
|
||||
# glib_marshal_prefix = prefix for marshal functions
|
||||
#
|
||||
# before including Makefile.am.marshal. You will also need to have
|
||||
# the following targets already defined:
|
||||
#
|
||||
# CLEANFILES
|
||||
# DISTCLEANFILES
|
||||
# BUILT_SOURCES
|
||||
# EXTRA_DIST
|
||||
#
|
||||
# Author: Emmanuele Bassi <ebassi@linux.intel.com>
|
||||
|
||||
# Basic sanity checks
|
||||
$(if $(GLIB_GENMARSHAL),,$(error Need to define GLIB_GENMARSHAL))
|
||||
|
||||
$(if $(or $(glib_marshal_list), \
|
||||
$(glib_marshal_prefix)),, \
|
||||
$(error Need to define glib_marshal_list and glib_marshal_prefix))
|
||||
|
||||
marshal_h = $(glib_marshal_list:.list=.h)
|
||||
marshal_c = $(glib_marshal_list:.list=.c)
|
||||
marshal_list = $(addprefix $(srcdir)/, $(glib_marshal_list))
|
||||
|
||||
CLEANFILES += stamp-marshal
|
||||
DISTCLEANFILES += $(marshal_h) $(marshal_c)
|
||||
BUILT_SOURCES += $(marshal_h) $(marshal_c)
|
||||
EXTRA_DIST += $(marshal_list)
|
||||
|
||||
stamp-marshal: $(marshal_list)
|
||||
$(AM_V_GEN)$(GLIB_GENMARSHAL) \
|
||||
--prefix=$(glib_marshal_prefix) \
|
||||
--header \
|
||||
$(marshal_list) > xgen-mh \
|
||||
&& (cmp -s xgen-mh $(marshal_h) || cp -f xgen-mh $(marshal_h)) \
|
||||
&& rm -f xgen-mh \
|
||||
&& echo timestamp > $(@F)
|
||||
|
||||
$(marshal_h): stamp-marshal
|
||||
@true
|
||||
|
||||
$(marshal_c): $(marshal_h)
|
||||
$(AM_V_GEN)(echo "#include \"$(marshal_h)\"" ; \
|
||||
$(GLIB_GENMARSHAL) \
|
||||
--prefix=$(glib_marshal_prefix) \
|
||||
--body \
|
||||
$(marshal_list)) > xgen-mc \
|
||||
&& cp xgen-mc $(marshal_c) \
|
||||
&& rm -f xgen-mc
|
@@ -67,9 +67,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <glib.h>
|
||||
#include <clutter/clutter.h>
|
||||
@@ -781,7 +779,7 @@ _cally_actor_get_top_level_origin (ClutterActor *actor,
|
||||
"position of the stage");
|
||||
}
|
||||
else
|
||||
#else
|
||||
#endif
|
||||
{
|
||||
static gboolean yet_warned = FALSE;
|
||||
|
||||
@@ -793,7 +791,6 @@ _cally_actor_get_top_level_origin (ClutterActor *actor,
|
||||
"atk_component_get_extents() with ATK_XY_SCREEN.");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (xp)
|
||||
*xp = x;
|
||||
|
@@ -126,19 +126,19 @@ struct _CallyActorClass
|
||||
gpointer _padding_dummy[32];
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType cally_actor_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
AtkObject* cally_actor_new (ClutterActor *actor);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
guint cally_actor_add_action (CallyActor *cally_actor,
|
||||
const gchar *action_name,
|
||||
const gchar *action_description,
|
||||
const gchar *action_keybinding,
|
||||
CallyActionFunc action_func);
|
||||
CLUTTER_AVAILABLE_IN_1_6
|
||||
CLUTTER_EXPORT
|
||||
guint cally_actor_add_action_full (CallyActor *cally_actor,
|
||||
const gchar *action_name,
|
||||
const gchar *action_description,
|
||||
@@ -147,11 +147,11 @@ guint cally_actor_add_action_full (CallyActor *cally_actor,
|
||||
gpointer user_data,
|
||||
GDestroyNotify notify);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
gboolean cally_actor_remove_action (CallyActor *cally_actor,
|
||||
gint action_id);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
gboolean cally_actor_remove_action_by_name (CallyActor *cally_actor,
|
||||
const gchar *action_name);
|
||||
|
||||
|
@@ -74,9 +74,9 @@ struct _CallyCloneClass
|
||||
gpointer _padding_dummy[8];
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType cally_clone_get_type (void) G_GNUC_CONST;
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
AtkObject *cally_clone_new (ClutterActor *actor);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -77,9 +77,9 @@ struct _CallyGroupClass
|
||||
gpointer _padding_dummy[8];
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType cally_group_get_type (void) G_GNUC_CONST;
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
AtkObject* cally_group_new (ClutterActor *actor);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -34,9 +34,9 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
gboolean cally_get_cally_initialized (void);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
gboolean cally_accessibility_init (void);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -74,9 +74,9 @@ struct _CallyRectangleClass
|
||||
gpointer _padding_dummy[8];
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType cally_rectangle_get_type (void) G_GNUC_CONST;
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
AtkObject* cally_rectangle_new (ClutterActor *actor);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -74,9 +74,9 @@ struct _CallyRootClass
|
||||
gpointer _padding_dummy[16];
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType cally_root_get_type (void) G_GNUC_CONST;
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
AtkObject *cally_root_new (void);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -74,9 +74,9 @@ struct _CallyStageClass
|
||||
gpointer _padding_dummy[16];
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType cally_stage_get_type (void) G_GNUC_CONST;
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
AtkObject *cally_stage_new (ClutterActor *actor);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -39,9 +39,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "cally-text.h"
|
||||
#include "cally-actor-private.h"
|
||||
|
@@ -74,9 +74,9 @@ struct _CallyTextClass
|
||||
gpointer _padding_dummy[8];
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType cally_text_get_type (void) G_GNUC_CONST;
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
AtkObject* cally_text_new (ClutterActor *actor);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -74,9 +74,9 @@ struct _CallyTextureClass
|
||||
gpointer _padding_dummy[8];
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType cally_texture_get_type (void) G_GNUC_CONST;
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
AtkObject *cally_texture_new (ClutterActor *actor);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -38,9 +38,7 @@
|
||||
* available any accessible object.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -144,7 +142,7 @@ cally_util_get_toolkit_name (void)
|
||||
static const gchar *
|
||||
cally_util_get_toolkit_version (void)
|
||||
{
|
||||
return CLUTTER_VERSION_S;
|
||||
return MUTTER_VERSION;
|
||||
}
|
||||
|
||||
static guint
|
||||
@@ -214,6 +212,8 @@ cally_util_simulate_snooper_install (void)
|
||||
G_CALLBACK (cally_util_stage_added_cb), cally_key_snooper);
|
||||
g_signal_connect (G_OBJECT (stage_manager), "stage-removed",
|
||||
G_CALLBACK (cally_util_stage_removed_cb), cally_key_snooper);
|
||||
|
||||
g_slist_free (stage_list);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -74,7 +74,7 @@ struct _CallyUtilClass
|
||||
gpointer _padding_dummy[8];
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType cally_util_get_type (void) G_GNUC_CONST;
|
||||
|
||||
void _cally_util_override_atk_util (void);
|
||||
|
@@ -29,9 +29,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_DISABLE_DEPRECATION_WARNINGS
|
||||
|
||||
|
@@ -41,9 +41,7 @@
|
||||
* #ClutterAction is available since Clutter 1.4
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-action.h"
|
||||
|
||||
|
@@ -78,32 +78,32 @@ struct _ClutterActionClass
|
||||
void (* _clutter_action8) (void);
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_action_get_type (void) G_GNUC_CONST;
|
||||
|
||||
/* ClutterActor API */
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_add_action (ClutterActor *self,
|
||||
ClutterAction *action);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_add_action_with_name (ClutterActor *self,
|
||||
const gchar *name,
|
||||
ClutterAction *action);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_remove_action (ClutterActor *self,
|
||||
ClutterAction *action);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_remove_action_by_name (ClutterActor *self,
|
||||
const gchar *name);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterAction *clutter_actor_get_action (ClutterActor *self,
|
||||
const gchar *name);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GList * clutter_actor_get_actions (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_clear_actions (ClutterActor *self);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_has_actions (ClutterActor *self);
|
||||
|
||||
G_END_DECLS
|
||||
|
12
clutter/clutter/clutter-actor-box-private.h
Normal file
12
clutter/clutter/clutter-actor-box-private.h
Normal file
@@ -0,0 +1,12 @@
|
||||
#ifndef __CLUTTER_ACTOR_BOX_PRIVATE_H__
|
||||
#define __CLUTTER_ACTOR_BOX_PRIVATE_H__
|
||||
|
||||
#include <clutter/clutter-types.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
void _clutter_actor_box_enlarge_for_effects (ClutterActorBox *box);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __CLUTTER_ACTOR_BOX_PRIVATE_H__ */
|
@@ -1,12 +1,11 @@
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#include "clutter-types.h"
|
||||
#include "clutter-interval.h"
|
||||
#include "clutter-private.h"
|
||||
#include "clutter-actor-box-private.h"
|
||||
|
||||
/**
|
||||
* clutter_actor_box_new:
|
||||
@@ -544,6 +543,57 @@ clutter_actor_box_set_size (ClutterActorBox *box,
|
||||
box->y2 = box->y1 + height;
|
||||
}
|
||||
|
||||
void
|
||||
_clutter_actor_box_enlarge_for_effects (ClutterActorBox *box)
|
||||
{
|
||||
float width, height;
|
||||
|
||||
/* The aim here is that for a given rectangle defined with floating point
|
||||
* coordinates we want to determine a stable quantized size in pixels
|
||||
* that doesn't vary due to the original box's sub-pixel position.
|
||||
*
|
||||
* The reason this is important is because effects will use this
|
||||
* API to determine the size of offscreen framebuffers and so for
|
||||
* a fixed-size object that may be animated accross the screen we
|
||||
* want to make sure that the stage paint-box has an equally stable
|
||||
* size so that effects aren't made to continuously re-allocate
|
||||
* a corresponding fbo.
|
||||
*
|
||||
* The other thing we consider is that the calculation of this box is
|
||||
* subject to floating point precision issues that might be slightly
|
||||
* different to the precision issues involved with actually painting the
|
||||
* actor, which might result in painting slightly leaking outside the
|
||||
* user's calculated paint-volume. For this we simply aim to pad out the
|
||||
* paint-volume by at least half a pixel all the way around.
|
||||
*/
|
||||
width = box->x2 - box->x1;
|
||||
height = box->y2 - box->y1;
|
||||
width = CLUTTER_NEARBYINT (width);
|
||||
height = CLUTTER_NEARBYINT (height);
|
||||
/* XXX: NB the width/height may now be up to 0.5px too small so we
|
||||
* must also pad by 0.25px all around to account for this. In total we
|
||||
* must padd by at least 0.75px around all sides. */
|
||||
|
||||
/* XXX: The furthest that we can overshoot the bottom right corner by
|
||||
* here is 1.75px in total if you consider that the 0.75 padding could
|
||||
* just cross an integer boundary and so ceil will effectively add 1.
|
||||
*/
|
||||
box->x2 = ceilf (box->x2 + 0.75);
|
||||
box->y2 = ceilf (box->y2 + 0.75);
|
||||
|
||||
/* Now we redefine the top-left relative to the bottom right based on the
|
||||
* rounded width/height determined above + a constant so that the overall
|
||||
* size of the box will be stable and not dependant on the box's
|
||||
* position.
|
||||
*
|
||||
* Adding 3px to the width/height will ensure we cover the maximum of
|
||||
* 1.75px padding on the bottom/right and still ensure we have > 0.75px
|
||||
* padding on the top/left.
|
||||
*/
|
||||
box->x1 = box->x2 - width - 3;
|
||||
box->y1 = box->y2 - height - 3;
|
||||
}
|
||||
|
||||
G_DEFINE_BOXED_TYPE_WITH_CODE (ClutterActorBox, clutter_actor_box,
|
||||
clutter_actor_box_copy,
|
||||
clutter_actor_box_free,
|
||||
|
@@ -41,9 +41,7 @@
|
||||
* #ClutterActorMeta is available since Clutter 1.4
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-actor-meta-private.h"
|
||||
|
||||
|
@@ -97,21 +97,21 @@ struct _ClutterActorMetaClass
|
||||
void (* _clutter_meta7) (void);
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_actor_meta_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_meta_set_name (ClutterActorMeta *meta,
|
||||
const gchar *name);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
const gchar * clutter_actor_meta_get_name (ClutterActorMeta *meta);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_meta_set_enabled (ClutterActorMeta *meta,
|
||||
gboolean is_enabled);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_meta_get_enabled (ClutterActorMeta *meta);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterActor * clutter_actor_meta_get_actor (ClutterActorMeta *meta);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -275,13 +275,13 @@ void _clutter_actor_set_enable_paint_unmapped
|
||||
void _clutter_actor_set_has_pointer (ClutterActor *self,
|
||||
gboolean has_pointer);
|
||||
|
||||
void _clutter_actor_queue_redraw_with_clip (ClutterActor *self,
|
||||
ClutterRedrawFlags flags,
|
||||
ClutterPaintVolume *clip_volume);
|
||||
void _clutter_actor_queue_redraw_full (ClutterActor *self,
|
||||
ClutterRedrawFlags flags,
|
||||
ClutterPaintVolume *volume,
|
||||
ClutterEffect *effect);
|
||||
void _clutter_actor_queue_redraw_with_clip (ClutterActor *self,
|
||||
ClutterRedrawFlags flags,
|
||||
const ClutterPaintVolume *clip_volume);
|
||||
void _clutter_actor_queue_redraw_full (ClutterActor *self,
|
||||
ClutterRedrawFlags flags,
|
||||
const ClutterPaintVolume *volume,
|
||||
ClutterEffect *effect);
|
||||
|
||||
ClutterPaintVolume * _clutter_actor_get_queue_redraw_clip (ClutterActor *self);
|
||||
void _clutter_actor_set_queue_redraw_clip (ClutterActor *self,
|
||||
|
@@ -840,6 +840,8 @@ struct _ClutterActorPrivate
|
||||
guint needs_compute_expand : 1;
|
||||
guint needs_x_expand : 1;
|
||||
guint needs_y_expand : 1;
|
||||
guint needs_paint_volume_update : 1;
|
||||
guint had_effects_on_last_paint_volume_update : 1;
|
||||
};
|
||||
|
||||
enum
|
||||
@@ -1092,6 +1094,11 @@ static void clutter_actor_set_child_transform_internal (ClutterActor *sel
|
||||
static void clutter_actor_realize_internal (ClutterActor *self);
|
||||
static void clutter_actor_unrealize_internal (ClutterActor *self);
|
||||
|
||||
static void clutter_actor_push_in_cloned_branch (ClutterActor *self,
|
||||
gulong count);
|
||||
static void clutter_actor_pop_in_cloned_branch (ClutterActor *self,
|
||||
gulong count);
|
||||
|
||||
/* Helper macro which translates by the anchor coord, applies the
|
||||
given transformation and then translates back */
|
||||
#define TRANSFORM_ABOUT_ANCHOR_COORD(a,m,c,_transform) G_STMT_START { \
|
||||
@@ -1504,6 +1511,8 @@ clutter_actor_real_map (ClutterActor *self)
|
||||
|
||||
CLUTTER_ACTOR_SET_FLAGS (self, CLUTTER_ACTOR_MAPPED);
|
||||
|
||||
self->priv->needs_paint_volume_update = TRUE;
|
||||
|
||||
stage = _clutter_actor_get_stage_internal (self);
|
||||
priv->pick_id = _clutter_stage_acquire_pick_id (CLUTTER_STAGE (stage), self);
|
||||
|
||||
@@ -1713,6 +1722,22 @@ set_show_on_set_parent (ClutterActor *self,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_actor_queue_redraw_on_parent (ClutterActor *self)
|
||||
{
|
||||
const ClutterPaintVolume *pv;
|
||||
|
||||
if (!self->priv->parent)
|
||||
return;
|
||||
|
||||
/* A relayout/redraw is underway */
|
||||
if (self->priv->needs_allocation)
|
||||
return;
|
||||
|
||||
pv = clutter_actor_get_transformed_paint_volume (self, self->priv->parent);
|
||||
_clutter_actor_queue_redraw_with_clip (self->priv->parent, 0, pv);
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_actor_show:
|
||||
* @self: A #ClutterActor
|
||||
@@ -1768,7 +1793,7 @@ clutter_actor_show (ClutterActor *self)
|
||||
g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_VISIBLE]);
|
||||
|
||||
if (priv->parent != NULL)
|
||||
clutter_actor_queue_redraw (priv->parent);
|
||||
clutter_actor_queue_redraw (self);
|
||||
|
||||
g_object_thaw_notify (G_OBJECT (self));
|
||||
}
|
||||
@@ -1893,8 +1918,10 @@ clutter_actor_hide (ClutterActor *self)
|
||||
g_signal_emit (self, actor_signals[HIDE], 0);
|
||||
g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_VISIBLE]);
|
||||
|
||||
if (priv->parent != NULL)
|
||||
if (priv->parent != NULL && priv->needs_allocation)
|
||||
clutter_actor_queue_redraw (priv->parent);
|
||||
else
|
||||
clutter_actor_queue_redraw_on_parent (self);
|
||||
|
||||
g_object_thaw_notify (G_OBJECT (self));
|
||||
}
|
||||
@@ -2218,25 +2245,46 @@ static void
|
||||
clutter_actor_real_pick (ClutterActor *self,
|
||||
const ClutterColor *color)
|
||||
{
|
||||
CoglFramebuffer *framebuffer = cogl_get_draw_framebuffer ();
|
||||
|
||||
/* the default implementation is just to paint a rectangle
|
||||
* with the same size of the actor using the passed color
|
||||
*/
|
||||
if (clutter_actor_should_pick_paint (self))
|
||||
{
|
||||
static CoglPipeline *default_pick_pipeline = NULL;
|
||||
ClutterActorBox box = { 0, };
|
||||
CoglPipeline *pick_pipeline;
|
||||
float width, height;
|
||||
|
||||
if (G_UNLIKELY (default_pick_pipeline == NULL))
|
||||
{
|
||||
CoglContext *ctx =
|
||||
clutter_backend_get_cogl_context (clutter_get_default_backend ());
|
||||
|
||||
default_pick_pipeline = cogl_pipeline_new (ctx);
|
||||
}
|
||||
|
||||
g_assert (default_pick_pipeline != NULL);
|
||||
pick_pipeline = cogl_pipeline_copy (default_pick_pipeline);
|
||||
|
||||
clutter_actor_get_allocation_box (self, &box);
|
||||
|
||||
width = box.x2 - box.x1;
|
||||
height = box.y2 - box.y1;
|
||||
|
||||
cogl_set_source_color4ub (color->red,
|
||||
color->green,
|
||||
color->blue,
|
||||
color->alpha);
|
||||
cogl_pipeline_set_color4ub (pick_pipeline,
|
||||
color->red,
|
||||
color->green,
|
||||
color->blue,
|
||||
color->alpha);
|
||||
|
||||
cogl_rectangle (0, 0, width, height);
|
||||
cogl_framebuffer_draw_rectangle (framebuffer,
|
||||
pick_pipeline,
|
||||
0, 0,
|
||||
width, height);
|
||||
|
||||
cogl_object_unref (pick_pipeline);
|
||||
}
|
||||
|
||||
/* XXX - this thoroughly sucks, but we need to maintain compatibility
|
||||
@@ -2656,7 +2704,15 @@ _clutter_actor_signal_queue_redraw (ClutterActor *self,
|
||||
_clutter_actor_queue_redraw_on_clones (self);
|
||||
|
||||
/* calls klass->queue_redraw in default handler */
|
||||
g_signal_emit (self, actor_signals[QUEUE_REDRAW], 0, origin);
|
||||
if (g_signal_has_handler_pending (self, actor_signals[QUEUE_REDRAW],
|
||||
0, TRUE))
|
||||
{
|
||||
g_signal_emit (self, actor_signals[QUEUE_REDRAW], 0, origin);
|
||||
}
|
||||
else
|
||||
{
|
||||
CLUTTER_ACTOR_GET_CLASS (self)->queue_redraw (self, origin);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -2729,6 +2785,7 @@ clutter_actor_real_queue_relayout (ClutterActor *self)
|
||||
priv->needs_width_request = TRUE;
|
||||
priv->needs_height_request = TRUE;
|
||||
priv->needs_allocation = TRUE;
|
||||
priv->needs_paint_volume_update = TRUE;
|
||||
|
||||
/* reset the cached size requests */
|
||||
memset (priv->width_requests, 0,
|
||||
@@ -2813,7 +2870,7 @@ _clutter_actor_fully_transform_vertices (ClutterActor *self,
|
||||
/* Note: we pass NULL as the ancestor because we don't just want the modelview
|
||||
* that gets us to stage coordinates, we want to go all the way to eye
|
||||
* coordinates */
|
||||
_clutter_actor_apply_relative_transformation_matrix (self, NULL, &modelview);
|
||||
_clutter_actor_get_relative_transformation_matrix (self, NULL, &modelview);
|
||||
|
||||
/* Fetch the projection and viewport */
|
||||
_clutter_stage_get_projection_matrix (CLUTTER_STAGE (stage), &projection);
|
||||
@@ -3683,7 +3740,7 @@ clutter_actor_paint_node (ClutterActor *actor,
|
||||
if (!clutter_stage_get_no_clear_hint (CLUTTER_STAGE (actor)))
|
||||
clear_flags |= COGL_BUFFER_BIT_COLOR;
|
||||
|
||||
node = _clutter_root_node_new (fb, &bg_color, clear_flags);
|
||||
node = clutter_root_node_new (fb, &bg_color, clear_flags);
|
||||
clutter_paint_node_set_name (node, "stageClear");
|
||||
clutter_paint_node_add_rectangle (node, &box);
|
||||
clutter_paint_node_add_child (root, node);
|
||||
@@ -3722,7 +3779,7 @@ clutter_actor_paint_node (ClutterActor *actor,
|
||||
}
|
||||
#endif /* CLUTTER_ENABLE_DEBUG */
|
||||
|
||||
_clutter_paint_node_paint (root);
|
||||
clutter_paint_node_paint (root);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -4015,7 +4072,11 @@ clutter_actor_continue_paint (ClutterActor *self)
|
||||
clutter_paint_node_unref (dummy);
|
||||
|
||||
/* XXX:2.0 - Call the paint() virtual directly */
|
||||
g_signal_emit (self, actor_signals[PAINT], 0);
|
||||
if (g_signal_has_handler_pending (self, actor_signals[PAINT],
|
||||
0, TRUE))
|
||||
g_signal_emit (self, actor_signals[PAINT], 0);
|
||||
else
|
||||
CLUTTER_ACTOR_GET_CLASS (self)->paint (self);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -4029,7 +4090,11 @@ clutter_actor_continue_paint (ClutterActor *self)
|
||||
*
|
||||
* XXX:2.0 - Call the pick() virtual directly
|
||||
*/
|
||||
g_signal_emit (self, actor_signals[PICK], 0, &col);
|
||||
if (g_signal_has_handler_pending (self, actor_signals[PICK],
|
||||
0, TRUE))
|
||||
g_signal_emit (self, actor_signals[PICK], 0, &col);
|
||||
else
|
||||
CLUTTER_ACTOR_GET_CLASS (self)->pick (self, &col);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -4269,6 +4334,9 @@ clutter_actor_remove_child_internal (ClutterActor *self,
|
||||
|
||||
self->priv->age += 1;
|
||||
|
||||
if (self->priv->in_cloned_branch)
|
||||
clutter_actor_pop_in_cloned_branch (child, self->priv->in_cloned_branch);
|
||||
|
||||
/* if the child that got removed was visible and set to
|
||||
* expand then we want to reset the parent's state in
|
||||
* case the child was the only thing that was making it
|
||||
@@ -4812,7 +4880,8 @@ clutter_actor_set_scale_factor (ClutterActor *self,
|
||||
g_assert (pspec != NULL);
|
||||
g_assert (scale_p != NULL);
|
||||
|
||||
_clutter_actor_create_transition (self, pspec, *scale_p, factor);
|
||||
if (*scale_p != factor)
|
||||
_clutter_actor_create_transition (self, pspec, *scale_p, factor);
|
||||
}
|
||||
|
||||
static inline void
|
||||
@@ -8502,6 +8571,7 @@ clutter_actor_init (ClutterActor *self)
|
||||
priv->needs_width_request = TRUE;
|
||||
priv->needs_height_request = TRUE;
|
||||
priv->needs_allocation = TRUE;
|
||||
priv->needs_paint_volume_update = TRUE;
|
||||
|
||||
priv->cached_width_age = 1;
|
||||
priv->cached_height_age = 1;
|
||||
@@ -8693,15 +8763,14 @@ _clutter_actor_get_allocation_clip (ClutterActor *self,
|
||||
}
|
||||
|
||||
void
|
||||
_clutter_actor_queue_redraw_full (ClutterActor *self,
|
||||
ClutterRedrawFlags flags,
|
||||
ClutterPaintVolume *volume,
|
||||
ClutterEffect *effect)
|
||||
_clutter_actor_queue_redraw_full (ClutterActor *self,
|
||||
ClutterRedrawFlags flags,
|
||||
const ClutterPaintVolume *volume,
|
||||
ClutterEffect *effect)
|
||||
{
|
||||
ClutterActorPrivate *priv = self->priv;
|
||||
ClutterPaintVolume allocation_pv;
|
||||
ClutterPaintVolume *pv;
|
||||
gboolean should_free_pv;
|
||||
ClutterPaintVolume *pv = NULL;
|
||||
ClutterActor *stage;
|
||||
|
||||
/* Here's an outline of the actor queue redraw mechanism:
|
||||
@@ -8843,21 +8912,15 @@ _clutter_actor_queue_redraw_full (ClutterActor *self,
|
||||
clutter_paint_volume_set_height (pv,
|
||||
allocation_clip.y2 -
|
||||
allocation_clip.y1);
|
||||
should_free_pv = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
pv = volume;
|
||||
should_free_pv = FALSE;
|
||||
}
|
||||
|
||||
self->priv->queue_redraw_entry =
|
||||
_clutter_stage_queue_actor_redraw (CLUTTER_STAGE (stage),
|
||||
priv->queue_redraw_entry,
|
||||
self,
|
||||
pv);
|
||||
pv ? pv : volume);
|
||||
|
||||
if (should_free_pv)
|
||||
if (pv)
|
||||
clutter_paint_volume_free (pv);
|
||||
|
||||
/* If this is the first redraw queued then we can directly use the
|
||||
@@ -8971,9 +9034,9 @@ clutter_actor_queue_redraw (ClutterActor *self)
|
||||
* picking of your actor.
|
||||
*/
|
||||
void
|
||||
_clutter_actor_queue_redraw_with_clip (ClutterActor *self,
|
||||
ClutterRedrawFlags flags,
|
||||
ClutterPaintVolume *volume)
|
||||
_clutter_actor_queue_redraw_with_clip (ClutterActor *self,
|
||||
ClutterRedrawFlags flags,
|
||||
const ClutterPaintVolume *volume)
|
||||
{
|
||||
_clutter_actor_queue_redraw_full (self,
|
||||
flags, /* flags */
|
||||
@@ -8994,7 +9057,7 @@ _clutter_actor_queue_only_relayout (ClutterActor *self)
|
||||
priv->needs_allocation)
|
||||
return; /* save some cpu cycles */
|
||||
|
||||
#if CLUTTER_ENABLE_DEBUG
|
||||
#ifdef CLUTTER_ENABLE_DEBUG
|
||||
if (!CLUTTER_ACTOR_IS_TOPLEVEL (self) && CLUTTER_ACTOR_IN_RELAYOUT (self))
|
||||
{
|
||||
g_warning ("The actor '%s' is currently inside an allocation "
|
||||
@@ -10068,6 +10131,9 @@ clutter_actor_allocate (ClutterActor *self,
|
||||
return;
|
||||
}
|
||||
|
||||
if (CLUTTER_ACTOR_IS_MAPPED (self))
|
||||
self->priv->needs_paint_volume_update = TRUE;
|
||||
|
||||
if (!stage_allocation_changed)
|
||||
{
|
||||
/* If the actor didn't move but needs_allocation is set, we just
|
||||
@@ -10247,9 +10313,10 @@ clutter_actor_set_position (ClutterActor *self,
|
||||
cur_position.x = clutter_actor_get_x (self);
|
||||
cur_position.y = clutter_actor_get_y (self);
|
||||
|
||||
_clutter_actor_create_transition (self, obj_props[PROP_POSITION],
|
||||
&cur_position,
|
||||
&new_position);
|
||||
if (!clutter_point_equals (&cur_position, &new_position))
|
||||
_clutter_actor_create_transition (self, obj_props[PROP_POSITION],
|
||||
&cur_position,
|
||||
&new_position);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -12886,6 +12953,9 @@ clutter_actor_add_child_internal (ClutterActor *self,
|
||||
|
||||
self->priv->age += 1;
|
||||
|
||||
if (self->priv->in_cloned_branch)
|
||||
clutter_actor_push_in_cloned_branch (child, self->priv->in_cloned_branch);
|
||||
|
||||
/* if push_internal() has been called then we automatically set
|
||||
* the flag on the actor
|
||||
*/
|
||||
@@ -12956,6 +13026,9 @@ clutter_actor_add_child_internal (ClutterActor *self,
|
||||
child->priv->needs_height_request = TRUE;
|
||||
child->priv->needs_allocation = TRUE;
|
||||
|
||||
if (CLUTTER_ACTOR_IS_MAPPED (child))
|
||||
child->priv->needs_paint_volume_update = TRUE;
|
||||
|
||||
/* we only queue a relayout here, because any possible
|
||||
* redraw has already been queued either by show() or
|
||||
* by our call to queue_redraw() above
|
||||
@@ -13602,7 +13675,7 @@ clutter_actor_set_child_above_sibling (ClutterActor *self,
|
||||
sibling);
|
||||
g_object_unref(child);
|
||||
|
||||
clutter_actor_queue_relayout (self);
|
||||
clutter_actor_queue_redraw_on_parent (child);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13649,7 +13722,7 @@ clutter_actor_set_child_below_sibling (ClutterActor *self,
|
||||
sibling);
|
||||
g_object_unref(child);
|
||||
|
||||
clutter_actor_queue_relayout (self);
|
||||
clutter_actor_queue_redraw_on_parent (child);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -15151,9 +15224,8 @@ clutter_actor_transform_stage_point (ClutterActor *self,
|
||||
* http://www.cs.cmu.edu/~ph/src/texfund/
|
||||
*
|
||||
* Our texture is a rectangle with origin [0, 0], so we are mapping from
|
||||
* quad to rectangle only, which significantly simplifies things; the
|
||||
* function calls have been unrolled, and most of the math is done in fixed
|
||||
* point.
|
||||
* quad to rectangle only, which significantly simplifies things.
|
||||
* Function calls have been unrolled.
|
||||
*/
|
||||
clutter_actor_get_abs_allocation_vertices (self, v);
|
||||
|
||||
@@ -17447,7 +17519,7 @@ _clutter_actor_get_paint_volume_real (ClutterActor *self,
|
||||
*/
|
||||
effects = _clutter_meta_group_peek_metas (priv->effects);
|
||||
for (l = effects;
|
||||
l != NULL || (l != NULL && l->data != priv->current_effect);
|
||||
l != NULL && l->data != priv->current_effect;
|
||||
l = l->next)
|
||||
{
|
||||
if (!_clutter_effect_get_paint_volume (l->data, pv))
|
||||
@@ -17483,6 +17555,32 @@ _clutter_actor_get_paint_volume_real (ClutterActor *self,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
_clutter_actor_has_active_paint_volume_override_effects (ClutterActor *self)
|
||||
{
|
||||
const GList *l;
|
||||
|
||||
if (self->priv->effects == NULL)
|
||||
return FALSE;
|
||||
|
||||
/* We just need to all effects current effect to see
|
||||
* if anyone wants to override the paint volume. If so, then
|
||||
* we need to recompute, since the paint volume returned can
|
||||
* change from call to call. */
|
||||
for (l = _clutter_meta_group_peek_metas (self->priv->effects);
|
||||
l != NULL;
|
||||
l = l->next)
|
||||
{
|
||||
ClutterEffect *effect = l->data;
|
||||
|
||||
if (clutter_actor_meta_get_enabled (CLUTTER_ACTOR_META (effect)) &&
|
||||
_clutter_effect_has_custom_paint_volume (effect))
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* The public clutter_actor_get_paint_volume API returns a const
|
||||
* pointer since we return a pointer directly to the cached
|
||||
* PaintVolume associated with the actor and don't want the user to
|
||||
@@ -17493,16 +17591,37 @@ _clutter_actor_get_paint_volume_real (ClutterActor *self,
|
||||
static ClutterPaintVolume *
|
||||
_clutter_actor_get_paint_volume_mutable (ClutterActor *self)
|
||||
{
|
||||
gboolean has_paint_volume_override_effects;
|
||||
ClutterActorPrivate *priv;
|
||||
|
||||
priv = self->priv;
|
||||
|
||||
has_paint_volume_override_effects = _clutter_actor_has_active_paint_volume_override_effects (self);
|
||||
|
||||
if (priv->paint_volume_valid)
|
||||
clutter_paint_volume_free (&priv->paint_volume);
|
||||
{
|
||||
/* If effects are applied, the actor paint volume
|
||||
* needs to be recomputed on each paint, since those
|
||||
* paint volumes could change over the duration of the
|
||||
* effect.
|
||||
*
|
||||
* We also need to update the paint volume if we went
|
||||
* from having effects to not having effects on the last
|
||||
* paint volume update. */
|
||||
if (!priv->needs_paint_volume_update &&
|
||||
priv->current_effect == NULL &&
|
||||
!has_paint_volume_override_effects &&
|
||||
!priv->had_effects_on_last_paint_volume_update)
|
||||
return &priv->paint_volume;
|
||||
clutter_paint_volume_free (&priv->paint_volume);
|
||||
}
|
||||
|
||||
priv->had_effects_on_last_paint_volume_update = has_paint_volume_override_effects;
|
||||
|
||||
if (_clutter_actor_get_paint_volume_real (self, &priv->paint_volume))
|
||||
{
|
||||
priv->paint_volume_valid = TRUE;
|
||||
priv->needs_paint_volume_update = FALSE;
|
||||
return &priv->paint_volume;
|
||||
}
|
||||
else
|
||||
@@ -18348,6 +18467,10 @@ clutter_actor_set_margin_top (ClutterActor *self,
|
||||
g_return_if_fail (margin >= 0.f);
|
||||
|
||||
info = _clutter_actor_get_layout_info_or_defaults (self);
|
||||
|
||||
if (info->margin.top == margin)
|
||||
return;
|
||||
|
||||
_clutter_actor_create_transition (self, obj_props[PROP_MARGIN_TOP],
|
||||
info->margin.top,
|
||||
margin);
|
||||
@@ -18392,6 +18515,10 @@ clutter_actor_set_margin_bottom (ClutterActor *self,
|
||||
g_return_if_fail (margin >= 0.f);
|
||||
|
||||
info = _clutter_actor_get_layout_info_or_defaults (self);
|
||||
|
||||
if (info->margin.bottom == margin)
|
||||
return;
|
||||
|
||||
_clutter_actor_create_transition (self, obj_props[PROP_MARGIN_BOTTOM],
|
||||
info->margin.bottom,
|
||||
margin);
|
||||
@@ -18436,6 +18563,10 @@ clutter_actor_set_margin_left (ClutterActor *self,
|
||||
g_return_if_fail (margin >= 0.f);
|
||||
|
||||
info = _clutter_actor_get_layout_info_or_defaults (self);
|
||||
|
||||
if (info->margin.left == margin)
|
||||
return;
|
||||
|
||||
_clutter_actor_create_transition (self, obj_props[PROP_MARGIN_LEFT],
|
||||
info->margin.left,
|
||||
margin);
|
||||
@@ -18480,6 +18611,10 @@ clutter_actor_set_margin_right (ClutterActor *self,
|
||||
g_return_if_fail (margin >= 0.f);
|
||||
|
||||
info = _clutter_actor_get_layout_info_or_defaults (self);
|
||||
|
||||
if (info->margin.right == margin)
|
||||
return;
|
||||
|
||||
_clutter_actor_create_transition (self, obj_props[PROP_MARGIN_RIGHT],
|
||||
info->margin.right,
|
||||
margin);
|
||||
@@ -20672,29 +20807,31 @@ clutter_actor_get_child_transform (ClutterActor *self,
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_actor_push_in_cloned_branch (ClutterActor *self)
|
||||
clutter_actor_push_in_cloned_branch (ClutterActor *self,
|
||||
gulong count)
|
||||
{
|
||||
ClutterActor *iter;
|
||||
|
||||
for (iter = self->priv->first_child;
|
||||
iter != NULL;
|
||||
iter = iter->priv->next_sibling)
|
||||
clutter_actor_push_in_cloned_branch (iter);
|
||||
clutter_actor_push_in_cloned_branch (iter, count);
|
||||
|
||||
self->priv->in_cloned_branch += 1;
|
||||
self->priv->in_cloned_branch += count;
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_actor_pop_in_cloned_branch (ClutterActor *self)
|
||||
clutter_actor_pop_in_cloned_branch (ClutterActor *self,
|
||||
gulong count)
|
||||
{
|
||||
ClutterActor *iter;
|
||||
|
||||
self->priv->in_cloned_branch -= 1;
|
||||
self->priv->in_cloned_branch -= count;
|
||||
|
||||
for (iter = self->priv->first_child;
|
||||
iter != NULL;
|
||||
iter = iter->priv->next_sibling)
|
||||
clutter_actor_pop_in_cloned_branch (iter);
|
||||
clutter_actor_pop_in_cloned_branch (iter, count);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -20710,7 +20847,7 @@ _clutter_actor_attach_clone (ClutterActor *actor,
|
||||
|
||||
g_hash_table_add (priv->clones, clone);
|
||||
|
||||
clutter_actor_push_in_cloned_branch (actor);
|
||||
clutter_actor_push_in_cloned_branch (actor, 1);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -20725,7 +20862,7 @@ _clutter_actor_detach_clone (ClutterActor *actor,
|
||||
g_hash_table_lookup (priv->clones, clone) == NULL)
|
||||
return;
|
||||
|
||||
clutter_actor_pop_in_cloned_branch (actor);
|
||||
clutter_actor_pop_in_cloned_branch (actor, 1);
|
||||
|
||||
g_hash_table_remove (priv->clones, clone);
|
||||
|
||||
@@ -21068,6 +21205,7 @@ clutter_actor_bind_model_with_properties (ClutterActor *self,
|
||||
|
||||
model_property = va_arg (args, char *);
|
||||
}
|
||||
va_end (args);
|
||||
|
||||
clutter_actor_bind_model (self, model, bind_child_with_properties, clos, bind_closure_free);
|
||||
}
|
||||
|
@@ -61,7 +61,7 @@ G_BEGIN_DECLS
|
||||
* internal state.
|
||||
*/
|
||||
#define CLUTTER_ACTOR_SET_FLAGS(a,f) \
|
||||
CLUTTER_MACRO_DEPRECATED_IN_1_24 \
|
||||
CLUTTER_MACRO_DEPRECATED \
|
||||
(((ClutterActor*)(a))->flags |= (f))
|
||||
|
||||
/**
|
||||
@@ -76,23 +76,23 @@ G_BEGIN_DECLS
|
||||
* internal state.
|
||||
*/
|
||||
#define CLUTTER_ACTOR_UNSET_FLAGS(a,f) \
|
||||
CLUTTER_MACRO_DEPRECATED_IN_1_24 \
|
||||
CLUTTER_MACRO_DEPRECATED \
|
||||
(((ClutterActor*)(a))->flags &= ~(f))
|
||||
|
||||
#define CLUTTER_ACTOR_IS_MAPPED(a) \
|
||||
CLUTTER_MACRO_DEPRECATED_IN_1_24_FOR ("Deprecated macro. Use clutter_actor_is_mapped instead") \
|
||||
CLUTTER_MACRO_DEPRECATED_FOR ("Deprecated macro. Use clutter_actor_is_mapped instead") \
|
||||
((((ClutterActor*)(a))->flags & CLUTTER_ACTOR_MAPPED) != FALSE)
|
||||
|
||||
#define CLUTTER_ACTOR_IS_REALIZED(a) \
|
||||
CLUTTER_MACRO_DEPRECATED_IN_1_24_FOR ("Deprecated macro. Use clutter_actor_is_realized instead") \
|
||||
CLUTTER_MACRO_DEPRECATED_FOR ("Deprecated macro. Use clutter_actor_is_realized instead") \
|
||||
((((ClutterActor*)(a))->flags & CLUTTER_ACTOR_REALIZED) != FALSE)
|
||||
|
||||
#define CLUTTER_ACTOR_IS_VISIBLE(a) \
|
||||
CLUTTER_MACRO_DEPRECATED_IN_1_24_FOR ("Deprecated macro. Use clutter_actor_is_visible instead") \
|
||||
CLUTTER_MACRO_DEPRECATED_FOR ("Deprecated macro. Use clutter_actor_is_visible instead") \
|
||||
((((ClutterActor*)(a))->flags & CLUTTER_ACTOR_VISIBLE) != FALSE)
|
||||
|
||||
#define CLUTTER_ACTOR_IS_REACTIVE(a) \
|
||||
CLUTTER_MACRO_DEPRECATED_IN_1_24_FOR ("Deprecated macro. Use clutter_actor_get_reactive instead") \
|
||||
CLUTTER_MACRO_DEPRECATED_FOR ("Deprecated macro. Use clutter_actor_get_reactive instead") \
|
||||
((((ClutterActor*)(a))->flags & CLUTTER_ACTOR_REACTIVE) != FALSE)
|
||||
|
||||
typedef struct _ClutterActorClass ClutterActorClass;
|
||||
@@ -322,97 +322,97 @@ struct _ClutterActorIter
|
||||
gpointer CLUTTER_PRIVATE_FIELD (dummy5);
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_actor_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
ClutterActor * clutter_actor_new (void);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_flags (ClutterActor *self,
|
||||
ClutterActorFlags flags);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_unset_flags (ClutterActor *self,
|
||||
ClutterActorFlags flags);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
ClutterActorFlags clutter_actor_get_flags (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_show (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_hide (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_realize (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_unrealize (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_map (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_unmap (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_paint (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_continue_paint (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_queue_redraw (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_queue_redraw_with_clip (ClutterActor *self,
|
||||
const cairo_rectangle_int_t *clip);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_queue_relayout (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_destroy (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_name (ClutterActor *self,
|
||||
const gchar *name);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
const gchar * clutter_actor_get_name (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
AtkObject * clutter_actor_get_accessible (ClutterActor *self);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_24
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_is_visible (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_24
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_is_mapped (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_24
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_is_realized (ClutterActor *self);
|
||||
|
||||
/* Size negotiation */
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_request_mode (ClutterActor *self,
|
||||
ClutterRequestMode mode);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
ClutterRequestMode clutter_actor_get_request_mode (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_preferred_width (ClutterActor *self,
|
||||
gfloat for_height,
|
||||
gfloat *min_width_p,
|
||||
gfloat *natural_width_p);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_preferred_height (ClutterActor *self,
|
||||
gfloat for_width,
|
||||
gfloat *min_height_p,
|
||||
gfloat *natural_height_p);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_preferred_size (ClutterActor *self,
|
||||
gfloat *min_width_p,
|
||||
gfloat *min_height_p,
|
||||
gfloat *natural_width_p,
|
||||
gfloat *natural_height_p);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_allocate (ClutterActor *self,
|
||||
const ClutterActorBox *box,
|
||||
ClutterAllocationFlags flags);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_allocate_preferred_size (ClutterActor *self,
|
||||
ClutterAllocationFlags flags);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_allocate_available_size (ClutterActor *self,
|
||||
gfloat x,
|
||||
gfloat y,
|
||||
gfloat available_width,
|
||||
gfloat available_height,
|
||||
ClutterAllocationFlags flags);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_allocate_align_fill (ClutterActor *self,
|
||||
const ClutterActorBox *box,
|
||||
gdouble x_align,
|
||||
@@ -420,448 +420,448 @@ void clutter_actor_allocate_align_fill
|
||||
gboolean x_fill,
|
||||
gboolean y_fill,
|
||||
ClutterAllocationFlags flags);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_allocation (ClutterActor *self,
|
||||
const ClutterActorBox *box,
|
||||
ClutterAllocationFlags flags);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_allocation_box (ClutterActor *self,
|
||||
ClutterActorBox *box);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_allocation_vertices (ClutterActor *self,
|
||||
ClutterActor *ancestor,
|
||||
ClutterVertex verts[]);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_has_allocation (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_size (ClutterActor *self,
|
||||
gfloat width,
|
||||
gfloat height);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_size (ClutterActor *self,
|
||||
gfloat *width,
|
||||
gfloat *height);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_position (ClutterActor *self,
|
||||
gfloat x,
|
||||
gfloat y);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_position (ClutterActor *self,
|
||||
gfloat *x,
|
||||
gfloat *y);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_get_fixed_position_set (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_fixed_position_set (ClutterActor *self,
|
||||
gboolean is_set);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_move_by (ClutterActor *self,
|
||||
gfloat dx,
|
||||
gfloat dy);
|
||||
|
||||
/* Actor geometry */
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gfloat clutter_actor_get_width (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gfloat clutter_actor_get_height (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_width (ClutterActor *self,
|
||||
gfloat width);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_height (ClutterActor *self,
|
||||
gfloat height);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gfloat clutter_actor_get_x (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gfloat clutter_actor_get_y (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_x (ClutterActor *self,
|
||||
gfloat x);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_y (ClutterActor *self,
|
||||
gfloat y);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_z_position (ClutterActor *self,
|
||||
gfloat z_position);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
gfloat clutter_actor_get_z_position (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_layout_manager (ClutterActor *self,
|
||||
ClutterLayoutManager *manager);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
ClutterLayoutManager * clutter_actor_get_layout_manager (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_x_align (ClutterActor *self,
|
||||
ClutterActorAlign x_align);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
ClutterActorAlign clutter_actor_get_x_align (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_y_align (ClutterActor *self,
|
||||
ClutterActorAlign y_align);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
ClutterActorAlign clutter_actor_get_y_align (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_margin_top (ClutterActor *self,
|
||||
gfloat margin);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
gfloat clutter_actor_get_margin_top (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_margin_bottom (ClutterActor *self,
|
||||
gfloat margin);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
gfloat clutter_actor_get_margin_bottom (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_margin_left (ClutterActor *self,
|
||||
gfloat margin);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
gfloat clutter_actor_get_margin_left (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_margin_right (ClutterActor *self,
|
||||
gfloat margin);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
gfloat clutter_actor_get_margin_right (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_margin (ClutterActor *self,
|
||||
const ClutterMargin *margin);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_margin (ClutterActor *self,
|
||||
ClutterMargin *margin);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_x_expand (ClutterActor *self,
|
||||
gboolean expand);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_get_x_expand (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_y_expand (ClutterActor *self,
|
||||
gboolean expand);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_get_y_expand (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_needs_expand (ClutterActor *self,
|
||||
ClutterOrientation orientation);
|
||||
|
||||
/* Paint */
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_clip (ClutterActor *self,
|
||||
gfloat xoff,
|
||||
gfloat yoff,
|
||||
gfloat width,
|
||||
gfloat height);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_remove_clip (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_has_clip (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_clip (ClutterActor *self,
|
||||
gfloat *xoff,
|
||||
gfloat *yoff,
|
||||
gfloat *width,
|
||||
gfloat *height);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_clip_to_allocation (ClutterActor *self,
|
||||
gboolean clip_set);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_get_clip_to_allocation (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_opacity (ClutterActor *self,
|
||||
guint8 opacity);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
guint8 clutter_actor_get_opacity (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
guint8 clutter_actor_get_paint_opacity (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_get_paint_visibility (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_8
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_offscreen_redirect (ClutterActor *self,
|
||||
ClutterOffscreenRedirect redirect);
|
||||
CLUTTER_AVAILABLE_IN_1_8
|
||||
CLUTTER_EXPORT
|
||||
ClutterOffscreenRedirect clutter_actor_get_offscreen_redirect (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_should_pick_paint (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_is_in_clone_paint (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_get_paint_box (ClutterActor *self,
|
||||
ClutterActorBox *box);
|
||||
CLUTTER_AVAILABLE_IN_1_8
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_has_overlaps (ClutterActor *self);
|
||||
|
||||
/* Content */
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_content (ClutterActor *self,
|
||||
ClutterContent *content);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
ClutterContent * clutter_actor_get_content (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_content_gravity (ClutterActor *self,
|
||||
ClutterContentGravity gravity);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
ClutterContentGravity clutter_actor_get_content_gravity (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_content_scaling_filters (ClutterActor *self,
|
||||
ClutterScalingFilter min_filter,
|
||||
ClutterScalingFilter mag_filter);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_content_scaling_filters (ClutterActor *self,
|
||||
ClutterScalingFilter *min_filter,
|
||||
ClutterScalingFilter *mag_filter);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_content_repeat (ClutterActor *self,
|
||||
ClutterContentRepeat repeat);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
ClutterContentRepeat clutter_actor_get_content_repeat (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_content_box (ClutterActor *self,
|
||||
ClutterActorBox *box);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_background_color (ClutterActor *self,
|
||||
const ClutterColor *color);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_background_color (ClutterActor *self,
|
||||
ClutterColor *color);
|
||||
CLUTTER_AVAILABLE_IN_1_6
|
||||
CLUTTER_EXPORT
|
||||
const ClutterPaintVolume * clutter_actor_get_paint_volume (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_6
|
||||
CLUTTER_EXPORT
|
||||
const ClutterPaintVolume * clutter_actor_get_transformed_paint_volume (ClutterActor *self,
|
||||
ClutterActor *relative_to_ancestor);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
const ClutterPaintVolume * clutter_actor_get_default_paint_volume (ClutterActor *self);
|
||||
|
||||
/* Events */
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_reactive (ClutterActor *actor,
|
||||
gboolean reactive);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_get_reactive (ClutterActor *actor);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_has_key_focus (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_grab_key_focus (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_event (ClutterActor *actor,
|
||||
const ClutterEvent *event,
|
||||
gboolean capture);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_has_pointer (ClutterActor *self);
|
||||
|
||||
/* Text */
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
PangoContext * clutter_actor_get_pango_context (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
PangoContext * clutter_actor_create_pango_context (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
PangoLayout * clutter_actor_create_pango_layout (ClutterActor *self,
|
||||
const gchar *text);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_text_direction (ClutterActor *self,
|
||||
ClutterTextDirection text_dir);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
ClutterTextDirection clutter_actor_get_text_direction (ClutterActor *self);
|
||||
|
||||
/* Actor hierarchy */
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_add_child (ClutterActor *self,
|
||||
ClutterActor *child);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_insert_child_at_index (ClutterActor *self,
|
||||
ClutterActor *child,
|
||||
gint index_);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_insert_child_above (ClutterActor *self,
|
||||
ClutterActor *child,
|
||||
ClutterActor *sibling);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_insert_child_below (ClutterActor *self,
|
||||
ClutterActor *child,
|
||||
ClutterActor *sibling);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_replace_child (ClutterActor *self,
|
||||
ClutterActor *old_child,
|
||||
ClutterActor *new_child);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_remove_child (ClutterActor *self,
|
||||
ClutterActor *child);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_remove_all_children (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_destroy_all_children (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
GList * clutter_actor_get_children (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
gint clutter_actor_get_n_children (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
ClutterActor * clutter_actor_get_child_at_index (ClutterActor *self,
|
||||
gint index_);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
ClutterActor * clutter_actor_get_previous_sibling (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
ClutterActor * clutter_actor_get_next_sibling (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
ClutterActor * clutter_actor_get_first_child (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
ClutterActor * clutter_actor_get_last_child (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
ClutterActor * clutter_actor_get_parent (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_contains (ClutterActor *self,
|
||||
ClutterActor *descendant);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
ClutterActor* clutter_actor_get_stage (ClutterActor *actor);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_child_below_sibling (ClutterActor *self,
|
||||
ClutterActor *child,
|
||||
ClutterActor *sibling);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_child_above_sibling (ClutterActor *self,
|
||||
ClutterActor *child,
|
||||
ClutterActor *sibling);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_child_at_index (ClutterActor *self,
|
||||
ClutterActor *child,
|
||||
gint index_);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_iter_init (ClutterActorIter *iter,
|
||||
ClutterActor *root);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_iter_next (ClutterActorIter *iter,
|
||||
ClutterActor **child);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_iter_prev (ClutterActorIter *iter,
|
||||
ClutterActor **child);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_iter_remove (ClutterActorIter *iter);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_iter_destroy (ClutterActorIter *iter);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_iter_is_valid (const ClutterActorIter *iter);
|
||||
|
||||
/* Transformations */
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_is_rotated (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_is_scaled (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_pivot_point (ClutterActor *self,
|
||||
gfloat pivot_x,
|
||||
gfloat pivot_y);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_pivot_point (ClutterActor *self,
|
||||
gfloat *pivot_x,
|
||||
gfloat *pivot_y);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_pivot_point_z (ClutterActor *self,
|
||||
gfloat pivot_z);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
gfloat clutter_actor_get_pivot_point_z (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_rotation_angle (ClutterActor *self,
|
||||
ClutterRotateAxis axis,
|
||||
gdouble angle);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
gdouble clutter_actor_get_rotation_angle (ClutterActor *self,
|
||||
ClutterRotateAxis axis);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_scale (ClutterActor *self,
|
||||
gdouble scale_x,
|
||||
gdouble scale_y);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_scale (ClutterActor *self,
|
||||
gdouble *scale_x,
|
||||
gdouble *scale_y);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_scale_z (ClutterActor *self,
|
||||
gdouble scale_z);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
gdouble clutter_actor_get_scale_z (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_translation (ClutterActor *self,
|
||||
gfloat translate_x,
|
||||
gfloat translate_y,
|
||||
gfloat translate_z);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_translation (ClutterActor *self,
|
||||
gfloat *translate_x,
|
||||
gfloat *translate_y,
|
||||
gfloat *translate_z);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_transform (ClutterActor *self,
|
||||
const ClutterMatrix *transform);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_transform (ClutterActor *self,
|
||||
ClutterMatrix *transform);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_child_transform (ClutterActor *self,
|
||||
const ClutterMatrix *transform);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_child_transform (ClutterActor *self,
|
||||
ClutterMatrix *transform);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_transformed_position (ClutterActor *self,
|
||||
gfloat *x,
|
||||
gfloat *y);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_transformed_size (ClutterActor *self,
|
||||
gfloat *width,
|
||||
gfloat *height);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_transform_stage_point (ClutterActor *self,
|
||||
gfloat x,
|
||||
gfloat y,
|
||||
gfloat *x_out,
|
||||
gfloat *y_out);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_get_abs_allocation_vertices (ClutterActor *self,
|
||||
ClutterVertex verts[]);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_apply_transform_to_point (ClutterActor *self,
|
||||
const ClutterVertex *point,
|
||||
ClutterVertex *vertex);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_apply_relative_transform_to_point (ClutterActor *self,
|
||||
ClutterActor *ancestor,
|
||||
const ClutterVertex *point,
|
||||
ClutterVertex *vertex);
|
||||
|
||||
/* Implicit animations */
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_save_easing_state (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_restore_easing_state (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_easing_mode (ClutterActor *self,
|
||||
ClutterAnimationMode mode);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
ClutterAnimationMode clutter_actor_get_easing_mode (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_easing_duration (ClutterActor *self,
|
||||
guint msecs);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
guint clutter_actor_get_easing_duration (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_easing_delay (ClutterActor *self,
|
||||
guint msecs);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
guint clutter_actor_get_easing_delay (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
ClutterTransition * clutter_actor_get_transition (ClutterActor *self,
|
||||
const char *name);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_add_transition (ClutterActor *self,
|
||||
const char *name,
|
||||
ClutterTransition *transition);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_remove_transition (ClutterActor *self,
|
||||
const char *name);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_remove_all_transitions (ClutterActor *self);
|
||||
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_16
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_has_mapped_clones (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_22
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_set_opacity_override (ClutterActor *self,
|
||||
gint opacity);
|
||||
CLUTTER_AVAILABLE_IN_1_22
|
||||
CLUTTER_EXPORT
|
||||
gint clutter_actor_get_opacity_override (ClutterActor *self);
|
||||
|
||||
/**
|
||||
@@ -883,13 +883,13 @@ gint clutter_actor_get_opacity_override
|
||||
typedef ClutterActor * (* ClutterActorCreateChildFunc) (gpointer item,
|
||||
gpointer user_data);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_24
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_bind_model (ClutterActor *self,
|
||||
GListModel *model,
|
||||
ClutterActorCreateChildFunc create_child_func,
|
||||
gpointer user_data,
|
||||
GDestroyNotify notify);
|
||||
CLUTTER_AVAILABLE_IN_1_24
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_bind_model_with_properties (ClutterActor *self,
|
||||
GListModel *model,
|
||||
GType child_type,
|
||||
|
@@ -34,9 +34,7 @@
|
||||
* #ClutterAlignConstraint is available since Clutter 1.4
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-align-constraint.h"
|
||||
|
||||
|
@@ -48,28 +48,28 @@ G_BEGIN_DECLS
|
||||
typedef struct _ClutterAlignConstraint ClutterAlignConstraint;
|
||||
typedef struct _ClutterAlignConstraintClass ClutterAlignConstraintClass;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_align_constraint_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterConstraint *clutter_align_constraint_new (ClutterActor *source,
|
||||
ClutterAlignAxis axis,
|
||||
gfloat factor);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_align_constraint_set_source (ClutterAlignConstraint *align,
|
||||
ClutterActor *source);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterActor * clutter_align_constraint_get_source (ClutterAlignConstraint *align);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_align_constraint_set_align_axis (ClutterAlignConstraint *align,
|
||||
ClutterAlignAxis axis);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterAlignAxis clutter_align_constraint_get_align_axis (ClutterAlignConstraint *align);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_align_constraint_set_factor (ClutterAlignConstraint *align,
|
||||
gfloat factor);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
gfloat clutter_align_constraint_get_factor (ClutterAlignConstraint *align);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -45,9 +45,7 @@
|
||||
* #ClutterAnimatable is available since Clutter 1.0
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_DISABLE_DEPRECATION_WARNINGS
|
||||
|
||||
|
@@ -95,21 +95,21 @@ struct _ClutterAnimatableIface
|
||||
GValue *value);
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_animatable_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
GParamSpec *clutter_animatable_find_property (ClutterAnimatable *animatable,
|
||||
const gchar *property_name);
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
void clutter_animatable_get_initial_state (ClutterAnimatable *animatable,
|
||||
const gchar *property_name,
|
||||
GValue *value);
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
void clutter_animatable_set_final_state (ClutterAnimatable *animatable,
|
||||
const gchar *property_name,
|
||||
const GValue *value);
|
||||
CLUTTER_AVAILABLE_IN_1_8
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_animatable_interpolate_value (ClutterAnimatable *animatable,
|
||||
const gchar *property_name,
|
||||
ClutterInterval *interval,
|
||||
|
@@ -24,6 +24,7 @@
|
||||
|
||||
#include <clutter/clutter-backend.h>
|
||||
#include <clutter/clutter-device-manager.h>
|
||||
#include <clutter/clutter-keymap.h>
|
||||
#include <clutter/clutter-stage-window.h>
|
||||
|
||||
#include "clutter-event-translator.h"
|
||||
@@ -58,6 +59,10 @@ struct _ClutterBackend
|
||||
gint32 units_serial;
|
||||
|
||||
GList *event_translators;
|
||||
|
||||
ClutterInputMethod *input_method;
|
||||
|
||||
ClutterKeymap *keymap;
|
||||
};
|
||||
|
||||
struct _ClutterBackendClass
|
||||
@@ -100,6 +105,10 @@ struct _ClutterBackendClass
|
||||
|
||||
PangoDirection (* get_keymap_direction) (ClutterBackend *backend);
|
||||
|
||||
void (* bell_notify) (ClutterBackend *backend);
|
||||
|
||||
ClutterKeymap * (* get_keymap) (ClutterBackend *backend);
|
||||
|
||||
/* signals */
|
||||
void (* resolution_changed) (ClutterBackend *backend);
|
||||
void (* font_changed) (ClutterBackend *backend);
|
||||
@@ -131,7 +140,7 @@ gboolean _clutter_backend_translate_event (Clutter
|
||||
gpointer native,
|
||||
ClutterEvent *event);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_MUTTER
|
||||
CLUTTER_EXPORT
|
||||
void _clutter_backend_add_event_translator (ClutterBackend *backend,
|
||||
ClutterEventTranslator *translator);
|
||||
|
||||
@@ -146,7 +155,7 @@ gint32 _clutter_backend_get_units_serial (Clutter
|
||||
|
||||
PangoDirection _clutter_backend_get_keymap_direction (ClutterBackend *backend);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_MUTTER
|
||||
CLUTTER_EXPORT
|
||||
void _clutter_backend_reset_cogl_framebuffer (ClutterBackend *backend);
|
||||
|
||||
void clutter_set_allowed_drivers (const char *drivers);
|
||||
|
@@ -38,9 +38,7 @@
|
||||
* #ClutterBackend is available since Clutter 0.4
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
|
||||
@@ -53,12 +51,8 @@
|
||||
#include "clutter-stage-manager-private.h"
|
||||
#include "clutter-stage-private.h"
|
||||
#include "clutter-stage-window.h"
|
||||
#include "clutter-version.h"
|
||||
#include "clutter-device-manager-private.h"
|
||||
|
||||
#define CLUTTER_DISABLE_DEPRECATION_WARNINGS
|
||||
#include "deprecated/clutter-backend.h"
|
||||
|
||||
#ifdef CLUTTER_HAS_WAYLAND_COMPOSITOR_SUPPORT
|
||||
#include "wayland/clutter-wayland-compositor.h"
|
||||
#endif
|
||||
@@ -127,6 +121,7 @@ clutter_backend_finalize (GObject *gobject)
|
||||
|
||||
g_free (backend->font_name);
|
||||
clutter_backend_set_font_options (backend, NULL);
|
||||
g_clear_object (&backend->input_method);
|
||||
|
||||
G_OBJECT_CLASS (clutter_backend_parent_class)->finalize (gobject);
|
||||
}
|
||||
@@ -432,7 +427,7 @@ clutter_backend_real_get_features (ClutterBackend *backend)
|
||||
if (cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_SWAP_THROTTLE))
|
||||
{
|
||||
CLUTTER_NOTE (BACKEND, "Cogl supports swap buffers throttling");
|
||||
flags |= CLUTTER_FEATURE_SYNC_TO_VBLANK;
|
||||
flags |= CLUTTER_FEATURE_SWAP_THROTTLE;
|
||||
}
|
||||
else
|
||||
CLUTTER_NOTE (BACKEND, "Cogl doesn't support swap buffers throttling");
|
||||
@@ -579,6 +574,18 @@ clutter_backend_real_get_device_manager (ClutterBackend *backend)
|
||||
return backend->device_manager;
|
||||
}
|
||||
|
||||
static ClutterKeymap *
|
||||
clutter_backend_real_get_keymap (ClutterBackend *backend)
|
||||
{
|
||||
if (G_UNLIKELY (backend->keymap == NULL))
|
||||
{
|
||||
g_critical ("No keymap available, expect broken keyboard input");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return backend->keymap;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
clutter_backend_real_translate_event (ClutterBackend *backend,
|
||||
gpointer native,
|
||||
@@ -677,6 +684,7 @@ clutter_backend_class_init (ClutterBackendClass *klass)
|
||||
klass->translate_event = clutter_backend_real_translate_event;
|
||||
klass->create_context = clutter_backend_real_create_context;
|
||||
klass->get_features = clutter_backend_real_get_features;
|
||||
klass->get_keymap = clutter_backend_real_get_keymap;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -892,129 +900,6 @@ clutter_get_default_backend (void)
|
||||
return clutter_context->backend;
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_backend_set_double_click_time:
|
||||
* @backend: a #ClutterBackend
|
||||
* @msec: milliseconds between two button press events
|
||||
*
|
||||
* Sets the maximum time between two button press events, used to
|
||||
* verify whether it's a double click event or not.
|
||||
*
|
||||
* Since: 0.4
|
||||
*
|
||||
* Deprecated: 1.4: Use #ClutterSettings:double-click-time instead
|
||||
*/
|
||||
void
|
||||
clutter_backend_set_double_click_time (ClutterBackend *backend,
|
||||
guint msec)
|
||||
{
|
||||
ClutterSettings *settings = clutter_settings_get_default ();
|
||||
|
||||
g_object_set (settings, "double-click-time", msec, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_backend_get_double_click_time:
|
||||
* @backend: a #ClutterBackend
|
||||
*
|
||||
* Gets the maximum time between two button press events, as set
|
||||
* by clutter_backend_set_double_click_time().
|
||||
*
|
||||
* Return value: a time in milliseconds
|
||||
*
|
||||
* Since: 0.4
|
||||
*
|
||||
* Deprecated: 1.4: Use #ClutterSettings:double-click-time instead
|
||||
*/
|
||||
guint
|
||||
clutter_backend_get_double_click_time (ClutterBackend *backend)
|
||||
{
|
||||
ClutterSettings *settings = clutter_settings_get_default ();
|
||||
gint retval;
|
||||
|
||||
g_object_get (settings, "double-click-time", &retval, NULL);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_backend_set_double_click_distance:
|
||||
* @backend: a #ClutterBackend
|
||||
* @distance: a distance, in pixels
|
||||
*
|
||||
* Sets the maximum distance used to verify a double click event.
|
||||
*
|
||||
* Since: 0.4
|
||||
*
|
||||
* Deprecated: 1.4: Use #ClutterSettings:double-click-distance instead
|
||||
*/
|
||||
void
|
||||
clutter_backend_set_double_click_distance (ClutterBackend *backend,
|
||||
guint distance)
|
||||
{
|
||||
ClutterSettings *settings = clutter_settings_get_default ();
|
||||
|
||||
g_object_set (settings, "double-click-distance", distance, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_backend_get_double_click_distance:
|
||||
* @backend: a #ClutterBackend
|
||||
*
|
||||
* Retrieves the distance used to verify a double click event
|
||||
*
|
||||
* Return value: a distance, in pixels.
|
||||
*
|
||||
* Since: 0.4
|
||||
*
|
||||
* Deprecated: 1.4: Use #ClutterSettings:double-click-distance instead
|
||||
*/
|
||||
guint
|
||||
clutter_backend_get_double_click_distance (ClutterBackend *backend)
|
||||
{
|
||||
ClutterSettings *settings = clutter_settings_get_default ();
|
||||
gint retval;
|
||||
|
||||
g_object_get (settings, "double-click-distance", &retval, NULL);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_backend_set_resolution:
|
||||
* @backend: a #ClutterBackend
|
||||
* @dpi: the resolution in "dots per inch" (Physical inches aren't
|
||||
* actually involved; the terminology is conventional).
|
||||
*
|
||||
* Sets the resolution for font handling on the screen. This is a
|
||||
* scale factor between points specified in a #PangoFontDescription
|
||||
* and cairo units. The default value is 96, meaning that a 10 point
|
||||
* font will be 13 units high. (10 * 96. / 72. = 13.3).
|
||||
*
|
||||
* Applications should never need to call this function.
|
||||
*
|
||||
* Since: 0.4
|
||||
*
|
||||
* Deprecated: 1.4: Use #ClutterSettings:font-dpi instead
|
||||
*/
|
||||
void
|
||||
clutter_backend_set_resolution (ClutterBackend *backend,
|
||||
gdouble dpi)
|
||||
{
|
||||
ClutterSettings *settings;
|
||||
gint resolution;
|
||||
|
||||
g_return_if_fail (CLUTTER_IS_BACKEND (backend));
|
||||
|
||||
if (dpi < 0)
|
||||
resolution = -1;
|
||||
else
|
||||
resolution = dpi * 1024;
|
||||
|
||||
settings = clutter_settings_get_default ();
|
||||
g_object_set (settings, "font-dpi", resolution, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_backend_get_resolution:
|
||||
* @backend: a #ClutterBackend
|
||||
@@ -1120,61 +1005,6 @@ clutter_backend_get_font_options (ClutterBackend *backend)
|
||||
return backend->font_options;
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_backend_set_font_name:
|
||||
* @backend: a #ClutterBackend
|
||||
* @font_name: the name of the font
|
||||
*
|
||||
* Sets the default font to be used by Clutter. The @font_name string
|
||||
* must either be %NULL, which means that the font name from the
|
||||
* default #ClutterBackend will be used; or be something that can
|
||||
* be parsed by the pango_font_description_from_string() function.
|
||||
*
|
||||
* Since: 1.0
|
||||
*
|
||||
* Deprecated: 1.4: Use #ClutterSettings:font-name instead
|
||||
*/
|
||||
void
|
||||
clutter_backend_set_font_name (ClutterBackend *backend,
|
||||
const gchar *font_name)
|
||||
{
|
||||
ClutterSettings *settings = clutter_settings_get_default ();
|
||||
|
||||
g_object_set (settings, "font-name", font_name, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_backend_get_font_name:
|
||||
* @backend: a #ClutterBackend
|
||||
*
|
||||
* Retrieves the default font name as set by
|
||||
* clutter_backend_set_font_name().
|
||||
*
|
||||
* Return value: the font name for the backend. The returned string is
|
||||
* owned by the #ClutterBackend and should never be modified or freed
|
||||
*
|
||||
* Since: 1.0
|
||||
*
|
||||
* Deprecated: 1.4: Use #ClutterSettings:font-name instead
|
||||
*/
|
||||
const gchar *
|
||||
clutter_backend_get_font_name (ClutterBackend *backend)
|
||||
{
|
||||
ClutterSettings *settings;
|
||||
|
||||
g_return_val_if_fail (CLUTTER_IS_BACKEND (backend), NULL);
|
||||
|
||||
settings = clutter_settings_get_default ();
|
||||
|
||||
/* XXX yuck. but we return a const pointer, so we need to
|
||||
* store it in the backend
|
||||
*/
|
||||
g_free (backend->font_name);
|
||||
g_object_get (settings, "font-name", &backend->font_name, NULL);
|
||||
|
||||
return backend->font_name;
|
||||
}
|
||||
|
||||
gint32
|
||||
_clutter_backend_get_units_serial (ClutterBackend *backend)
|
||||
{
|
||||
@@ -1363,3 +1193,55 @@ clutter_set_allowed_drivers (const char *drivers)
|
||||
|
||||
allowed_drivers = g_strdup (drivers);
|
||||
}
|
||||
|
||||
void
|
||||
clutter_backend_bell_notify (ClutterBackend *backend)
|
||||
{
|
||||
ClutterBackendClass *klass;
|
||||
|
||||
klass = CLUTTER_BACKEND_GET_CLASS (backend);
|
||||
if (klass->bell_notify)
|
||||
klass->bell_notify (backend);
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_backend_get_input_method:
|
||||
* @backend: the #CLutterBackend
|
||||
*
|
||||
* Returns the input method used by Clutter
|
||||
*
|
||||
* Returns: (transfer none): the input method
|
||||
**/
|
||||
ClutterInputMethod *
|
||||
clutter_backend_get_input_method (ClutterBackend *backend)
|
||||
{
|
||||
return backend->input_method;
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_backend_set_input_method:
|
||||
* @backend: the #ClutterBackend
|
||||
* @method: the input method
|
||||
*
|
||||
* Sets the input method to be used by Clutter
|
||||
**/
|
||||
void
|
||||
clutter_backend_set_input_method (ClutterBackend *backend,
|
||||
ClutterInputMethod *method)
|
||||
{
|
||||
g_set_object (&backend->input_method, method);
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_backend_get_keymap:
|
||||
* @backend: the #ClutterBackend
|
||||
*
|
||||
* Gets the keymap used by Clutter
|
||||
*
|
||||
* Returns: (transfer none): the keymap
|
||||
**/
|
||||
ClutterKeymap *
|
||||
clutter_backend_get_keymap (ClutterBackend *backend)
|
||||
{
|
||||
return CLUTTER_BACKEND_GET_CLASS (backend)->get_keymap (backend);
|
||||
}
|
||||
|
@@ -34,6 +34,7 @@
|
||||
#include <cogl/cogl.h>
|
||||
|
||||
#include <clutter/clutter-config.h>
|
||||
#include <clutter/clutter-keymap.h>
|
||||
#include <clutter/clutter-types.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
@@ -53,27 +54,39 @@ G_BEGIN_DECLS
|
||||
typedef struct _ClutterBackend ClutterBackend;
|
||||
typedef struct _ClutterBackendClass ClutterBackendClass;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_backend_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
ClutterBackend * clutter_get_default_backend (void);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_16
|
||||
CLUTTER_EXPORT
|
||||
void clutter_set_windowing_backend (const char *backend_type);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gdouble clutter_backend_get_resolution (ClutterBackend *backend);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_backend_set_font_options (ClutterBackend *backend,
|
||||
const cairo_font_options_t *options);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
const cairo_font_options_t * clutter_backend_get_font_options (ClutterBackend *backend);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_8
|
||||
CLUTTER_EXPORT
|
||||
CoglContext * clutter_backend_get_cogl_context (ClutterBackend *backend);
|
||||
|
||||
CLUTTER_EXPORT
|
||||
void clutter_backend_bell_notify (ClutterBackend *backend);
|
||||
|
||||
CLUTTER_EXPORT
|
||||
ClutterInputMethod * clutter_backend_get_input_method (ClutterBackend *backend);
|
||||
|
||||
CLUTTER_EXPORT
|
||||
void clutter_backend_set_input_method (ClutterBackend *backend,
|
||||
ClutterInputMethod *method);
|
||||
CLUTTER_EXPORT
|
||||
ClutterKeymap * clutter_backend_get_keymap (ClutterBackend *backend);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __CLUTTER_BACKEND_H__ */
|
||||
|
@@ -30,9 +30,7 @@
|
||||
* across the whole API.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-types.h"
|
||||
#include "clutter-private.h"
|
||||
|
@@ -324,7 +324,7 @@ _clutter_bezier_init (ClutterBezier *b,
|
||||
* triggers, we need to change those two functions a bit.
|
||||
*/
|
||||
if (b->ax > 0x1fff || b->bx > 0x1fff || b->cx > 0x1fff)
|
||||
g_warning ("Calculated coefficents will result in multiplication "
|
||||
g_warning ("Calculated coefficients will result in multiplication "
|
||||
"overflow in clutter_bezier_t2x and clutter_bezier_t2y.");
|
||||
|
||||
/*
|
||||
|
@@ -36,7 +36,7 @@ G_BEGIN_DECLS
|
||||
|
||||
typedef struct _ClutterBezier ClutterBezier;
|
||||
|
||||
ClutterBezier *_clutter_bezier_new ();
|
||||
ClutterBezier *_clutter_bezier_new (void);
|
||||
|
||||
void _clutter_bezier_free (ClutterBezier * b);
|
||||
|
||||
|
@@ -43,9 +43,7 @@
|
||||
* #ClutterBinLayout is available since Clutter 1.2
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
||||
|
@@ -74,10 +74,10 @@ struct _ClutterBinLayoutClass
|
||||
ClutterLayoutManagerClass parent_class;
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_bin_layout_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
ClutterLayoutManager * clutter_bin_layout_new (ClutterBinAlignment x_align,
|
||||
ClutterBinAlignment y_align);
|
||||
|
||||
|
@@ -80,9 +80,7 @@
|
||||
* #ClutterBindConstraint is available since Clutter 1.4
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
||||
|
@@ -48,28 +48,28 @@ G_BEGIN_DECLS
|
||||
typedef struct _ClutterBindConstraint ClutterBindConstraint;
|
||||
typedef struct _ClutterBindConstraintClass ClutterBindConstraintClass;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_bind_constraint_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterConstraint * clutter_bind_constraint_new (ClutterActor *source,
|
||||
ClutterBindCoordinate coordinate,
|
||||
gfloat offset);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_bind_constraint_set_source (ClutterBindConstraint *constraint,
|
||||
ClutterActor *source);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterActor * clutter_bind_constraint_get_source (ClutterBindConstraint *constraint);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_bind_constraint_set_coordinate (ClutterBindConstraint *constraint,
|
||||
ClutterBindCoordinate coordinate);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterBindCoordinate clutter_bind_constraint_get_coordinate (ClutterBindConstraint *constraint);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_bind_constraint_set_offset (ClutterBindConstraint *constraint,
|
||||
gfloat offset);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
gfloat clutter_bind_constraint_get_offset (ClutterBindConstraint *constraint);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -94,9 +94,7 @@
|
||||
* #ClutterBindingPool is available since Clutter 1.0
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-binding-pool.h"
|
||||
#include "clutter-debug.h"
|
||||
|
@@ -71,17 +71,17 @@ typedef gboolean (* ClutterBindingActionFunc) (GObject *gobject,
|
||||
ClutterModifierType modifiers,
|
||||
gpointer user_data);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_binding_pool_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
ClutterBindingPool * clutter_binding_pool_new (const gchar *name);
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
ClutterBindingPool * clutter_binding_pool_get_for_class (gpointer klass);
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
ClutterBindingPool * clutter_binding_pool_find (const gchar *name);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
void clutter_binding_pool_install_action (ClutterBindingPool *pool,
|
||||
const gchar *action_name,
|
||||
guint key_val,
|
||||
@@ -89,44 +89,44 @@ void clutter_binding_pool_install_action (ClutterBindingPool
|
||||
GCallback callback,
|
||||
gpointer data,
|
||||
GDestroyNotify notify);
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
void clutter_binding_pool_install_closure (ClutterBindingPool *pool,
|
||||
const gchar *action_name,
|
||||
guint key_val,
|
||||
ClutterModifierType modifiers,
|
||||
GClosure *closure);
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
void clutter_binding_pool_override_action (ClutterBindingPool *pool,
|
||||
guint key_val,
|
||||
ClutterModifierType modifiers,
|
||||
GCallback callback,
|
||||
gpointer data,
|
||||
GDestroyNotify notify);
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
void clutter_binding_pool_override_closure (ClutterBindingPool *pool,
|
||||
guint key_val,
|
||||
ClutterModifierType modifiers,
|
||||
GClosure *closure);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
const gchar * clutter_binding_pool_find_action (ClutterBindingPool *pool,
|
||||
guint key_val,
|
||||
ClutterModifierType modifiers);
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
void clutter_binding_pool_remove_action (ClutterBindingPool *pool,
|
||||
guint key_val,
|
||||
ClutterModifierType modifiers);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_binding_pool_activate (ClutterBindingPool *pool,
|
||||
guint key_val,
|
||||
ClutterModifierType modifiers,
|
||||
GObject *gobject);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
void clutter_binding_pool_block_action (ClutterBindingPool *pool,
|
||||
const gchar *action_name);
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
void clutter_binding_pool_unblock_action (ClutterBindingPool *pool,
|
||||
const gchar *action_name);
|
||||
|
||||
|
@@ -37,9 +37,7 @@
|
||||
#define CLUTTER_IS_BLUR_EFFECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_BLUR_EFFECT))
|
||||
#define CLUTTER_BLUR_EFFECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_BLUR_EFFECT, ClutterBlurEffectClass))
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
|
||||
@@ -162,6 +160,7 @@ static void
|
||||
clutter_blur_effect_paint_target (ClutterOffscreenEffect *effect)
|
||||
{
|
||||
ClutterBlurEffect *self = CLUTTER_BLUR_EFFECT (effect);
|
||||
CoglFramebuffer *framebuffer = cogl_get_draw_framebuffer ();
|
||||
guint8 paint_opacity;
|
||||
|
||||
paint_opacity = clutter_actor_get_paint_opacity (self->actor);
|
||||
@@ -171,11 +170,11 @@ clutter_blur_effect_paint_target (ClutterOffscreenEffect *effect)
|
||||
paint_opacity,
|
||||
paint_opacity,
|
||||
paint_opacity);
|
||||
cogl_push_source (self->pipeline);
|
||||
|
||||
cogl_rectangle (0, 0, self->tex_width, self->tex_height);
|
||||
|
||||
cogl_pop_source ();
|
||||
cogl_framebuffer_draw_rectangle (framebuffer,
|
||||
self->pipeline,
|
||||
0, 0,
|
||||
self->tex_width, self->tex_height);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@@ -48,10 +48,10 @@ G_BEGIN_DECLS
|
||||
typedef struct _ClutterBlurEffect ClutterBlurEffect;
|
||||
typedef struct _ClutterBlurEffectClass ClutterBlurEffectClass;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_blur_effect_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterEffect *clutter_blur_effect_new (void);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -48,9 +48,7 @@
|
||||
* #ClutterBoxLayout is available since Clutter 1.2
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
||||
@@ -152,9 +150,9 @@ typedef struct _RequestedSize
|
||||
gfloat natural_size;
|
||||
} RequestedSize;
|
||||
|
||||
static gint distribute_natural_allocation (gint extra_space,
|
||||
guint n_requested_sizes,
|
||||
RequestedSize *sizes);
|
||||
static float distribute_natural_allocation (float extra_space,
|
||||
unsigned int n_requested_sizes,
|
||||
RequestedSize *sizes);
|
||||
static void count_expand_children (ClutterLayoutManager *layout,
|
||||
ClutterContainer *container,
|
||||
gint *visible_children,
|
||||
@@ -626,7 +624,19 @@ get_preferred_size_for_opposite_orientation (ClutterBoxLayout *self,
|
||||
else
|
||||
{
|
||||
/* Bring children up to size first */
|
||||
size = distribute_natural_allocation (MAX (0, size), nvis_children, sizes);
|
||||
if (isnormal (size) || size == 0)
|
||||
{
|
||||
size = distribute_natural_allocation (MAX (0, size),
|
||||
nvis_children,
|
||||
sizes);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_critical ("Actor %s (%p) received the invalid "
|
||||
"value %f as minimum/natural size\n",
|
||||
G_OBJECT_TYPE_NAME (container), container, size);
|
||||
size = 0;
|
||||
}
|
||||
|
||||
/* Calculate space which hasn't distributed yet,
|
||||
* and is available for expanding children.
|
||||
@@ -881,17 +891,18 @@ compare_gap (gconstpointer p1,
|
||||
*
|
||||
* Pulled from gtksizerequest.c from Gtk+
|
||||
*/
|
||||
static gint
|
||||
distribute_natural_allocation (gint extra_space,
|
||||
guint n_requested_sizes,
|
||||
static float
|
||||
distribute_natural_allocation (float extra_space,
|
||||
unsigned int n_requested_sizes,
|
||||
RequestedSize *sizes)
|
||||
{
|
||||
guint *spreading;
|
||||
gint i;
|
||||
unsigned int *spreading;
|
||||
int i;
|
||||
|
||||
g_return_val_if_fail (isnormal (extra_space) || extra_space == 0, 0);
|
||||
g_return_val_if_fail (extra_space >= 0, 0);
|
||||
|
||||
spreading = g_newa (guint, n_requested_sizes);
|
||||
spreading = g_newa (unsigned int, n_requested_sizes);
|
||||
|
||||
for (i = 0; i < n_requested_sizes; i++)
|
||||
spreading[i] = i;
|
||||
@@ -915,7 +926,7 @@ distribute_natural_allocation (gint extra_space,
|
||||
|
||||
/* Sort descending by gap and position. */
|
||||
g_qsort_with_data (spreading,
|
||||
n_requested_sizes, sizeof (guint),
|
||||
n_requested_sizes, sizeof (unsigned int),
|
||||
compare_gap, sizes);
|
||||
|
||||
/* Distribute available space.
|
||||
@@ -927,11 +938,11 @@ distribute_natural_allocation (gint extra_space,
|
||||
* Sort order and reducing remaining space by assigned space
|
||||
* ensures that space is distributed equally.
|
||||
*/
|
||||
gint glue = (extra_space + i) / (i + 1);
|
||||
gint gap = sizes[(spreading[i])].natural_size
|
||||
- sizes[(spreading[i])].minimum_size;
|
||||
int glue = (extra_space + i) / (i + 1);
|
||||
int gap = sizes[(spreading[i])].natural_size
|
||||
- sizes[(spreading[i])].minimum_size;
|
||||
|
||||
gint extra = MIN (glue, gap);
|
||||
int extra = MIN (glue, gap);
|
||||
|
||||
sizes[spreading[i]].minimum_size += extra;
|
||||
|
||||
@@ -1058,7 +1069,9 @@ clutter_box_layout_allocate (ClutterLayoutManager *layout,
|
||||
else
|
||||
{
|
||||
/* Bring children up to size first */
|
||||
size = distribute_natural_allocation (MAX (0, size), nvis_children, sizes);
|
||||
size = (gint) distribute_natural_allocation (MAX (0, (float) size),
|
||||
nvis_children,
|
||||
sizes);
|
||||
|
||||
/* Calculate space which hasn't distributed yet,
|
||||
* and is available for expanding children.
|
||||
|
@@ -77,41 +77,41 @@ struct _ClutterBoxLayoutClass
|
||||
ClutterLayoutManagerClass parent_class;
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_box_layout_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
ClutterLayoutManager * clutter_box_layout_new (void);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_box_layout_set_orientation (ClutterBoxLayout *layout,
|
||||
ClutterOrientation orientation);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
ClutterOrientation clutter_box_layout_get_orientation (ClutterBoxLayout *layout);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
void clutter_box_layout_set_spacing (ClutterBoxLayout *layout,
|
||||
guint spacing);
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
guint clutter_box_layout_get_spacing (ClutterBoxLayout *layout);
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
void clutter_box_layout_set_homogeneous (ClutterBoxLayout *layout,
|
||||
gboolean homogeneous);
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_box_layout_get_homogeneous (ClutterBoxLayout *layout);
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
void clutter_box_layout_set_pack_start (ClutterBoxLayout *layout,
|
||||
gboolean pack_start);
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_box_layout_get_pack_start (ClutterBoxLayout *layout);
|
||||
|
||||
CLUTTER_DEPRECATED_IN_1_12_FOR(clutter_box_layout_set_orientation)
|
||||
CLUTTER_DEPRECATED_FOR(clutter_box_layout_set_orientation)
|
||||
void clutter_box_layout_set_vertical (ClutterBoxLayout *layout,
|
||||
gboolean vertical);
|
||||
CLUTTER_DEPRECATED_IN_1_12_FOR(clutter_box_layout_get_orientation)
|
||||
CLUTTER_DEPRECATED_FOR(clutter_box_layout_get_orientation)
|
||||
gboolean clutter_box_layout_get_vertical (ClutterBoxLayout *layout);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
void clutter_box_layout_pack (ClutterBoxLayout *layout,
|
||||
ClutterActor *actor,
|
||||
gboolean expand,
|
||||
@@ -119,48 +119,48 @@ void clutter_box_layout_pack (ClutterBoxLayou
|
||||
gboolean y_fill,
|
||||
ClutterBoxAlignment x_align,
|
||||
ClutterBoxAlignment y_align);
|
||||
CLUTTER_DEPRECATED_IN_1_12
|
||||
CLUTTER_DEPRECATED
|
||||
void clutter_box_layout_set_alignment (ClutterBoxLayout *layout,
|
||||
ClutterActor *actor,
|
||||
ClutterBoxAlignment x_align,
|
||||
ClutterBoxAlignment y_align);
|
||||
CLUTTER_DEPRECATED_IN_1_12
|
||||
CLUTTER_DEPRECATED
|
||||
void clutter_box_layout_get_alignment (ClutterBoxLayout *layout,
|
||||
ClutterActor *actor,
|
||||
ClutterBoxAlignment *x_align,
|
||||
ClutterBoxAlignment *y_align);
|
||||
CLUTTER_DEPRECATED_IN_1_12
|
||||
CLUTTER_DEPRECATED
|
||||
void clutter_box_layout_set_fill (ClutterBoxLayout *layout,
|
||||
ClutterActor *actor,
|
||||
gboolean x_fill,
|
||||
gboolean y_fill);
|
||||
CLUTTER_DEPRECATED_IN_1_12
|
||||
CLUTTER_DEPRECATED
|
||||
void clutter_box_layout_get_fill (ClutterBoxLayout *layout,
|
||||
ClutterActor *actor,
|
||||
gboolean *x_fill,
|
||||
gboolean *y_fill);
|
||||
CLUTTER_DEPRECATED_IN_1_12
|
||||
CLUTTER_DEPRECATED
|
||||
void clutter_box_layout_set_expand (ClutterBoxLayout *layout,
|
||||
ClutterActor *actor,
|
||||
gboolean expand);
|
||||
CLUTTER_DEPRECATED_IN_1_12
|
||||
CLUTTER_DEPRECATED
|
||||
gboolean clutter_box_layout_get_expand (ClutterBoxLayout *layout,
|
||||
ClutterActor *actor);
|
||||
|
||||
CLUTTER_DEPRECATED_IN_1_12
|
||||
CLUTTER_DEPRECATED
|
||||
void clutter_box_layout_set_use_animations (ClutterBoxLayout *layout,
|
||||
gboolean animate);
|
||||
CLUTTER_DEPRECATED_IN_1_12
|
||||
CLUTTER_DEPRECATED
|
||||
gboolean clutter_box_layout_get_use_animations (ClutterBoxLayout *layout);
|
||||
CLUTTER_DEPRECATED_IN_1_12
|
||||
CLUTTER_DEPRECATED
|
||||
void clutter_box_layout_set_easing_mode (ClutterBoxLayout *layout,
|
||||
gulong mode);
|
||||
CLUTTER_DEPRECATED_IN_1_12
|
||||
CLUTTER_DEPRECATED
|
||||
gulong clutter_box_layout_get_easing_mode (ClutterBoxLayout *layout);
|
||||
CLUTTER_DEPRECATED_IN_1_12
|
||||
CLUTTER_DEPRECATED
|
||||
void clutter_box_layout_set_easing_duration (ClutterBoxLayout *layout,
|
||||
guint msecs);
|
||||
CLUTTER_DEPRECATED_IN_1_12
|
||||
CLUTTER_DEPRECATED
|
||||
guint clutter_box_layout_get_easing_duration (ClutterBoxLayout *layout);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -37,9 +37,7 @@
|
||||
#define CLUTTER_IS_BRIGHTNESS_CONTRAST_EFFECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_BRIGHTNESS_CONTRAST_EFFECT))
|
||||
#define CLUTTER_BRIGHTNESS_CONTRAST_EFFECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_BRIGHTNESS_CONTRAST_EFFECT, ClutterBrightnessContrastEffectClass))
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
||||
@@ -180,6 +178,7 @@ static void
|
||||
clutter_brightness_contrast_effect_paint_target (ClutterOffscreenEffect *effect)
|
||||
{
|
||||
ClutterBrightnessContrastEffect *self = CLUTTER_BRIGHTNESS_CONTRAST_EFFECT (effect);
|
||||
CoglFramebuffer *framebuffer = cogl_get_draw_framebuffer ();
|
||||
ClutterActor *actor;
|
||||
guint8 paint_opacity;
|
||||
|
||||
@@ -191,11 +190,11 @@ clutter_brightness_contrast_effect_paint_target (ClutterOffscreenEffect *effect)
|
||||
paint_opacity,
|
||||
paint_opacity,
|
||||
paint_opacity);
|
||||
cogl_push_source (self->pipeline);
|
||||
|
||||
cogl_rectangle (0, 0, self->tex_width, self->tex_height);
|
||||
|
||||
cogl_pop_source ();
|
||||
cogl_framebuffer_draw_rectangle (framebuffer,
|
||||
self->pipeline,
|
||||
0, 0,
|
||||
self->tex_width, self->tex_height);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -49,35 +49,35 @@ G_BEGIN_DECLS
|
||||
typedef struct _ClutterBrightnessContrastEffect ClutterBrightnessContrastEffect;
|
||||
typedef struct _ClutterBrightnessContrastEffectClass ClutterBrightnessContrastEffectClass;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_brightness_contrast_effect_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
ClutterEffect * clutter_brightness_contrast_effect_new (void);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_brightness_contrast_effect_set_brightness_full (ClutterBrightnessContrastEffect *effect,
|
||||
float red,
|
||||
float green,
|
||||
float blue);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_brightness_contrast_effect_set_brightness (ClutterBrightnessContrastEffect *effect,
|
||||
float brightness);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_brightness_contrast_effect_get_brightness (ClutterBrightnessContrastEffect *effect,
|
||||
float *red,
|
||||
float *green,
|
||||
float *blue);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_brightness_contrast_effect_set_contrast_full (ClutterBrightnessContrastEffect *effect,
|
||||
float red,
|
||||
float green,
|
||||
float blue);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_brightness_contrast_effect_set_contrast (ClutterBrightnessContrastEffect *effect,
|
||||
float contrast);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_brightness_contrast_effect_get_contrast (ClutterBrightnessContrastEffect *effect,
|
||||
float *red,
|
||||
float *green,
|
||||
|
14
clutter/clutter/clutter-build-config.h.meson
Normal file
14
clutter/clutter/clutter-build-config.h.meson
Normal file
@@ -0,0 +1,14 @@
|
||||
/* Mutter version */
|
||||
#mesondefine MUTTER_VERSION
|
||||
|
||||
/* List of Cogl drivers */
|
||||
#mesondefine CLUTTER_DRIVERS
|
||||
|
||||
/* Have evdev support for input handling */
|
||||
#mesondefine HAVE_EVDEV
|
||||
|
||||
/* Building with libwacom for advanced tablet management */
|
||||
#mesondefine HAVE_LIBWACOM
|
||||
|
||||
/* Supports PangoFt2 */
|
||||
#mesondefine HAVE_PANGO_FT2
|
@@ -27,9 +27,7 @@
|
||||
* Clutter provides some utility functions for using Cairo.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-cairo.h"
|
||||
#include "clutter-color.h"
|
||||
|
@@ -50,9 +50,9 @@ G_BEGIN_DECLS
|
||||
#define CLUTTER_CAIRO_FORMAT_ARGB32 (COGL_PIXEL_FORMAT_ARGB_8888_PRE)
|
||||
#endif
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_cairo_clear (cairo_t *cr);
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
void clutter_cairo_set_source_color (cairo_t *cr,
|
||||
const ClutterColor *color);
|
||||
|
||||
|
@@ -42,9 +42,7 @@
|
||||
* #ClutterCanvas is available since Clutter 1.10.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <cogl/cogl.h>
|
||||
#include <cairo-gobject.h>
|
||||
@@ -76,9 +74,6 @@ struct _ClutterCanvasPrivate
|
||||
gboolean dirty;
|
||||
|
||||
CoglBitmap *buffer;
|
||||
|
||||
int scale_factor;
|
||||
guint scale_factor_set : 1;
|
||||
};
|
||||
|
||||
enum
|
||||
@@ -87,8 +82,6 @@ enum
|
||||
|
||||
PROP_WIDTH,
|
||||
PROP_HEIGHT,
|
||||
PROP_SCALE_FACTOR,
|
||||
PROP_SCALE_FACTOR_SET,
|
||||
|
||||
LAST_PROP
|
||||
};
|
||||
@@ -185,11 +178,6 @@ clutter_canvas_set_property (GObject *gobject,
|
||||
}
|
||||
break;
|
||||
|
||||
case PROP_SCALE_FACTOR:
|
||||
clutter_canvas_set_scale_factor (CLUTTER_CANVAS (gobject),
|
||||
g_value_get_int (value));
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
|
||||
break;
|
||||
@@ -214,17 +202,6 @@ clutter_canvas_get_property (GObject *gobject,
|
||||
g_value_set_int (value, priv->height);
|
||||
break;
|
||||
|
||||
case PROP_SCALE_FACTOR:
|
||||
if (priv->scale_factor_set)
|
||||
g_value_set_int (value, priv->scale_factor);
|
||||
else
|
||||
g_value_set_int (value, -1);
|
||||
break;
|
||||
|
||||
case PROP_SCALE_FACTOR_SET:
|
||||
g_value_set_boolean (value, priv->scale_factor_set);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
|
||||
break;
|
||||
@@ -268,46 +245,6 @@ clutter_canvas_class_init (ClutterCanvasClass *klass)
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
/**
|
||||
* ClutterCanvas:scale-factor-set:
|
||||
*
|
||||
* Whether the #ClutterCanvas:scale-factor property is set.
|
||||
*
|
||||
* If the #ClutterCanvas:scale-factor-set property is %FALSE
|
||||
* then #ClutterCanvas will use the #ClutterSettings:window-scaling-factor
|
||||
* property.
|
||||
*
|
||||
* Since: 1.18
|
||||
*/
|
||||
obj_props[PROP_SCALE_FACTOR_SET] =
|
||||
g_param_spec_boolean ("scale-factor-set",
|
||||
P_("Scale Factor Set"),
|
||||
P_("Whether the scale-factor property is set"),
|
||||
FALSE,
|
||||
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
|
||||
|
||||
/**
|
||||
* ClutterCanvas:scale-factor:
|
||||
*
|
||||
* The scaling factor to be applied to the Cairo surface used for
|
||||
* drawing.
|
||||
*
|
||||
* If #ClutterCanvas:scale-factor is set to a negative value, the
|
||||
* value of the #ClutterSettings:window-scaling-factor property is
|
||||
* used instead.
|
||||
*
|
||||
* Use #ClutterCanvas:scale-factor-set to check if the scale factor
|
||||
* is set.
|
||||
*
|
||||
* Since: 1.18
|
||||
*/
|
||||
obj_props[PROP_SCALE_FACTOR] =
|
||||
g_param_spec_int ("scale-factor",
|
||||
P_("Scale Factor"),
|
||||
P_("The scaling factor for the surface"),
|
||||
-1, 1000,
|
||||
-1,
|
||||
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
||||
|
||||
/**
|
||||
* ClutterCanvas::draw:
|
||||
@@ -354,7 +291,6 @@ clutter_canvas_init (ClutterCanvas *self)
|
||||
|
||||
self->priv->width = -1;
|
||||
self->priv->height = -1;
|
||||
self->priv->scale_factor = -1;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -397,28 +333,18 @@ clutter_canvas_emit_draw (ClutterCanvas *self)
|
||||
gboolean mapped_buffer;
|
||||
unsigned char *data;
|
||||
CoglBuffer *buffer;
|
||||
int window_scale = 1;
|
||||
gboolean res;
|
||||
cairo_t *cr;
|
||||
|
||||
g_assert (priv->width > 0 && priv->width > 0);
|
||||
g_assert (priv->height > 0 && priv->width > 0);
|
||||
|
||||
priv->dirty = TRUE;
|
||||
|
||||
if (priv->scale_factor_set)
|
||||
window_scale = priv->scale_factor;
|
||||
else
|
||||
g_object_get (clutter_settings_get_default (),
|
||||
"window-scaling-factor", &window_scale,
|
||||
NULL);
|
||||
real_width = priv->width;
|
||||
real_height = priv->height;
|
||||
|
||||
real_width = priv->width * window_scale;
|
||||
real_height = priv->height * window_scale;
|
||||
|
||||
CLUTTER_NOTE (MISC, "Creating Cairo surface with size %d x %d (real: %d x %d, scale: %d)",
|
||||
priv->width, priv->height,
|
||||
real_width, real_height,
|
||||
window_scale);
|
||||
CLUTTER_NOTE (MISC, "Creating Cairo surface with size %d x %d",
|
||||
priv->width, priv->height);
|
||||
|
||||
if (priv->buffer == NULL)
|
||||
{
|
||||
@@ -461,8 +387,6 @@ clutter_canvas_emit_draw (ClutterCanvas *self)
|
||||
mapped_buffer = FALSE;
|
||||
}
|
||||
|
||||
cairo_surface_set_device_scale (surface, window_scale, window_scale);
|
||||
|
||||
self->priv->cr = cr = cairo_create (surface);
|
||||
|
||||
g_signal_emit (self, canvas_signals[DRAW], 0,
|
||||
@@ -636,81 +560,3 @@ clutter_canvas_set_size (ClutterCanvas *canvas,
|
||||
|
||||
return clutter_canvas_invalidate_internal (canvas, width, height);
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_canvas_set_scale_factor:
|
||||
* @canvas: a #ClutterCanvas
|
||||
* @scale: the scale factor, or -1 for the default
|
||||
*
|
||||
* Sets the scaling factor for the Cairo surface used by @canvas.
|
||||
*
|
||||
* This function should rarely be used.
|
||||
*
|
||||
* The default scaling factor of a #ClutterCanvas content uses the
|
||||
* #ClutterSettings:window-scaling-factor property, which is set by
|
||||
* the windowing system. By using this function it is possible to
|
||||
* override that setting.
|
||||
*
|
||||
* Changing the scale factor will invalidate the @canvas.
|
||||
*
|
||||
* Since: 1.18
|
||||
*/
|
||||
void
|
||||
clutter_canvas_set_scale_factor (ClutterCanvas *canvas,
|
||||
int scale)
|
||||
{
|
||||
ClutterCanvasPrivate *priv;
|
||||
GObject *obj;
|
||||
|
||||
g_return_if_fail (CLUTTER_IS_CANVAS (canvas));
|
||||
g_return_if_fail (scale != 0);
|
||||
|
||||
priv = canvas->priv;
|
||||
|
||||
if (scale < 0)
|
||||
{
|
||||
if (!priv->scale_factor_set)
|
||||
return;
|
||||
|
||||
priv->scale_factor_set = FALSE;
|
||||
priv->scale_factor = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (priv->scale_factor_set && priv->scale_factor == scale)
|
||||
return;
|
||||
|
||||
priv->scale_factor_set = TRUE;
|
||||
priv->scale_factor = scale;
|
||||
}
|
||||
|
||||
clutter_content_invalidate (CLUTTER_CONTENT (canvas));
|
||||
|
||||
obj = G_OBJECT (canvas);
|
||||
|
||||
g_object_notify_by_pspec (obj, obj_props[PROP_SCALE_FACTOR]);
|
||||
g_object_notify_by_pspec (obj, obj_props[PROP_SCALE_FACTOR_SET]);
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_canvas_get_scale_factor:
|
||||
* @canvas: a #ClutterCanvas
|
||||
*
|
||||
* Retrieves the scaling factor of @canvas, as set using
|
||||
* clutter_canvas_set_scale_factor().
|
||||
*
|
||||
* Return value: the scaling factor, or -1 if the @canvas
|
||||
* uses the default from #ClutterSettings
|
||||
*
|
||||
* Since: 1.18
|
||||
*/
|
||||
int
|
||||
clutter_canvas_get_scale_factor (ClutterCanvas *canvas)
|
||||
{
|
||||
g_return_val_if_fail (CLUTTER_IS_CANVAS (canvas), -1);
|
||||
|
||||
if (!canvas->priv->scale_factor_set)
|
||||
return -1;
|
||||
|
||||
return canvas->priv->scale_factor;
|
||||
}
|
||||
|
@@ -85,20 +85,20 @@ struct _ClutterCanvasClass
|
||||
gpointer _padding[16];
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_canvas_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
ClutterContent * clutter_canvas_new (void);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_canvas_set_size (ClutterCanvas *canvas,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_18
|
||||
CLUTTER_EXPORT
|
||||
void clutter_canvas_set_scale_factor (ClutterCanvas *canvas,
|
||||
int scale);
|
||||
CLUTTER_AVAILABLE_IN_1_18
|
||||
CLUTTER_EXPORT
|
||||
int clutter_canvas_get_scale_factor (ClutterCanvas *canvas);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -36,9 +36,8 @@
|
||||
*
|
||||
* #ClutterChildMeta is available since Clutter 0.8
|
||||
*/
|
||||
#ifdef HAVE_CONFIG_H
|
||||
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-child-meta.h"
|
||||
#include "clutter-container.h"
|
||||
|
@@ -109,12 +109,12 @@ struct _ClutterChildMetaClass
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_child_meta_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
ClutterContainer * clutter_child_meta_get_container (ClutterChildMeta *data);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
ClutterActor * clutter_child_meta_get_actor (ClutterChildMeta *data);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -92,9 +92,7 @@
|
||||
* #ClutterClickAction is available since Clutter 1.4
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-click-action.h"
|
||||
|
||||
|
@@ -97,22 +97,22 @@ struct _ClutterClickActionClass
|
||||
void (* _clutter_click_action7) (void);
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_click_action_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterAction * clutter_click_action_new (void);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
guint clutter_click_action_get_button (ClutterClickAction *action);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterModifierType clutter_click_action_get_state (ClutterClickAction *action);
|
||||
CLUTTER_AVAILABLE_IN_1_8
|
||||
CLUTTER_EXPORT
|
||||
void clutter_click_action_get_coords (ClutterClickAction *action,
|
||||
gfloat *press_x,
|
||||
gfloat *press_y);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_click_action_release (ClutterClickAction *action);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -37,9 +37,7 @@
|
||||
* #ClutterClone is available since Clutter 1.0
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
#include "clutter-actor-private.h"
|
||||
@@ -54,6 +52,7 @@
|
||||
struct _ClutterClonePrivate
|
||||
{
|
||||
ClutterActor *clone_source;
|
||||
gulong source_destroy_id;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (ClutterClone, clutter_clone, CLUTTER_TYPE_ACTOR)
|
||||
@@ -376,6 +375,13 @@ clutter_clone_new (ClutterActor *source)
|
||||
return g_object_new (CLUTTER_TYPE_CLONE, "source", source, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
on_source_destroyed (ClutterActor *source,
|
||||
ClutterClone *self)
|
||||
{
|
||||
clutter_clone_set_source_internal (self, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_clone_set_source_internal (ClutterClone *self,
|
||||
ClutterActor *source)
|
||||
@@ -387,6 +393,8 @@ clutter_clone_set_source_internal (ClutterClone *self,
|
||||
|
||||
if (priv->clone_source != NULL)
|
||||
{
|
||||
g_signal_handler_disconnect (priv->clone_source, priv->source_destroy_id);
|
||||
priv->source_destroy_id = 0;
|
||||
_clutter_actor_detach_clone (priv->clone_source, CLUTTER_ACTOR (self));
|
||||
g_object_unref (priv->clone_source);
|
||||
priv->clone_source = NULL;
|
||||
@@ -396,6 +404,8 @@ clutter_clone_set_source_internal (ClutterClone *self,
|
||||
{
|
||||
priv->clone_source = g_object_ref (source);
|
||||
_clutter_actor_attach_clone (priv->clone_source, CLUTTER_ACTOR (self));
|
||||
priv->source_destroy_id = g_signal_connect (priv->clone_source, "destroy",
|
||||
G_CALLBACK (on_source_destroyed), self);
|
||||
}
|
||||
|
||||
g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_SOURCE]);
|
||||
|
@@ -78,15 +78,15 @@ struct _ClutterCloneClass
|
||||
void (*_clutter_actor_clone4) (void);
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_clone_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
ClutterActor * clutter_clone_new (ClutterActor *source);
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
void clutter_clone_set_source (ClutterClone *self,
|
||||
ClutterActor *source);
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
ClutterActor * clutter_clone_get_source (ClutterClone *self);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -33,9 +33,7 @@
|
||||
* The alpha channel is fully opaque at 255 and fully transparent at 0.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
||||
@@ -48,7 +46,7 @@
|
||||
#include "clutter-debug.h"
|
||||
|
||||
/* XXX - keep in sync with the ClutterStaticColor enumeration order */
|
||||
static const ClutterColor const static_colors[] = {
|
||||
static const ClutterColor static_colors[] = {
|
||||
/* CGA/EGA color palette */
|
||||
{ 0xff, 0xff, 0xff, 0xff }, /* white */
|
||||
{ 0x00, 0x00, 0x00, 0xff }, /* black */
|
||||
|
@@ -68,76 +68,76 @@ struct _ClutterColor
|
||||
*/
|
||||
#define CLUTTER_COLOR_INIT(r,g,b,a) { (r), (g), (b), (a) }
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_color_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
ClutterColor *clutter_color_new (guint8 red,
|
||||
guint8 green,
|
||||
guint8 blue,
|
||||
guint8 alpha);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
ClutterColor *clutter_color_alloc (void);
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
ClutterColor *clutter_color_init (ClutterColor *color,
|
||||
guint8 red,
|
||||
guint8 green,
|
||||
guint8 blue,
|
||||
guint8 alpha);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
ClutterColor *clutter_color_copy (const ClutterColor *color);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_color_free (ClutterColor *color);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_color_add (const ClutterColor *a,
|
||||
const ClutterColor *b,
|
||||
ClutterColor *result);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_color_subtract (const ClutterColor *a,
|
||||
const ClutterColor *b,
|
||||
ClutterColor *result);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_color_lighten (const ClutterColor *color,
|
||||
ClutterColor *result);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_color_darken (const ClutterColor *color,
|
||||
ClutterColor *result);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_color_shade (const ClutterColor *color,
|
||||
gdouble factor,
|
||||
ClutterColor *result);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gchar * clutter_color_to_string (const ClutterColor *color);
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_color_from_string (ClutterColor *color,
|
||||
const gchar *str);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_color_to_hls (const ClutterColor *color,
|
||||
gfloat *hue,
|
||||
gfloat *luminance,
|
||||
gfloat *saturation);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_color_from_hls (ClutterColor *color,
|
||||
gfloat hue,
|
||||
gfloat luminance,
|
||||
gfloat saturation);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
guint32 clutter_color_to_pixel (const ClutterColor *color);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_color_from_pixel (ClutterColor *color,
|
||||
guint32 pixel);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
guint clutter_color_hash (gconstpointer v);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_color_equal (gconstpointer v1,
|
||||
gconstpointer v2);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_6
|
||||
CLUTTER_EXPORT
|
||||
void clutter_color_interpolate (const ClutterColor *initial,
|
||||
const ClutterColor *final,
|
||||
gdouble progress,
|
||||
@@ -177,22 +177,22 @@ struct _ClutterParamSpecColor
|
||||
ClutterColor *default_value;
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
void clutter_value_set_color (GValue *value,
|
||||
const ClutterColor *color);
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
const ClutterColor * clutter_value_get_color (const GValue *value);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_param_color_get_type (void) G_GNUC_CONST;
|
||||
CLUTTER_AVAILABLE_IN_1_0
|
||||
CLUTTER_EXPORT
|
||||
GParamSpec * clutter_param_spec_color (const gchar *name,
|
||||
const gchar *nick,
|
||||
const gchar *blurb,
|
||||
const ClutterColor *default_value,
|
||||
GParamFlags flags);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_6
|
||||
CLUTTER_EXPORT
|
||||
const ClutterColor *clutter_color_get_static (ClutterStaticColor color);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -37,9 +37,7 @@
|
||||
#define CLUTTER_IS_COLORIZE_EFFECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_COLORIZE_EFFECT))
|
||||
#define CLUTTER_COLORIZE_EFFECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_COLORIZE_EFFECT, ClutterColorizeEffectClass))
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
|
||||
@@ -150,6 +148,7 @@ static void
|
||||
clutter_colorize_effect_paint_target (ClutterOffscreenEffect *effect)
|
||||
{
|
||||
ClutterColorizeEffect *self = CLUTTER_COLORIZE_EFFECT (effect);
|
||||
CoglFramebuffer *framebuffer = cogl_get_draw_framebuffer ();
|
||||
ClutterActor *actor;
|
||||
guint8 paint_opacity;
|
||||
|
||||
@@ -161,11 +160,11 @@ clutter_colorize_effect_paint_target (ClutterOffscreenEffect *effect)
|
||||
paint_opacity,
|
||||
paint_opacity,
|
||||
paint_opacity);
|
||||
cogl_push_source (self->pipeline);
|
||||
|
||||
cogl_rectangle (0, 0, self->tex_width, self->tex_height);
|
||||
|
||||
cogl_pop_source ();
|
||||
cogl_framebuffer_draw_rectangle (framebuffer,
|
||||
self->pipeline,
|
||||
0, 0,
|
||||
self->tex_width, self->tex_height);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -49,16 +49,16 @@ G_BEGIN_DECLS
|
||||
typedef struct _ClutterColorizeEffect ClutterColorizeEffect;
|
||||
typedef struct _ClutterColorizeEffectClass ClutterColorizeEffectClass;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_colorize_effect_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterEffect *clutter_colorize_effect_new (const ClutterColor *tint);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_colorize_effect_set_tint (ClutterColorizeEffect *effect,
|
||||
const ClutterColor *tint);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_colorize_effect_get_tint (ClutterColorizeEffect *effect,
|
||||
ClutterColor *tint);
|
||||
|
||||
|
@@ -128,9 +128,7 @@
|
||||
* can be recovered at any point using clutter_actor_meta_get_actor().
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
|
||||
|
@@ -96,32 +96,32 @@ struct _ClutterConstraintClass
|
||||
void (* _clutter_constraint7) (void);
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_constraint_get_type (void) G_GNUC_CONST;
|
||||
|
||||
/* ClutterActor API */
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_add_constraint (ClutterActor *self,
|
||||
ClutterConstraint *constraint);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_add_constraint_with_name (ClutterActor *self,
|
||||
const gchar *name,
|
||||
ClutterConstraint *constraint);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_remove_constraint (ClutterActor *self,
|
||||
ClutterConstraint *constraint);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_remove_constraint_by_name (ClutterActor *self,
|
||||
const gchar *name);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GList * clutter_actor_get_constraints (ClutterActor *self);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterConstraint *clutter_actor_get_constraint (ClutterActor *self,
|
||||
const gchar *name);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_actor_clear_constraints (ClutterActor *self);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_actor_has_constraints (ClutterActor *self);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -26,9 +26,7 @@
|
||||
* Author: Emmanuele Bassi <ebassi@openedhand.com>
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <glib-object.h>
|
||||
|
@@ -141,52 +141,52 @@ struct _ClutterContainerIface
|
||||
GParamSpec *pspec);
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_container_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
ClutterActor * clutter_container_find_child_by_name (ClutterContainer *container,
|
||||
const gchar *child_name);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
GParamSpec * clutter_container_class_find_child_property (GObjectClass *klass,
|
||||
const gchar *property_name);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
GParamSpec ** clutter_container_class_list_child_properties (GObjectClass *klass,
|
||||
guint *n_properties);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_container_create_child_meta (ClutterContainer *container,
|
||||
ClutterActor *actor);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_container_destroy_child_meta (ClutterContainer *container,
|
||||
ClutterActor *actor);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
ClutterChildMeta * clutter_container_get_child_meta (ClutterContainer *container,
|
||||
ClutterActor *actor);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_container_child_set_property (ClutterContainer *container,
|
||||
ClutterActor *child,
|
||||
const gchar * property,
|
||||
const GValue *value);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_container_child_get_property (ClutterContainer *container,
|
||||
ClutterActor *child,
|
||||
const gchar *property,
|
||||
GValue *value);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_container_child_set (ClutterContainer *container,
|
||||
ClutterActor *actor,
|
||||
const gchar *first_prop,
|
||||
...) G_GNUC_NULL_TERMINATED;
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_container_child_get (ClutterContainer *container,
|
||||
ClutterActor *actor,
|
||||
const gchar *first_prop,
|
||||
...) G_GNUC_NULL_TERMINATED;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
CLUTTER_EXPORT
|
||||
void clutter_container_child_notify (ClutterContainer *container,
|
||||
ClutterActor *child,
|
||||
GParamSpec *pspec);
|
||||
|
@@ -36,10 +36,9 @@
|
||||
* #ClutterContent is available since Clutter 1.10.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-actor-private.h"
|
||||
#include "clutter-content-private.h"
|
||||
|
||||
#include "clutter-debug.h"
|
||||
@@ -93,6 +92,11 @@ clutter_content_real_invalidate (ClutterContent *content)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_content_real_invalidate_size (ClutterContent *content)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_content_real_paint_content (ClutterContent *content,
|
||||
ClutterActor *actor,
|
||||
@@ -110,6 +114,7 @@ clutter_content_default_init (ClutterContentInterface *iface)
|
||||
iface->attached = clutter_content_real_attached;
|
||||
iface->detached = clutter_content_real_detached;
|
||||
iface->invalidate = clutter_content_real_invalidate;
|
||||
iface->invalidate_size = clutter_content_real_invalidate_size;
|
||||
|
||||
/**
|
||||
* ClutterContent::attached:
|
||||
@@ -190,6 +195,45 @@ clutter_content_invalidate (ClutterContent *content)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_content_invalidate_size:
|
||||
* @content: a #ClutterContent
|
||||
*
|
||||
* Signals that @content's size changed. Attached actors with request mode
|
||||
* set to %CLUTTER_REQUEST_CONTENT_SIZE will have a relayout queued.
|
||||
*
|
||||
* Attached actors with other request modes are not redrawn. To redraw them
|
||||
* too, use clutter_content_invalidate().
|
||||
*/
|
||||
void
|
||||
clutter_content_invalidate_size (ClutterContent *content)
|
||||
{
|
||||
ClutterActor *actor;
|
||||
GHashTable *actors;
|
||||
GHashTableIter iter;
|
||||
|
||||
g_return_if_fail (CLUTTER_IS_CONTENT (content));
|
||||
|
||||
CLUTTER_CONTENT_GET_IFACE (content)->invalidate_size (content);
|
||||
|
||||
actors = g_object_get_qdata (G_OBJECT (content), quark_content_actors);
|
||||
if (actors == NULL)
|
||||
return;
|
||||
|
||||
g_hash_table_iter_init (&iter, actors);
|
||||
while (g_hash_table_iter_next (&iter, (gpointer *) &actor, NULL))
|
||||
{
|
||||
ClutterRequestMode request_mode;
|
||||
|
||||
g_assert (actor != NULL);
|
||||
|
||||
request_mode = clutter_actor_get_request_mode (actor);
|
||||
|
||||
if (request_mode == CLUTTER_REQUEST_CONTENT_SIZE)
|
||||
_clutter_actor_queue_only_relayout (actor);
|
||||
}
|
||||
}
|
||||
|
||||
/*< private >
|
||||
* _clutter_content_attached:
|
||||
* @content: a #ClutterContent
|
||||
|
@@ -86,18 +86,23 @@ struct _ClutterContentIface
|
||||
ClutterActor *actor);
|
||||
|
||||
void (* invalidate) (ClutterContent *content);
|
||||
|
||||
void (* invalidate_size) (ClutterContent *content);
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_content_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_content_get_preferred_size (ClutterContent *content,
|
||||
gfloat *width,
|
||||
gfloat *height);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
CLUTTER_EXPORT
|
||||
void clutter_content_invalidate (ClutterContent *content);
|
||||
|
||||
CLUTTER_EXPORT
|
||||
void clutter_content_invalidate_size (ClutterContent *content);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __CLUTTER_CONTENT_H__ */
|
||||
|
@@ -39,7 +39,8 @@ typedef enum {
|
||||
CLUTTER_DEBUG_DISABLE_CULLING = 1 << 4,
|
||||
CLUTTER_DEBUG_DISABLE_OFFSCREEN_REDIRECT = 1 << 5,
|
||||
CLUTTER_DEBUG_CONTINUOUS_REDRAW = 1 << 6,
|
||||
CLUTTER_DEBUG_PAINT_DEFORM_TILES = 1 << 7
|
||||
CLUTTER_DEBUG_PAINT_DEFORM_TILES = 1 << 7,
|
||||
CLUTTER_DEBUG_PAINT_DAMAGE_REGION = 1 << 8,
|
||||
} ClutterDrawDebugFlag;
|
||||
|
||||
#ifdef CLUTTER_ENABLE_DEBUG
|
||||
@@ -79,9 +80,9 @@ extern guint clutter_pick_debug_flags;
|
||||
extern guint clutter_paint_debug_flags;
|
||||
|
||||
void _clutter_debug_messagev (const char *format,
|
||||
va_list var_args);
|
||||
va_list var_args) G_GNUC_PRINTF (1, 0);
|
||||
void _clutter_debug_message (const char *format,
|
||||
...);
|
||||
...) G_GNUC_PRINTF (1, 2);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
@@ -51,9 +51,7 @@
|
||||
* deformation algorithm.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
#include "clutter-deform-effect.h"
|
||||
|
@@ -92,24 +92,24 @@ struct _ClutterDeformEffectClass
|
||||
void (*_clutter_deform7) (void);
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_deform_effect_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_deform_effect_set_back_material (ClutterDeformEffect *effect,
|
||||
CoglHandle material);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
CoglHandle clutter_deform_effect_get_back_material (ClutterDeformEffect *effect);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_deform_effect_set_n_tiles (ClutterDeformEffect *effect,
|
||||
guint x_tiles,
|
||||
guint y_tiles);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_deform_effect_get_n_tiles (ClutterDeformEffect *effect,
|
||||
guint *x_tiles,
|
||||
guint *y_tiles);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_deform_effect_invalidate (ClutterDeformEffect *effect);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -8,7 +8,6 @@
|
||||
#include "deprecated/clutter-animatable.h"
|
||||
#include "deprecated/clutter-animation.h"
|
||||
#include "deprecated/clutter-animator.h"
|
||||
#include "deprecated/clutter-backend.h"
|
||||
#include "deprecated/clutter-behaviour.h"
|
||||
#include "deprecated/clutter-behaviour-depth.h"
|
||||
#include "deprecated/clutter-behaviour-ellipse.h"
|
||||
@@ -20,13 +19,11 @@
|
||||
#include "deprecated/clutter-box.h"
|
||||
#include "deprecated/clutter-cairo-texture.h"
|
||||
#include "deprecated/clutter-container.h"
|
||||
#include "deprecated/clutter-frame-source.h"
|
||||
#include "deprecated/clutter-group.h"
|
||||
#include "deprecated/clutter-input-device.h"
|
||||
#include "deprecated/clutter-keysyms.h"
|
||||
#include "deprecated/clutter-list-model.h"
|
||||
#include "deprecated/clutter-main.h"
|
||||
#include "deprecated/clutter-media.h"
|
||||
#include "deprecated/clutter-model.h"
|
||||
#include "deprecated/clutter-rectangle.h"
|
||||
#include "deprecated/clutter-score.h"
|
||||
@@ -37,8 +34,6 @@
|
||||
#include "deprecated/clutter-table-layout.h"
|
||||
#include "deprecated/clutter-texture.h"
|
||||
#include "deprecated/clutter-timeline.h"
|
||||
#include "deprecated/clutter-timeout-pool.h"
|
||||
#include "deprecated/clutter-util.h"
|
||||
|
||||
#undef __CLUTTER_DEPRECATED_H_INSIDE__
|
||||
|
||||
|
@@ -39,9 +39,7 @@
|
||||
#define CLUTTER_IS_DESATURATE_EFFECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_DESATURATE_EFFECT))
|
||||
#define CLUTTER_DESATURATE_EFFECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_DESATURATE_EFFECT, ClutterDesaturateEffectClass))
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
|
||||
@@ -157,6 +155,7 @@ static void
|
||||
clutter_desaturate_effect_paint_target (ClutterOffscreenEffect *effect)
|
||||
{
|
||||
ClutterDesaturateEffect *self = CLUTTER_DESATURATE_EFFECT (effect);
|
||||
CoglFramebuffer *framebuffer = cogl_get_draw_framebuffer ();
|
||||
ClutterActor *actor;
|
||||
CoglHandle texture;
|
||||
guint8 paint_opacity;
|
||||
@@ -172,13 +171,12 @@ clutter_desaturate_effect_paint_target (ClutterOffscreenEffect *effect)
|
||||
paint_opacity,
|
||||
paint_opacity,
|
||||
paint_opacity);
|
||||
cogl_push_source (self->pipeline);
|
||||
|
||||
cogl_rectangle (0, 0,
|
||||
cogl_texture_get_width (texture),
|
||||
cogl_texture_get_height (texture));
|
||||
|
||||
cogl_pop_source ();
|
||||
cogl_framebuffer_draw_rectangle (framebuffer,
|
||||
self->pipeline,
|
||||
0, 0,
|
||||
cogl_texture_get_width (texture),
|
||||
cogl_texture_get_height (texture));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -48,16 +48,16 @@ G_BEGIN_DECLS
|
||||
typedef struct _ClutterDesaturateEffect ClutterDesaturateEffect;
|
||||
typedef struct _ClutterDesaturateEffectClass ClutterDesaturateEffectClass;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_desaturate_effect_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterEffect *clutter_desaturate_effect_new (gdouble factor);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_desaturate_effect_set_factor (ClutterDesaturateEffect *effect,
|
||||
gdouble factor);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
gdouble clutter_desaturate_effect_get_factor (ClutterDesaturateEffect *effect);
|
||||
|
||||
G_END_DECLS
|
||||
|
@@ -145,6 +145,9 @@ struct _ClutterInputDevice
|
||||
guint is_enabled : 1;
|
||||
};
|
||||
|
||||
typedef void (*ClutterEmitInputDeviceEvent) (ClutterEvent *event,
|
||||
ClutterInputDevice *device);
|
||||
|
||||
struct _ClutterInputDeviceClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
@@ -154,6 +157,24 @@ struct _ClutterInputDeviceClass
|
||||
guint *evdev_keycode);
|
||||
void (* update_from_tool) (ClutterInputDevice *device,
|
||||
ClutterInputDeviceTool *tool);
|
||||
|
||||
gboolean (* is_mode_switch_button) (ClutterInputDevice *device,
|
||||
guint group,
|
||||
guint button);
|
||||
gint (* get_group_n_modes) (ClutterInputDevice *device,
|
||||
gint group);
|
||||
|
||||
gboolean (* is_grouped) (ClutterInputDevice *device,
|
||||
ClutterInputDevice *other_device);
|
||||
|
||||
gboolean (* get_physical_size) (ClutterInputDevice *device,
|
||||
gdouble *width,
|
||||
gdouble *height);
|
||||
|
||||
/* Keyboard accessbility */
|
||||
void (* process_kbd_a11y_event) (ClutterEvent *event,
|
||||
ClutterInputDevice *device,
|
||||
ClutterEmitInputDeviceEvent emit_event_func);
|
||||
};
|
||||
|
||||
/* Platform-dependent interface */
|
||||
@@ -188,6 +209,10 @@ void _clutter_device_manager_select_stage_events (ClutterDeviceMa
|
||||
ClutterStage *stage);
|
||||
ClutterBackend *_clutter_device_manager_get_backend (ClutterDeviceManager *device_manager);
|
||||
|
||||
void _clutter_device_manager_compress_motion (ClutterDeviceManager *device_manger,
|
||||
ClutterEvent *event,
|
||||
const ClutterEvent *to_discard);
|
||||
|
||||
/* input device */
|
||||
gboolean _clutter_input_device_has_sequence (ClutterInputDevice *device,
|
||||
ClutterEventSequence *sequence);
|
||||
|
@@ -36,9 +36,7 @@
|
||||
* #ClutterDeviceManager is available since Clutter 1.2
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-backend-private.h"
|
||||
#include "clutter-debug.h"
|
||||
@@ -47,11 +45,16 @@
|
||||
#include "clutter-marshal.h"
|
||||
#include "clutter-private.h"
|
||||
#include "clutter-stage-private.h"
|
||||
#include "clutter-virtual-input-device.h"
|
||||
#include "clutter-input-device-tool.h"
|
||||
|
||||
struct _ClutterDeviceManagerPrivate
|
||||
{
|
||||
/* back-pointer to the backend */
|
||||
ClutterBackend *backend;
|
||||
|
||||
/* Keyboard a11y */
|
||||
ClutterKbdA11ySettings kbd_a11y_settings;
|
||||
};
|
||||
|
||||
enum
|
||||
@@ -69,6 +72,9 @@ enum
|
||||
{
|
||||
DEVICE_ADDED,
|
||||
DEVICE_REMOVED,
|
||||
TOOL_CHANGED,
|
||||
KBD_A11Y_MASK_CHANGED,
|
||||
KBD_A11Y_FLAGS_CHANGED,
|
||||
|
||||
LAST_SIGNAL
|
||||
};
|
||||
@@ -183,6 +189,56 @@ clutter_device_manager_class_init (ClutterDeviceManagerClass *klass)
|
||||
_clutter_marshal_VOID__OBJECT,
|
||||
G_TYPE_NONE, 1,
|
||||
CLUTTER_TYPE_INPUT_DEVICE);
|
||||
|
||||
manager_signals[TOOL_CHANGED] =
|
||||
g_signal_new (I_("tool-changed"),
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_LAST,
|
||||
0, NULL, NULL,
|
||||
_clutter_marshal_VOID__OBJECT_OBJECT,
|
||||
G_TYPE_NONE, 2,
|
||||
CLUTTER_TYPE_INPUT_DEVICE,
|
||||
CLUTTER_TYPE_INPUT_DEVICE_TOOL);
|
||||
|
||||
/**
|
||||
* ClutterDeviceManager::kbd-a11y-mods-state-changed:
|
||||
* @manager: the #ClutterDeviceManager that emitted the signal
|
||||
* @latched_mask: the latched modifier mask from stickykeys
|
||||
* @locked_mask: the locked modifier mask from stickykeys
|
||||
*
|
||||
* The ::kbd-a11y-mods-state-changed signal is emitted each time either the
|
||||
* latched modifiers mask or locked modifiers mask are changed as the
|
||||
* result of keyboard accessibilty's sticky keys operations.
|
||||
*/
|
||||
manager_signals[KBD_A11Y_MASK_CHANGED] =
|
||||
g_signal_new (I_("kbd-a11y-mods-state-changed"),
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_LAST,
|
||||
0, NULL, NULL,
|
||||
_clutter_marshal_VOID__UINT_UINT,
|
||||
G_TYPE_NONE, 2,
|
||||
G_TYPE_UINT,
|
||||
G_TYPE_UINT);
|
||||
|
||||
/**
|
||||
* ClutterDeviceManager::kbd-a11y-flags-changed:
|
||||
* @manager: the #ClutterDeviceManager that emitted the signal
|
||||
* @settings_flags: the new ClutterKeyboardA11yFlags configuration
|
||||
* @changed_mask: the ClutterKeyboardA11yFlags changed
|
||||
*
|
||||
* The ::kbd-a11y-flags-changed signal is emitted each time the
|
||||
* ClutterKeyboardA11yFlags configuration is changed as the result of
|
||||
* keyboard accessibilty operations.
|
||||
*/
|
||||
manager_signals[KBD_A11Y_FLAGS_CHANGED] =
|
||||
g_signal_new (I_("kbd-a11y-flags-changed"),
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_LAST,
|
||||
0, NULL, NULL,
|
||||
_clutter_marshal_VOID__UINT_UINT,
|
||||
G_TYPE_NONE, 2,
|
||||
G_TYPE_UINT,
|
||||
G_TYPE_UINT);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -435,3 +491,97 @@ _clutter_device_manager_get_backend (ClutterDeviceManager *manager)
|
||||
|
||||
return manager->priv->backend;
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_device_manager_create_virtual_device:
|
||||
* @device_manager: a #ClutterDeviceManager
|
||||
* @device_type: the type of the virtual device
|
||||
*
|
||||
* Creates a virtual input device.
|
||||
*
|
||||
* Returns: (transfer full): a newly created virtual device
|
||||
**/
|
||||
ClutterVirtualInputDevice *
|
||||
clutter_device_manager_create_virtual_device (ClutterDeviceManager *device_manager,
|
||||
ClutterInputDeviceType device_type)
|
||||
{
|
||||
ClutterDeviceManagerClass *manager_class;
|
||||
|
||||
g_return_val_if_fail (CLUTTER_IS_DEVICE_MANAGER (device_manager), NULL);
|
||||
|
||||
manager_class = CLUTTER_DEVICE_MANAGER_GET_CLASS (device_manager);
|
||||
return manager_class->create_virtual_device (device_manager,
|
||||
device_type);
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_device_manager_supported_virtua_device_types: (skip)
|
||||
*/
|
||||
ClutterVirtualDeviceType
|
||||
clutter_device_manager_get_supported_virtual_device_types (ClutterDeviceManager *device_manager)
|
||||
{
|
||||
ClutterDeviceManagerClass *manager_class;
|
||||
|
||||
g_return_val_if_fail (CLUTTER_IS_DEVICE_MANAGER (device_manager),
|
||||
CLUTTER_VIRTUAL_DEVICE_TYPE_NONE);
|
||||
|
||||
manager_class = CLUTTER_DEVICE_MANAGER_GET_CLASS (device_manager);
|
||||
return manager_class->get_supported_virtual_device_types (device_manager);
|
||||
}
|
||||
|
||||
void
|
||||
_clutter_device_manager_compress_motion (ClutterDeviceManager *device_manager,
|
||||
ClutterEvent *event,
|
||||
const ClutterEvent *to_discard)
|
||||
{
|
||||
ClutterDeviceManagerClass *manager_class;
|
||||
|
||||
g_return_if_fail (CLUTTER_IS_DEVICE_MANAGER (device_manager));
|
||||
|
||||
|
||||
manager_class = CLUTTER_DEVICE_MANAGER_GET_CLASS (device_manager);
|
||||
if (!manager_class->compress_motion)
|
||||
return;
|
||||
|
||||
manager_class->compress_motion (device_manager, event, to_discard);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
are_kbd_a11y_settings_equal (ClutterKbdA11ySettings *a,
|
||||
ClutterKbdA11ySettings *b)
|
||||
{
|
||||
return (a->controls == b->controls &&
|
||||
a->slowkeys_delay == b->slowkeys_delay &&
|
||||
a->debounce_delay == b->debounce_delay &&
|
||||
a->timeout_delay == b->timeout_delay &&
|
||||
a->mousekeys_init_delay == b->mousekeys_init_delay &&
|
||||
a->mousekeys_max_speed == b->mousekeys_max_speed &&
|
||||
a->mousekeys_accel_time == b->mousekeys_accel_time);
|
||||
}
|
||||
|
||||
void
|
||||
clutter_device_manager_set_kbd_a11y_settings (ClutterDeviceManager *device_manager,
|
||||
ClutterKbdA11ySettings *settings)
|
||||
{
|
||||
ClutterDeviceManagerClass *manager_class;
|
||||
|
||||
g_return_if_fail (CLUTTER_IS_DEVICE_MANAGER (device_manager));
|
||||
|
||||
if (are_kbd_a11y_settings_equal (&device_manager->priv->kbd_a11y_settings, settings))
|
||||
return;
|
||||
|
||||
device_manager->priv->kbd_a11y_settings = *settings;
|
||||
|
||||
manager_class = CLUTTER_DEVICE_MANAGER_GET_CLASS (device_manager);
|
||||
if (manager_class->apply_kbd_a11y_settings)
|
||||
manager_class->apply_kbd_a11y_settings (device_manager, settings);
|
||||
}
|
||||
|
||||
void
|
||||
clutter_device_manager_get_kbd_a11y_settings (ClutterDeviceManager *device_manager,
|
||||
ClutterKbdA11ySettings *settings)
|
||||
{
|
||||
g_return_if_fail (CLUTTER_IS_DEVICE_MANAGER (device_manager));
|
||||
|
||||
*settings = device_manager->priv->kbd_a11y_settings;
|
||||
}
|
||||
|
@@ -44,6 +44,35 @@ typedef struct _ClutterDeviceManager ClutterDeviceManager;
|
||||
typedef struct _ClutterDeviceManagerPrivate ClutterDeviceManagerPrivate;
|
||||
typedef struct _ClutterDeviceManagerClass ClutterDeviceManagerClass;
|
||||
|
||||
/**
|
||||
* ClutterVirtualDeviceType:
|
||||
*/
|
||||
typedef enum _ClutterVirtualDeviceType
|
||||
{
|
||||
CLUTTER_VIRTUAL_DEVICE_TYPE_NONE = 0,
|
||||
CLUTTER_VIRTUAL_DEVICE_TYPE_KEYBOARD = 1 << 0,
|
||||
CLUTTER_VIRTUAL_DEVICE_TYPE_POINTER = 1 << 1,
|
||||
CLUTTER_VIRTUAL_DEVICE_TYPE_TOUCHSCREEN = 1 << 2,
|
||||
} ClutterVirtualDeviceType;
|
||||
|
||||
/**
|
||||
* ClutterKbdA11ySettings:
|
||||
*
|
||||
* The #ClutterKbdA11ySettings structure contains keyboard accessibility
|
||||
* settings
|
||||
*
|
||||
*/
|
||||
typedef struct _ClutterKbdA11ySettings
|
||||
{
|
||||
ClutterKeyboardA11yFlags controls;
|
||||
gint slowkeys_delay;
|
||||
gint debounce_delay;
|
||||
gint timeout_delay;
|
||||
gint mousekeys_init_delay;
|
||||
gint mousekeys_max_speed;
|
||||
gint mousekeys_accel_time;
|
||||
} ClutterKbdA11ySettings;
|
||||
|
||||
/**
|
||||
* ClutterDeviceManager:
|
||||
*
|
||||
@@ -83,28 +112,50 @@ struct _ClutterDeviceManagerClass
|
||||
ClutterInputDevice *device);
|
||||
void (* select_stage_events) (ClutterDeviceManager *manager,
|
||||
ClutterStage *stage);
|
||||
|
||||
ClutterVirtualInputDevice *(* create_virtual_device) (ClutterDeviceManager *device_manager,
|
||||
ClutterInputDeviceType device_type);
|
||||
ClutterVirtualDeviceType (* get_supported_virtual_device_types) (ClutterDeviceManager *device_manager);
|
||||
void (* compress_motion) (ClutterDeviceManager *device_manger,
|
||||
ClutterEvent *event,
|
||||
const ClutterEvent *to_discard);
|
||||
/* Keyboard accessbility */
|
||||
void (* apply_kbd_a11y_settings) (ClutterDeviceManager *device_manger,
|
||||
ClutterKbdA11ySettings *settings);
|
||||
/* padding */
|
||||
gpointer _padding[7];
|
||||
gpointer _padding[6];
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_device_manager_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
ClutterDeviceManager *clutter_device_manager_get_default (void);
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
GSList * clutter_device_manager_list_devices (ClutterDeviceManager *device_manager);
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
const GSList * clutter_device_manager_peek_devices (ClutterDeviceManager *device_manager);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
ClutterInputDevice * clutter_device_manager_get_device (ClutterDeviceManager *device_manager,
|
||||
gint device_id);
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
CLUTTER_EXPORT
|
||||
ClutterInputDevice * clutter_device_manager_get_core_device (ClutterDeviceManager *device_manager,
|
||||
ClutterInputDeviceType device_type);
|
||||
|
||||
CLUTTER_EXPORT
|
||||
ClutterVirtualInputDevice *clutter_device_manager_create_virtual_device (ClutterDeviceManager *device_manager,
|
||||
ClutterInputDeviceType device_type);
|
||||
|
||||
CLUTTER_EXPORT
|
||||
ClutterVirtualDeviceType clutter_device_manager_get_supported_virtual_device_types (ClutterDeviceManager *device_manager);
|
||||
|
||||
CLUTTER_EXPORT
|
||||
void clutter_device_manager_set_kbd_a11y_settings (ClutterDeviceManager *device_manager,
|
||||
ClutterKbdA11ySettings *settings);
|
||||
CLUTTER_EXPORT
|
||||
void clutter_device_manager_get_kbd_a11y_settings (ClutterDeviceManager *device_manager,
|
||||
ClutterKbdA11ySettings *settings);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __CLUTTER_DEVICE_MANAGER_H__ */
|
||||
|
@@ -63,9 +63,7 @@
|
||||
* #ClutterDragAction is available since Clutter 1.4
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-drag-action.h"
|
||||
|
||||
|
@@ -105,45 +105,45 @@ struct _ClutterDragActionClass
|
||||
void (* _clutter_drag_action4) (void);
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
GType clutter_drag_action_get_type (void) G_GNUC_CONST;
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterAction * clutter_drag_action_new (void);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_drag_action_set_drag_threshold (ClutterDragAction *action,
|
||||
gint x_threshold,
|
||||
gint y_threshold);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_drag_action_get_drag_threshold (ClutterDragAction *action,
|
||||
guint *x_threshold,
|
||||
guint *y_threshold);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_drag_action_set_drag_handle (ClutterDragAction *action,
|
||||
ClutterActor *handle);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterActor * clutter_drag_action_get_drag_handle (ClutterDragAction *action);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_drag_action_set_drag_axis (ClutterDragAction *action,
|
||||
ClutterDragAxis axis);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
ClutterDragAxis clutter_drag_action_get_drag_axis (ClutterDragAction *action);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_drag_action_get_press_coords (ClutterDragAction *action,
|
||||
gfloat *press_x,
|
||||
gfloat *press_y);
|
||||
CLUTTER_AVAILABLE_IN_1_4
|
||||
CLUTTER_EXPORT
|
||||
void clutter_drag_action_get_motion_coords (ClutterDragAction *action,
|
||||
gfloat *motion_x,
|
||||
gfloat *motion_y);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
gboolean clutter_drag_action_get_drag_area (ClutterDragAction *action,
|
||||
ClutterRect *drag_area);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_12
|
||||
CLUTTER_EXPORT
|
||||
void clutter_drag_action_set_drag_area (ClutterDragAction *action,
|
||||
const ClutterRect *drag_area);
|
||||
|
||||
|
@@ -58,9 +58,7 @@
|
||||
* #ClutterDropAction is available since Clutter 1.8
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "clutter-build-config.h"
|
||||
#endif
|
||||
|
||||
#include "clutter-drop-action.h"
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user