Compare commits
4088 Commits
METACITY_2
...
wip/frame-
Author | SHA1 | Date | |
---|---|---|---|
d317c1c7e8 | |||
cf72589635 | |||
3ae070720d | |||
4b332640eb | |||
0d36f4f1dd | |||
0c2491e3c9 | |||
6de7f4ce36 | |||
5f77669ba8 | |||
7a9663500e | |||
4f79c70002 | |||
81c42a8944 | |||
8d9c83ddcf | |||
5b6020e90d | |||
8b57ecebda | |||
f6c3e48aa5 | |||
06e31e4c03 | |||
869a137c2f | |||
f4e4a05a9e | |||
df15843407 | |||
d8eb47e2b7 | |||
e28a36affd | |||
53534b4ded | |||
079dd60e3d | |||
5d12f00b3b | |||
95f3bb3b81 | |||
2bfe6d2da5 | |||
27e0e44d8b | |||
7e5fb3e1a0 | |||
2ac17cc7ba | |||
7b32b7fcd1 | |||
2fcd75eadd | |||
8094c0ab23 | |||
831cf9a83a | |||
47be4fdf07 | |||
9b34545bd5 | |||
e5317cc7a0 | |||
b8887a6c3a | |||
a6c51addac | |||
54a3847a5e | |||
5a8473e226 | |||
5c33b0d768 | |||
22a3126a2b | |||
9596c24f83 | |||
86d6baf30f | |||
3a3be74e37 | |||
f57d64337b | |||
e69fcc860c | |||
afbca61524 | |||
66d37e06ba | |||
7e2d6cb6ec | |||
b9f775fe02 | |||
90cf43da9f | |||
bab51cbbe4 | |||
e782426736 | |||
1071e9970f | |||
5d64bdf3d9 | |||
8012a315e3 | |||
acd6df34da | |||
6431abbc85 | |||
57ff0f7071 | |||
2a2ac52726 | |||
a91eeb24d4 | |||
581960abc8 | |||
3a307b5d24 | |||
4e21d5d610 | |||
02c2cf1960 | |||
748064678f | |||
982d554450 | |||
0e5f8997cf | |||
6111d3ee4a | |||
3876a1a192 | |||
6f3ae06362 | |||
7d7b859b40 | |||
d78de379cc | |||
576384a73b | |||
2fcbc467e8 | |||
6139bc77ec | |||
c1ac9d1dff | |||
945c530354 | |||
774ceec243 | |||
7c20621112 | |||
afcdfd158f | |||
8fb9e0072c | |||
c1b8e0ac8f | |||
c90765370d | |||
8931b8026e | |||
55251aa986 | |||
946a42f13e | |||
0fd4059927 | |||
1d827049d6 | |||
881d256ce0 | |||
6b31bd402a | |||
129c729c50 | |||
8bf8f3ea55 | |||
f0c1e39fb7 | |||
dd4e655e2b | |||
b3073bc3bc | |||
54603f4d95 | |||
aab65a768e | |||
37c037278c | |||
9d904f9a85 | |||
8830814d70 | |||
c0958090b4 | |||
7f9e4e47c5 | |||
2282326f30 | |||
8703daccbe | |||
3797ecaa65 | |||
c6fcc79e6a | |||
d588de635a | |||
e5b46747d6 | |||
62d85f2e41 | |||
5ea6bf3b46 | |||
90d0bb96b4 | |||
ff64cba616 | |||
30387df454 | |||
38484bf967 | |||
e73946f0bf | |||
6004197064 | |||
aa43e715c0 | |||
424fc5245a | |||
90952ac5c8 | |||
395fbefd3c | |||
bdf47aeac4 | |||
daac778f16 | |||
93a16f6d43 | |||
e46cf80fdd | |||
c37c741592 | |||
4cf461fffa | |||
859ea1457d | |||
188d532438 | |||
f258556cec | |||
62dbaa89ca | |||
b56396eca5 | |||
0fdc36cac4 | |||
2cc0d31b17 | |||
e2bf91cd61 | |||
294311b2d1 | |||
db6d89b742 | |||
2717a02a8d | |||
4344c9e192 | |||
53e2d34628 | |||
c602d53649 | |||
43a121c8d9 | |||
a8c5100fbb | |||
5034bd8a7e | |||
07d8b9ce19 | |||
9c5ac65311 | |||
ce8d36a5db | |||
27b00d6f63 | |||
c441364bd3 | |||
1a521e10c3 | |||
e22d941f06 | |||
787d22dcd0 | |||
22d9182322 | |||
38295e8202 | |||
fe57f7572d | |||
aade16a9eb | |||
e31a97759e | |||
472662d099 | |||
027f16b096 | |||
5c7fdd67e8 | |||
4a0b6793bf | |||
228d1bf9aa | |||
85bcb9c121 | |||
989a38767e | |||
78e72f0a47 | |||
0faa623043 | |||
ecd7e662ff | |||
7d9925ba2e | |||
95c6547631 | |||
b5235d5a46 | |||
f3b1e8b3bd | |||
59bc5b7975 | |||
99cbe762d7 | |||
7a2c019514 | |||
c02e1b6f56 | |||
7938458eb8 | |||
165e117028 | |||
32cb4a178e | |||
7b69780d9a | |||
be500e33f9 | |||
427c5cc42b | |||
3f444cb2fe | |||
02bc4b54eb | |||
85c46be205 | |||
f97db0215b | |||
dc79d8aa3d | |||
00fecb6cea | |||
f0e97b540f | |||
37266aabfe | |||
6cc423cca6 | |||
ce820702e3 | |||
5eb72743dd | |||
ae1be578ba | |||
7e1e9320bc | |||
18a1ed6ec5 | |||
09713c5fd4 | |||
909cd82bea | |||
0593df8fe0 | |||
29b3e69dfa | |||
639d5e4710 | |||
8c36cf5939 | |||
cc107c0eda | |||
c7f70d71f7 | |||
9c6ccf96a5 | |||
11262b76df | |||
8fcc0db0c1 | |||
7c999a9d13 | |||
efc55347e0 | |||
5f11158721 | |||
88ee5a68d9 | |||
e1870a41b1 | |||
bb74499188 | |||
079822c3f4 | |||
bfacd9d420 | |||
36361b86d4 | |||
7c9c232d14 | |||
14c460c7fd | |||
0371194191 | |||
3b0c7c568d | |||
08893400a0 | |||
03cde43646 | |||
8617efb544 | |||
db4298502e | |||
9f90f25e80 | |||
1fdde85f53 | |||
0e529fba00 | |||
6a32fa9452 | |||
b422b6f06e | |||
bc96a14185 | |||
fbcddbcf3e | |||
dfe8979a90 | |||
c3a6de749b | |||
935e820a1d | |||
f4125b95ca | |||
d8bc7f7aa1 | |||
6d67ee3965 | |||
991ea50038 | |||
885a6afdcd | |||
0106f8bab1 | |||
d27bccd0ba | |||
c66488210c | |||
6c3985220e | |||
802c1ac427 | |||
7a2a6e2675 | |||
c27b4b7cfc | |||
0ab572d511 | |||
1c8d45e89c | |||
4e2c2cb1ab | |||
07dd4d3f93 | |||
22370bef09 | |||
f8d443b5b8 | |||
f22ecd1c57 | |||
b85be9312b | |||
cd0870730f | |||
d6be75ae99 | |||
c1be7f1a60 | |||
fccd5fd4ca | |||
1e5ef70fe3 | |||
1347a06e38 | |||
b5d5934e5a | |||
64b1c0f953 | |||
10d53fc7d2 | |||
eb1292ea99 | |||
e257580b94 | |||
42261156ec | |||
89e31f0d9d | |||
c805e397fd | |||
760a36aeee | |||
5d57a2594d | |||
1a5132d391 | |||
0fe0534c85 | |||
fe942049da | |||
e6ed29f0e2 | |||
15f11f879d | |||
f517eaf81e | |||
255347f876 | |||
e4ae7d7b1b | |||
2be943d1d9 | |||
0a50488bef | |||
78c966321a | |||
f65b7c59d3 | |||
e31f55e146 | |||
dc232b6cad | |||
a2f2e07e9b | |||
f5e48223c9 | |||
1478510392 | |||
18b38320a6 | |||
16be31b514 | |||
accc183474 | |||
81699619e8 | |||
75c87e5876 | |||
50bc4ad0e1 | |||
277e8bdad9 | |||
dc50ccf9b7 | |||
4595209346 | |||
50cf3dd1a5 | |||
66eac7824a | |||
4041f96ed3 | |||
3a15d637da | |||
5c3c7df948 | |||
f9454e29db | |||
574c0c3287 | |||
9fa5aa9889 | |||
80a70a4ad1 | |||
7c1b734053 | |||
33e1017403 | |||
f143fe3710 | |||
66406b3035 | |||
042ddc5637 | |||
5b04ab4473 | |||
16b86ae7f7 | |||
49400657ca | |||
30bc8bc6ce | |||
ac18f41ed1 | |||
60c05a0dac | |||
c47de98c88 | |||
f1aada0fae | |||
4de492eb20 | |||
9ca00d5cce | |||
b98e4e37ad | |||
8b64a951c9 | |||
c2a0719e44 | |||
8cb7a450ae | |||
6fb857cb23 | |||
fc87a635b2 | |||
81930ca76e | |||
da65738901 | |||
4528e1216a | |||
d56ecde39b | |||
4148a5cc6a | |||
8a6a568aca | |||
12cc0cee29 | |||
878b1012b4 | |||
a78fec7951 | |||
a24c512caa | |||
c669a3892e | |||
ba4f008d40 | |||
b0a099935b | |||
aba39ef953 | |||
ebf8c460e1 | |||
25d3432eee | |||
cd7a74fbcd | |||
c64188c67f | |||
4c2371f2e7 | |||
ff6c31dcc0 | |||
1b649c18ed | |||
93037e4c6b | |||
ed358c8f4b | |||
a22859a64a | |||
c44438b19f | |||
b58366d3ad | |||
6900128b2f | |||
c0b4d68390 | |||
0d794f28f0 | |||
e389eff79d | |||
41adbdda12 | |||
2d6555ca4d | |||
044d58951e | |||
9c97e8999e | |||
e97b38b38e | |||
8809673a74 | |||
68321d9bf4 | |||
65390e50a4 | |||
f8d32661b5 | |||
d84911fdf9 | |||
4147ea4660 | |||
2dd7c98641 | |||
3aad30143c | |||
93d06d4368 | |||
b19c061db5 | |||
497258f6e5 | |||
977e6388ad | |||
0879cf0d8d | |||
4aab7fb7b9 | |||
839fee19ef | |||
46a56bafbd | |||
c8b4939c7e | |||
fc3e82421a | |||
23046f6e28 | |||
823208120d | |||
d12c507b12 | |||
2157c238b6 | |||
423bda908e | |||
98d427ddba | |||
7a35579c3f | |||
adc89fbb2c | |||
a6ca3f768f | |||
9362fbdcde | |||
47099f4a87 | |||
2e6e5b068c | |||
ee840bc832 | |||
6333c174dc | |||
a3bf9b01aa | |||
402b477458 | |||
6b273ca713 | |||
c3ec6b34a3 | |||
78dc480e86 | |||
53364f986c | |||
5770b5b3c3 | |||
f16f47bd38 | |||
58a57185b7 | |||
8fb361cb26 | |||
335d211204 | |||
7f64d6b92e | |||
8c1b2d5eda | |||
578b1c06c7 | |||
6dfde43786 | |||
a8ead4d447 | |||
2926323a9a | |||
13bc8f7a76 | |||
ad516492d2 | |||
6677c61db3 | |||
f26f61ed7d | |||
8ca86fa8bf | |||
f2f500836e | |||
c39998efee | |||
3b811f33c7 | |||
beea2f7acd | |||
fb4c50478d | |||
ac0602a02e | |||
5361e0259f | |||
04bf73ff6d | |||
047b9de1c6 | |||
39b3244a3e | |||
63f982eb72 | |||
c689306dae | |||
0b7f2f8cd3 | |||
efc90173b1 | |||
9e439a22b5 | |||
848c1f52f3 | |||
1b84be7031 | |||
eb08a65b4c | |||
43ba596a0e | |||
2e1de1a037 | |||
81ede6abf8 | |||
1d98f1fee8 | |||
f0582d1a86 | |||
607dbf0f43 | |||
584cd3e684 | |||
90ec5b05f3 | |||
7253a75b18 | |||
cdbe3b274f | |||
3f3e3ce37e | |||
5e3d93da87 | |||
82b1d0d7e5 | |||
3583e57ec3 | |||
2ddde04678 | |||
feda493fbf | |||
fc72309b71 | |||
860c2a6282 | |||
e6b4a34daf | |||
3319cdfec0 | |||
fc5594faad | |||
7c9e0c2ebc | |||
9157cc2b70 | |||
69e7b32b54 | |||
04835eccb5 | |||
01c363bb6a | |||
7649772394 | |||
ca3dc2e876 | |||
70d85049b1 | |||
29f6f5e0ad | |||
d249cfd040 | |||
3cb912aee2 | |||
7df823132c | |||
41353d642b | |||
c47039db82 | |||
0dab6df25a | |||
c844bab232 | |||
848f9d1399 | |||
2e63de5c0a | |||
7319b10d72 | |||
1265efcf78 | |||
3e0ef03fd9 | |||
37076941ad | |||
25e43618a4 | |||
fd404bafc8 | |||
3b3b26b000 | |||
33498f6b84 | |||
c0a440b852 | |||
1772a2a59c | |||
44f362ad87 | |||
478f1020a4 | |||
e8209e7b22 | |||
2d20c9ecad | |||
f35160c30f | |||
7fad591d6e | |||
a364cea779 | |||
2eb3ff4bfb | |||
796ca6746d | |||
0a79fb8d62 | |||
ac7ec585c8 | |||
264c555af0 | |||
bbbb0e6002 | |||
41ae760454 | |||
9729a99ec5 | |||
d64c5bfc11 | |||
e4ed433e18 | |||
8ab5cc8f19 | |||
35261808a9 | |||
3a4512cd91 | |||
eb0185c1b1 | |||
34f6ffd1ad | |||
baeb9fbc4b | |||
c3d76aead6 | |||
bed9cb1648 | |||
4ca552785f | |||
b26b11c74d | |||
b3114bb9e5 | |||
497f9be61e | |||
a88365df9b | |||
47f98c5528 | |||
0e50287aea | |||
d42a2a3c27 | |||
78849bef04 | |||
b1a69d1e89 | |||
c5468ee391 | |||
7ce7feeb2b | |||
c0432ebb39 | |||
1a51d307c8 | |||
d0910da036 | |||
a2726f41c9 | |||
162213be0d | |||
1596d1af10 | |||
441287dc64 | |||
6e47f0e846 | |||
4fb2fab7f7 | |||
3beb33bb44 | |||
1b04a40dce | |||
8087872130 | |||
3ad25a62cd | |||
7ecd673d23 | |||
331c9aaee4 | |||
ec1979f9f5 | |||
4b411ea241 | |||
70db187c36 | |||
4de3f1d147 | |||
821d4458ea | |||
7f9472a58f | |||
3599917123 | |||
d624e85bc1 | |||
6aa4bfd060 | |||
a26e72c452 | |||
acc4e03482 | |||
e176a9e891 | |||
0b36663ff1 | |||
bb035fe6e0 | |||
6d0c1f08d2 | |||
f700a7be07 | |||
138eb1e3b4 | |||
c39129b6e8 | |||
bf175e72ad | |||
ba31ba4615 | |||
f94f008ed6 | |||
9d4f3c5842 | |||
0b2a9d58e0 | |||
28deea44d4 | |||
f82966adb5 | |||
9f54f1d75d | |||
be9f7d7729 | |||
1b4dce6f84 | |||
3bb17f0671 | |||
19d111a27b | |||
289561ddf3 | |||
d2ca160ea3 | |||
cd19f9239c | |||
16157ad522 | |||
d37a692392 | |||
f78f33d848 | |||
c4692b8d51 | |||
764569eb7a | |||
aab0d2f54e | |||
24678de261 | |||
1b71eeb02a | |||
bfc6a2b078 | |||
9c9da8f575 | |||
d1a87288a4 | |||
e7c65d9404 | |||
00e49b330c | |||
7c6bc73031 | |||
c1368155fc | |||
d305174ecc | |||
6b7391bca9 | |||
4e99c38491 | |||
6087a71951 | |||
5f1c3de29a | |||
abde64cb0c | |||
6923973c8a | |||
d7f1b95349 | |||
4a5c7ee4cc | |||
f3bb16f301 | |||
d6b528a955 | |||
7ba6503e9b | |||
9ee7783759 | |||
2dc5693c60 | |||
a1ef22e0d7 | |||
19b6888ea5 | |||
9520eaa970 | |||
088e0c1ee7 | |||
de704386a1 | |||
766799ec6d | |||
7c50db5bf5 | |||
7223c4e184 | |||
b0a9c391a1 | |||
5c7158792f | |||
9c71d23884 | |||
e1362562b4 | |||
1ab6abc044 | |||
bf4f3a8a99 | |||
f9626d2db6 | |||
28b59589ca | |||
fb10910e66 | |||
6d2efe9460 | |||
f587595765 | |||
5e6e8728c3 | |||
f620f1b466 | |||
818320e748 | |||
fc2e7e94a5 | |||
a47e35ba2e | |||
07d8b2d510 | |||
6329aeac11 | |||
af1fef03f4 | |||
f778cf0ea3 | |||
7af6aa9739 | |||
faae2daae8 | |||
0b4cc14aa6 | |||
622583a0d5 | |||
2f33d85a41 | |||
3abb651325 | |||
ada8882b61 | |||
d3831729a0 | |||
05fee9beea | |||
e4da6495d3 | |||
8c74ad1992 | |||
88064fd534 | |||
b28c6533f8 | |||
53e70b3e99 | |||
c630046858 | |||
a75c4d2cc9 | |||
368a90c82a | |||
2be1574e55 | |||
7f8c59614e | |||
3650e9b074 | |||
978e601217 | |||
dcfa6986c6 | |||
49a3fd53b0 | |||
d33d113746 | |||
f83568fc4e | |||
46415bb248 | |||
5123a1fb03 | |||
19f4a5c819 | |||
69e9b70829 | |||
443ca1cc02 | |||
9a5f4a3346 | |||
16a40dde7b | |||
36e6e65778 | |||
b3bf2e08f3 | |||
3ec500937f | |||
c45c4af5da | |||
a485685867 | |||
08363f4d9b | |||
2f254e5aa3 | |||
e0e78993f6 | |||
eeb2efe010 | |||
be4ef9b43d | |||
a133d8b42e | |||
a1a2527c75 | |||
6f5882302f | |||
ce9c7a210d | |||
e0fb83c691 | |||
7e0a56fb80 | |||
65e1b416ef | |||
183bcd6fc7 | |||
f76372dd7d | |||
9c493ab56a | |||
a17f73a020 | |||
6ff9cae2b1 | |||
d3edcbc11e | |||
779ef582f1 | |||
385887c55b | |||
f396a7aeb4 | |||
ffa2310a34 | |||
fccd626604 | |||
5237b2aa65 | |||
b1ae599c39 | |||
3f694c7335 | |||
3da2f876bd | |||
a6d08fcd71 | |||
73d22a273e | |||
24843f277f | |||
4167ef870c | |||
cd7a968093 | |||
12f71c9795 | |||
b369c75e1b | |||
739eade4fa | |||
d2b63eaf1f | |||
47b432bf89 | |||
b70ccd2a56 | |||
be8df20675 | |||
4a10c95e76 | |||
54b2fab849 | |||
8033184134 | |||
d95da2dfbe | |||
03457029f7 | |||
f8d900c3ea | |||
e16beba111 | |||
60ee25d8d5 | |||
ce1369609f | |||
8199699e7c | |||
48cabd1364 | |||
6dc79ce60a | |||
a8cfdc19e2 | |||
db4ae415e3 | |||
7842d92995 | |||
b34c01a95a | |||
e4546829e3 | |||
8dc3de87ad | |||
e3094ace05 | |||
6f49a00bbe | |||
b5f277bd7b | |||
f798144bea | |||
699fb0d0f1 | |||
5b84f62a89 | |||
3209e88c6f | |||
0202a0837d | |||
2b93c19328 | |||
66a830fd46 | |||
d752096cdf | |||
fe12294b92 | |||
61b5cfece4 | |||
ec5fb2a4ad | |||
cdabd517fa | |||
ebfe9a0355 | |||
c1a5261e2f | |||
c18940a5a2 | |||
b533ad2669 | |||
526bc34bba | |||
35d300b916 | |||
c70087db0c | |||
9804841adb | |||
aa92aa08bd | |||
15e55b2ca1 | |||
4257b8deff | |||
e21e2c892a | |||
05662b678e | |||
64f37a3769 | |||
7c9f492584 | |||
7577437167 | |||
be6775767c | |||
0d9a9b8d3b | |||
4affd22817 | |||
eb17cd9ba9 | |||
0cdac78bd5 | |||
4f3b03e13b | |||
da4486b833 | |||
37aeb5baf1 | |||
a2cb38b382 | |||
c573523c4d | |||
64e6b77dc3 | |||
d0414a3ea6 | |||
6596374886 | |||
7d70343c6d | |||
cb87908dca | |||
95f33b36a7 | |||
d246d1c971 | |||
89dbef9eb3 | |||
60dd31ed48 | |||
40f51114b5 | |||
d9007a08c9 | |||
3d05405a78 | |||
1ca697a130 | |||
c248c57b6e | |||
67c3c93b8f | |||
c3a04bf394 | |||
c30c29b8c3 | |||
5eb8aa655b | |||
3543782f39 | |||
4ff4ebebb6 | |||
a3c96c12d6 | |||
eb0e658c99 | |||
4d069650ae | |||
d176755926 | |||
eb2a6946b2 | |||
d067ba4431 | |||
fdf11f10fb | |||
8fd1835d1a | |||
c77075833a | |||
b2a7ab270c | |||
7503d4812c | |||
1fd8b0b4c5 | |||
8615cf88ab | |||
f73a13dc4a | |||
f973e2effa | |||
f9fed16608 | |||
0578ed0c86 | |||
61520f5bd6 | |||
be853ec931 | |||
440b92adf0 | |||
8fa4d22937 | |||
397ae90d5c | |||
7f97d0bdc5 | |||
14956abb6e | |||
61cea18ff0 | |||
83a449df95 | |||
9c683aaea9 | |||
634b76b82c | |||
a3ea43da52 | |||
f464b85ffc | |||
db055c6029 | |||
eedc74943b | |||
82b134ed46 | |||
cc1de7e7d0 | |||
a199d74069 | |||
7a23d3024a | |||
734888406c | |||
e0ce24b3f5 | |||
c13e62f72c | |||
3d958de33e | |||
4689688af3 | |||
d402a68c73 | |||
66d1dd3679 | |||
43e48fc962 | |||
1fea2a5101 | |||
92e317ec2a | |||
c5d1d2db62 | |||
b1725bc18c | |||
5500c2b3a8 | |||
82db52aaf4 | |||
654d966e6c | |||
92663c81f5 | |||
e3ebcc004d | |||
26e41bc24a | |||
c9e9412540 | |||
14d6d63ad0 | |||
2134213f92 | |||
1935e508f7 | |||
83b6ec7899 | |||
9c0ffc26c1 | |||
39b28a7e42 | |||
09799c6617 | |||
9fad2246ae | |||
585da56118 | |||
cccb482cd9 | |||
eb79c75266 | |||
19171122ca | |||
a4665b1a14 | |||
829f9ac61f | |||
24b846328f | |||
96c43866b1 | |||
9043191927 | |||
6e6ed81c19 | |||
3597035f67 | |||
9f39a18fc5 | |||
ab2de9dccd | |||
d66c6cf55e | |||
4f24f7e5fc | |||
3cd0e86bdd | |||
4d230daf09 | |||
9dd642f4af | |||
a9f9176ba5 | |||
637cce0f91 | |||
74b97dcd14 | |||
4e28a4d654 | |||
9d62d13f88 | |||
eeca838778 | |||
d6f0d2c64c | |||
44cfceba00 | |||
349fb7c297 | |||
f9b5cdfeb1 | |||
de8eb1f8ee | |||
0ff602be06 | |||
7246d0ede2 | |||
50468b6563 | |||
6793236642 | |||
d8ccc7896f | |||
defd9aed32 | |||
6ee1d4348d | |||
27dbd12d7b | |||
93fc5c5561 | |||
b48d290064 | |||
6bdb3cf115 | |||
3b39026ba2 | |||
70ffb564ff | |||
4760d043d3 | |||
8405e75931 | |||
6c4a283b4c | |||
7c6b55e79e | |||
d8c4b22b88 | |||
bbd98e7b86 | |||
0536438317 | |||
e2151a5fd7 | |||
c84da3ce1b | |||
bb50f65532 | |||
28752718c5 | |||
4c76791d4c | |||
a66ae4ad55 | |||
7841e80496 | |||
27626d14b7 | |||
f75e96cd3c | |||
9bc1521615 | |||
f2158218be | |||
183190d089 | |||
ebc3775f19 | |||
97d7e84a04 | |||
2b2b728b64 | |||
46fa843b0e | |||
e7d336ab0e | |||
6e23b0af3b | |||
735c33bd9f | |||
47626a17d7 | |||
ce86d3f230 | |||
31878239c3 | |||
1133a4ff9c | |||
5822443b20 | |||
cf05167c55 | |||
a9504f1495 | |||
3716c30264 | |||
c1bf1ec718 | |||
8b220079d0 | |||
2df95970d9 | |||
a4569974a1 | |||
c9d3ab772c | |||
1a276a2ee5 | |||
4c4c720dc1 | |||
ad707be01e | |||
19d1f97600 | |||
4f079affea | |||
b4888103a6 | |||
e2364b82ef | |||
ba92645044 | |||
2eb8b09b1a | |||
bca610ed50 | |||
53d6938b55 | |||
286160646b | |||
58068260a5 | |||
57e8ce0d42 | |||
4ed1e8b3e2 | |||
8181454af5 | |||
aa482e6d4f | |||
0c9b2c6757 | |||
bbfc435a5c | |||
7e53094044 | |||
565f002bc4 | |||
42fdd4f4d8 | |||
217aa2898e | |||
02e7c1bb2b | |||
bb57a8b6f3 | |||
65d0f1a213 | |||
4344b7ba69 | |||
b0072add05 | |||
4ea00e102b | |||
ed99d12e8b | |||
0a2bb1b71c | |||
4bc8c70c75 | |||
9f2581318a | |||
48b9807c86 | |||
0a821d2341 | |||
78092a404f | |||
d3df33ecdb | |||
1160744830 | |||
e884fc784e | |||
c16788f481 | |||
a1790fb6a8 | |||
cbce4fd39d | |||
93c0620151 | |||
2faf56947b | |||
53777b133b | |||
594a69317a | |||
3f9c375f1c | |||
544c8edd9e | |||
654bd15319 | |||
b85171007e | |||
f6ec33fa0c | |||
7d0ff87cbe | |||
8994e621f7 | |||
d746591894 | |||
161c1088f9 | |||
07c0471902 | |||
5f4ee1b6e7 | |||
aa3a4a48e4 | |||
0d27c9600f | |||
1986b20499 | |||
e7a10b0d6a | |||
6b98644c58 | |||
5397335ae8 | |||
0b6d6e517d | |||
b031543f5a | |||
c6be05f9d7 | |||
cb88e0d052 | |||
54e82daae2 | |||
1394c566eb | |||
3183d954a0 | |||
67b89e5c86 | |||
c88c94886b | |||
c1f6902cb9 | |||
8817e68926 | |||
b1868fb213 | |||
6260814285 | |||
07e6c5aac2 | |||
0477a3066d | |||
59639909b1 | |||
64c37852b1 | |||
bac668d287 | |||
f372fa29b2 | |||
8b24711bba | |||
d4c28fc5f5 | |||
ca5f2ac3ec | |||
15f9590427 | |||
21a246eb42 | |||
1bbaec81ce | |||
7952feb48b | |||
52aebdf223 | |||
6b16604c26 | |||
3c4d52732e | |||
d56d267f7d | |||
8eb31944a5 | |||
ed2fbcd13a | |||
9f4942e9a7 | |||
982a10ac44 | |||
e59a9872b4 | |||
9aedd32e01 | |||
dd0ca4dd60 | |||
3e7d2df6f3 | |||
02e709e89e | |||
1114e5effa | |||
c40fab214d | |||
441c050808 | |||
85425f64a5 | |||
b445ee3763 | |||
95a7f0269a | |||
db63764e22 | |||
03578b69f3 | |||
8cbaee47a0 | |||
bcded5ae25 | |||
7227b636c6 | |||
af715f71e7 | |||
52bc675fcb | |||
1920f211b0 | |||
804117c456 | |||
9a4d1686a6 | |||
e8dda03441 | |||
4b214b4710 | |||
6ed34976c9 | |||
069092eb9d | |||
dc7d323295 | |||
cbedfd680f | |||
a1e2e2a13d | |||
a53a40c43e | |||
33489c8cb8 | |||
c382d8f7ea | |||
f2ccf70f8d | |||
ff04e38326 | |||
1123fca3f2 | |||
33e2d15495 | |||
b265e8099a | |||
a2b3f9aeb0 | |||
d19295a68e | |||
9f5d8d1a2a | |||
e75abacec6 | |||
1c31e8ffc2 | |||
1083a4c0b7 | |||
d212be799a | |||
84986c7695 | |||
aa65f94c67 | |||
dc80242e51 | |||
f2c63e5eec | |||
1fc91dc459 | |||
a2e4789b3e | |||
7d58524185 | |||
635e20d057 | |||
1c3f7c4088 | |||
5c3b0cda2e | |||
a3c6486e52 | |||
741d2b761a | |||
a0ffe71db3 | |||
ecf812db83 | |||
afd3b96e2e | |||
b79e6c0b3e | |||
c6f8ad24bd | |||
d4d05e496a | |||
0a88329526 | |||
b4344b5ab5 | |||
4ac836fde4 | |||
7897448a5b | |||
94f4011844 | |||
3f8e6020f7 | |||
beb65f011d | |||
c2f894963a | |||
dacea8edf9 | |||
3fed2ab64d | |||
476652da0a | |||
35289050e4 | |||
ed9d7f18a6 | |||
a7d1053ff5 | |||
97e2b4666b | |||
7d8cc4f940 | |||
ee2f995fc7 | |||
7e852f8c14 | |||
b4c1692d14 | |||
c0858b247f | |||
0a956f56aa | |||
66105c6e7e | |||
bb1ab0afd9 | |||
0d51d9e4cf | |||
e3789e31ef | |||
8a6b583cdc | |||
86b8b9051f | |||
4c0763792d | |||
599eb5e3e4 | |||
31fe25aa78 | |||
252657905f | |||
77a5e817a5 | |||
2521e8103d | |||
47fcb998f5 | |||
455c40677b | |||
9ae8e4c006 | |||
d514516543 | |||
1024eae742 | |||
dad1f01c5b | |||
ce53f35974 | |||
3d19e800ab | |||
2a54baf60e | |||
4544fe7571 | |||
a125b0179a | |||
6b69acdf8b | |||
8c11a2e5a3 | |||
693c2bc175 | |||
8b34b4bd0b | |||
8cce57ba44 | |||
63f81ed027 | |||
c9ebc0ea25 | |||
15a214e435 | |||
0b3327f04d | |||
0839c100c0 | |||
08cfdcd802 | |||
a1bb3835cc | |||
e590cd2b99 | |||
77b620e50e | |||
9bc723d256 | |||
b9f9a230e6 | |||
ce1ffa4624 | |||
17aa36d343 | |||
cc0965f9f9 | |||
0e728d7751 | |||
3e6cf75d73 | |||
bbedba8b18 | |||
c8d756dde3 | |||
97a8dbb71e | |||
6835804dab | |||
1a2a374380 | |||
2b84afc1e3 | |||
bb3d23f7f6 | |||
7511ea27e2 | |||
adbe3a2312 | |||
eda50a91df | |||
7853bb8042 | |||
37de1b2d25 | |||
0c4ac0b48a | |||
c24cf44c6a | |||
11a8ab47fa | |||
7feeb72721 | |||
01447d94d1 | |||
e267a63330 | |||
c65a24486d | |||
42e786b15b | |||
7a04673dd7 | |||
c47d2da0cb | |||
fd12eddb5d | |||
0b56599d28 | |||
27de94b915 | |||
9e31f2b1de | |||
13ad103823 | |||
ff5a73de49 | |||
275a6ec63f | |||
604da0f6ea | |||
72a19dd448 | |||
3a73f6b8ec | |||
343474a570 | |||
91d82bf8c7 | |||
ed19060074 | |||
f230a67b94 | |||
849f101feb | |||
f45083ce82 | |||
4c143ae9af | |||
cd1a1d5778 | |||
e28e7a72aa | |||
fc9488211f | |||
28767c4d34 | |||
c6c7b05d7b | |||
5526e91b6e | |||
9e123695d0 | |||
092cc47afc | |||
fd20059f68 | |||
609aae684f | |||
49940877d1 | |||
22ae86104b | |||
f8dd4c160b | |||
11061a23b1 | |||
d8b0f213b2 | |||
e9fbe4b2c1 | |||
edcb351107 | |||
0c14640352 | |||
cfa30f9876 | |||
af60dd3634 | |||
ccabce1b34 | |||
9915a18810 | |||
a78373f324 | |||
1d7476a725 | |||
e8e78ebfdd | |||
b77b0a3d81 | |||
95b260f3a9 | |||
97a9726845 | |||
020aea033c | |||
0ac46316af | |||
94d47dc25e | |||
debf08cac0 | |||
ce1393d2d4 | |||
fac482c442 | |||
ee35540b6e | |||
f77507e825 | |||
0021efd593 | |||
0d955bb873 | |||
7fa2e8d2d3 | |||
713d94d881 | |||
4ecf8964b8 | |||
11d044fa6e | |||
a2104c5404 | |||
1abed05413 | |||
1465895ff7 | |||
452025e984 | |||
d537dd93d5 | |||
650a1e807c | |||
67f8a33cad | |||
ff4f096f1d | |||
b5cb353ab5 | |||
17a38dfbed | |||
f773683601 | |||
abeaf828a3 | |||
23a8a4201a | |||
2d409e5c09 | |||
2d57904bf4 | |||
8fa83e1be7 | |||
8875e73765 | |||
65766fcaac | |||
4cd4010a70 | |||
d21da5643b | |||
ba700e6387 | |||
bd90fd7033 | |||
fb3d352d3a | |||
690852e157 | |||
aa84d21bcf | |||
4d62977c7b | |||
cbac2e7bbb | |||
88ee4c5b30 | |||
12c46c5d8b | |||
ab7d4e0e60 | |||
708c6162c4 | |||
7834bba6f7 | |||
857c8aaaa2 | |||
1253e6c64e | |||
b610b2ecc7 | |||
11addbe9c8 | |||
709ef05714 | |||
c51767eef1 | |||
5aab9e878f | |||
e7751e170e | |||
776d345bc3 | |||
a8fc30a13f | |||
2d57b1b470 | |||
90f21fa5db | |||
6638d0e507 | |||
c6793d477a | |||
11e01ec074 | |||
1d827caaaf | |||
ba4db78ed9 | |||
a321f4c842 | |||
b1c465eab0 | |||
5134b05af9 | |||
dc3a93be99 | |||
49aabfec02 | |||
11d0d207fd | |||
eed3245b1b | |||
a7bbde1699 | |||
bacccafe3c | |||
3a80bd47cc | |||
152917d5e1 | |||
c588e173f8 | |||
c0d2ead351 | |||
6ffe5f8343 | |||
2a823ef3e4 | |||
5159c3f3ca | |||
d092924961 | |||
e14132b826 | |||
df36ff638e | |||
ad1fee8233 | |||
3883d511a9 | |||
10803b0d25 | |||
a570a57863 | |||
a7590f9717 | |||
35224ca8d4 | |||
40563e4f84 | |||
c30901e9be | |||
4fc0a91b31 | |||
576417648a | |||
0aace5230f | |||
8d5ba7a6d7 | |||
f8153b84de | |||
fac5b0c9e7 | |||
eb06413188 | |||
066c870271 | |||
1a92fa788d | |||
3a0ab1cc0c | |||
8a7d588bb0 | |||
4943d79d68 | |||
5de10c34b7 | |||
2fbe4c2388 | |||
767cb27f78 | |||
b8c75c3fc0 | |||
edeadf62ef | |||
5ac80057c4 | |||
210e30556e | |||
0487b4213f | |||
8f29c14ac4 | |||
9543d8be10 | |||
43e0003e79 | |||
30e63a7244 | |||
575f520461 | |||
df618c9e91 | |||
ebd13a4bae | |||
7aa54b5a23 | |||
b20cb36f5d | |||
86f8c1863e | |||
19d85c8566 | |||
4241f91a0a | |||
05624f099a | |||
920f4099b6 | |||
aa26750e01 | |||
bdb3be7084 | |||
14987f2b21 | |||
47af6a0bbf | |||
1487578ff4 | |||
5a03a5d578 | |||
2dd137329d | |||
db37deb589 | |||
ec7a3c516d | |||
988d2ffab6 | |||
5e2c66e241 | |||
0ccfb0d781 | |||
01ce961c00 | |||
7579b691df | |||
2a14deab0c | |||
1acefb9eac | |||
fb45b8f45c | |||
d59a9c2e8a | |||
a1c3d8723d | |||
c4bd65e97c | |||
eac3a2d7ac | |||
55bb584778 | |||
4584943531 | |||
55d2bc0e0b | |||
c0cc2fa1b8 | |||
c1ecbd4de1 | |||
0fb6b8a8ff | |||
78ba9adfed | |||
3f642ea34f | |||
1a3927b40c | |||
b09d73ab68 | |||
9311addca3 | |||
3c76478510 | |||
545551e2bc | |||
d5e0a95ff1 | |||
e811109566 | |||
0f805bfdfb | |||
200cd629df | |||
e8a29c1e82 | |||
8589e4f3d3 | |||
948e54772d | |||
2d4b05a71b | |||
a6433e84f5 | |||
083854e2de | |||
3508c4aa87 | |||
d04b15ee25 | |||
d6143e4c73 | |||
d8ffc3c187 | |||
2af788956e | |||
d399141d13 | |||
f6f899f103 | |||
5b8919a246 | |||
fe1989979c | |||
0895fa9331 | |||
b90fe0c52a | |||
ab0e22159c | |||
6ac0afbce0 | |||
9532527e52 | |||
defdf9f34c | |||
a7dce2dc4e | |||
ea8c51f8f3 | |||
1e66878447 | |||
6cfbdebf6a | |||
a4469dcc14 | |||
ac3eac7154 | |||
65ac9065fa | |||
5143e6763b | |||
5660a8e9f5 | |||
bc2b17df0b | |||
f9e7c95348 | |||
c6afec4759 | |||
eb13498fff | |||
163057f521 | |||
d8ff1f9873 | |||
97b7760de8 | |||
acca0f6946 | |||
f3f6d67d46 | |||
63773d5226 | |||
4e4559fc8c | |||
44d540d36c | |||
c6253a6515 | |||
65a5ec2ef3 | |||
70e8b35944 | |||
ddba25a674 | |||
14e6cb6a8f | |||
d4619150f3 | |||
5c1a1a2dd5 | |||
7cfa690aaf | |||
8d663ff055 | |||
0b86343dd0 | |||
e127898312 | |||
51f83f25e6 | |||
8f3da9f68a | |||
4c1998f137 | |||
84dc1c1b85 | |||
326110e38d | |||
f63b81c52a | |||
bd2e221da3 | |||
1fe673703f | |||
c10467d22e | |||
e21ec0a271 | |||
3a1e492afc | |||
e83c24c91b | |||
81183c71c1 | |||
979298ce57 | |||
66e727e1b2 | |||
35b1dda3a3 | |||
6925779f59 | |||
125d7daf4a | |||
57c5ea4bd5 | |||
e75fbdb136 | |||
cb1020b26d | |||
e1945506f3 | |||
8d402971a8 | |||
7e0087304b | |||
20b02e738c | |||
d042dba4d6 | |||
a69ce37546 | |||
3a798112f2 | |||
3e09b4a725 | |||
c5dd3e5542 | |||
2fa9cbfd9e | |||
c2c0de1696 | |||
cc46d2ebb4 | |||
d0510d8ea2 | |||
7b0ba87b24 | |||
67682a2683 | |||
b1776b5ae5 | |||
7a6968cb46 | |||
23af4ee93e | |||
0317562605 | |||
1861e0b2cc | |||
e5974809e8 | |||
abfae17b9a | |||
84b1a62ad2 | |||
b6bcaec9bc | |||
f19ed84cc4 | |||
6c5a946fda | |||
d58c9a57c6 | |||
c6ffc9427e | |||
0f1e64f3b2 | |||
1ce5ad3003 | |||
64694955c0 | |||
97a90d8122 | |||
3cd2c08277 | |||
d804a1f146 | |||
01581dc61c | |||
9cc70a3fb6 | |||
c37a2ca1c8 | |||
80b38210b2 | |||
e5dffb0097 | |||
7396f5709e | |||
41cf9134a6 | |||
e960269653 | |||
5e581b409c | |||
f03d39eefb | |||
deaa897928 | |||
3f9758e706 | |||
91baf552cf | |||
16466cf7d6 | |||
3c25c265df | |||
a8529bd8d1 | |||
f3e6913d57 | |||
2c8df7d12e | |||
dafdecb4e8 | |||
ba03ca76c4 | |||
c5874e0da5 | |||
422cd1fbbf | |||
8a9e2877da | |||
71fd54ec9e | |||
ff84b35e5d | |||
ae32ac86b4 | |||
bca3eaf709 | |||
a03343827e | |||
0f64202a29 | |||
4fb7c642d5 | |||
6b36e64e00 | |||
84059f1faa | |||
15376957f7 | |||
da934be354 | |||
3eee6b4218 | |||
ff9400abde | |||
e985bf0e7a | |||
245908909b | |||
2f63d321d1 | |||
2222cb8fbf | |||
897814a153 | |||
8b7b41df41 | |||
8f9a174f0a | |||
df90187e06 | |||
c9e0613b53 | |||
a576f7a1ea | |||
239b39cf52 | |||
1f90529365 | |||
acfc498344 | |||
a1ac1f4b2e | |||
8a892d47e5 | |||
d91d503eb2 | |||
e84bf7144c | |||
73abacc20b | |||
aea24279ba | |||
5c5968e742 | |||
3813ed9c2e | |||
ec2c197e1f | |||
0060c8ddb9 | |||
f9c11c2dbf | |||
65565a96b7 | |||
b62ee94b89 | |||
594897e9a5 | |||
83f8bfd2ca | |||
40e9f6fa2c | |||
35afd2a8fb | |||
a454ad5c41 | |||
d9be1d7e32 | |||
b625ec30d9 | |||
4be8e155d1 | |||
6726fcd25d | |||
cd048be932 | |||
5d477c4b4e | |||
9244f0f113 | |||
bc9a2cc92a | |||
309a07bf4c | |||
a0f06cab43 | |||
1d65e2e50c | |||
c60d4c2bc4 | |||
f0d22e18c4 | |||
9d36e8d853 | |||
f5313268d7 | |||
2c17ef4803 | |||
32251dcf4e | |||
94f64797de | |||
d69546902b | |||
72149a054e | |||
3aff9726eb | |||
0b8a57bcba | |||
455486db7c | |||
43511c316e | |||
34e4b594cd | |||
6314ee8780 | |||
a4cd66f599 | |||
729fb2e0b4 | |||
dc2d8acc92 | |||
f7c595ff18 | |||
3d81a1e5ec | |||
00d955eb40 | |||
fd27647440 | |||
27fb5fbbca | |||
d810315884 | |||
820970328b | |||
3e2fcf4acd | |||
07dedee37b | |||
a13dec34ef | |||
75f3127ba5 | |||
072ec184d3 | |||
321b40a386 | |||
0a863b8c2b | |||
b13fae2556 | |||
c012105b90 | |||
f26d503694 | |||
6e4cd65544 | |||
08c5095ad7 | |||
dfb0e4f57b | |||
29257f107a | |||
ecde490967 | |||
51a6467968 | |||
9127993d84 | |||
ec2370b76d | |||
204431812b | |||
627b4484ec | |||
442991a712 | |||
7eae5d4eab | |||
f3914c86b9 | |||
fafb752827 | |||
2e9838699b | |||
2ed1bf05d1 | |||
ba9c3f41c9 | |||
e35fae8f32 | |||
b0d5f3bd64 | |||
ed640bb181 | |||
aff4cf1103 | |||
9883f6e679 | |||
ea91834407 | |||
90c35f8181 | |||
2a8c160569 | |||
1d5117a607 | |||
99d0f41d98 | |||
7b522c0de8 | |||
cbf4be04fc | |||
f55509aadd | |||
7e369d63b3 | |||
6cf71a06c0 | |||
a3511ba9e2 | |||
49400c08cd | |||
1624b87b9b | |||
dcf387c91a | |||
4c9c903648 | |||
d12aaddc34 | |||
cb01977029 | |||
7a7632fa98 | |||
76a3f9d402 | |||
96dfeea412 | |||
a4746d75e6 | |||
52638b9d8e | |||
514d00698d | |||
c4a4de0056 | |||
28a4be2536 | |||
6e9803cd9f | |||
63b1d6642c | |||
28955bb449 | |||
dcd7cae7cf | |||
c954bb9456 | |||
be0b298d81 | |||
409026044b | |||
0c311bdcf9 | |||
626912a9a4 | |||
058c884f1f | |||
2e0cd7af5e | |||
82706fd958 | |||
e81775e63d | |||
8ccb9e04eb | |||
ae97ccba80 | |||
8ab9ed5d4e | |||
886ce72374 | |||
a658c8b067 | |||
209d7ef613 | |||
ab1e8cbb50 | |||
cbe6973b66 | |||
a6c76a85ce | |||
265f9e5433 | |||
abb825b43e | |||
f821407060 | |||
381aca98d0 | |||
b86d988b3c | |||
a67de845f6 | |||
808378129e | |||
0d75012462 | |||
c4148cec33 | |||
32a0cdb2f9 | |||
68823fd9b2 | |||
d38b1abb49 | |||
ebadd21c64 | |||
f1616a15d0 | |||
39bee4b9d2 | |||
3f867e0167 | |||
4300622c4a | |||
9ad7381c11 | |||
e5f287dad5 | |||
aa57becc41 | |||
a5fc9fcb79 | |||
5134d0dee1 | |||
7269c37c8f | |||
9abe89a2dc | |||
79aecf21bb | |||
4253ff8e12 | |||
fb7b820187 | |||
3a2d775196 | |||
c780fde38e | |||
a47bb96536 | |||
0e256a21a5 | |||
3b864f8af5 | |||
540fc4b76b | |||
f78390b094 | |||
0b635aafae | |||
8ae90af01f | |||
31f48c0cf0 | |||
cd0ef08783 | |||
4203fd2993 | |||
54e56a47da | |||
d8a28621cc | |||
177bfe38f6 | |||
b19b2e146a | |||
3093d7e95a | |||
4e0d8a0cbb | |||
523151ddf0 | |||
0a7cb94ea8 | |||
d4b7c0e633 | |||
3f76affbd2 | |||
a8f8970601 | |||
178b5ff626 | |||
92d347f566 | |||
cafd18bb2c | |||
ce3e339201 | |||
a863f0d955 | |||
d7e84d4e11 | |||
c47f7c2806 | |||
cb4c9aa64f | |||
15f4656d9a | |||
cba863dc5f | |||
ab6aa5463f | |||
9e3af9b51f | |||
143e566498 | |||
000aaaf95d | |||
42387bff6f | |||
3fe6268f10 | |||
f749f9ceef | |||
c284a90663 | |||
50442cf96b | |||
4bfacf4a39 | |||
3afd25691a | |||
a6a963bec1 | |||
d587a4b859 | |||
8d5b142664 | |||
e44664a3b5 | |||
31599eb282 | |||
d6ac4dc22a | |||
1c978e7333 | |||
0b3f45bb1b | |||
24f2df926a | |||
6c4a5fa38c | |||
1726df6eaf | |||
f00e8655ac | |||
4312600248 | |||
41395d9e00 | |||
3e00bcbf9f | |||
30af106563 | |||
32c6966e4b | |||
0b402b23f7 | |||
3e9d7da4da | |||
691fcaeee7 | |||
58594ef2be | |||
1c2a88373c | |||
9f30910653 | |||
d039176d75 | |||
19a0eb1761 | |||
41a6c2e501 | |||
fbc7fc6645 | |||
eea098d22d | |||
573dbb431e | |||
ecfe3a6533 | |||
8216cbc4f6 | |||
9a4d1d1375 | |||
616e140420 | |||
52ea2fd45d | |||
050c1e268d | |||
7afc4310f6 | |||
7b2cba7a6c | |||
39a3bb2c7d | |||
91ff5617ef | |||
7eb2843718 | |||
91490ed713 | |||
081272c5a9 | |||
f1782868f9 | |||
45ecea6330 | |||
f4bc825cf8 | |||
fb1fc4e7c6 | |||
ed3d222327 | |||
8c0ae7be83 | |||
66ee22c3e6 | |||
2db1222e45 | |||
abbd057eb9 | |||
6da5b8ccc5 | |||
c5c202c04e | |||
128e2b917d | |||
2f4173b267 | |||
5780ffad12 | |||
6fe40f13a7 | |||
3fea1e4df5 | |||
13d2552274 | |||
3d0bfbb4f4 | |||
770a6f0138 | |||
16d49695ad | |||
6893ef034b | |||
b893e88e8b | |||
f2be9e4381 | |||
53b5d6d167 | |||
92bfe34716 | |||
6e36d4ed48 | |||
9b5d91e33b | |||
c7686b2977 | |||
3e754a6f35 | |||
5df096baf3 | |||
45cbaa2d13 | |||
720a17acd7 | |||
dab00ab036 | |||
7ba37ce249 | |||
b2da6d86f3 | |||
56192d9e48 | |||
00192b019c | |||
21416f453a | |||
ad16804344 | |||
63744a3dd7 | |||
e5db44ca90 | |||
032cbe0dd5 | |||
7d34a10e4a | |||
62f1fc62a7 | |||
c26cb4d2be | |||
a203fb1037 | |||
adeec009e7 | |||
8e6c0bec78 | |||
69ae9e4a9d | |||
1381f6d5f2 | |||
a6c951352f | |||
0a172cc053 | |||
f5fa4a3866 | |||
8cbcbb0655 | |||
35d9d2864f | |||
bb5c0d0c34 | |||
226cdc9645 | |||
1b35154e2b | |||
7c69ab987a | |||
ba03230e72 | |||
77cb0db9c2 | |||
ad080410a3 | |||
dab72c3efa | |||
32f882093b | |||
6ac54641c6 | |||
1d38209520 | |||
c1f3a5c67d | |||
6e543fbcfd | |||
9dee164790 | |||
b0cc2a8614 | |||
f4ecc9bab8 | |||
c3884e9900 | |||
39c88facc5 | |||
1dce6b5fa3 | |||
6b1aa3cf04 | |||
2e1893f7d3 | |||
d1fd844bc4 | |||
db273ce50c | |||
2338611046 | |||
7d3a05f2d1 | |||
a02e0b3c98 | |||
952d63a127 | |||
23bed522ab | |||
813acae961 | |||
352e2c02dc | |||
9ebb135ccb | |||
a96939be0f | |||
cb3870f9f6 | |||
25d628aea2 | |||
aad8eb1999 | |||
fc6b78a20c | |||
4b3a8fefb6 | |||
ec0562550a | |||
73e14e0bb1 | |||
822e125492 | |||
b47cd6a3bc | |||
95fa3a3879 | |||
0b978e61aa | |||
d6b974ba15 | |||
ec09ac49f6 | |||
ee738f1d6f | |||
17c10f60d9 | |||
24823e19e0 | |||
c8e967ba1c | |||
f7aa5f8653 | |||
6da5a5abcb | |||
0fdb644454 | |||
f6a3ba26f9 | |||
d1920788ac | |||
fc1ff18ca7 | |||
5f9a4ab8cc | |||
920a847508 | |||
1e17ba1768 | |||
e17377d407 | |||
b47459af58 | |||
986bdac451 | |||
b5b37d72a3 | |||
096e3dee8f | |||
e25282088b | |||
da36829f96 | |||
ff5055834b | |||
b41abfd1f8 | |||
e1cc242b52 | |||
4589d1246d | |||
66a5edd31a | |||
57dec338ba | |||
9ecc00a33b | |||
ae6032e58e | |||
c4d7e0568f | |||
c311e96b63 | |||
b66fbc0369 | |||
151ddc08ec | |||
b81c7c48d5 | |||
e11100e584 | |||
01027006a7 | |||
38faa8fe10 | |||
9abdc6c0fa | |||
34b483ed75 | |||
c48c5e44bd | |||
b943a74476 | |||
13badba158 | |||
e1e5cc8f42 | |||
6e1ed9ad55 | |||
dd2370d9dd | |||
45f2ec5f64 | |||
e7a69b6a13 | |||
10b12f24f0 | |||
3b1e91342e | |||
e7cef5bbcb | |||
6ddec0d855 | |||
c0d90e5b76 | |||
6c22a997e6 | |||
945c9cb8e0 | |||
cf2206352f | |||
4c5f125a6a | |||
1fd45f10a2 | |||
3592f8e92e | |||
036fe284c2 | |||
a1cc5fea1f | |||
9442d21f44 | |||
a0cd86d2ac | |||
157aa0af6d | |||
88cd978837 | |||
e146c24483 | |||
41b6f0803e | |||
68ac59ff6d | |||
c2abbce2ed | |||
38cd6a6c1f | |||
ac365b4ead | |||
e083742426 | |||
e5fc168a46 | |||
be7067bc0a | |||
1ba3b3dd7d | |||
a06d96316e | |||
6e8c233d6a | |||
c627368ea1 | |||
8524f510c6 | |||
39e389cc5b | |||
d079ef538c | |||
203046237c | |||
7a5606d241 | |||
c4768a3b9f | |||
af8d281556 | |||
0f73a011ce | |||
53cea00323 | |||
b7466365a1 | |||
3b3226b678 | |||
ab2e925b65 | |||
0214ece238 | |||
a6d04255a8 | |||
9821453b5f | |||
c61eb77a70 | |||
57a2d20d61 | |||
8c3bcc7229 | |||
f956853550 | |||
6849735e9d | |||
06817df975 | |||
98ccfea388 | |||
9a1be03205 | |||
026008a700 | |||
b26fc771b1 | |||
04619df818 | |||
c1928ead7c | |||
b43f9aec5a | |||
79d749fc82 | |||
bcc5f104db | |||
99f6b2cdce | |||
75d3845801 | |||
c8e0acfef3 | |||
da55d8e738 | |||
40c25dc426 | |||
f3a8b2f12e | |||
dcd350dd90 | |||
f826fb1d9a | |||
123f4df31b | |||
3211fb04d3 | |||
17e12ccb6d | |||
6eab4fb9e8 | |||
8f8097aa2c | |||
7a190f33f6 | |||
7ec7a8fa44 | |||
93b945ea42 | |||
0058271aaa | |||
cfa45beee1 | |||
51468bfb56 | |||
f7b0c532aa | |||
20ce1e77d9 | |||
368346571a | |||
7ea4380725 | |||
15daecacdc | |||
1b943f8191 | |||
6d8baea4c2 | |||
4c9bfecac5 | |||
6683b5efff | |||
783e51281a | |||
5dc36e1201 | |||
6a86912554 | |||
7405f040e8 | |||
5ed940e101 | |||
11f18a25c2 | |||
d819b99d99 | |||
b5ac24e9c1 | |||
d1635d13cb | |||
f80e39e2ca | |||
a7a0a0300f | |||
685bbb2e64 | |||
e85f67f564 | |||
a2b47741ae | |||
eeb762e1e2 | |||
6c5fc6b3d6 | |||
3991e82539 | |||
312cbf3e04 | |||
ce2bfc008d | |||
b2fe0097e6 | |||
e4501f801e | |||
7bef175590 | |||
a4a102726e | |||
a42ea69d0e | |||
8f594c93cd | |||
8f8a193c7e | |||
c283fbe9b3 | |||
53d89a7fd5 | |||
68c2f75558 | |||
2a3445c865 | |||
10f9a7f252 | |||
b1c5a2e221 | |||
1d6e70a49d | |||
310970a91b | |||
07c1003905 | |||
273d213509 | |||
8201b0361a | |||
f97f20e3b0 | |||
fc4ef3417f | |||
4d441a6f7b | |||
c1348f0322 | |||
647f75c4e8 | |||
348795b94d | |||
bb539466d5 | |||
ab9bdf228b | |||
c91475f20f | |||
445b6ae6ed | |||
2e9857b560 | |||
3cc7b2c74d | |||
275cccb136 | |||
8c1a5c6a11 | |||
7a9da7eb69 | |||
788cbc91b2 | |||
9cb0b6ff52 | |||
22d5f3fa57 | |||
627dcede64 | |||
fbefdce4c1 | |||
77785ac321 | |||
922b490499 | |||
ee49194cf5 | |||
f2bf9703db | |||
1866268c94 | |||
b7ee7bdd9b | |||
ba3cf5dfad | |||
f186d90dd3 | |||
671b69a251 | |||
fd01dbaaea | |||
be11a6bf72 | |||
4854710de2 | |||
0684ef95c5 | |||
775cb1f4a4 | |||
73f90dfd69 | |||
8a0ffa93eb | |||
7ddb3a4663 | |||
493408167b | |||
a8f1a61242 | |||
4c3a5883d7 | |||
9a66ce6b01 | |||
08c3c187eb | |||
b422faa4fe | |||
a8dd848ca4 | |||
143cb3d60b | |||
92610f53c3 | |||
6904b7a5d7 | |||
30ece059cf | |||
1e59d63e31 | |||
7380163eaf | |||
dc33ad1adf | |||
b5414c27a3 | |||
2f790b0165 | |||
d185a84140 | |||
749698eb54 | |||
6323467879 | |||
d94a34a2c1 | |||
9005e4a68f | |||
9e4f5a26dd | |||
ae906b318a | |||
8d373e009d | |||
7d67a9aee9 | |||
f0364b2eed | |||
5af56eebd1 | |||
5f3e27bbd7 | |||
b1b8d51264 | |||
3ee8a903e8 | |||
f6c958ff26 | |||
27fac47e76 | |||
6144787b3e | |||
c1e7ead397 | |||
c4fe54d004 | |||
48f1dd5a7e | |||
ff0fa107a4 | |||
acd81439eb | |||
b625ed254d | |||
334370f5d1 | |||
66c031315d | |||
74b34fe239 | |||
7124a7acc1 | |||
2fffd6fe9f | |||
6b1719de1c | |||
0225449e12 | |||
1a8e5872d1 | |||
0e6fba083f | |||
1178800abb | |||
f061a6d793 | |||
976635a22b | |||
69c0da91e5 | |||
306a7497fc | |||
1addb6ddc1 | |||
0a7fc94799 | |||
cca5e69c64 | |||
bbdd7d9b15 | |||
60695fd89a | |||
c5d59254af | |||
2bcd7c839b | |||
cc50d99712 | |||
93c316f3b8 | |||
7983c29f67 | |||
22f386b35b | |||
d6e4fc41c2 | |||
f65d898f80 | |||
a49f986c67 | |||
b1fb765d8e | |||
9e72d661d6 | |||
03ccf99dbb | |||
f67f9bbf23 | |||
85e67d1d49 | |||
735877d89a | |||
ee60128334 | |||
3bbd5e32f2 | |||
c2403a0c62 | |||
839082aae8 | |||
98753ed946 | |||
0ee05e6617 | |||
2d4a0c9cbe | |||
43e3fbc518 | |||
c58ade6600 | |||
33ae559eca | |||
4f1fd37231 | |||
6654cb65d7 | |||
19d338cb50 | |||
0bbe8b8004 | |||
99d3cc1b2b | |||
c5d86fae01 | |||
d6f340eb96 | |||
bd3d643f96 | |||
7bd5f61db7 | |||
0037a5fccc | |||
1ea071fc18 | |||
bc1e74153c | |||
65a10829fd | |||
0c0e102023 | |||
914c93ae0d | |||
a1c3a05b43 | |||
f53e03f0a2 | |||
5e76e1b221 | |||
9b3a0d1ad8 | |||
d509097967 | |||
b7bdc5ec69 | |||
0e8c8ba825 | |||
f19aff7818 | |||
52d14ee16d | |||
4774a798a7 | |||
28793c9f81 | |||
3109a67a71 | |||
d4662bb6a2 | |||
13a8cdcbb3 | |||
d2a4800e75 | |||
ba19215cd4 | |||
cf48407972 | |||
f227fc4872 | |||
0407545283 | |||
438ac55cb1 | |||
0fd855f492 | |||
177202e2d1 | |||
18d9d15a1a | |||
49cc773eb4 | |||
8bd3cdff14 | |||
2095cce3ab | |||
5128bd4f28 | |||
9c82331009 | |||
347cfab7dd | |||
dbfc9d25f6 | |||
28cf8cc407 | |||
b3283ce82b | |||
6946d6a4a3 | |||
2bcb7d73be | |||
655bfaec80 | |||
a3f56bb289 | |||
b48f9ca907 | |||
8589eab403 | |||
1ee1842638 | |||
70afce0325 | |||
1f29679c0d | |||
99b547bc1d | |||
030afac8ab | |||
121a65e4f4 | |||
a8bcfb9a0c | |||
9f9df52ba6 | |||
676a516ff2 | |||
b238584c1e | |||
129fde88fa | |||
4134949d72 | |||
e6e6aecb93 | |||
13f3cb0b9a | |||
f7f696c310 | |||
2154d9e920 | |||
5ebaa15333 | |||
8736f61579 | |||
e1965914a3 | |||
233237f098 | |||
4fb40b57a9 | |||
6e4c88ad93 | |||
5631cbe22d | |||
92fe1574ec | |||
b4534658f3 | |||
3cd7574749 | |||
203b701d78 | |||
14f8e1c553 | |||
e6c16a77f1 | |||
6f9048d69c | |||
416bc2432c | |||
51de9ef860 | |||
af17cddf1c | |||
12ae5cc4fe | |||
bd00b58949 | |||
deaebc5d2e | |||
7f6a2ebc76 | |||
7d9e4ee37d | |||
7adbca2fdb | |||
3848fa17e5 | |||
f9a0c6d456 | |||
7ec8054491 | |||
34fe81fabd | |||
dacf784498 | |||
24e63a0d2d | |||
6bf62be4d0 | |||
77820c9697 | |||
175efedd45 | |||
81f8dad99e | |||
aa70e34e34 | |||
41fca4cf37 | |||
0ef47a44c1 | |||
91b5f24da8 | |||
bd0a531253 | |||
7988361eab | |||
a1a030e418 | |||
c05e6d079c | |||
b3549979c6 | |||
6039694eff | |||
12ffd29542 | |||
1aee3eff35 | |||
9d31fa61ed | |||
377e822c13 | |||
c2ff92d3fa | |||
ed22f38e7e | |||
d341b8ea5e | |||
795d2caf8b | |||
f6036b9860 | |||
82cefd12ad | |||
7ab715fa71 | |||
163e236cd0 | |||
0107da404c | |||
c94c482283 | |||
09501c9fab | |||
941e4bf967 | |||
fa2f76d4d4 | |||
60d710a71f | |||
2c6c5a6dd1 | |||
5dbe941495 | |||
c29232fd0d | |||
8fd2f1d22a | |||
e9388f4345 | |||
a8c5c002fb | |||
327e3cb6b5 | |||
0bdfa0f494 | |||
c500de4e38 | |||
b55dbe10bb | |||
01c0a95136 | |||
8fea7a4128 | |||
4f93a1a273 | |||
c5c68fcbe8 | |||
0c7be52675 | |||
fff75cd9ae | |||
76735c18a1 | |||
1f435cc1fc | |||
a5d2bdea55 | |||
565a04793e | |||
f167d55625 | |||
3405f3d8c8 | |||
f141692ca2 | |||
fe292078fe | |||
224040cd1a | |||
4026ea7b42 | |||
53b9e49ca4 | |||
8547d1e8ed | |||
b095ecc195 | |||
3bbf402684 | |||
f8ff76efdd | |||
3673472cd7 | |||
b455ac62d2 | |||
4916fedc28 | |||
81eeb9c0d5 | |||
2d895ce875 | |||
eacd442787 | |||
b8a9ed1d3a | |||
117f0e5663 | |||
f13a8e6ab9 | |||
fa1195b7f1 | |||
3d9f2868fc | |||
17bf5ea13a | |||
8d3432b8b7 | |||
3fcbbfbbd2 | |||
2caa49bca8 | |||
a8912c4fb9 | |||
7f8ad91af6 | |||
53a7cbe6af | |||
b9c6ba8536 | |||
4e653cc49f | |||
c17d58237e | |||
48261330de | |||
300be6e03b | |||
0c83442709 | |||
d372cf598a | |||
5fa7c76ba0 | |||
77644a32d7 | |||
fb588c6075 | |||
6a586e8929 | |||
58ef1592a5 | |||
9730f15411 | |||
f3e64f181d | |||
0130c0d5b6 | |||
1e325bcbdf | |||
941a9a9a7f | |||
38b4f08b2b | |||
fe1ea6ac34 | |||
932fb56ea9 | |||
18dfce2873 | |||
915192ca9f | |||
f2b400b82c | |||
e629364582 | |||
3299427097 | |||
7d239b0d45 | |||
9836007f5e | |||
87cceaf992 | |||
f77dba7ac2 | |||
d19de0c1ee | |||
142b64fff9 | |||
a9b20427a5 | |||
0e02cf9b07 | |||
5f4c3f817b | |||
80e838aed5 | |||
b4c369931d | |||
1b00ca6158 | |||
4b8a05b803 | |||
fe816afa1d | |||
b93a94506b | |||
d1ef896c73 | |||
ed5c34d335 | |||
429a8ccd15 | |||
a8c3d1614f | |||
ac10c309ea | |||
e021e06178 | |||
8c6f3853b0 | |||
e7196621bc | |||
f8a5ef7c9f | |||
85631aec0f | |||
401b716cf5 | |||
3d4adc8be9 | |||
210206b699 | |||
c0c05d51ea | |||
9d9576612b | |||
abdb3fd8b9 | |||
b3f766c618 | |||
41e93f71be | |||
79076b2997 | |||
3684bd2da4 | |||
d0e22bf63d | |||
8450d97341 | |||
3043d2a2be | |||
3ca31c7b04 | |||
8802ac2fe9 | |||
61c7487172 | |||
3782c482ef | |||
8c487ddbb2 | |||
07939f235f | |||
abfccf5002 | |||
df83c15583 | |||
83010879f1 | |||
c35fd86b3b | |||
932fd0dcff | |||
2a53302ab9 | |||
44a4c1c9fb | |||
04956ecf18 | |||
2d41d65cf2 | |||
7e41ffdda5 | |||
54c15a2583 | |||
8aae0a7723 | |||
f23d8a3774 | |||
aad6f37f8a | |||
404a61b571 | |||
0312a3e474 | |||
c25a5c99ec | |||
ac5759af24 | |||
9bee48dcd2 | |||
73d9143d76 | |||
230d78d8b4 | |||
fbc3563b21 | |||
4c8557055c | |||
2f43d436c8 | |||
a9a69ac807 | |||
8e7fe42b5e | |||
d70219b88d | |||
806fa75a70 | |||
1177b13338 | |||
ea2d79fbfb | |||
f60624ac5b | |||
836a1f7b08 | |||
a660fd3805 | |||
d5cea091bf | |||
0bd1727eab | |||
8bd2822e69 | |||
7a340792c9 | |||
8e77d5b28d | |||
8e79100b92 | |||
18b63e9b5f | |||
48b6e8dd67 | |||
fb872b8f1e | |||
94be13a003 | |||
ea1c807d69 | |||
1df98bd6a4 | |||
6c192b67a9 | |||
4a792d207c | |||
1daf7543eb | |||
b4890a3d22 | |||
7b031a1c28 | |||
ca098b2416 | |||
cb5134de8d | |||
e5009396f8 | |||
53a116333c | |||
13918cea25 | |||
03f14bd5dd | |||
8828532d14 | |||
146ad60c7f | |||
6da40d919b | |||
a4d657a324 | |||
4419430a57 | |||
11ba3be6b9 | |||
286af99def | |||
a409a0a098 | |||
ee7cfc8824 | |||
af8d3c16bf | |||
9d1549e1ff | |||
845ecdc3af | |||
1c5ef4a50f | |||
212a9f26ab | |||
e61015cb42 | |||
c96ae75437 | |||
a8e2f45b1c | |||
33383e1f4f | |||
b9e1a9159e | |||
5dc41f8c94 | |||
4aaf053760 | |||
b718f79c47 | |||
72b08c82b1 | |||
3880951458 | |||
3229882183 | |||
f4cc847f83 | |||
a63d5801ae | |||
4b774eb18e | |||
d052782caf | |||
c2a6eeaf5e | |||
931d70d87f | |||
f28cd718f8 | |||
623e4dc05c | |||
89e47e2431 | |||
83e18f8da4 | |||
42951ec68f | |||
a99ece5a5e | |||
6bb78dcb0b | |||
855de7253d | |||
e7dc04d28e | |||
4564236abf | |||
e7758d64d8 | |||
71c83da805 | |||
2891388813 | |||
194c514b45 | |||
69255114d9 | |||
43f0c34cf8 | |||
aa2af695d7 | |||
539285ca78 | |||
dda8866f30 | |||
618115931e | |||
20d599819b | |||
a8583668eb | |||
4b0fd1b7d8 | |||
3789229a70 | |||
14c046d18d | |||
386ffb4752 | |||
fa51a94a69 | |||
ef3f8c18a1 | |||
f4e327f69c | |||
b61359506c | |||
2a9dc7272b | |||
bcc3f56193 | |||
6bec74017f | |||
618a9f03b3 | |||
98886f3d94 | |||
7b690d6bc1 | |||
67ce5927e1 | |||
f29afe115d | |||
6fa4345514 | |||
d0523744b7 | |||
848ccb3249 | |||
988e5f49dd | |||
118d962b2d | |||
1bf37776c3 | |||
908715bd84 | |||
c241036c06 | |||
280a01c5de | |||
4ef11cfbd3 | |||
8a023b00f2 | |||
ab9ff657c7 | |||
34cfd6fafd | |||
c691288b14 | |||
46c9134992 | |||
eb3449f5c7 | |||
211de6cfac | |||
4e2434c082 | |||
2d60c6b878 | |||
f71386bdb5 | |||
4e3a658b8e | |||
bf683f6e50 | |||
cb8b2fd433 | |||
8780fd5e44 | |||
0fd533eee1 | |||
dc7e1007b0 | |||
976968e07e | |||
d986898234 | |||
1d8db8825f | |||
7c377a0193 | |||
fe9e1cdb05 | |||
d6e8c6c3ed | |||
029e3fc0ae | |||
c27cdff29c | |||
cf2da99859 | |||
3fe42e647a | |||
1d06b1f5e8 | |||
20479df535 | |||
c585fa5036 | |||
1aed84c9d7 | |||
8cacb2afef | |||
2cfd418b03 | |||
e4c4d8b4d8 | |||
fc74911256 | |||
3d0535569d | |||
4dc7e6a4ed | |||
e84b5bfed0 | |||
c9366989a0 | |||
eb3c38e3ad | |||
5196fb1ec5 | |||
353408e30b | |||
cc6b0e03fb | |||
38cd0f28ef | |||
3d118513c5 | |||
d35c086240 | |||
27e7d0c529 | |||
a9294e2906 | |||
446cc65f5d | |||
0a94728234 | |||
aa87fe4140 | |||
5944e94710 | |||
2b468a45b3 | |||
d7cff41d1b | |||
b4d0db909b | |||
b595f1e99c | |||
ed467aad59 | |||
73224faec0 | |||
bd5436097e | |||
a462ba5798 | |||
b1ff50f45f | |||
5a6bbef8ac | |||
309e254b1d | |||
10dd09687b | |||
69bbbbc6ca | |||
1a6c98c79b | |||
952e883456 | |||
c652788542 | |||
696ef85e64 | |||
007e8c013c | |||
cd07c25706 | |||
3802f157b6 | |||
a871830927 | |||
5545e49581 | |||
e98e38d32e | |||
2d74cdc026 | |||
7c343fc22d | |||
1dc74bbc8c | |||
618a6b38c3 | |||
e8b016984b | |||
8bbccb91f7 | |||
9c2e546f53 | |||
12ac1d6a4b | |||
2ccb7f7bfa | |||
389eb410c7 | |||
f0c4d2c57b | |||
4c4943312a | |||
d616aeb828 | |||
92c63dfdc5 | |||
f9678266c7 | |||
e3db5a0be6 | |||
49e1802c7a | |||
eb4941d005 | |||
371f0b732f | |||
bdd9e28878 | |||
1f05ddcd0e | |||
78604b64bc | |||
7c4af65ec1 | |||
e6083f64fb | |||
b996cd03be | |||
36287b9417 | |||
6d8efc90e0 | |||
d53af7196c | |||
667c74bc4d | |||
c5c59b1761 | |||
5fb20624c4 | |||
8f2b9cb4a9 | |||
0418146249 | |||
6e70013412 | |||
ff33209e1f | |||
98791271e1 | |||
8eac4fa3ce | |||
0666e2c038 | |||
1004bd8b60 | |||
45966f581b | |||
5194df842c | |||
a7053d3d47 | |||
8ead622f8f | |||
7759644304 | |||
526dd959ed | |||
cb5c112166 | |||
fb3b32a2bd | |||
0e25c6eff6 | |||
1724fa36f1 | |||
a50b3c7a2b | |||
c8d33dc86b | |||
aae4472a63 | |||
18c9101a4f | |||
b10626c5d8 | |||
50310c5870 | |||
e03de727db | |||
7f6b23a90d | |||
e66919510f | |||
966e36b9f6 | |||
ee3ae1584f | |||
128cda50bf | |||
3f7d729978 | |||
6de7271ab6 | |||
6fa4dee13e | |||
bc6996b171 | |||
9ec6dbd5ca | |||
2034a309e5 | |||
7626f74b85 | |||
eb639a4650 | |||
dc9920b883 | |||
b8f89db4d1 | |||
63ca4e8bde | |||
4d8a7a2045 | |||
ebfbef86a0 | |||
addf369006 | |||
82c56cb5d7 | |||
0a8bdcdcb3 | |||
745906b7db | |||
8fe344db51 | |||
f32712937b | |||
43d4ea3f3b | |||
8d00f13dc7 | |||
6753584e80 | |||
9b85e7ee7f | |||
dda3c2bee6 | |||
921661e91d | |||
7a799b3a63 | |||
b01dcaa338 | |||
9cae11fd9e | |||
da7d198757 | |||
350225ea37 | |||
930c7ea270 | |||
ec51e41c62 | |||
08f51fdf94 | |||
e82ce26425 | |||
8a4c3c81a1 | |||
0bb8bd4370 | |||
81e32cfa32 | |||
6e007baaa8 | |||
55899b5ab7 | |||
5c06f103ca | |||
e6b1bd9922 | |||
44b86d468e | |||
44ef3b3a51 | |||
11a90c53ed | |||
88b91199d2 | |||
15d871023e | |||
fc00da1099 | |||
db3d6725a2 | |||
f94d12a991 | |||
c7cb503003 | |||
dc9880ea7e | |||
7eb85e6e9c | |||
6ab8fb150f | |||
e179b813f4 | |||
24a6a105e3 | |||
9d6fed2aa0 | |||
8090d192e3 | |||
36b9a3a974 | |||
f145337a8b | |||
0d7d821343 | |||
7211cc21c3 | |||
f4277e3235 | |||
47bb79adb2 | |||
39a6707a06 | |||
f6f968a545 | |||
10ad03db76 | |||
ae441010b9 | |||
a877cbc80d | |||
b40993fab9 | |||
b86d678c4c | |||
56b59faf87 | |||
90e6198401 | |||
cd748a2e97 | |||
c73a198f94 | |||
4e478159b6 | |||
85e43a402f | |||
c1fcc4bb6b | |||
a850771e04 | |||
6126940518 | |||
82267f5afb | |||
22e6c6f7c9 | |||
fe75a334b1 | |||
2774292561 | |||
e9f578b511 | |||
2ee754ddaf | |||
f7a45f10ea | |||
9626780635 | |||
e3249d6e1b | |||
419884a0cb | |||
1b941ff508 | |||
5d9ccfac37 | |||
031b03513a | |||
50c5bf4bf6 | |||
c4a135aeee | |||
d97395ae52 | |||
d6be56358e | |||
4becc1e631 | |||
1b9faba6c5 | |||
d20d537113 | |||
28b48248a2 | |||
f665d54373 | |||
5ca9f43752 | |||
5eabc7c781 | |||
0180c10092 | |||
5080b8fefb | |||
34138ff44e | |||
a2d21149e4 | |||
db4fa5c5fb | |||
ff88d79062 | |||
15c7e2aed9 | |||
09a48beaec | |||
ea137d35f3 | |||
54b0105ffa | |||
01a282fdd3 | |||
9d6d1c5fb6 | |||
fd4378d84f | |||
ceb54162b3 | |||
390ded3054 | |||
caf43a123f | |||
106391a431 | |||
595465ad22 | |||
0b3391a25c | |||
fcdd0fbd50 | |||
9b701f520a | |||
a3e309bab8 | |||
c065a5df5d | |||
01030ac0df | |||
3e55c138f1 | |||
81256ebe48 | |||
8722c60a28 | |||
8f09a12069 | |||
c68c26b7f8 | |||
d419955ddc | |||
af593aa5c5 | |||
191baa3c76 | |||
c8c666f855 | |||
edea47d113 | |||
b164d11b90 | |||
0cc7e939ab | |||
2276f91162 | |||
63ea328ea8 | |||
fe34523949 | |||
d79a571d0a | |||
a34944d341 | |||
b569dddc17 | |||
5d33a1bbb8 | |||
9da34955f7 | |||
536bb240ef | |||
ef1c6e9214 | |||
90359a5346 | |||
9e341dd4d8 | |||
2168cd3eb7 | |||
25910508ae | |||
c4fa0d118c | |||
ca3ed6a1eb | |||
0201fcfc6c | |||
07e4cacf14 | |||
79eb53bd53 | |||
b694312f1c | |||
3cca3f3ee9 | |||
b01408f358 | |||
4fc6a7ce65 | |||
e657ef87ab | |||
3bc5cc1ce7 | |||
49971fc1ef | |||
569ff8a34c | |||
2d73af1530 | |||
470dc30174 | |||
7dd25001ce | |||
9b0ba2f274 | |||
8938ea3fa1 | |||
df93236627 | |||
5c587726ae | |||
87100b64d9 | |||
def5a12ff0 | |||
31f0853ca8 | |||
fb41e2bc8d | |||
aa077d95c0 | |||
b004ef4e15 | |||
7c58ecb657 | |||
8144a962e7 | |||
8c3bce3f98 | |||
3b0478776d | |||
c53538b1c2 | |||
2ba196b310 | |||
4beb9df364 | |||
6fb90bc723 | |||
dd86330ff8 | |||
f9772ac685 | |||
312454150b | |||
3fac671fc8 | |||
dc5dff7e9a | |||
199e2b6988 | |||
d3f1996655 | |||
277236f730 | |||
0d06471910 | |||
4de104f9cf | |||
189c8b9b11 | |||
555d7dc90c | |||
2ab4a35c53 | |||
b62aba4401 | |||
3800dac492 | |||
bba4df7187 | |||
c808195eef | |||
cb595266fd | |||
3ba437d508 | |||
28ae1b40df | |||
b2352cf9e2 | |||
3d62fedfa2 | |||
6c6d871abc | |||
39b7e2ed79 | |||
dc856f0fdb | |||
39cb0ee987 | |||
78634dd4b8 | |||
7c8f91a3a9 | |||
e199b946ee | |||
6b8a3a1af5 | |||
445e982894 | |||
d80721697d | |||
d818e18d81 | |||
f89973dbfc | |||
c35fbb3f5f | |||
d9b4fdd845 | |||
0484ecd355 | |||
277af5e783 | |||
3274df7df1 | |||
7a68a53322 | |||
c7c4efa1c1 | |||
e38609f4a2 | |||
9d320ba435 | |||
18107f5f36 | |||
88b9efd0b7 | |||
b42e848986 | |||
7489dbc34e | |||
4c96afba71 | |||
7ea55a1e54 | |||
77a207c9cc | |||
1bea8254ba | |||
1f5130dc93 | |||
1d92dcdadd | |||
e7b08814ec | |||
69e245b237 | |||
9ad9fd4290 | |||
c47e425527 | |||
9051b70d40 | |||
43b5985c20 | |||
0ec2133e81 | |||
9fe845581b | |||
fc23f9b22f | |||
cbd0312605 | |||
57bedc42a4 | |||
acc6c97997 | |||
dcef402d68 | |||
d4973e8d1b | |||
1dd78e38ff | |||
adc46fc970 | |||
3917d818f5 | |||
cc5def1021 | |||
77a331a1e3 | |||
c12dc9de3c | |||
ab7f789cb0 | |||
ae86fcd5b2 | |||
74d4768b8e | |||
fe74d5da13 | |||
1fec6583ff | |||
bf6da74e6a | |||
e8fb842aad | |||
76e4fd8a07 | |||
3cca3381ba | |||
7d8087f3e8 | |||
419e063a24 | |||
05323ef21a | |||
6e4d6da191 | |||
9c75b95146 | |||
edfaf1a6bc | |||
1538ffa04c | |||
3d661f9bc7 | |||
34662a6a3a | |||
92dff14d55 | |||
61e1bb57e7 | |||
5e85bf7210 | |||
85f9c499fb | |||
42dd771506 | |||
8afa1da3a7 | |||
f0c5312b6e | |||
af8e3c0d93 | |||
69f1a9d3bd | |||
b126f61eed | |||
b1ba1cbad0 | |||
a58ea99379 | |||
cb38ccc57f | |||
41ae99000b | |||
0f05948c95 | |||
5744f08056 | |||
6681725dcd | |||
a99a2ab14c | |||
616bffdeef | |||
a067105a14 | |||
76291d31b7 | |||
bcbdfbe177 | |||
5eaf79f6fa | |||
1cabbfef25 | |||
454638fd0c | |||
4a06163710 | |||
83f82e5f28 | |||
db87abfb19 | |||
35b47b59ab | |||
a8f382019a | |||
a1324af018 | |||
ed37bcc258 | |||
cb84bc3e1d | |||
76dff49a3e | |||
5af52e9fe1 | |||
6dfb56cc77 | |||
ab1adf6c06 | |||
0ca0bca0d0 | |||
3ae4e25162 | |||
7535f0f58a | |||
ca3236f76c | |||
7d2f0bf1fe | |||
3f4e194c8f | |||
22bc36eb3b | |||
7592470dab | |||
179987132c | |||
1e64cf4a8b | |||
7859b69a88 | |||
3e5b9776c6 | |||
cdb94d7e57 | |||
3e394580da | |||
23a5f5bb58 | |||
78826fd35c | |||
616ce23a9a | |||
3c24269ceb | |||
ac606c6223 | |||
1a16108310 | |||
3cb72d338c | |||
51ade19ae9 | |||
fb3b5c92f8 | |||
ff87e70e8d | |||
34cb1840cf | |||
9f21db5366 | |||
0dcc85e79a | |||
acb5e483a9 | |||
5750974d5d | |||
b62dd8d130 | |||
e9c8fd8527 | |||
addc04f463 | |||
411fd3db44 | |||
451c990dd5 | |||
3a6dd75f63 | |||
975130ff70 | |||
abde6fc359 | |||
10f3ce3de0 | |||
618d282893 | |||
ba1e888cba | |||
7e78d707ea | |||
12d5978268 | |||
d769484f35 | |||
a524fb9c9c | |||
239cf4a060 | |||
984154e011 | |||
14f120f131 | |||
c118c50117 | |||
89f01eb73a | |||
ae85a33614 | |||
fe47d4436d | |||
fee1fb094a | |||
83d21b97c4 | |||
f908d78e4b | |||
e2ea1cf722 | |||
10f0cfd2dc | |||
7e2d5185a0 | |||
5bf3e39ef6 | |||
a03e78210f | |||
ecf75915b9 | |||
2214fd75d9 | |||
1dea155c8c | |||
694a4352bc | |||
4cbe4e7558 | |||
4f99d7e17f | |||
3d4717c8e1 | |||
bf4172dc7c | |||
4d097fbc18 | |||
13cdd8ad3d | |||
c7c9f0ee52 | |||
ea50cc7239 | |||
59d99fb9d1 | |||
4b683fdbf2 | |||
4730cb57bd | |||
c2b4a65e75 | |||
793c1d7a43 | |||
123684d80b | |||
8674051c58 | |||
cb109b9637 | |||
6445d16fd5 | |||
21d5a43c29 | |||
f7a202eb81 | |||
eb102ab37f | |||
aaafd14124 | |||
3bf211c89f | |||
127a89886b | |||
82a6c99485 | |||
d0564def9c | |||
1f7446cd88 | |||
cf3deef6ea | |||
28aeacb247 | |||
d75c170fef | |||
ea1568c720 | |||
9b6aeeef12 | |||
25923105e4 | |||
09a5c23585 | |||
8f59776087 | |||
905b4e8e0d | |||
b11ac45352 | |||
fd1e1c76e8 | |||
c5d4cbd742 | |||
fc7a246074 | |||
bdb60c4e72 | |||
d07fccc8b1 | |||
543f85a1db | |||
ab176cf831 | |||
ef47c243c5 | |||
01cd31f7f4 | |||
ad2c7c6ce3 | |||
4d6ee9ea49 | |||
a401b82089 | |||
54751db00a | |||
16de3b603b | |||
5f30265879 | |||
0b5f11ae5a | |||
6ef997d3ad | |||
369ab5bc2b | |||
188bc50a35 | |||
042f5e3e6b | |||
82a3cad018 | |||
c910286c02 | |||
07ef2db60c | |||
5f3b961989 | |||
3393f4707c | |||
77b8ed579a | |||
d02815b364 | |||
9cfa08d4f4 | |||
77440097e1 | |||
985195858d | |||
d161ddcff8 | |||
e27bebc49b | |||
9ac0eab5c3 | |||
4d220adc32 | |||
7750026603 | |||
92ac98ef47 | |||
1161cfdeba | |||
8d0a3358c7 | |||
20c9efaf82 | |||
192943640e | |||
46bdc87e94 | |||
35674ae862 | |||
04433e5b9d | |||
f8cd8ae75f | |||
94d4d039c2 | |||
3c6b291641 | |||
8c2a5dbc19 | |||
92971d6377 | |||
add8531eb4 | |||
eed6f29b30 | |||
832968ddd6 | |||
7a8e3c94fd | |||
4d0d192761 | |||
c3ed3a3090 | |||
b7c040be26 | |||
e92403441a | |||
9232b75ef4 | |||
1b7d0fbc87 | |||
0a1a7e523c | |||
d3e27ed02a | |||
3e01e149eb | |||
04a4f7c363 | |||
6a08faf99b | |||
a3e7c9c222 | |||
1a430825c3 | |||
82664c5d76 | |||
f8f6016970 | |||
b1847959b1 | |||
e4cf87c985 | |||
928364e915 | |||
78ce6d6a60 | |||
a6b60a2024 | |||
f5fdb07165 | |||
f127b2bc98 | |||
5352caac31 | |||
d24fa066a4 | |||
d010bbb5ed | |||
636da5ebff | |||
a42e4dac42 | |||
f966ab041b | |||
9e17747f3c | |||
5a85bf18fe | |||
833fc11c47 | |||
8215a35993 | |||
f3ade45b96 | |||
71b27c6228 | |||
053759fad6 | |||
f6738a930c | |||
0f48ff448c | |||
ca539199b2 | |||
c348794431 | |||
0610f92f0f | |||
b3e0208afa | |||
8ceb613668 | |||
500bbefc6a | |||
d0e8371494 | |||
ce3299e815 | |||
0e8c8eb6b5 | |||
cb298b9279 | |||
74510389bc | |||
0654163d8a | |||
7aebefad3c | |||
4b6a87acb5 | |||
f39bcff434 | |||
abde4a3769 | |||
d49bb492fe | |||
14f72c89e3 | |||
b5c199c6e6 | |||
63d978d228 | |||
f839edda05 | |||
d6ace0d2d4 | |||
bcadc0ce3a | |||
fdd47d79b4 | |||
891e59e597 | |||
297e0e466f | |||
be036ca300 | |||
5a49bc8f91 | |||
2360ba0aeb | |||
2bcbabf6ec | |||
e7675e8069 | |||
405e21a82a | |||
9abec54da6 | |||
095359b58d | |||
99c3ce1ef9 | |||
0375976ef0 | |||
9a91c8066a | |||
9ce85d7657 | |||
8808c8b500 | |||
5c29242d4a | |||
c0f4b9d2d4 | |||
e44e8c93aa | |||
c8d135b353 | |||
8e5425a86f | |||
0ea8552531 | |||
dcec11274a | |||
6f318f1a75 | |||
5568f75cb0 | |||
e272295976 | |||
a556a7334a | |||
af14d9d2a1 | |||
32d4bd6b63 | |||
4c10722262 | |||
cc790655f2 | |||
1bce2c55fe | |||
5f9a097d2c | |||
24976318b5 | |||
59d7d891db | |||
8638300708 | |||
a42d6647b5 | |||
0a815fb8f8 | |||
4dd216f5a8 | |||
4d868c1ddc | |||
97981e4322 | |||
35dae65862 | |||
fac7010411 | |||
d552ca35f6 | |||
9fdd3d165d | |||
ef792fc1f7 | |||
50bcc976bc | |||
def12b85b8 | |||
5a652acf88 | |||
efe25a80ed | |||
f9d11c0be6 | |||
fea6191473 | |||
0eab7bd14c | |||
9ec589b3b8 | |||
d0b1dab993 | |||
4689944194 | |||
1f6dbf75fa | |||
51b8c402d8 | |||
f0322ee76c | |||
5913b8c5ab | |||
52df880f32 | |||
f6270596de | |||
a4d1c6fd61 | |||
0f8add8b37 | |||
8c5b6c875a | |||
ae52d731be | |||
d884f9ce8a | |||
ee54debd6a | |||
24cfed8cf0 | |||
008a811e10 | |||
de65967b62 | |||
35532d14cb | |||
9516694385 | |||
9eb56f151c | |||
e3ff2316fe | |||
ab0ba52f89 | |||
339948fcf2 | |||
ebd0c7e9a6 | |||
d530c3e405 | |||
be86740b3d | |||
d4771cd9cf | |||
a59f14adbc | |||
703f58cdf7 | |||
5e9f20e94c | |||
a710235e86 | |||
53cba6ed37 | |||
7e821f37fd | |||
830baad257 | |||
6a9242b192 | |||
013c8b82db | |||
37fb0af742 | |||
12193322a8 | |||
d9721257d2 | |||
c08a660368 | |||
77b148afdc | |||
b4635f2143 | |||
b3f465c727 | |||
616d778f6b | |||
6fa00967a5 | |||
35925d1cf1 | |||
d74b0ce151 | |||
ca6991d4a8 | |||
ca2fe384bc | |||
65168cf8c9 | |||
b03d82661f | |||
20e6b8d2f8 | |||
3426844ad5 | |||
a3902fb922 | |||
0fdbdbd236 | |||
9641bc5ee7 | |||
d1da3438d4 | |||
f9a4aea0cf | |||
0ac220aecd | |||
075d6d34db | |||
dfbec3a4c3 | |||
466ce4a936 | |||
c78a98e066 | |||
a5165ee24d | |||
a7201d27d1 | |||
cfb3bd081a | |||
d0095e947f | |||
ef486d855c | |||
2e10145b33 | |||
6677b55cd5 | |||
7c1aa16c3b | |||
e2e2c6401b | |||
4752ef55c7 | |||
55f62585d0 | |||
a11e758b4b | |||
828d2ca01e | |||
064303e98e | |||
094449d097 | |||
ddd1d6616d | |||
f2acdda740 | |||
7c70749ae8 | |||
37ced4cc32 | |||
0bf176de5b | |||
f4a587f05e | |||
27b0a5e0b0 | |||
62fb5e6eb4 | |||
9292fe606a | |||
7ef871f73a | |||
29e38a2f53 | |||
3e77dd1ace | |||
5b28d889fa | |||
fcf89cc2fa | |||
0a13bf3270 | |||
4aaf6e3eb4 | |||
12daca5cb1 | |||
1a8c2aa027 | |||
26dbf9856b | |||
ea4cd88285 | |||
47f1a8634b | |||
c3624745ae | |||
2aee817a56 | |||
ef5299ee92 | |||
fcba59e685 | |||
662da0ec3c | |||
66c5548061 | |||
9503b4ba21 | |||
72c5649bc3 | |||
43d72674e9 | |||
943f4f66fb | |||
997b5dcccf | |||
94da2b94d7 | |||
c502053ffc | |||
213833f333 | |||
9136686aa4 | |||
8eed998780 | |||
0d1c28948d | |||
d02dc0e89a | |||
b4f123c332 | |||
422ee61608 | |||
06df0d64ad | |||
4c96a68427 | |||
86bbde337c | |||
809a1c173f | |||
735188fd2b | |||
6bb6566b86 | |||
304a05b9a3 | |||
7f90738dba | |||
909de04b89 | |||
b751ceb159 | |||
feebb2f42e | |||
2139d4e25e | |||
3ed91c8e14 | |||
02d6e62aec | |||
8126d0953d | |||
fc6dbd84b9 | |||
e16863f783 | |||
96c238bbc6 | |||
2df2e18a9b | |||
5305e17392 | |||
cb19fdc3ce | |||
7d1e1b042f | |||
4b4d6cac42 | |||
905a92a20a | |||
f1bcb6b51a | |||
a39cb116c7 | |||
87f613fbbe | |||
f38e760506 | |||
05dcc58174 | |||
ce42492db4 | |||
893fadf7d6 | |||
a182b353ce | |||
f335b0c381 | |||
2972ab6df6 | |||
8e927fd300 | |||
c50c8e6f7d | |||
d8a1b9750b | |||
1b2e5e56a8 | |||
7a9be72bdf | |||
d5705ef576 | |||
20b7ee18ef | |||
7311386172 | |||
91e594863c | |||
455dbdf67a | |||
7f1fd68952 | |||
9c97fd2b9b | |||
266f78d9a8 | |||
c25b8ec616 | |||
c64bda776b | |||
ef5c3f976a | |||
7e2a44039f | |||
225407f3b3 | |||
845a7fe554 | |||
969a4ab3ef | |||
10ea37ec4a | |||
b102891467 | |||
4c143b3635 | |||
eb04fe1ec7 | |||
2126caf511 | |||
b6fa0deff3 | |||
10ee3e89dc | |||
364b402e8d | |||
65e2f2ba4b | |||
4c7dc0bbb4 | |||
1b52fa05e6 | |||
3f214dd33d | |||
b54ff6be9f | |||
c62efca089 | |||
6c023bfef7 | |||
020736a42f | |||
c635ac51cb | |||
053c1b9d19 | |||
241a44e69c | |||
b22e85f81a | |||
7bda73a415 | |||
0e956c674f | |||
d09fb9f806 | |||
61c6519798 | |||
786af7ea61 | |||
8ce054b21b | |||
7335b44d3e | |||
e4bd174a7b | |||
3a6a4966e2 | |||
14d54719d7 | |||
bd56f4ec07 | |||
3b6f14fa6f | |||
947e45d27d | |||
a85aea8b18 | |||
c35bc07c74 | |||
4f98706852 | |||
b5b0255e4c | |||
e003ba87d1 | |||
064a86e620 | |||
1ff193b819 | |||
3fdf721286 | |||
90dc2116ad | |||
d5eaa386dd | |||
14b8de3727 | |||
1799ef6006 | |||
be49961944 | |||
7b416a0a2d | |||
2e0d27d0f1 | |||
e1891161d0 | |||
eb46b01e97 | |||
b71671f94f | |||
5f23d91c39 | |||
54f2bb3648 | |||
4223bc53f8 | |||
7b1f4e8a8b | |||
18f7f5f76d | |||
9c4d95d9c8 | |||
6f5fedcc7c | |||
da578b2e4a | |||
030ad7c7fc | |||
2876a8ea4d | |||
a11aaf96c7 | |||
b49c0ec888 | |||
1ba71ab9ff | |||
82c8ca4588 | |||
7d9d9f52cd | |||
9cb157caf8 | |||
8eb38bb871 | |||
2b86f5d870 | |||
0a7bbc9b06 | |||
16012cb7f2 | |||
c9592c587e | |||
c48b52456b | |||
48fa3d5fcb | |||
5b2061b520 | |||
c16108aba3 | |||
de4ab5cede | |||
1a9d5ef701 | |||
4fd7ed876d | |||
8c2b7c174c | |||
c56b7d8334 | |||
c897d3f17c | |||
f58cf15ac2 | |||
e881c2dbda | |||
73b36aa64d | |||
3b00d7a6a8 | |||
c7ebe972e6 | |||
fae2f68f24 | |||
63d8f5faf6 | |||
bea407e309 | |||
6375bee8a2 | |||
3c1a7cc190 | |||
ebae340a1e | |||
8ac94e45b5 | |||
3a0277561a | |||
15e8482635 | |||
882432372a | |||
0df4e194d3 | |||
6e40e576a4 | |||
612507260a | |||
ad99427b49 | |||
480c8bb085 | |||
53a6545b04 | |||
84fe920ff1 | |||
987514c702 | |||
992f237090 | |||
8de466b582 | |||
79f2b91679 | |||
b93960ac9d | |||
1f0fd137f5 | |||
50312dd0e8 | |||
11508ce27e | |||
0b3e902319 | |||
5e1b0c8764 | |||
7d2f2fe632 | |||
754a75546d | |||
d1e630235d | |||
37becd9a79 | |||
626c5fcf54 | |||
3fb2eb0856 | |||
c729adfc5e | |||
0488efc8c1 | |||
9fa5c1d4b9 | |||
d31a0829be | |||
f8c41ca016 | |||
450cee78b5 | |||
f7aad0d647 | |||
fe1416c65f | |||
454e595ef8 | |||
50596a6f97 | |||
4726d89661 | |||
ffceb7819f | |||
249c105d01 | |||
a7116f94a6 | |||
0aa903f0d4 | |||
a0b192aa5e | |||
459c6668fb | |||
d11681e505 | |||
114c7c0be5 | |||
10c6e1de17 | |||
0bde8fe275 | |||
2b2b70e80e | |||
6679c6cd9c | |||
7aab9f97d9 | |||
9057b7112e | |||
959a997eba | |||
84312194e8 | |||
58b323e4cc | |||
c39fb62e1d | |||
e25ed00bfb | |||
de5588c10e | |||
03adcdac31 | |||
36b0b6d4d5 | |||
bb1783b999 | |||
05928106c5 | |||
3489defbe8 | |||
490fe640ab | |||
017aa0dfd5 | |||
7961c987a7 | |||
77854b808a | |||
e2eb979ecd | |||
51bbd0e1a8 | |||
595c86f427 | |||
a7c2bacd64 | |||
dab5dc2c70 | |||
5d8da70f33 | |||
2f0f36eea0 | |||
4e3243b122 | |||
a1caa2ae9e | |||
194eee175d | |||
2aae99381f | |||
aa2da7d82e | |||
9221a550db | |||
c66adff00d | |||
7d0ef20a9c | |||
cabf4fc359 | |||
5389f135ce | |||
1e580d1e52 | |||
d93d26aaeb | |||
0a95c706bf | |||
b0d15aa44f | |||
5fe06b5fff | |||
fa5bc6ff51 | |||
893309b372 | |||
cf102c12f4 | |||
ebaa77c312 | |||
bb03725397 | |||
49479d9b67 | |||
ea4d4b7b3e | |||
f388d1111f | |||
f5984f4365 | |||
a8347dfd2f | |||
f31c57a049 | |||
3afcb9c963 | |||
640d793ce4 | |||
b5529bc5e8 | |||
2dcaa941b4 | |||
145d134095 | |||
1a5d738e68 | |||
2d0d5e8cac | |||
814cc4b698 | |||
6630963a1d | |||
667796d53b | |||
686ce45a7b | |||
11dc788fbe | |||
a1cdbf6d03 | |||
46ededed08 | |||
47221dcce2 | |||
48a6dd603a | |||
89dd94bf1e | |||
b8c8000b44 | |||
00f7c002ba | |||
7dce1a4b6f | |||
2e465de233 | |||
1830a35000 | |||
d9e622b375 | |||
7d747092a6 | |||
be29c69653 | |||
c0924402d4 | |||
7549d1511a | |||
7c8faf3eda | |||
68b14b6b9a | |||
9382d5810f | |||
890ffe18f2 | |||
78e54ee7ee | |||
4e636d0951 | |||
c74ab35c6c | |||
0bf6bffb16 | |||
1ce080d733 | |||
aab8f21475 | |||
ce8c2d9463 | |||
d5a484479f | |||
892cb8a8dd | |||
e46fc46701 | |||
f4f8699d84 | |||
85d4c396d0 | |||
575bbe7342 | |||
80ced567d3 | |||
dbbe2854fe | |||
cf74d02ef0 | |||
548638f0fc | |||
cda3904b93 | |||
e7deeb609d | |||
d178f5e330 | |||
d8d77bd65b | |||
c3a607f999 | |||
1e8fd966b7 | |||
c654b7c502 | |||
8235fa831f | |||
d9f4f54b7d | |||
28b7e937d1 | |||
86ba6115d4 | |||
d34fe419b7 | |||
60789cdec4 | |||
73d9932081 | |||
3942bebc1e | |||
bae7135b48 | |||
bc9e517842 | |||
f3743bc494 | |||
122d6ddd35 | |||
f45682efbd | |||
4d936588af | |||
bb02f83bc8 | |||
2a5689911f | |||
8b26849517 | |||
6d77251c71 | |||
ccd4414a0f | |||
adc578e32d | |||
c397af4896 | |||
e84778d1eb | |||
e6fe440612 | |||
3c974b87b4 | |||
b6679a65f2 | |||
e1df22ae31 | |||
65c7332618 | |||
0ff5eea9d1 | |||
05388194fc | |||
b03558dc4d | |||
278b5807f1 | |||
13e0c20ab0 | |||
81fe64991c | |||
79b4de04fc | |||
714fb3d539 | |||
70e40c235c | |||
e8877141b7 | |||
546fe7b5b3 | |||
16b9aff47c | |||
7d4c302598 | |||
5db3108815 | |||
7b1e571919 | |||
3b9ec3ce50 | |||
aa63e0884d | |||
7ee43e5a36 | |||
43cc3b8606 | |||
9d9c744490 | |||
63e1624bd7 | |||
cffe7e9566 | |||
b8b647e346 | |||
101a097f02 | |||
5ac6fcad73 | |||
a880f5d401 | |||
4b9fe2cae7 | |||
c188ae0954 | |||
b7323c9859 | |||
32a38f64e8 | |||
a738000745 | |||
7e0bc1e387 | |||
310f16e4da | |||
0cc258a4ef | |||
3f6f93ddc2 | |||
8b6e78800d | |||
23f9090099 | |||
bd534f4412 | |||
9dc40e3277 | |||
94b76b0762 | |||
96bb3fd89a | |||
4a69151d20 | |||
5a25925606 | |||
f0cb77ffc4 | |||
d12719dd59 | |||
178178e5e6 | |||
4d1972d3b5 | |||
2a9d9dc334 | |||
fed80bf081 | |||
8c7f81eac9 | |||
f3ffa919ee | |||
0a3d3d6069 | |||
19b808c4f5 | |||
744efc95a1 | |||
522e9916b6 | |||
b682a9f945 | |||
a8fd516aa0 | |||
1f7f29e059 | |||
0b497e95ed | |||
044d8999a3 | |||
07c406cad9 | |||
822059d078 | |||
6198facc42 | |||
9cee95f210 | |||
9d02a6c163 | |||
06a58f43c0 | |||
e81b5978b0 | |||
4248d86c98 | |||
2b86bd7a9e | |||
4541919fb4 | |||
6b13680315 | |||
31b0c1a3ba | |||
98731903ec | |||
977d7d3b9c | |||
afee4a4251 | |||
caaad4449c | |||
8100b93048 | |||
69ef1b673f | |||
ec0bd19156 | |||
50d452c634 | |||
50f25b6162 | |||
a209d2fe9c | |||
4908fe3bed | |||
b58ab6be64 | |||
f650c1f876 | |||
766d46b70d | |||
5f1de4bf7a | |||
2e0bb772ea | |||
118a1fb76a | |||
bd73853f72 | |||
de4c7a0610 | |||
7bcc485701 | |||
c127a4691c | |||
e81659d2ff | |||
385248044d | |||
731ac41cd7 | |||
8dd95010c7 | |||
abe183c14c | |||
b834001fe7 | |||
65ba48ad3f | |||
646521fc1d | |||
3aa119e99e | |||
a45b6cccbe | |||
cd09a27aa6 | |||
38d02fff26 | |||
e5f672e67e | |||
12f4f7c6b0 | |||
e60da6c006 | |||
c2bbd8b66c | |||
29fc267353 | |||
d437930868 | |||
7ccc81982e | |||
f077527c9a | |||
a2fea22402 | |||
8af2b95d03 | |||
20b264d81f | |||
c79fed1661 | |||
cb820084dd | |||
c6ab972143 | |||
0608d1f4ee | |||
6f9b2cf11e | |||
2a649ecd95 | |||
3972258abc | |||
42a3a97b37 | |||
06db1e4ad6 | |||
9fb7667ea0 | |||
feb5c06e25 | |||
858757aaf3 | |||
8c86d5cd5e | |||
5a27308cde | |||
c144f22de6 | |||
3e95ae127b | |||
ef3d6a5d4e | |||
dc40fe8257 | |||
d8241886b7 | |||
1a31caa3fc | |||
56bef55e92 | |||
04c09f068e | |||
25c4bb1455 | |||
d0d0925e29 | |||
9d1d8fa062 | |||
702a4c0da7 | |||
fe341bb927 | |||
8131988b5e | |||
28a54c6bb4 | |||
ef1ecc8128 | |||
adb26d0543 | |||
4cfb5152f7 | |||
952c1f415b | |||
b5a912e232 | |||
9170f58f3b | |||
9942588184 | |||
a7513e84fc | |||
77a1e8ec8b | |||
0ceb317ac6 | |||
4fda4ed806 | |||
5c01798884 | |||
09c929ce3f | |||
0399fb7d4b | |||
4b9a23e8eb | |||
c60ec1802a | |||
929619f145 | |||
c043cd4dae | |||
9fb6cea799 | |||
7a441616f3 | |||
43693d2b6a | |||
b76e62226b | |||
706791d582 | |||
b6dca7f3cb | |||
43ede25908 | |||
5856fd8ef2 | |||
332adc45fc | |||
a76b1075df | |||
d2d8d96778 | |||
3ae3a2558f | |||
6efaa8d45c | |||
2876d2f43f | |||
1341d50518 | |||
11e56f841a | |||
72dd7ff621 | |||
10425302c7 | |||
ab16ef096a | |||
e632c8ebf5 | |||
9a5ca2055e | |||
307f49f735 | |||
6ca6596309 | |||
1c50c27613 | |||
f0ae093877 | |||
8273612a87 | |||
09d35abc95 | |||
b1769b3cb9 | |||
a1bfe15eb5 | |||
51a98800f8 | |||
c7b55ccb9f | |||
b42ac36ac8 | |||
91c8674acf | |||
a50c7cd589 | |||
3a7ce7d109 | |||
9ef1da6ec2 | |||
cd1885cec4 | |||
27797e7f78 | |||
0de86fc8ea | |||
c0452be980 | |||
963ac3ff32 | |||
f3cc59c78a | |||
56609cbb39 | |||
16a8add6f8 | |||
036a61d198 | |||
9739346c85 | |||
47e6bd5648 | |||
502003e47b | |||
57b16ab4c7 | |||
83480c1ac9 | |||
db108c1fc3 | |||
5a28c4c423 | |||
f1701a751f | |||
ad65847d7d | |||
88ea02a77a | |||
b70fdf1a5f | |||
2195dfc9f8 | |||
27eb5a60f3 | |||
339719568f | |||
fd13022dc4 | |||
d53afd3ae1 | |||
57f9a51a58 | |||
799f3274d9 | |||
a788bee6f9 | |||
0a83c10948 | |||
dfa9c24b87 | |||
7bf8eee605 | |||
664216dc8b | |||
b3f95bf7d1 | |||
f2e783b2c5 | |||
e68b1b6c42 | |||
217ba6c1b7 | |||
74a8b5b78b | |||
81fab83067 | |||
0f23f3f05b | |||
4b3b706369 | |||
595cbe2ac0 | |||
b20391780d | |||
dd8e9e5725 | |||
007a1f0d0d | |||
40a710dad0 | |||
6770329e69 | |||
4f448440d4 | |||
039ffb0cb4 | |||
2f561e5553 | |||
2d314d84cd | |||
3b7f92ae5d | |||
4f7e28ff3c | |||
47cf3085e7 | |||
3d996ff73d | |||
1b7a651a33 | |||
a605da04c1 | |||
cc7195547a | |||
c820769bce | |||
b2d009d01d | |||
fe8abfa887 | |||
2fdb75ad45 | |||
07c0a53316 | |||
e5cf7ff55b | |||
3c1fe8bedd | |||
88aeeb8cd5 | |||
1b323f87d7 | |||
2d74e25058 | |||
98e882720c | |||
93c5a042ee | |||
99d7cadf67 | |||
0e3ecc7a31 | |||
c635a55612 | |||
5a088c5bbc | |||
a27089a110 | |||
35c64b45dd | |||
daf93c5ed0 | |||
56d75ebf44 | |||
5815ebd3a4 | |||
78f925c6a6 | |||
1115e22481 | |||
c2ba0a7d67 | |||
e699ff2e83 | |||
804411bd68 | |||
690100f1ad | |||
95b0ee480e | |||
4be245a26a | |||
a0863fc437 | |||
c9f0005b05 | |||
104786735a | |||
191b3f2c21 | |||
860ae37db5 | |||
9bde925d3d | |||
7630d22b8d | |||
a92be6e319 | |||
0bb3361b73 | |||
b1c1e4a7db | |||
82673cb51f | |||
4ebdb0b9c0 | |||
4c5e4442c1 | |||
01fa9cfc63 | |||
6ff017e875 | |||
8d892f76da | |||
03bbe3de17 | |||
47a1c285c7 | |||
4ccb120922 | |||
423b5f5f39 | |||
feefcdd892 | |||
927a6def1b | |||
d538690bd4 | |||
24d8655188 | |||
917dfefd6c | |||
9378a4fb4d | |||
67c36f0917 | |||
d5083baea0 | |||
6a0f4f6ccb | |||
901ad18a67 | |||
6ac67f80a6 | |||
a88f44ea64 | |||
5c10e0a859 | |||
3c384d37c6 | |||
2592efeee4 | |||
66b2e8bc3f | |||
17dc2d6151 | |||
2218b79143 | |||
17b8a1f3e6 | |||
830a52ee25 | |||
18b38ac526 | |||
8658268847 | |||
8a271ee5ac | |||
cf15ea0a3d | |||
669cdc4bb6 | |||
68d6a92972 | |||
4770da34b3 | |||
9197c4f835 | |||
6aff3466c6 | |||
e98fad3e62 | |||
6628acb59c | |||
d76d953d69 | |||
e9358b5eea | |||
6d7d586f3c | |||
481accd6bd | |||
2a97ddd60a | |||
8441fada07 | |||
a60b735e2d | |||
199d20197e | |||
5fdb8ab7d6 | |||
7c80b0a335 | |||
7eb5a67b3d | |||
37640a925e | |||
c446955b8d | |||
0895abd894 | |||
f7c04aff1e | |||
89ca4aab3d | |||
a4dc0d581a | |||
a889ff3469 | |||
320ef83bfc | |||
8849fad8f9 | |||
9839087306 | |||
d31e28be70 | |||
26c2ae81ea | |||
922932d240 | |||
28fbdc611e | |||
99c7dc8b85 | |||
ef0816bdce | |||
e99ebf6ef0 | |||
ef44f8066b | |||
47d5189812 | |||
d71ef42ded | |||
e37091654f | |||
dcd097d67e | |||
b5261cdbda | |||
dc40522ea7 | |||
de44b2d794 | |||
1117d45f8a |
@ -15,6 +15,7 @@ ltconfig
|
||||
ltmain.sh
|
||||
stamp-h
|
||||
stamp-h.in
|
||||
stamp-h1
|
||||
stamp.h
|
||||
version.h
|
||||
config.h.in
|
||||
@ -28,3 +29,7 @@ COPYING
|
||||
intltool-*
|
||||
metacity.spec
|
||||
autom4te.cache
|
||||
compile
|
||||
depcomp
|
||||
omf.make
|
||||
xmldocs.make
|
||||
|
77
.gitignore
vendored
Normal file
77
.gitignore
vendored
Normal file
@ -0,0 +1,77 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
Makefile.in.in
|
||||
aclocal.m4
|
||||
autom4te.cache
|
||||
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
|
||||
src/50-mutter-navigation.xml
|
||||
src/50-mutter-system.xml
|
||||
src/50-mutter-windows.xml
|
||||
src/mutter-wm.desktop
|
||||
src/mutter.desktop
|
||||
*.o
|
||||
*.a
|
||||
*.lo
|
||||
*.la
|
||||
.libs
|
||||
*.swp
|
||||
*.gir
|
||||
*.typelib
|
||||
tidy-enum-types.[ch]
|
||||
tidy-marshal.[ch]
|
||||
stamp-tidy-enum-types.h
|
||||
stamp-tidy-marshal.h
|
||||
stamp-h1
|
||||
*.gmo
|
||||
*.make
|
||||
*~
|
||||
stamp-it
|
||||
.intltool-merge-cache
|
||||
POTFILES
|
||||
po/*.pot
|
||||
50-metacity-desktop-key.xml
|
||||
50-metacity-key.xml
|
||||
inlinepixbufs.h
|
||||
libmutter.pc
|
||||
mutter
|
||||
mutter-theme-viewer
|
||||
mutter.desktop
|
||||
org.gnome.mutter.gschema.valid
|
||||
org.gnome.mutter.gschema.xml
|
||||
testasyncgetprop
|
||||
testboxes
|
||||
testgradient
|
||||
mutter-grayscale
|
||||
mutter-mag
|
||||
mutter-message
|
||||
mutter-window-demo
|
||||
focus-window
|
||||
test-attached
|
||||
test-gravity
|
||||
test-resizing
|
||||
test-size-hints
|
||||
# We can't say just "wm-tester" here or it will ignore the directory
|
||||
# rather than the binary
|
||||
src/wm-tester/wm-tester
|
||||
INSTALL
|
||||
mkinstalldirs
|
||||
src/mutter-enum-types.[ch]
|
||||
src/stamp-mutter-enum-types.h
|
||||
src/mutter-marshal.[ch]
|
||||
src/stamp-mutter-marshal.h
|
||||
src/mutter-plugins.pc
|
159
COMPLIANCE
Normal file
159
COMPLIANCE
Normal file
@ -0,0 +1,159 @@
|
||||
Metacity Standards Compliance
|
||||
=============================
|
||||
$Id$
|
||||
|
||||
1) Introduction
|
||||
2) EWMH Compliance
|
||||
a. Root Window Properties
|
||||
b. Root Window Messages
|
||||
c. Application Window Properties
|
||||
d. Window Manager Protocols
|
||||
3) ICCCM Compliance
|
||||
|
||||
1) Introduction
|
||||
---------------
|
||||
|
||||
This document details metacity compliance with the relevent standards.
|
||||
The format of this document is as follows:
|
||||
|
||||
[-/+?] Hint Name/Feature Name (Version number)
|
||||
Errata/Comments
|
||||
|
||||
The first character indicates the level of compliance as follows:
|
||||
- none
|
||||
/ partial
|
||||
+ complete
|
||||
? unknown
|
||||
|
||||
The title indicates a feature or a hint in the specification, and the
|
||||
version number indicates the minimum version of the specification
|
||||
supported by metacity. Later versions may be supported if no
|
||||
incompatible changes have been made in the specification.
|
||||
|
||||
2) EWMH Compliance
|
||||
------------------
|
||||
|
||||
The EWMH, or Extended Window Manager Hints is a freedesktop.org-
|
||||
developed standard to support a number of conventions for
|
||||
communication between the window manager and clients. It builds on
|
||||
and extends the ICCCM (See Section 3). A copy of the current EWMH
|
||||
standard is available at http://freedesktop.org/Standards/wm-spec/
|
||||
|
||||
a. Root Window Properties
|
||||
-------------------------
|
||||
|
||||
+ _NET_SUPPORTED (1.3)
|
||||
|
||||
+ _NET_CLIENT_LIST (1.3)
|
||||
|
||||
+ _NET_NUMBER_OF_DESKTOPS (1.3)
|
||||
|
||||
+ _NET_DESKTOP_GEOMETRY (1.3)
|
||||
Metacity does not implement large desktops, so this is kept set to
|
||||
the screen size.
|
||||
|
||||
+ _NET_DESKTOP_VIEWPORT (1.3)
|
||||
Metacity does not implement viewports, so this is a constant (0,0).
|
||||
|
||||
+ _NET_CURRENT_DESKTOP (1.3)
|
||||
|
||||
+ _NET_DESKTOP_NAMES (1.3)
|
||||
|
||||
+ _NET_ACTIVE_WINDOW (1.3)
|
||||
|
||||
+ _NET_WORKAREA (1.3)
|
||||
|
||||
+ _NET_SUPPORTING_WM_CHECK (1.3)
|
||||
|
||||
+ _NET_VIRTUAL_ROOTS (1.3)
|
||||
Metacity does not read or set this property, but it does not use
|
||||
virtual roots to implement virtual desktops, so it complies with the
|
||||
specification.
|
||||
|
||||
+ _NET_DESKTOP_LAYOUT (1.3)
|
||||
|
||||
+ _NET_SHOWING_DESKTOP (1.3)
|
||||
|
||||
b. Root Window Messages
|
||||
-----------------------
|
||||
|
||||
+ _NET_CLOSE_WINDOW (1.3)
|
||||
|
||||
- _NET_MOVERESIZE_WINDOW (1.3)
|
||||
Metacity supports this message, but the specification is unclear on
|
||||
the layout of the detail value, and as such it is #if 0'd in the code
|
||||
|
||||
+ _NET_WM_MOVERESIZE (1.3)
|
||||
|
||||
- _NET_RESTACK_WINDOW (1.3)
|
||||
Metacity will raise or lower windows in response to this message,
|
||||
but the sibling restack modes are not supported, and it is currently
|
||||
#if 0'd in the code.
|
||||
|
||||
+ _NET_REQUEST_FRAME_EXTENTS (1.3)
|
||||
|
||||
c. Application Window Properties
|
||||
--------------------------------
|
||||
|
||||
+ _NET_WM_NAME (1.3)
|
||||
|
||||
+ _NET_WM_VISIBLE_NAME (1.3)
|
||||
Metacity does not set this property, but metacity will never display
|
||||
a name different from _NET_WM_NAME
|
||||
|
||||
+ _NET_WM_ICON_NAME (1.3)
|
||||
|
||||
+ _NET_WM_VISIBLE_ICON_NAME (1.3)
|
||||
Metacity does not set this property, but metacity will never display
|
||||
a name different from _NET_WM_NAME
|
||||
|
||||
+ _NET_WM_DESKTOP (1.3)
|
||||
|
||||
+ _NET_WM_WINDOW_TYPE (1.3)
|
||||
|
||||
/ _NET_WM_STATE (1.3)
|
||||
This property is read and updated according to the specification,
|
||||
but see caveat below.
|
||||
Metacity does not recognize separate vertical and horizontal
|
||||
maximization states. Currently metacity will do a two-dimensional
|
||||
maximization if either property is set.
|
||||
See: http://bugzilla.gnome.org/show_bug.cgi?id=113601
|
||||
Metacity doesn't implement viewports so _NET_WM_STATE_STICKY is
|
||||
unimplemented.
|
||||
|
||||
+ _NET_WM_ALLOWED_ACTIONS (1.3)
|
||||
Metacity keeps this hint up to date. The code is somewhat crufty
|
||||
and should be rewritten, though it is functional.
|
||||
See: http://bugzilla.gnome.org/show_bug.cgi?id=90420
|
||||
|
||||
+ _NET_WM_STRUT (1.3)
|
||||
|
||||
+ _NET_WM_STRUT_PARTIAL (1.3)
|
||||
|
||||
+ _NET_WM_ICON_GEOMETRY (1.3)
|
||||
Metacity uses this property to draw minimize/restore animations
|
||||
|
||||
+ _NET_WM_ICON (1.3)
|
||||
|
||||
+ _NET_WM_PID (1.3)
|
||||
|
||||
+ _NET_WM_HANDLED_ICONS (1.3)
|
||||
Metacity does not read or set this property. However, metacity
|
||||
never manages iconified windows, and so has no need to do so.
|
||||
|
||||
+ _NET_WM_USER_TIME (1.3)
|
||||
Metacity uses this property to prevent applications from stealing
|
||||
focus if supported by the toolkit.
|
||||
|
||||
+ _NET_FRAME_EXTENTS (1.3)
|
||||
If set in response to a _NET_REQUEST_FRAME_EXTENTS message received
|
||||
prior to the window being mapped, this may be an estimate. This is,
|
||||
however, expressly allowed by the specification.
|
||||
|
||||
d. Window Manager Protocols
|
||||
---------------------------
|
||||
+ _NET_WM_PING (1.3)
|
||||
|
||||
3) ICCCM Compliance
|
||||
-------------------
|
||||
TODO
|
394
HACKING
394
HACKING
@ -1,104 +1,298 @@
|
||||
Making a release
|
||||
===
|
||||
Intro...
|
||||
|
||||
To make a release of metacity, do the following:
|
||||
Window managers have a few ways in which they are significantly different
|
||||
from other applications. This file, combined with the code overview in
|
||||
doc/code-overview.txt, should hopefully provide a series of relatively
|
||||
quick pointers (hopefully only a few minutes each) to some of the places
|
||||
one can look to orient themselves and get started. Some of this will be
|
||||
general to window managers on X, much will be specific to Metacity, and
|
||||
there's probably some information that's common to programs in general but
|
||||
is nonetheless useful.
|
||||
|
||||
- check out a fresh copy from CVS
|
||||
|
||||
- increment the version number in configure.in,
|
||||
see the comment above the version for the next fibonacci number
|
||||
|
||||
- update the file NEWS based on the ChangeLog
|
||||
|
||||
- add a ChangeLog entry containing the version number
|
||||
you're releasing ("Released 2.5.4" or something)
|
||||
so people can see which changes were before and after
|
||||
a given release.
|
||||
|
||||
- "make distcheck" (DO NOT just "make dist" - pass the check!)
|
||||
|
||||
- if make distcheck fails, fix it.
|
||||
|
||||
- once distcheck succeeds, "cvs commit"
|
||||
|
||||
- if someone else made changes and the commit fails,
|
||||
you have to "cvs up" and run "make distcheck" again
|
||||
|
||||
- once the commit succeeds, WITHOUT cvs updating, "cvs tag
|
||||
METACITY_X_Y_Z" where
|
||||
X_Y_Z map to version X.Y.Z
|
||||
|
||||
- scp the tarball to master.gnome.org
|
||||
|
||||
- run install-module on master.gnome.org to install the tarball
|
||||
on the ftp site
|
||||
|
||||
Misc stuff
|
||||
===
|
||||
|
||||
Don't commit substantive code in here without asking me,
|
||||
hp@redhat.com. Adding translations, no-brainer typo fixes, etc. is
|
||||
fine.
|
||||
|
||||
The script src/run-metacity.sh is useful to hack on the window manager.
|
||||
It runs metacity in an Xnest. e.g.:
|
||||
CLIENTS=3 ./run-metacity.sh
|
||||
or
|
||||
DEBUG=memprof ./run-metacity.sh
|
||||
or
|
||||
DEBUG_TEST=1 ./run-metacity-sh
|
||||
or whatever.
|
||||
|
||||
The tool metacity-message can be used as follows:
|
||||
metacity-message reload-theme
|
||||
metacity-message restart
|
||||
metacity-message enable-keybindings
|
||||
metacity-message disable-keybindings
|
||||
|
||||
metacity-window-demo is good for trying behavior of various kinds of window
|
||||
without launching a full desktop.
|
||||
|
||||
src/window.c is where all the guts of the window manager live. This is
|
||||
basically the only remotely scary file.
|
||||
|
||||
src/frames.c is the GtkWidget that handles drawing window frames.
|
||||
|
||||
src/core.h defines the interface used by the GTK portion of the window
|
||||
manager to talk to the other portions. There's some cruft in here
|
||||
that's unused, since nearly all window operations have moved out of
|
||||
this file so frameless apps can have window operations.
|
||||
|
||||
src/ui.h defines the interface the plain Xlib portion of the window
|
||||
manager uses to talk to the GTK portion.
|
||||
|
||||
Files that include gdk.h or gtk.h are not supposed to include
|
||||
display.h or window.h or other core files.
|
||||
|
||||
Files in the core (display.[hc], window.[hc]) are not supposed to
|
||||
include gdk.h or gtk.h.
|
||||
|
||||
src/theme.c and src/theme-parser.c have the theme system; this is
|
||||
well-modularized from the rest of the code, since the theme viewer app
|
||||
links to these files in addition to the WM itself.
|
||||
|
||||
When hacking, remember that you can have multiple screens. The code is
|
||||
also written to support multiple displays, but this is useless, since
|
||||
you can just run two copies of the WM. Also, an XKillClient() or
|
||||
shutdown on any display causes Xlib to exit the app, so it would be
|
||||
broken. So the multi-display thing is mostly just for code
|
||||
cleanliness. Multi-screen on the other hand is important for some
|
||||
people.
|
||||
|
||||
Remember that strings stored in X properties are not in UTF-8, and
|
||||
they have to end up in UTF-8 before we try putting them through Pango.
|
||||
|
||||
If you make any X request involving a client window, you have to
|
||||
meta_error_trap_push() around the call; this is not necessary for
|
||||
X requests on the frame windows.
|
||||
|
||||
Remember that not all windows have frames, and window->frame can
|
||||
be NULL.
|
||||
|
||||
The code could use cleanup in a lot of places, feel free to do so.
|
||||
Overview
|
||||
Administrative issues
|
||||
Minimal Building/Testing Environment
|
||||
Relevant standards and X properties
|
||||
Debugging and testing
|
||||
Debugging logs
|
||||
Adding information to the log
|
||||
Valgrind
|
||||
Testing Utilities
|
||||
Technical gotchas to keep in mind
|
||||
Other important reading
|
||||
Extra reading
|
||||
Ideas for tasks to work on
|
||||
|
||||
|
||||
Administrative issues
|
||||
Don't commit substantive code in here without asking hp@redhat.com.
|
||||
Adding translations, no-brainer typo fixes, etc. is fine.
|
||||
|
||||
The code could use cleanup in a lot of places, feel free to do so.
|
||||
|
||||
See http://developer.gnome.org/dotplan/for_maintainers.html for
|
||||
information on how to make a release. The only difference from those
|
||||
instructions is that the minor version number of a Metacity release
|
||||
should always be a number from the Fibonacci sequence.
|
||||
|
||||
Minimal Building/Testing Environment
|
||||
You do not need to _install_ a development version of Metacity to
|
||||
build, run and test it; you can run it from some temporary
|
||||
directory. Also, you do not need to build all of Gnome in order to
|
||||
build a development version of Metacity -- odds are, you may be able
|
||||
to build metacity from CVS without building any other modules.
|
||||
|
||||
As long as you have gtk+ >= 3.0 and GIO >= 2.25.10 with your distro
|
||||
(gtk+ >= 2.6 if you manually revert the change from bug 348633), you
|
||||
should be able to install your distro's development packages
|
||||
(e.g. gtk2-devel, glib-devel, startup-notification-devel on
|
||||
Fedora; also, remember to install the gnome-common package which is
|
||||
needed for building cvs versions of Gnome modules like Metacity) as
|
||||
well as the standard development tools (gcc, autoconf, automake,
|
||||
pkg-config, intltool, and libtool) and be ready to build and test
|
||||
Metacity. Steps to do so:
|
||||
|
||||
$ svn checkout http://svn.gnome.org/svn/metacity/trunk metacity
|
||||
$ cd metacity
|
||||
$ ./autogen.sh --prefix /usr
|
||||
$ make
|
||||
$ ./src/metacity --replace
|
||||
|
||||
Again, note that you do not need to run 'make install'.
|
||||
|
||||
Relevant standards and X properties
|
||||
There are two documents that describe some basics about how window
|
||||
managers should behave: the ICCCM (Inter-Client Communication Conventions
|
||||
Manual) and EWMH (Extended Window Manager Hints). You can find these at
|
||||
the following locations:
|
||||
ICCCM - http://tronche.com/gui/x/icccm/
|
||||
EWMH - :pserver:anoncvs@pdx.freedesktop.org:/cvs
|
||||
The ICCCM is usually available in RPM or DEB format as well. There is
|
||||
actually an online version of the EWMH, but it is almost always woefully
|
||||
out of date. Just get it from cvs with these commands (the backslash
|
||||
means include the stuff from the next line):
|
||||
cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/icccm-extensions login
|
||||
cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/icccm-extensions \
|
||||
checkout wm-spec
|
||||
|
||||
DO NOT GO AND READ THOSE THINGS. THEY ARE REALLY, REALLY BORING.
|
||||
|
||||
If you do, you'll probably end up catching up on your sleep instead of
|
||||
hacking on Metacity. ;-) Instead, just look at the table of contents and
|
||||
glance at a page or two to get an idea of what's in there. Then only
|
||||
refer to it if you see something weird in the code and you don't know
|
||||
what it is but has some funny looking name like you see in one of those
|
||||
two documents.
|
||||
|
||||
You can refer to the COMPLIANCE file for additional information on these
|
||||
specifications and Metacity's compliance therewith.
|
||||
|
||||
One of the major things those documents cover that are useful to learn
|
||||
about immediately are X properties. The right way to learn about those,
|
||||
though, is through hand on experimentation with the xprop command (and
|
||||
then look up things you find from xprop in those two manuals if you're
|
||||
curious enough). First, try running
|
||||
xprop
|
||||
in a terminal and click on one of the windows on your screen. That gives
|
||||
you the x properties for that window. Look through them and get a basic
|
||||
idea of what's there for kicks. Note that you can get rid of some of the
|
||||
verboseness by grepping out the _NET_WM_ICON stuff, i.e.
|
||||
xprop | grep -v _NET_WM_ICON
|
||||
Next, try running
|
||||
xprop -root
|
||||
in a terminal. There's all the properties of the root window (which you
|
||||
can think of as the "main" Xserver window). You can also manually
|
||||
specify individual windows that you want the properties of with
|
||||
xprop -id <id>
|
||||
if you know the id of the window in question. You can get the id of a
|
||||
given window by either running xwininfo, e.g.
|
||||
xwininfo | grep "Window id" | cut -f 4 -d ' '
|
||||
or by looking at the _NET_CLIENT_STACKING property of the root
|
||||
window. Finally, it can also be useful to add "-spy" (without the
|
||||
quotes) to the xprop command to get it to continually monitor that
|
||||
window and report any changes to you.
|
||||
|
||||
Debugging information
|
||||
Trying to run a window manager under a typical debugger, such as gdb,
|
||||
unfortunately just doesn't work very well. So, we have to resort to
|
||||
other methods.
|
||||
|
||||
Debugging logs
|
||||
|
||||
First, note that you can start a new version of metacity to replace the
|
||||
existing one by running
|
||||
metacity --replace
|
||||
(which also comes in handy in the form "./src/metacity --replace" when
|
||||
trying to quickly test a small change while hacking on metacity without
|
||||
doing a full "make install", though I'm going off topic...) This will
|
||||
allow you to see any warnings printed at the terminal. Sometimes it's
|
||||
useful to have these directed to a logfile instead, which you can do by
|
||||
running
|
||||
METACITY_USE_LOGFILE=1 metacity --replace
|
||||
The logfile it uses will be printed in the terminal. Sometimes, it's
|
||||
useful to get more information than just warnings. You can set
|
||||
METACITY_VERBOSE to do that, like so:
|
||||
METACITY_VERBOSE=1 METACITY_USE_LOGFILE=1 metacity --replace
|
||||
(note that METACITY_VERBOSE=1 can be problematic without
|
||||
METACITY_USE_LOGFILE=1; avoid it unless running in from something that
|
||||
won't be managed by the new Metacity--see bug 305091 for more details).
|
||||
There are also other flags, such as METACITY_DEBUG, most of which I
|
||||
haven't tried and don't know what they do. Go to the source code
|
||||
directory and run
|
||||
grep "METACITY_" * | grep getenv
|
||||
to find out what the other ones are.
|
||||
|
||||
Adding information to the log
|
||||
|
||||
Since we can't single step with a debugger, we often have to fall back to
|
||||
the primitive method of getting information we want to know: adding
|
||||
"print" statements. Metacity has a fairly structured way to do this,
|
||||
using the functions meta_warning, meta_topic, and meta_verbose. All
|
||||
three have the same basic format as printf, except that meta_topic also
|
||||
takes a leading enumeration parameter to specify the type of message
|
||||
being shown (makes it easier for grepping in a verbose log). You'll find
|
||||
tons of examples in the source code if you need them; just do a quick
|
||||
grep or look in most any file. Note that meta_topic and meta_verbose
|
||||
messages only appear if verbosity is turned on. I tend to frequently add
|
||||
temporary meta_warning statements (or switch meta_topic or meta_verbose
|
||||
ones to meta_warning ones) and then undo the changes once I've learned
|
||||
the info that I needed.
|
||||
|
||||
There is also a meta_print_backtrace (which again is only active if
|
||||
verbosity is turned on) that can also be useful if you want to learn how
|
||||
a particular line of code gets called. And, of course, there's always
|
||||
g_assert if you want to make sure some section isn't executed (or isn't
|
||||
executed under certain conditions).
|
||||
|
||||
Valgrind
|
||||
|
||||
Valgrind is awesome for finding memory leaks or corruption and
|
||||
uninitialized variables. But I also tend to use it in a non-traditional
|
||||
way as a partial substitute for a normal debugger: it can provide me with
|
||||
a stack trace of where metacity is crashing if I made a change that
|
||||
caused it to do so, which is one of the major uses of debuggers. (And,
|
||||
what makes it cooler than a debugger is that there will also often be
|
||||
warnings pinpointing the cause of the crash from either some kind of
|
||||
simple memory corruption or an uninitialized variable). Sometimes, when
|
||||
I merely want to know what is calling a particular function I'll just
|
||||
throw in an "int i; printf("%d\n", i);" just because valgrind will give
|
||||
me a full stacktrace whenever it sees that uninitialized variable being
|
||||
used (yes, I could use meta_print_backtrace, but that means I have to
|
||||
turn verbosity on).
|
||||
|
||||
To run metacity under valgrind, use options typical for any Gnome
|
||||
program, such as
|
||||
valgrind --log-file=metacity.log --tool=memcheck --num-callers=48 \
|
||||
--leak-check=yes --leak-resolution=high --show-reachable=yes \
|
||||
./src/metacity --replace
|
||||
where, again, the backslashes mean to join all the stuff on the following
|
||||
line with the previous one.
|
||||
|
||||
However, there is a downside. Things run a little bit slowly, and it
|
||||
appears that you'll need about 1.5GB of ram, which unfortunately prevents
|
||||
most people from trying this.
|
||||
|
||||
Testing Utilities
|
||||
|
||||
src/run-metacity.sh
|
||||
The script src/run-metacity.sh is useful to hack on the window manager.
|
||||
It runs metacity in an Xnest. e.g.:
|
||||
CLIENTS=3 ./run-metacity.sh
|
||||
or
|
||||
DEBUG=memprof ./run-metacity.sh
|
||||
or
|
||||
DEBUG_TEST=1 ./run-metacity-sh
|
||||
or whatever.
|
||||
|
||||
metacity-message
|
||||
The tool metacity-message can be used as follows:
|
||||
metacity-message reload-theme
|
||||
metacity-message restart
|
||||
metacity-message enable-keybindings
|
||||
metacity-message disable-keybindings
|
||||
The first of these is useful for testing themes, the second is just
|
||||
another way (besides the --restart flag to metacity itself) of
|
||||
restarting metacity, and the third is useful for testing Metacity when
|
||||
running it under an Xnest (typically, the Metacity under the Xnest
|
||||
wouldn't get keybinding notifications--making keyboard navigation not
|
||||
work--but if you disable the keybindings for the global Metacity then
|
||||
the Metacity under the Xnest can then get those keybinding notifications).
|
||||
|
||||
metacity-window-demo
|
||||
metacity-window-demo is good for trying behavior of various kinds
|
||||
of window without launching a full desktop.
|
||||
|
||||
Technical gotchas to keep in mind
|
||||
Files that include gdk.h or gtk.h are not supposed to include
|
||||
display.h or window.h or other core files. Files in the core
|
||||
(display.[hc], window.[hc]) are not supposed to include gdk.h or
|
||||
gtk.h. Reasons:
|
||||
|
||||
"Basically you don't want GDK most of the time. It adds
|
||||
abstractions that cause problems, because they aren't designed to
|
||||
be used in a WM where we do weird stuff (display grabs, and just
|
||||
being the WM). At best GDK adds inefficiency, at worst it breaks
|
||||
things in weird ways where you have to be a GDK guru to figure
|
||||
them out. Owen also told me that they didn't want to start adding
|
||||
a lot of hacks to GDK to let a WM use it; we both agreed back in
|
||||
the mists of time that metacity would only use it for the "UI"
|
||||
bits as it does.
|
||||
|
||||
Having the split in the source code contains and makes very clear
|
||||
the interface between the WM and GDK/GTK. This keeps people from
|
||||
introducing extra GDK/GTK usage when it isn't needed or
|
||||
appropriate. Also, it speeds up the compilation a bit, though this
|
||||
was perhaps more relevant 5 years ago than it is now.
|
||||
|
||||
There was also a very old worry that the GDK stuff might have to
|
||||
be in a separate process to work right; that turned out to be
|
||||
untrue. Though who knows what issues the CM will introduce."
|
||||
|
||||
Remember that strings stored in X properties are not in UTF-8, and they
|
||||
have to end up in UTF-8 before we try putting them through Pango.
|
||||
|
||||
If you make any X request involving a client window, you have to
|
||||
meta_error_trap_push() around the call; this is not necessary for X
|
||||
requests on the frame windows.
|
||||
|
||||
Remember that not all windows have frames, and window->frame can be NULL.
|
||||
|
||||
Other important reading & where to get started
|
||||
Extra reading
|
||||
|
||||
There are some other important things to read to get oriented as well.
|
||||
These are:
|
||||
http://pobox.com/~hp/features.html
|
||||
rationales.txt
|
||||
doc/code-overview.txt
|
||||
|
||||
It pays to read http://pobox.com/~hp/features.html in order
|
||||
to understand the philosophy of Metacity.
|
||||
|
||||
The rationales.txt file has two things: (1) a list of design choices with
|
||||
links in the form of bugzilla bugs that discuss the issue, and (2) a list
|
||||
outstanding bug categories, each of which is tracked by a particular
|
||||
tracker bug in bugzilla from which you can find several closely related
|
||||
bug reports.
|
||||
|
||||
doc/code-overview.txt provides a fairly good overview of the code,
|
||||
including coverage of the function of the various files, the main
|
||||
structures and their relationships, and places to start looking in the
|
||||
code tailored to general categories of tasks.
|
||||
|
||||
Ideas for tasks to work on
|
||||
|
||||
There are a variety of things you could work on in the code. You may
|
||||
have ideas of your own, but in case you don't, let me provide a list of
|
||||
ideas you could choose from:
|
||||
|
||||
If you're ambitious, there's a list of things Havoc made that he'd really
|
||||
like to see tackled, which you can find at
|
||||
http://log.ometer.com/2004-05.html. Be sure to double check with someone
|
||||
to make sure the item is still relevant if you're interested in one of
|
||||
these. Another place to look for ideas, of course, is bugzilla. One can
|
||||
just do queries and look for things that look fixable.
|
||||
|
||||
However, perhaps the best way of getting ideas of related tasks to work
|
||||
on, is to look at the second half of the rationales.txt file, which tries
|
||||
to group bugs by type.
|
||||
|
8
MAINTAINERS
Normal file
8
MAINTAINERS
Normal file
@ -0,0 +1,8 @@
|
||||
Tomas Frydrych
|
||||
Email: tf linux intel com
|
||||
Userid: tomasf
|
||||
|
||||
Owen Taylor
|
||||
Email: otaylor redhat com
|
||||
Userid: otaylor
|
||||
|
43
METACITY_MAINTAINERS
Normal file
43
METACITY_MAINTAINERS
Normal file
@ -0,0 +1,43 @@
|
||||
Currently active maintainers
|
||||
--------------------------------
|
||||
|
||||
Elijah Newren
|
||||
Email: newren gmail com
|
||||
Userid: newren
|
||||
|
||||
- Usually won't touch the theme bugs (isn't interested) or the
|
||||
compositor (until open source nvidia drivers are up to snuff).
|
||||
Tends to be most interested in libwnck/gtk interactions, focus
|
||||
issues, constraints problems, and raising/stacking, but works on
|
||||
just about anything other than themes and the compositor.
|
||||
|
||||
Thomas Thurman
|
||||
Email: thomas thurman org uk
|
||||
Userid: tthurman
|
||||
|
||||
- Responsible for all theme bugs and the compositor (thank goodness
|
||||
Thomas got involved, eh?). I'm sure he'll replace this sentence
|
||||
with his interests when he reads it. ;-)
|
||||
|
||||
|
||||
Semi-active maintainers
|
||||
--------------------------------
|
||||
|
||||
Havoc Pennington
|
||||
Email: hp redhat com
|
||||
Userid: hp
|
||||
- Original author. Doesn't patch metacity anymore, but is active in
|
||||
answering questions, responding to bugs, providing very helpful
|
||||
suggestions and insight, and even assisting with debugging.
|
||||
|
||||
|
||||
Important historical figureheads
|
||||
--------------------------------
|
||||
|
||||
Rob Adams (readams readams net)
|
||||
- Was the main maintainer of metacity for a while; particular areas
|
||||
of focus included xinerama, placement, and an older version of the
|
||||
constraints code. Still responds to bugs every once in a while.
|
||||
|
||||
Søren Sandmann (sandmann redhat com)
|
||||
- Wrote most of the current compositing manager code + libcm
|
@ -1,5 +1,6 @@
|
||||
|
||||
SUBDIRS=src po doc
|
||||
|
||||
EXTRA_DIST=HACKING rationales.txt \
|
||||
intltool-extract.in intltool-merge.in intltool-update.in
|
||||
EXTRA_DIST = HACKING MAINTAINERS rationales.txt
|
||||
|
||||
DISTCLEANFILES = intltool-extract intltool-merge intltool-update po/stamp-it po/.intltool-merge-cache
|
||||
|
145
README
145
README
@ -1,23 +1,19 @@
|
||||
Metacity is not a meta-City as in an urban center, but rather
|
||||
Meta-ness as in the state of being meta. i.e. metacity : meta as
|
||||
opacity : opaque. Also it may have something to do with the Meta key
|
||||
on UNIX keyboards.
|
||||
The original codebase named "Metacity" is not a meta-City as in an
|
||||
urban center, but rather Meta-ness as in the state of being
|
||||
meta. i.e. metacity : meta as opacity : opaque. Also it may have
|
||||
something to do with the Meta key on UNIX keyboards.
|
||||
|
||||
The first release of Metacity was version 2.3. Metacity has no need for
|
||||
your petty hangups about version numbers.
|
||||
Since then, it has been renamed mutter after a rebase on top of
|
||||
clutter as a compositing manager.
|
||||
|
||||
The stable releases so far are 2.4.x, 2.6.x
|
||||
|
||||
Unstable branches are 2.3.x, 2.5.x
|
||||
|
||||
COMPILING METACITY
|
||||
COMPILING MUTTER
|
||||
===
|
||||
|
||||
You need GTK+ 2.2. For startup notification to work you need
|
||||
libstartup-notification at
|
||||
http://www.freedesktop.org/software/startup-notification/ or on the
|
||||
GNOME ftp site. You also need GConf 1.2 (unless building a funky
|
||||
extra-small embedded metacity with --disable-gconf, see below).
|
||||
GNOME ftp site.
|
||||
You need Clutter 1.0. You need gobject-introspection 0.6.3.
|
||||
|
||||
REPORTING BUGS AND SUBMITTING PATCHES
|
||||
===
|
||||
@ -34,47 +30,11 @@ Feel free to send patches too; Metacity is relatively small and
|
||||
simple, so if you find a bug or want to add a feature it should be
|
||||
pretty easy. Send me mail, or put the patch in bugzilla.
|
||||
|
||||
See the HACKING file for some notes on hacking Metacity.
|
||||
See the HACKING file for some notes on hacking Mutter.
|
||||
|
||||
SHRINKING METACITY
|
||||
MUTTER FEATURES
|
||||
===
|
||||
|
||||
Not that metacity is huge (<400K binary last I checked), but about
|
||||
half of that is in the preferences handling, in static strings that
|
||||
aren't essential, and in the theme engine.
|
||||
|
||||
You can strip about 70K from the metacity binary by compiling with
|
||||
options such as:
|
||||
|
||||
--disable-gconf
|
||||
--disable-sm
|
||||
--disable-verbose
|
||||
--disable-startup-notification
|
||||
|
||||
However the result is no good for desktop use, all prefs have to be
|
||||
hardcoded in the binary, for example. If you wanted to make a really
|
||||
small metacity, here's some additional stuff you might consider
|
||||
implementing:
|
||||
|
||||
- add --disable-themes, which would replace theme.c and theme-parser.c
|
||||
with a hardcoded implementation of the interface in theme.h,
|
||||
should save about 80K. This should be fairly easy.
|
||||
|
||||
- add --disable-gtk, which would implement the interface in ui.h
|
||||
without using GTK. This one is easier than you think because the
|
||||
main part of the window manager doesn't use GTK directly, but is
|
||||
still fairly hard to do. You would probably have to give up some
|
||||
of the features, such as window menus, as menus are pretty complex
|
||||
to implement well. So time may be better spent adding a GTK
|
||||
configure script feature to build GTK with only a small core set of
|
||||
functionality.
|
||||
|
||||
METACITY FEATURES
|
||||
===
|
||||
|
||||
- Boring window manager for the adult in you. Many window managers
|
||||
are like Marshmallow Froot Loops; Metacity is like Cheerios.
|
||||
|
||||
- Uses GTK+ 2.0 for drawing window frames. This means colors, fonts,
|
||||
etc. come from GTK+ theme.
|
||||
|
||||
@ -92,25 +52,24 @@ METACITY FEATURES
|
||||
and should work with KWin, fvwm2, and other EWMH-compliant WMs.)
|
||||
|
||||
- Has a simple theme system and a couple of extra themes come with it.
|
||||
Change themes via gconf-editor or gconftool or GNOME themes control
|
||||
panel:
|
||||
gconftool-2 --type=string --set /apps/metacity/general/theme Crux
|
||||
gconftool-2 --type=string --set /apps/metacity/general/theme Gorilla
|
||||
gconftool-2 --type=string --set /apps/metacity/general/theme Atlanta
|
||||
gconftool-2 --type=string --set /apps/metacity/general/theme Bright
|
||||
Change themes via gsettings:
|
||||
gsettings set org.gnome.desktop.wm.preferences theme Crux
|
||||
gsettings set org.gnome.desktop.wm.preferences theme Gorilla
|
||||
gsettings set org.gnome.desktop.wm.preferences theme Atlanta
|
||||
gsettings set org.gnome.desktop.wm.preferences theme Bright
|
||||
|
||||
See theme-format.txt for docs on the theme format. Use
|
||||
metacity-theme-viewer to preview themes.
|
||||
|
||||
- Change number of workspaces via gconf-editor or gconftool:
|
||||
gconftool-2 --type=int --set /apps/metacity/general/num_workspaces 5
|
||||
- Change number of workspaces via gsettings:
|
||||
gsettings set org.gnome.desktop.wm.preferences num-workspaces 5
|
||||
|
||||
Can also change workspaces from GNOME 2 pager.
|
||||
|
||||
- Change focus mode:
|
||||
gconftool-2 --type=string --set /apps/metacity/general/focus_mode mouse
|
||||
gconftool-2 --type=string --set /apps/metacity/general/focus_mode sloppy
|
||||
gconftool-2 --type=string --set /apps/metacity/general/focus_mode click
|
||||
gsettings set org.gnome.desktop.wm.preferences focus-mode mouse
|
||||
gsettings set org.gnome.desktop.wm.preferences focus-mode sloppy
|
||||
gsettings set org.gnome.desktop.wm.preferences focus-mode click
|
||||
|
||||
- Global keybinding defaults include:
|
||||
|
||||
@ -125,12 +84,9 @@ METACITY FEATURES
|
||||
|
||||
Change keybindings for example:
|
||||
|
||||
unst gconftool-2 --type=string --set /apps/metacity/global_keybindings/switch_to_workspace_1 '<Alt>F1'
|
||||
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-1 '[<Alt>F1]'
|
||||
|
||||
Also try the GNOME keyboard shortcuts control panel, or
|
||||
gconf-editor.
|
||||
|
||||
See metacity.schemas for all available bindings.
|
||||
Also try the GNOME keyboard shortcuts control panel.
|
||||
|
||||
- Window keybindings:
|
||||
|
||||
@ -183,15 +139,14 @@ METACITY FEATURES
|
||||
|
||||
- Session management:
|
||||
|
||||
Metacity connects to the session manager and will set itself up to
|
||||
Mutter connects to the session manager and will set itself up to
|
||||
be respawned. It theoretically restores sizes/positions/workspace
|
||||
for session-aware applications.
|
||||
|
||||
- Metacity implements much of the new window manager spec from
|
||||
freedesktop.org
|
||||
(http://www.freedesktop.org/standards/wm-spec.html), and much of
|
||||
the ICCCM. But then there are parts of each that it doesn't
|
||||
implement, just because I haven't yet.
|
||||
- Mutter implements much of the EWMH window manager specification
|
||||
from freedesktop.org, as well as the older ICCCM. Please refer to
|
||||
the COMPLIANCE file for information on mutter compliance with
|
||||
these standards.
|
||||
|
||||
- Uses Pango to render text, so has cool i18n capabilities.
|
||||
Supports UTF-8 window titles and such.
|
||||
@ -209,7 +164,7 @@ METACITY FEATURES
|
||||
- handles the window manager selection from the ICCCM. Will exit if
|
||||
another WM claims it, and can claim it from another WM if you pass
|
||||
the --replace argument. So if you're running another
|
||||
ICCCM-compliant WM, you can run "metacity --replace" to replace it
|
||||
ICCCM-compliant WM, you can run "mutter --replace" to replace it
|
||||
with Metacity.
|
||||
|
||||
- does basic colormap handling
|
||||
@ -219,7 +174,7 @@ METACITY FEATURES
|
||||
HOW TO ADD EXTERNAL FEATURES
|
||||
===
|
||||
|
||||
You can write a metacity "plugin" such as a pager, window list, icon
|
||||
You can write a mutter "plugin" such as a pager, window list, icon
|
||||
box, task menu, or even things like "window matching" using the
|
||||
Extended Window Manager Hints. See http://www.freedesktop.org for the
|
||||
EWMH specification. An easy-to-use library called "libwnck" is
|
||||
@ -227,10 +182,10 @@ available that uses the EWMH and is specifically designed for writing
|
||||
WM accessories.
|
||||
|
||||
You might be interested in existing accessories such as "Devil's Pie"
|
||||
by Ross Burton, which add features to Metacity (or other
|
||||
by Ross Burton, which add features to Mutter (or other
|
||||
EWMH-compliant WMs).
|
||||
|
||||
METACITY BUGS, NON-FEATURES, AND CAVEATS
|
||||
MUTTER BUGS, NON-FEATURES, AND CAVEATS
|
||||
===
|
||||
|
||||
See bugzilla: http://bugzilla.gnome.org/query.cgi
|
||||
@ -269,26 +224,15 @@ A: If it makes sense to turn on unconditionally, or is genuinely a
|
||||
http://pobox.com/~hp/free-software-ui.html
|
||||
http://pobox.com/~hp/features.html
|
||||
|
||||
Q: Will Metacity be part of GNOME?
|
||||
Q: Will Mutter be part of GNOME?
|
||||
|
||||
A: It is officially part of GNOME as of GNOME 2.2. Prior to that,
|
||||
it was unofficially shipped as the default GNOME WM by several
|
||||
OS vendors.
|
||||
A: It is not officially part of GNOME as of GNOME 2.27. We are
|
||||
hoping to have mutter officially included as of GNOME 2.28.
|
||||
|
||||
Q: Is Metacity a Red Hat project?
|
||||
|
||||
A: Metacity's original creation was in no way funded, endorsed, or
|
||||
encouraged by Red Hat, Inc. - I'm guessing Red Hat would not
|
||||
consider "insufficient number of window managers for Linux" an
|
||||
urgent problem. Just a wild guess though.
|
||||
|
||||
Now that metacity is the default WM however, Red Hat supports some
|
||||
bugfixing and other work.
|
||||
|
||||
Q: Why does Metacity remember the workspace/position of some apps
|
||||
Q: Why does Mutter remember the workspace/position of some apps
|
||||
but not others across logout/login?
|
||||
|
||||
A: Metacity only stores sizes/positions for apps that are session
|
||||
A: Mutter only stores sizes/positions for apps that are session
|
||||
managed. As far as I can determine, there is no way to attempt to
|
||||
remember workspace/position for non-session-aware apps without
|
||||
causing a lot of weird effects.
|
||||
@ -303,7 +247,7 @@ A: Metacity only stores sizes/positions for apps that are session
|
||||
place. And in fact I see a lot of bugs like this in window managers
|
||||
that try to handle non-session-aware apps.
|
||||
|
||||
However, for session-aware apps, Metacity can tell that the
|
||||
However, for session-aware apps, Mutter can tell that the
|
||||
application instance is from the session and thus restore it
|
||||
reliably, assuming the app properly restores the windows it had
|
||||
open on session save.
|
||||
@ -315,8 +259,8 @@ A: Metacity only stores sizes/positions for apps that are session
|
||||
archaic than twm - and you should flame them. ;-)
|
||||
|
||||
Docs on session management:
|
||||
ftp://ftp.x.org/pub/R6.4/xc/doc/hardcopy/SM/xsmp.PS.gz
|
||||
ftp://ftp.x.org:21/pub/R6.4/xc/doc/hardcopy/SM/SMlib.PS.gz
|
||||
http://www.fifi.org/doc/xspecs/xsmp.txt.gz
|
||||
http://www.fifi.org/doc/xspecs/SMlib.txt.gz
|
||||
|
||||
See also the ICCCM section on SM. For GNOME apps, use the
|
||||
GnomeClient object. For a simple example of using libSM directly,
|
||||
@ -370,12 +314,11 @@ A: This one is also in rationales.txt. Because "ouija board" UI, where
|
||||
http://pobox.com/~hp/free-software-ui.html
|
||||
http://pobox.com/~hp/features.html
|
||||
|
||||
Q: Why no wireframe move/resize?
|
||||
Q: Why does wireframe move/resize suck?
|
||||
|
||||
A: It's implemented in a patch that will be merged for GNOME 2.6
|
||||
and is already in some vendor packages.
|
||||
A: You can turn it on with the reduced_resources setting.
|
||||
|
||||
But: Because it has low usability, and is a pain
|
||||
But: it has low usability, and is a pain
|
||||
to implement, and there's no reason opaque move/resize should be a
|
||||
problem on any setup that can run a modern desktop worth a darn to
|
||||
begin with.
|
||||
@ -456,7 +399,7 @@ A: There are quite a few, though many opportunities remain. Sometimes
|
||||
|
||||
- and much more.
|
||||
|
||||
Q: I think metacity sucks.
|
||||
Q: I think mutter sucks.
|
||||
|
||||
A: Feel free to use any WM you like. The reason metacity follows the
|
||||
ICCCM and EWMH specifications is that it makes metacity a modular,
|
||||
|
160
autogen.sh
160
autogen.sh
@ -1,156 +1,22 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
# Run this to generate all the initial makefiles, etc.
|
||||
|
||||
srcdir=`dirname $0`
|
||||
test -z "$srcdir" && srcdir=.
|
||||
|
||||
ORIGDIR=`pwd`
|
||||
cd $srcdir
|
||||
PROJECT=metacity
|
||||
TEST_TYPE=-f
|
||||
FILE=src/display.c
|
||||
PKG_NAME="mutter"
|
||||
REQUIRED_AUTOMAKE_VERSION=1.10
|
||||
|
||||
DIE=0
|
||||
|
||||
AUTOMAKE=automake-1.4
|
||||
ACLOCAL=aclocal-1.4
|
||||
|
||||
($AUTOMAKE --version) < /dev/null > /dev/null 2>&1 || {
|
||||
AUTOMAKE=automake
|
||||
ACLOCAL=aclocal
|
||||
(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
|
||||
}
|
||||
|
||||
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "You must have autoconf installed to compile $PROJECT."
|
||||
echo "Download the appropriate package for your distribution,"
|
||||
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
|
||||
DIE=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
|
||||
}
|
||||
|
||||
($AUTOMAKE --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "You must have automake installed to compile $PROJECT."
|
||||
echo "Get ftp://sourceware.cygnus.com/pub/automake/automake-1.4.tar.gz"
|
||||
echo "(or a newer version if it is available)"
|
||||
DIE=1
|
||||
}
|
||||
|
||||
(grep "^AM_PROG_LIBTOOL" configure.in >/dev/null) && {
|
||||
(libtool --version) < /dev/null > /dev/null 2>&1 || {
|
||||
echo
|
||||
echo "**Error**: You must have \`libtool' installed to compile $PROJECT."
|
||||
echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz"
|
||||
echo "(or a newer version if it is available)"
|
||||
DIE=1
|
||||
}
|
||||
}
|
||||
|
||||
CONFIGURE=configure.in
|
||||
if grep "^AM_[A-Z0-9_]\{1,\}_GETTEXT" "$CONFIGURE" >/dev/null; then
|
||||
if grep "sed.*POTFILES" "$CONFIGURE" >/dev/null; then
|
||||
GETTEXTIZE=""
|
||||
else
|
||||
if grep "^AM_GLIB_GNU_GETTEXT" "$CONFIGURE" >/dev/null; then
|
||||
GETTEXTIZE="glib-gettextize"
|
||||
GETTEXTIZE_URL="ftp://ftp.gtk.org/pub/gtk/v2.0/glib-2.0.0.tar.gz"
|
||||
else
|
||||
GETTEXTIZE="gettextize"
|
||||
GETTEXTIZE_URL="ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz"
|
||||
fi
|
||||
|
||||
$GETTEXTIZE --version < /dev/null > /dev/null 2>&1
|
||||
if test $? -ne 0; then
|
||||
echo
|
||||
echo "**Error**: You must have \`$GETTEXTIZE' installed to compile $PKG_NAME."
|
||||
echo "Get $GETTEXTIZE_URL"
|
||||
echo "(or a newer version if it is available)"
|
||||
DIE=1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$DIE" -eq 1; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
test $TEST_TYPE $FILE || {
|
||||
echo "You must run this script in the top-level $PROJECT directory"
|
||||
exit 1
|
||||
}
|
||||
|
||||
if test -z "$*"; then
|
||||
echo "I am going to run ./configure with no arguments - if you wish "
|
||||
echo "to pass any to it, please specify them on the $0 command line."
|
||||
fi
|
||||
|
||||
case $CC in
|
||||
*xlc | *xlc\ * | *lcc | *lcc\ *) am_opt=--include-deps;;
|
||||
esac
|
||||
|
||||
for coin in .
|
||||
do
|
||||
dr=`dirname $coin`
|
||||
if test -f $dr/NO-AUTO-GEN; then
|
||||
echo skipping $dr -- flagged as no auto-gen
|
||||
else
|
||||
echo processing $dr
|
||||
macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin`
|
||||
( cd $dr
|
||||
aclocalinclude="$ACLOCAL_FLAGS"
|
||||
for k in $macrodirs; do
|
||||
if test -d $k; then
|
||||
aclocalinclude="$aclocalinclude -I $k"
|
||||
##else
|
||||
## echo "**Warning**: No such directory \`$k'. Ignored."
|
||||
fi
|
||||
done
|
||||
if grep "^AM_GLIB_GNU_GETTEXT" configure.in >/dev/null; then
|
||||
if grep "sed.*POTFILES" configure.in >/dev/null; then
|
||||
: do nothing -- we still have an old unmodified configure.in
|
||||
else
|
||||
echo "Creating $dr/aclocal.m4 ..."
|
||||
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
|
||||
echo "Running glib-gettextize... Ignore non-fatal messages."
|
||||
echo "no" | glib-gettextize --force --copy
|
||||
echo "Making $dr/aclocal.m4 writable ..."
|
||||
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
|
||||
fi
|
||||
fi
|
||||
if grep "^AC_PROG_INTLTOOL" configure.in >/dev/null; then
|
||||
echo "Running intltoolize..."
|
||||
intltoolize --force --copy --automake
|
||||
fi
|
||||
if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then
|
||||
echo "Running libtoolize..."
|
||||
libtoolize --force --copy
|
||||
fi
|
||||
|
||||
echo "Running $ACLOCAL $aclocalinclude ..."
|
||||
$ACLOCAL $aclocalinclude
|
||||
|
||||
if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then
|
||||
echo "Running autoheader..."
|
||||
autoheader
|
||||
fi
|
||||
|
||||
echo "Running $AUTOMAKE --gnu $am_opt ..."
|
||||
$AUTOMAKE --add-missing --gnu $am_opt
|
||||
|
||||
echo "Running autoconf ..."
|
||||
autoconf
|
||||
)
|
||||
fi
|
||||
done
|
||||
|
||||
conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c
|
||||
|
||||
cd "$ORIGDIR"
|
||||
|
||||
if test x$NOCONFIGURE = x; then
|
||||
echo Running $srcdir/configure $conf_flags "$@" ...
|
||||
$srcdir/configure $conf_flags "$@" \
|
||||
&& echo Now type \`make\' to compile $PROJECT || exit 1
|
||||
else
|
||||
echo Skipping configure process.
|
||||
fi
|
||||
USE_GNOME2_MACROS=1 USE_COMMON_DOC_BUILD=yes . gnome-autogen.sh
|
||||
|
479
configure.ac
Normal file
479
configure.ac
Normal file
@ -0,0 +1,479 @@
|
||||
AC_PREREQ(2.50)
|
||||
|
||||
m4_define([mutter_major_version], [3])
|
||||
m4_define([mutter_minor_version], [7])
|
||||
m4_define([mutter_micro_version], [4])
|
||||
|
||||
m4_define([mutter_version],
|
||||
[mutter_major_version.mutter_minor_version.mutter_micro_version])
|
||||
|
||||
m4_define([mutter_plugin_api_version], [3])
|
||||
|
||||
AC_INIT([mutter], [mutter_version],
|
||||
[http://bugzilla.gnome.org/enter_bug.cgi?product=mutter])
|
||||
|
||||
AC_CONFIG_SRCDIR(src/core/display.c)
|
||||
AC_CONFIG_HEADERS(config.h)
|
||||
|
||||
AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz tar-ustar])
|
||||
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],)
|
||||
AM_MAINTAINER_MODE([enable])
|
||||
|
||||
MUTTER_MAJOR_VERSION=mutter_major_version
|
||||
MUTTER_MINOR_VERSION=mutter_minor_version
|
||||
MUTTER_MICRO_VERSION=mutter_micro_version
|
||||
MUTTER_PLUGIN_API_VERSION=mutter_plugin_api_version
|
||||
AC_SUBST(MUTTER_MAJOR_VERSION)
|
||||
AC_SUBST(MUTTER_MINOR_VERSION)
|
||||
AC_SUBST(MUTTER_MICRO_VERSION)
|
||||
AC_SUBST(MUTTER_PLUGIN_API_VERSION)
|
||||
|
||||
MUTTER_PLUGIN_DIR="$libdir/$PACKAGE/plugins"
|
||||
AC_SUBST(MUTTER_PLUGIN_DIR)
|
||||
|
||||
# Honor aclocal flags
|
||||
AC_SUBST(ACLOCAL_AMFLAGS, "\${ACLOCAL_FLAGS}")
|
||||
|
||||
GETTEXT_PACKAGE=mutter
|
||||
AC_SUBST(GETTEXT_PACKAGE)
|
||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Name of default gettext domain])
|
||||
|
||||
IT_PROG_INTLTOOL([0.34.90])
|
||||
AC_PROG_CC
|
||||
AC_ISC_POSIX
|
||||
AC_HEADER_STDC
|
||||
AC_LIBTOOL_WIN32_DLL
|
||||
AM_PROG_LIBTOOL
|
||||
|
||||
# Sets GLIB_GENMARSHAL and GLIB_MKENUMS
|
||||
AM_PATH_GLIB_2_0()
|
||||
|
||||
#### Integer sizes
|
||||
|
||||
AC_CHECK_SIZEOF(char)
|
||||
AC_CHECK_SIZEOF(short)
|
||||
AC_CHECK_SIZEOF(long)
|
||||
AC_CHECK_SIZEOF(int)
|
||||
AC_CHECK_SIZEOF(void *)
|
||||
AC_CHECK_SIZEOF(long long)
|
||||
AC_CHECK_SIZEOF(__int64)
|
||||
|
||||
## byte order
|
||||
AC_C_BIGENDIAN
|
||||
|
||||
CANBERRA_GTK=libcanberra-gtk3
|
||||
CANBERRA_GTK_VERSION=0.26
|
||||
|
||||
CLUTTER_PACKAGE=clutter-1.0
|
||||
|
||||
MUTTER_PC_MODULES="
|
||||
gtk+-3.0 >= 3.3.7
|
||||
gio-2.0 >= 2.25.10
|
||||
pango >= 1.2.0
|
||||
cairo >= 1.10.0
|
||||
gsettings-desktop-schemas >= 3.3.0
|
||||
xcomposite >= 0.2 xfixes xrender xdamage xi >= 1.6.0
|
||||
$CLUTTER_PACKAGE >= 1.13.2
|
||||
cogl-1.0 >= 1.9.6
|
||||
"
|
||||
|
||||
GLIB_GSETTINGS
|
||||
|
||||
AC_ARG_ENABLE(verbose-mode,
|
||||
AC_HELP_STRING([--disable-verbose-mode],
|
||||
[disable mutter's ability to do verbose logging, for embedded/size-sensitive custom builds]),,
|
||||
enable_verbose_mode=yes)
|
||||
|
||||
if test x$enable_verbose_mode = xyes; then
|
||||
AC_DEFINE(WITH_VERBOSE_MODE,1,[Build with verbose mode support])
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(sm,
|
||||
AC_HELP_STRING([--disable-sm],
|
||||
[disable mutter's session management support, for embedded/size-sensitive custom non-GNOME builds]),,
|
||||
enable_sm=auto)
|
||||
|
||||
AC_ARG_ENABLE(startup-notification,
|
||||
AC_HELP_STRING([--disable-startup-notification],
|
||||
[disable mutter's startup notification support, for embedded/size-sensitive custom non-GNOME builds]),,
|
||||
enable_startup_notification=auto)
|
||||
|
||||
AC_ARG_WITH(libcanberra,
|
||||
AC_HELP_STRING([--without-libcanberra],
|
||||
[disable the use of libcanberra for playing sounds]),,
|
||||
with_libcanberra=auto)
|
||||
|
||||
AC_ARG_ENABLE(xsync,
|
||||
AC_HELP_STRING([--disable-xsync],
|
||||
[disable mutter's use of the XSync extension]),,
|
||||
enable_xsync=auto)
|
||||
|
||||
AC_ARG_ENABLE(shape,
|
||||
AC_HELP_STRING([--disable-shape],
|
||||
[disable mutter's use of the shaped window extension]),,
|
||||
enable_shape=auto)
|
||||
|
||||
AM_GLIB_GNU_GETTEXT
|
||||
|
||||
## here we get the flags we'll actually use
|
||||
# GRegex requires Glib-2.14.0
|
||||
PKG_CHECK_MODULES(ALL, glib-2.0 >= 2.14.0)
|
||||
# gtk_window_set_icon_name requires gtk2+-2.6.0
|
||||
PKG_CHECK_MODULES(MUTTER_MESSAGE, gtk+-3.0)
|
||||
PKG_CHECK_MODULES(MUTTER_WINDOW_DEMO, gtk+-3.0)
|
||||
|
||||
# Unconditionally use this dir to avoid a circular dep with gnomecc
|
||||
GNOME_KEYBINDINGS_KEYSDIR="${datadir}/gnome-control-center/keybindings"
|
||||
AC_SUBST(GNOME_KEYBINDINGS_KEYSDIR)
|
||||
|
||||
STARTUP_NOTIFICATION_VERSION=0.7
|
||||
AC_MSG_CHECKING([Startup notification library >= $STARTUP_NOTIFICATION_VERSION])
|
||||
if $PKG_CONFIG --atleast-version $STARTUP_NOTIFICATION_VERSION libstartup-notification-1.0; then
|
||||
have_startup_notification=yes
|
||||
else
|
||||
have_startup_notification=no
|
||||
fi
|
||||
AC_MSG_RESULT($have_startup_notification)
|
||||
|
||||
if test x$enable_startup_notification = xyes; then
|
||||
have_startup_notification=yes
|
||||
echo "startup-notification support forced on"
|
||||
elif test x$enable_startup_notification = xauto; then
|
||||
true
|
||||
else
|
||||
have_startup_notification=no
|
||||
fi
|
||||
|
||||
if test x$have_startup_notification = xyes; then
|
||||
echo "Building with libstartup-notification"
|
||||
MUTTER_PC_MODULES="$MUTTER_PC_MODULES libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION"
|
||||
AC_DEFINE(HAVE_STARTUP_NOTIFICATION, , [Building with startup notification support])
|
||||
else
|
||||
echo "Building without libstartup-notification"
|
||||
fi
|
||||
|
||||
have_libcanberra=no
|
||||
AC_MSG_CHECKING([libcanberra-gtk])
|
||||
if test x$with_libcanberra = xno ; then
|
||||
AC_MSG_RESULT([disabled])
|
||||
else
|
||||
if $PKG_CONFIG --exists $CANBERRA_GTK '>=' $CANBERRA_GTK_VERSION; then
|
||||
have_libcanberra=yes
|
||||
AC_MSG_RESULT(yes)
|
||||
MUTTER_PC_MODULES="$MUTTER_PC_MODULES $CANBERRA_GTK"
|
||||
AC_DEFINE([HAVE_LIBCANBERRA], 1, [Building with libcanberra for playing sounds])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
if test x$with_libcanberra = xyes ; then
|
||||
AC_MSG_ERROR([libcanberra forced and libcanberra-gtk was not found])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
INTROSPECTION_VERSION=0.9.5
|
||||
GOBJECT_INTROSPECTION_CHECK([$INTROSPECTION_VERSION])
|
||||
|
||||
if test x$found_introspection != xno; then
|
||||
AC_DEFINE(HAVE_INTROSPECTION, 1, [Define if GObject introspection is available])
|
||||
MUTTER_PC_MODULES="$MUTTER_PC_MODULES gobject-introspection-1.0"
|
||||
# Since we don't make any guarantees about stability and we don't support
|
||||
# parallel install, there's no real reason to change directories, filenames,
|
||||
# etc. as we change the Mutter tarball version. Note that this must match
|
||||
# api_version in src/Makefile.am
|
||||
META_GIR=Meta_3_0_gir
|
||||
# META_GIR=[Meta_]mutter_major_version[_]mutter_minor_version[_gir]
|
||||
AC_SUBST(META_GIR)
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([Xcursor])
|
||||
if $PKG_CONFIG xcursor; then
|
||||
have_xcursor=yes
|
||||
else
|
||||
have_xcursor=no
|
||||
fi
|
||||
AC_MSG_RESULT($have_xcursor)
|
||||
|
||||
if test x$have_xcursor = xyes; then
|
||||
echo "Building with Xcursor"
|
||||
MUTTER_PC_MODULES="$MUTTER_PC_MODULES xcursor"
|
||||
AC_DEFINE(HAVE_XCURSOR, , [Building with Xcursor support])
|
||||
fi
|
||||
|
||||
PKG_CHECK_MODULES(MUTTER, $MUTTER_PC_MODULES)
|
||||
|
||||
# This is used for plugins
|
||||
AC_SUBST(CLUTTER_PACKAGE)
|
||||
PKG_CHECK_MODULES(CLUTTER, $CLUTTER_PACKAGE)
|
||||
|
||||
AC_PATH_XTRA
|
||||
|
||||
ALL_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
|
||||
|
||||
# Check for Xinerama extension - we only support the "XFree86" style,
|
||||
# and not the older Solaris-only version; recent Solaris supports the
|
||||
# XFree86 style.
|
||||
mutter_save_cppflags="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
|
||||
|
||||
have_xinerama=yes
|
||||
AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
|
||||
[AC_CHECK_HEADER(X11/extensions/Xinerama.h,
|
||||
[X_EXTRA_LIBS="-lXinerama $X_EXTRA_LIBS"
|
||||
if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then
|
||||
X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS"
|
||||
fi],
|
||||
have_xinerama=no,
|
||||
[#include <X11/Xlib.h>])],
|
||||
have_xinerama=no, -lXext $ALL_X_LIBS)
|
||||
AC_MSG_CHECKING(for Xinerama support)
|
||||
AC_MSG_RESULT($have_xinerama)
|
||||
|
||||
CPPFLAGS="$mutter_save_cppflags"
|
||||
|
||||
if test x$have_xinerama = xno; then
|
||||
AC_MSG_ERROR([Xinerama extension was not found])
|
||||
fi
|
||||
|
||||
SHAPE_LIBS=
|
||||
found_shape=no
|
||||
AC_CHECK_LIB(Xext, XShapeQueryExtension,
|
||||
[AC_CHECK_HEADER(X11/extensions/shape.h,
|
||||
SHAPE_LIBS=-lXext found_shape=yes)],
|
||||
, $ALL_X_LIBS)
|
||||
|
||||
if test x$enable_shape = xno; then
|
||||
found_shape=no
|
||||
fi
|
||||
|
||||
if test x$enable_shape = xyes; then
|
||||
if test "$found_shape" = "no"; then
|
||||
AC_MSG_ERROR([--enable-shape forced and Shape not found])
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$found_shape" = "xyes"; then
|
||||
AC_DEFINE(HAVE_SHAPE, , [Have the shape extension library])
|
||||
fi
|
||||
|
||||
found_xkb=no
|
||||
AC_CHECK_LIB(X11, XkbQueryExtension,
|
||||
[AC_CHECK_HEADER(X11/XKBlib.h,
|
||||
found_xkb=yes)],
|
||||
, $ALL_X_LIBS)
|
||||
|
||||
if test "x$found_xkb" = "xyes"; then
|
||||
AC_DEFINE(HAVE_XKB, , [Have keyboard extension library])
|
||||
fi
|
||||
|
||||
|
||||
RANDR_LIBS=
|
||||
found_randr=no
|
||||
AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
|
||||
[AC_CHECK_HEADER(X11/extensions/Xrandr.h,
|
||||
RANDR_LIBS=-lXrandr found_randr=yes,,
|
||||
[#include <X11/Xlib.h>])],
|
||||
, -lXrender -lXext $ALL_X_LIBS)
|
||||
|
||||
if test "x$found_randr" = "xyes"; then
|
||||
AC_DEFINE(HAVE_RANDR, , [Have the Xrandr extension library])
|
||||
fi
|
||||
|
||||
XSYNC_LIBS=
|
||||
found_xsync=no
|
||||
AC_CHECK_LIB(Xext, XSyncQueryExtension,
|
||||
[AC_CHECK_HEADER(X11/extensions/sync.h,
|
||||
found_xsync=yes,,
|
||||
[#include <X11/Xlib.h>])],
|
||||
, $ALL_X_LIBS)
|
||||
|
||||
if test x$enable_xsync = xno; then
|
||||
found_xsync=no
|
||||
fi
|
||||
|
||||
if test x$enable_xsync = xyes; then
|
||||
if test "$found_xsync" = "no"; then
|
||||
AC_MSG_ERROR([--enable-xsync forced and XSync not found])
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$found_xsync" = "xyes"; then
|
||||
XSYNC_LIBS=-lXext
|
||||
AC_DEFINE(HAVE_XSYNC, , [Have the Xsync extension library])
|
||||
fi
|
||||
|
||||
MUTTER_LIBS="$MUTTER_LIBS $XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm"
|
||||
MUTTER_MESSAGE_LIBS="$MUTTER_MESSAGE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
|
||||
MUTTER_WINDOW_DEMO_LIBS="$MUTTER_WINDOW_DEMO_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lm"
|
||||
MUTTER_PROPS_LIBS="$MUTTER_PROPS_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
|
||||
|
||||
found_sm=no
|
||||
case "$MUTTER_LIBS" in
|
||||
*-lSM*)
|
||||
found_sm=yes
|
||||
;;
|
||||
*)
|
||||
AC_CHECK_LIB(SM, SmcSaveYourselfDone,
|
||||
[AC_CHECK_HEADERS(X11/SM/SMlib.h,
|
||||
MUTTER_LIBS="-lSM -lICE $MUTTER_LIBS" found_sm=yes)],
|
||||
, $MUTTER_LIBS)
|
||||
;;
|
||||
esac
|
||||
|
||||
if test x$enable_sm = xno; then
|
||||
found_sm=no
|
||||
fi
|
||||
|
||||
if test x$enable_sm = xyes; then
|
||||
if test "$found_sm" = "no"; then
|
||||
AC_MSG_ERROR([--enable-sm forced and -lSM not found])
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$found_sm" = "yes"; then
|
||||
AC_DEFINE(HAVE_SM, , [Building with SM support])
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(HAVE_SM, test "$found_sm" = "yes")
|
||||
|
||||
HOST_ALIAS=$host_alias
|
||||
AC_SUBST(HOST_ALIAS)
|
||||
|
||||
AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
|
||||
|
||||
if test x"$GDK_PIXBUF_CSOURCE" = xno; then
|
||||
AC_MSG_ERROR([gdk-pixbuf-csource executable not found in your path - should be installed with GTK])
|
||||
fi
|
||||
|
||||
AC_SUBST(GDK_PIXBUF_CSOURCE)
|
||||
|
||||
AC_PATH_PROG(ZENITY, zenity, no)
|
||||
if test x"$ZENITY" = xno; then
|
||||
AC_MSG_ERROR([zenity not found in your path - needed for dialogs])
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(debug,
|
||||
[ --enable-debug enable debugging],,
|
||||
enable_debug=no)
|
||||
if test "x$enable_debug" = "xyes"; then
|
||||
CFLAGS="$CFLAGS -g -O"
|
||||
fi
|
||||
|
||||
#### Warnings (last since -Werror can disturb other tests)
|
||||
|
||||
# Stay command-line compatible with the gnome-common configure option. Here
|
||||
# minimum/yes/maximum are the same, however.
|
||||
AC_ARG_ENABLE(compile_warnings,
|
||||
AS_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@],[Turn on compiler warnings]),,
|
||||
enable_compile_warnings=error)
|
||||
|
||||
changequote(,)dnl
|
||||
if test "$enable_compile_warnings" != no ; then
|
||||
if test "x$GCC" = "xyes"; then
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Wall[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Wall" ;;
|
||||
esac
|
||||
|
||||
# case " $CFLAGS " in
|
||||
# *[\ \ ]-Wshadow[\ \ ]*) ;;
|
||||
# *) CFLAGS="$CFLAGS -Wshadow" ;;
|
||||
# esac
|
||||
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Wchar-subscripts[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Wchar-subscripts" ;;
|
||||
esac
|
||||
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Wmissing-declarations[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Wmissing-declarations" ;;
|
||||
esac
|
||||
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Wmissing-prototypes[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Wmissing-prototypes" ;;
|
||||
esac
|
||||
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Wnested-externs[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Wnested-externs" ;;
|
||||
esac
|
||||
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Wpointer-arith[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Wpointer-arith" ;;
|
||||
esac
|
||||
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Wcast-align[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Wcast-align" ;;
|
||||
esac
|
||||
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Wsign-compare[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Wsign-compare" ;;
|
||||
esac
|
||||
|
||||
if test "$enable_compile_warnings" = error; then
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Werror[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Werror -Wno-error=deprecated-declarations" ;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
changequote([,])dnl
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
doc/Makefile
|
||||
doc/man/Makefile
|
||||
src/Makefile
|
||||
src/wm-tester/Makefile
|
||||
src/libmutter.pc
|
||||
src/mutter-plugins.pc
|
||||
src/tools/Makefile
|
||||
src/compositor/plugins/Makefile
|
||||
po/Makefile.in
|
||||
])
|
||||
|
||||
AC_OUTPUT
|
||||
|
||||
if test x$enable_verbose_mode = xno; then
|
||||
echo "*** WARNING WARNING WARNING WARNING WARNING"
|
||||
echo "*** Building without verbose mode"
|
||||
echo "*** This means there's no way to debug mutter problems."
|
||||
echo "*** Please build normal desktop versions of mutter"
|
||||
echo "*** with verbose mode enabled so users can use it when they report bugs."
|
||||
fi
|
||||
|
||||
dnl ==========================================================================
|
||||
echo "
|
||||
mutter-$VERSION
|
||||
|
||||
prefix: ${prefix}
|
||||
source code location: ${srcdir}
|
||||
compiler: ${CC}
|
||||
|
||||
Startup notification: ${have_startup_notification}
|
||||
libcanberra: ${have_libcanberra}
|
||||
Introspection: ${found_introspection}
|
||||
Session management: ${found_sm}
|
||||
Shape extension: ${found_shape}
|
||||
Xsync: ${found_xsync}
|
||||
Xcursor: ${have_xcursor}
|
||||
"
|
||||
|
||||
|
||||
MUTTER_MINOR_VERSION=mutter_minor_version
|
||||
if expr $MUTTER_MINOR_VERSION % 2 > /dev/null ; then
|
||||
stable_version=`expr $MUTTER_MINOR_VERSION - 1`
|
||||
echo "This is the UNSTABLE branch of mutter"
|
||||
echo -n "Use 3.$stable_version.x for stable "
|
||||
echo "(gnome-3-$stable_version branch in git)"
|
||||
else
|
||||
echo "This is the stable branch of mutter"
|
||||
fi
|
393
configure.in
393
configure.in
@ -1,393 +0,0 @@
|
||||
AC_PREREQ(2.50)
|
||||
AC_INIT(src/display.c)
|
||||
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
|
||||
# 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987
|
||||
# releases on a branch add a 4th version like 2.4.21.1
|
||||
AM_INIT_AUTOMAKE(metacity, 2.6.1)
|
||||
|
||||
# Honor aclocal flags
|
||||
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
|
||||
|
||||
GETTEXT_PACKAGE=metacity
|
||||
AC_SUBST(GETTEXT_PACKAGE)
|
||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Name of default gettext domain])
|
||||
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
AC_PROG_INTLTOOL([0.21])
|
||||
AC_PROG_CC
|
||||
AC_ISC_POSIX
|
||||
AC_HEADER_STDC
|
||||
AC_LIBTOOL_WIN32_DLL
|
||||
AM_PROG_LIBTOOL
|
||||
|
||||
changequote(,)dnl
|
||||
if test "x$GCC" = "xyes"; then
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Wall[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Wall" ;;
|
||||
esac
|
||||
|
||||
# case " $CFLAGS " in
|
||||
# *[\ \ ]-Wshadow[\ \ ]*) ;;
|
||||
# *) CFLAGS="$CFLAGS -Wshadow" ;;
|
||||
# esac
|
||||
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Wchar-subscripts[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Wchar-subscripts" ;;
|
||||
esac
|
||||
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Wmissing-declarations[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Wmissing-declarations" ;;
|
||||
esac
|
||||
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Wmissing-prototypes[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Wmissing-prototypes" ;;
|
||||
esac
|
||||
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Wnested-externs[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Wnested-externs" ;;
|
||||
esac
|
||||
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Wpointer-arith[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Wpointer-arith" ;;
|
||||
esac
|
||||
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Wcast-align[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Wcast-align" ;;
|
||||
esac
|
||||
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-Wsign-compare[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -Wsign-compare" ;;
|
||||
esac
|
||||
|
||||
if test "x$enable_ansi" = "xyes"; then
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-ansi[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -ansi" ;;
|
||||
esac
|
||||
|
||||
case " $CFLAGS " in
|
||||
*[\ \ ]-pedantic[\ \ ]*) ;;
|
||||
*) CFLAGS="$CFLAGS -pedantic" ;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
changequote([,])dnl
|
||||
|
||||
METACITY_PC_MODULES='gtk+-2.0 >= 2.2.0 pango >= 1.2.0'
|
||||
|
||||
AC_ARG_ENABLE(config-dialog, [ --enable-config-dialog enable the config dialog that you need with GNOME 2.0 (obsolete with GNOME 2.2)],,enable_config_dialog=no)
|
||||
|
||||
AM_CONDITIONAL(BUILD_CONFIG_DIALOG, test x$enable_config_dialog = xyes)
|
||||
if test x$enable_config_dialog = xyes; then
|
||||
AC_DEFINE(BUILD_CONFIG_DIALOG,1,[Build configuration dialog])
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(gconf, [ --disable-gconf disable gconf usage, for embedded/size-sensitive non-GNOME builds],,enable_gconf=yes)
|
||||
|
||||
if test x$enable_gconf = xyes; then
|
||||
AC_DEFINE(HAVE_GCONF,1,[Build with gconf support])
|
||||
METACITY_PC_MODULES="$METACITY_PC_MODULES gconf-2.0 >= 1.2.0"
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(verbose-mode, [ --disable-verbose disable metacity's ability to do verbose logging, for embedded/size-sensitive custom builds],,enable_verbose_mode=yes)
|
||||
|
||||
if test x$enable_verbose_mode = xyes; then
|
||||
AC_DEFINE(WITH_VERBOSE_MODE,1,[Build with verbose mode support])
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(sm, [ --disable-sm disable metacity's session management support, for embedded/size-sensitive custom non-GNOME builds],,enable_sm=auto)
|
||||
|
||||
AC_ARG_ENABLE(startup-notification, [ --disable-startup-notification disable metacity's startup notification support, for embedded/size-sensitive custom non-GNOME builds],,enable_startup_notification=auto)
|
||||
|
||||
AC_ARG_ENABLE(xsync, [ --disable-xsync disable metacity's use of the XSync extension],,enable_xsync=auto)
|
||||
|
||||
AC_ARG_ENABLE(shape, [ --disable-shape disable metacity's use of the shaped window extension],,enable_shape=auto)
|
||||
|
||||
## try definining HAVE_BACKTRACE
|
||||
AC_CHECK_HEADERS(execinfo.h, [AC_CHECK_FUNCS(backtrace)])
|
||||
|
||||
ALL_LINGUAS="am az be bg ca cs cy da de el en_GB es fa fi fr ga gl he hi hu id is it ja ko lv mk ml mn ms nl no pl pt pt_BR ro ru sl sk sq sr sr@Latn sv tr uk vi wa zh_CN zh_TW"
|
||||
AM_GLIB_GNU_GETTEXT
|
||||
|
||||
## here we get the flags we'll actually use
|
||||
PKG_CHECK_MODULES(METACITY_MESSAGE, gtk+-2.0 >= 2.2.0)
|
||||
PKG_CHECK_MODULES(METACITY_WINDOW_DEMO, gtk+-2.0 >= 2.2.0)
|
||||
|
||||
if test x$enable_config_dialog = xyes; then
|
||||
PKG_CHECK_MODULES(METACITY_PROPS, gtk+-2.0 >= 2.2.0 gconf-2.0 >= 1.1.9 libglade-2.0)
|
||||
fi
|
||||
|
||||
if $PKG_CONFIG --atleast-version 1.2.0 pangoxft; then
|
||||
echo "pangoxft found"
|
||||
else
|
||||
AC_MSG_ERROR("Pango 1.2.0 or greater based on Xft2 is required")
|
||||
fi
|
||||
|
||||
STARTUP_NOTIFICATION_VERSION=0.4
|
||||
AC_MSG_CHECKING([Startup notification library >= $STARTUP_NOTIFICATION_VERSION])
|
||||
if $PKG_CONFIG --atleast-version $STARTUP_NOTIFICATION_VERSION libstartup-notification-1.0; then
|
||||
have_startup_notification=yes
|
||||
else
|
||||
have_startup_notification=no
|
||||
fi
|
||||
AC_MSG_RESULT($have_startup_notification)
|
||||
|
||||
if test x$enable_startup_notification = xyes; then
|
||||
have_startup_notification=yes
|
||||
echo "startup-notification support forced on"
|
||||
elif test x$enable_startup_notification = xauto; then
|
||||
true
|
||||
else
|
||||
have_startup_notification=no
|
||||
fi
|
||||
|
||||
if test x$have_startup_notification = xyes; then
|
||||
echo "Building with libstartup-notification"
|
||||
METACITY_PC_MODULES="$METACITY_PC_MODULES libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION"
|
||||
AC_DEFINE(HAVE_STARTUP_NOTIFICATION, , [Building with startup notification support])
|
||||
else
|
||||
echo "Building without libstartup-notification"
|
||||
fi
|
||||
|
||||
PKG_CHECK_MODULES(METACITY, $METACITY_PC_MODULES)
|
||||
|
||||
AC_PATH_XTRA
|
||||
|
||||
ALL_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
|
||||
|
||||
# Check for Xinerama extension (Solaris impl or Xfree impl)
|
||||
metacity_save_cppflags="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
|
||||
|
||||
use_solaris_xinerama=no
|
||||
use_xfree_xinerama=no
|
||||
case "$host" in
|
||||
*-*-solaris*)
|
||||
# Check for solaris
|
||||
use_solaris_xinerama=yes
|
||||
AC_CHECK_LIB(Xext, XineramaGetInfo,
|
||||
use_solaris_xinerama=yes, use_solaris_xinerama=no,
|
||||
$ALL_X_LIBS)
|
||||
if test "x$use_solaris_xinerama" = "xyes"; then
|
||||
AC_CHECK_HEADER(X11/extensions/xinerama.h,
|
||||
if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then
|
||||
X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS"
|
||||
fi
|
||||
AC_DEFINE(HAVE_SOLARIS_XINERAMA, , [Have Solaris-style Xinerama])
|
||||
AC_DEFINE(HAVE_XINERAMA, , [Have some version of Xinerama]),
|
||||
use_solaris_xinerama=no,
|
||||
[#include <X11/Xlib.h>])
|
||||
fi
|
||||
AC_MSG_CHECKING(for Xinerama support on Solaris)
|
||||
AC_MSG_RESULT($use_solaris_xinerama);
|
||||
;;
|
||||
*)
|
||||
# Check for XFree
|
||||
use_xfree_xinerama=yes
|
||||
AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
|
||||
[AC_CHECK_HEADER(X11/extensions/Xinerama.h,
|
||||
X_EXTRA_LIBS="-lXinerama $X_EXTRA_LIBS"
|
||||
if test -z "`echo $ALL_X_LIBS | grep "\-lXext" 2> /dev/null`"; then
|
||||
X_EXTRA_LIBS="-lXext $X_EXTRA_LIBS"
|
||||
fi
|
||||
AC_DEFINE(HAVE_XFREE_XINERAMA, , [Have XFree86-style Xinerama])
|
||||
AC_DEFINE(HAVE_XINERAMA,, [Have some version of Xinerama]),
|
||||
use_xfree_xinerama=no,
|
||||
[#include <X11/Xlib.h>])],
|
||||
use_xfree_xinerama=no, -lXext $ALL_X_LIBS)
|
||||
AC_MSG_CHECKING(for Xinerama support on XFree86)
|
||||
AC_MSG_RESULT($use_xfree_xinerama);
|
||||
;;
|
||||
esac
|
||||
|
||||
CPPFLAGS="$metacity_save_cppflags"
|
||||
|
||||
SHAPE_LIBS=
|
||||
found_shape=no
|
||||
AC_CHECK_LIB(Xext, XShapeQueryExtension,
|
||||
[AC_CHECK_HEADER(X11/extensions/shape.h,
|
||||
SHAPE_LIBS=-lXext found_shape=yes)],
|
||||
, $ALL_X_LIBS)
|
||||
|
||||
if test x$enable_shape = xno; then
|
||||
found_shape=no
|
||||
fi
|
||||
|
||||
if test x$enable_shape = xyes; then
|
||||
if test "$found_shape" = "no"; then
|
||||
AC_MSG_ERROR([--enable-shape forced and Shape not found])
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$found_shape" = "xyes"; then
|
||||
AC_DEFINE(HAVE_SHAPE, , [Have the shape extension library])
|
||||
fi
|
||||
|
||||
found_xkb=no
|
||||
AC_CHECK_LIB(X11, XkbQueryExtension,
|
||||
[AC_CHECK_HEADER(X11/XKBlib.h,
|
||||
found_xkb=yes)],
|
||||
, $ALL_X_LIBS)
|
||||
|
||||
if test "x$found_xkb" = "xyes"; then
|
||||
AC_DEFINE(HAVE_XKB, , [Have keyboard extension library])
|
||||
fi
|
||||
|
||||
|
||||
RANDR_LIBS=
|
||||
found_randr=no
|
||||
AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
|
||||
[AC_CHECK_HEADER(X11/extensions/Xrandr.h,
|
||||
RANDR_LIBS=-lXrandr found_randr=yes,,
|
||||
[#include <X11/Xlib.h>])],
|
||||
, -lXrender $ALL_X_LIBS)
|
||||
|
||||
if test "x$found_randr" = "xyes"; then
|
||||
AC_DEFINE(HAVE_RANDR, , [Have the Xrandr extension library])
|
||||
fi
|
||||
|
||||
XSYNC_LIBS=
|
||||
found_xsync=no
|
||||
AC_CHECK_LIB(Xext, XSyncQueryExtension,
|
||||
[AC_CHECK_HEADER(X11/extensions/sync.h,
|
||||
found_xsync=yes,,
|
||||
[#include <X11/Xlib.h>])],
|
||||
, $ALL_X_LIBS)
|
||||
|
||||
if test x$enable_xsync = xno; then
|
||||
found_xsync=no
|
||||
fi
|
||||
|
||||
if test x$enable_xsync = xyes; then
|
||||
if test "$found_xsync" = "no"; then
|
||||
AC_MSG_ERROR([--enable-xsync forced and XSync not found])
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$found_xsync" = "xyes"; then
|
||||
XSYNC_LIBS=-lXext
|
||||
AC_DEFINE(HAVE_XSYNC, , [Have the Xsync extension library])
|
||||
fi
|
||||
|
||||
METACITY_LIBS="$XSYNC_LIBS $RANDR_LIBS $SHAPE_LIBS $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $METACITY_LIBS"
|
||||
METACITY_MESSAGE_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $METACITY_MESSAGE_LIBS"
|
||||
METACITY_WINDOW_DEMO_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $METACITY_WINDOW_DEMO_LIBS"
|
||||
METACITY_PROPS_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $METACITY_PROPS_LIBS"
|
||||
|
||||
found_sm=no
|
||||
case "$METACITY_LIBS" in
|
||||
*-lSM*)
|
||||
found_sm=yes
|
||||
;;
|
||||
*)
|
||||
AC_CHECK_LIB(SM, SmcSaveYourselfDone,
|
||||
[AC_CHECK_HEADERS(X11/SM/SMlib.h,
|
||||
METACITY_LIBS="-lSM -lICE $METACITY_LIBS" found_sm=no)],
|
||||
, $METACITY_LIBS)
|
||||
;;
|
||||
esac
|
||||
|
||||
if test x$enable_sm = xno; then
|
||||
found_sm=no
|
||||
fi
|
||||
|
||||
if test x$enable_sm = xyes; then
|
||||
if test "$found_sm" = "no"; then
|
||||
AC_MSG_ERROR([--enable-sm forced and -lSM not found])
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$found_sm" = "yes"; then
|
||||
AC_DEFINE(HAVE_SM, , [Building with SM support])
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(HAVE_SM, test "$found_sm" = "yes")
|
||||
|
||||
HOST_ALIAS=$host_alias
|
||||
AC_SUBST(HOST_ALIAS)
|
||||
|
||||
AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
|
||||
|
||||
if test x"$GDK_PIXBUF_CSOURCE" = xno; then
|
||||
AC_MSG_ERROR([gdk-pixbuf-csource executable not found in your path - should be installed with GTK])
|
||||
fi
|
||||
|
||||
AC_SUBST(GDK_PIXBUF_CSOURCE)
|
||||
|
||||
## hack to work with old GTK versions for now
|
||||
save_LDFLAGS=$LDFLAGS
|
||||
LDFLAGS="$METACITY_LIBS $LDFLAGS"
|
||||
AC_CHECK_FUNCS(gdk_pixbuf_new_from_stream)
|
||||
LDFLAGS=$save_LDFLAGS
|
||||
|
||||
if test x$enable_gconf = xyes; then
|
||||
AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
|
||||
if test x"$GCONFTOOL" = xno; then
|
||||
AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf])
|
||||
fi
|
||||
|
||||
AM_GCONF_SOURCE_2
|
||||
fi
|
||||
|
||||
AC_OUTPUT([
|
||||
Makefile
|
||||
doc/Makefile
|
||||
src/Makefile
|
||||
src/wm-tester/Makefile
|
||||
src/libmetacity-private.pc
|
||||
src/tools/Makefile
|
||||
src/themes/Makefile
|
||||
po/Makefile.in
|
||||
])
|
||||
|
||||
if test x$enable_gconf = xno; then
|
||||
echo "*** WARNING WARNING WARNING WARNING WARNING"
|
||||
echo "*** Building without GConf"
|
||||
echo "*** This means there's no way to change prefs except"
|
||||
echo "*** hacking source code, at least for now."
|
||||
echo "*** Also, some prefs may have broken defaults."
|
||||
echo "*** Patches needed for a simple no-gconf config file."
|
||||
echo "*** This is intended for embedded systems etc., not for normal use."
|
||||
fi
|
||||
|
||||
if test x$enable_verbose_mode = xno; then
|
||||
echo "*** WARNING WARNING WARNING WARNING WARNING"
|
||||
echo "*** Building without verbose mode"
|
||||
echo "*** This means there's no way to debug metacity problems."
|
||||
echo "*** Please build normal desktop versions of metacity"
|
||||
echo "*** with verbose mode enabled so users can use it when they report bugs."
|
||||
fi
|
||||
|
||||
dnl ==========================================================================
|
||||
echo "
|
||||
metacity-$VERSION:
|
||||
|
||||
prefix: ${prefix}
|
||||
source code location: ${srcdir}
|
||||
compiler: ${CC}
|
||||
|
||||
GConf: ${enable_gconf}
|
||||
XFree86 Xinerama: ${use_xfree_xinerama}
|
||||
Solaris Xinerama: ${use_solaris_xinerama}
|
||||
Startup notification: ${have_startup_notification}
|
||||
Session management: ${found_sm}
|
||||
Shape extension: ${found_shape}
|
||||
Resize-and-rotate: ${found_randr}
|
||||
Xsync: ${found_xsync}
|
||||
Deprecated config dialog: ${enable_config_dialog}
|
||||
"
|
||||
## echo "This is the UNSTABLE branch of metacity, use 2.4.x for stable (gnome-2-2 branch in CVS)"
|
@ -1,2 +1,4 @@
|
||||
SUBDIRS = man
|
||||
|
||||
EXTRA_DIST=theme-format.txt metacity-theme.dtd dialogs.txt
|
||||
EXTRA_DIST=theme-format.txt dialogs.txt code-overview.txt \
|
||||
how-to-get-focus-right.txt
|
||||
|
185
doc/code-overview.txt
Normal file
185
doc/code-overview.txt
Normal file
@ -0,0 +1,185 @@
|
||||
This is not meant to be comprehensive by any means. Rather it is
|
||||
meant as just a brief overview of some of the bigger structures and
|
||||
files, with guides for a variety of task categories providing places
|
||||
to start looking in the code and things to look for.
|
||||
|
||||
Overview
|
||||
Jobs of various files
|
||||
Major data structures and their relationships
|
||||
Getting started -- where to look
|
||||
|
||||
|
||||
Jobs of various files
|
||||
src/window.c is where all the guts of the window manager live. This is
|
||||
basically the only remotely scary file.
|
||||
|
||||
src/frames.c is the GtkWidget that handles drawing window frames.
|
||||
|
||||
src/core.h defines the interface used by the GTK portion of the window
|
||||
manager to talk to the other portions. There's some cruft in here that's
|
||||
unused, since nearly all window operations have moved out of this file so
|
||||
frameless apps can have window operations.
|
||||
|
||||
src/ui.h defines the interface the plain Xlib portion of the window
|
||||
manager uses to talk to the GTK portion.
|
||||
|
||||
src/theme.c and src/theme-parser.c have the theme system; this is
|
||||
well-modularized from the rest of the code, since the theme viewer app
|
||||
links to these files in addition to the WM itself.
|
||||
|
||||
Major data structures and their relationships
|
||||
Major structs have a "Meta" prefix, thus MetaDisplay, MetaScreen,
|
||||
MetaWindow, etc. This serves as a way of namespacing in C. It also has
|
||||
the side effect of avoiding conflicts with common names that X already
|
||||
uses such as Display, Screen, Window, etc. Note that when I refer to a
|
||||
display below, I'm meaning a MetaDisplay and not a Display.
|
||||
|
||||
Don't confuse displays and screens. While Metacity can run with multiple
|
||||
displays, it is kind of useless since you might as well just run two
|
||||
copies of Metacity. However, having multiple screens per display is
|
||||
useful and increasingly common (known as "multiscreen" and "xinerama"
|
||||
setups, where users make use of more than one monitor). You should
|
||||
basically think of a display as a combination of one or more monitors
|
||||
with a single keyboard (...and usually only one mouse).
|
||||
|
||||
There is also a significant difference between multiscreen and xinerama
|
||||
as well. Basically, each MetaScreen is a root window (root node in the
|
||||
tree of windows). With Xinerama, a single root window appears to span
|
||||
multiple monitors, whereas with multiscreen a root window is confined to
|
||||
a single monitor. To re-emphasize the distinction between a display and
|
||||
a screen, the pointer and keyboard are shared between all root windows
|
||||
for a given display.
|
||||
|
||||
The display keeps track of a lot of various global quantities, but in
|
||||
particular has a compositor and a list (GList) of screens.
|
||||
|
||||
A compositor is an opaque structure (only defined in compositor.c),
|
||||
meaning that you'll only reference the API for it. It handles (or will
|
||||
handle) cool stuff with the new X extensions, such as smooth resizing and
|
||||
alpha transparency.
|
||||
|
||||
A screen keeps track of a number of quantities as well, in particular a
|
||||
stack and a list of workspaces.
|
||||
|
||||
A stack is basically a list of windows, and the depth order they have
|
||||
relative to each other (which thus determines which windows are on top
|
||||
and which are obscured).
|
||||
|
||||
A workspace mostly contains a list of windows for the workspace, but also
|
||||
has a few other quantities as well (a list of struts which are areas
|
||||
where windows should not be placed and an mru_list or "most recently used
|
||||
window list").
|
||||
|
||||
A window has a huge list of quantities for keeping track of things about
|
||||
a window on the screen. (We want to avoid making this list larger
|
||||
because the memory for all these quantities is per window.) One item in
|
||||
particular that a window has, though, is a frame.
|
||||
|
||||
A frame is the decorations that surround the window (i.e. the titlebar and
|
||||
the minimize and close buttons and the part that you can use to resize),
|
||||
and contains a handful of variables related to that, but no other major
|
||||
structures.
|
||||
|
||||
Getting started -- where to look
|
||||
Getting started on developing free software projects can often be like
|
||||
being dropped off in a town that is unknown to you and being told to make
|
||||
a map, when various road and building signs are missing or fading. To
|
||||
try to alleviate that initial difficulty in orientation, below I list a
|
||||
variety of general task categories with file, function, variable, and x
|
||||
property names that may be useful to fixing bugs or writing features that
|
||||
fall within that category.
|
||||
|
||||
First, though, it's useful to note that most event and message passing
|
||||
goes through display.c:event_callback(), so that's often a good place to
|
||||
start reading for general familiarity with the code (actually, I'd
|
||||
suggest skipping down to the first switch statement within that
|
||||
function). Of course, not all events go through that function, as there
|
||||
are a few other places that handle events too such as frames.c.
|
||||
|
||||
Anyway, without further ado, here are the categories and (hopefully)
|
||||
useful things to look at for each:
|
||||
|
||||
Focus issues (i.e. issues with which window is active):
|
||||
doc/how-to-get-focus-right.txt
|
||||
meta_workspace_focus_default_window
|
||||
_NET_ACTIVE_WINDOW
|
||||
_NET_WM_USER_TIME
|
||||
meta_window_focus
|
||||
meta_display_(set_input|focus_the_no)_focus_window
|
||||
XSetInputFocus (only for purposes of understanding how X focus/input works)
|
||||
CurrentTime (mostly, you should just think "Bad; don't use it")
|
||||
|
||||
Compositor stuff (X extension for eye candy like transparency):
|
||||
compositor.c
|
||||
The luminocity module in CVS
|
||||
|
||||
Window depth (i.e. stacking or lowering/raising) issues:
|
||||
stack.c
|
||||
_NET_CLIENT_LIST_STACKING
|
||||
transient_for
|
||||
WM_TRANSIENT_FOR
|
||||
meta_window_(raise|lower)
|
||||
_NET_WM_WINDOW_TYPE
|
||||
_NET_WM_MOUSE_ACTION/_NET_WM_TAKE_ACTIVITY? (aren't yet in EWMH)
|
||||
|
||||
Window placement issues:
|
||||
place.c
|
||||
constraints.c
|
||||
_NET_WM_STRUT
|
||||
WM_SIZE_HINTS
|
||||
|
||||
Moving and resizing issues:
|
||||
constraints.c
|
||||
update_move
|
||||
update_resize
|
||||
meta_window_handle_mouse_grab_op_event
|
||||
_NET_MOVERESIZE_WINDOW
|
||||
_NET_WM_STRUT
|
||||
|
||||
Drag and drop issues:
|
||||
the XDND protocol (see http://www.newplanetsoftware.com/xdnd/ and
|
||||
http://freedesktop.org/Standards/XDND)
|
||||
_NET_WM_MOUSE_ACTION/_NET_WM_TAKE_ACTIVITY (aren't yet in EWMH)
|
||||
A general pointer: what causes the difficulty here is that when the
|
||||
application receives a mouse click to start a drag, it does a grab
|
||||
so that the window manager doesn't get any further events; thus
|
||||
correcting things require standards so that applications and window
|
||||
managers can collaborate correctly
|
||||
|
||||
Theme issues: ???
|
||||
doc/theme-format.txt
|
||||
theme.c
|
||||
theme-parser.c
|
||||
(ui.c, core.c, frames.c, frame.c? I dunno...)
|
||||
|
||||
Session management issues: ???
|
||||
session.c
|
||||
http://www.x.org/X11R6.8.1/doc/SM/xsmp.pdf ?
|
||||
http://www.x.org/X11R6.8.1/doc/SM/SMlib.pdf ?
|
||||
meta_window_apply_session_info
|
||||
|
||||
Tasklist and Workspace switcher issues:
|
||||
window-props.c
|
||||
various functions in screen.c (especially ones using XChangeProperty)
|
||||
xprops.c
|
||||
The libwnck module in cvs
|
||||
meta_window_client_message
|
||||
Lots of the EWMH
|
||||
|
||||
Window and workspace selection/changing issues:
|
||||
tabpopup.c
|
||||
keybindings.c, functions: *_workspace*, *_tab_*
|
||||
meta_screen_ensure_*_popup
|
||||
display.c, functions: *_tab*
|
||||
|
||||
Key and mouse binding actions:
|
||||
keybindings.c
|
||||
meta_frames_button_(press|release)_event
|
||||
display.c: event_callback, but only the (Key|Button)_(Press|Release) cases
|
||||
|
||||
Xinerama and multiscreen: ???
|
||||
In general, just search for Xinerama, but in particular see
|
||||
screen.c
|
||||
window.c
|
||||
place.c
|
||||
constraints.c
|
46
doc/compositor-control.txt
Normal file
46
doc/compositor-control.txt
Normal file
@ -0,0 +1,46 @@
|
||||
The compositor is the box of tricks inside the window manager which performs
|
||||
special effects on the windows on your screen. Metacity's compositor is
|
||||
under development. Your help is requested in finding and fixing bugs. This
|
||||
document tells you how to configure Metacity so that you can use compositing.
|
||||
|
||||
To turn the compositor on initially, you need to pass --enable-compositor to
|
||||
the configure script. This will introduce a dependence on libcm, which you
|
||||
can get from <URL:http://ftp.gnome.org/pub/GNOME/sources/libcm/>.
|
||||
|
||||
When Metacity is compiled, you will need to turn the compositor on in gconf
|
||||
for it to have any effect. You will find the boolean switch at
|
||||
|
||||
/apps/metacity/general/compositing_manager
|
||||
|
||||
When that's done, you can set some environment variables before you launch
|
||||
Metacity to influence how the compositor works. These will eventually become
|
||||
configuration options or gconf options when they grow up. Define them to any
|
||||
value to turn them on; leave them undefined to turn them off. Currently the
|
||||
options you can set are:
|
||||
|
||||
LIBCM_DIRECT
|
||||
|
||||
If this is set, the compositor will bypass the X server and do all its
|
||||
work directly with the hardware. I know of no reason you would want to
|
||||
do so, but perhaps you do.
|
||||
|
||||
LIBCM_TFP
|
||||
|
||||
If this is set ("tfp mode"), the compositor will feel free to use the
|
||||
texture_from_pixmap extension; if this is not set ("non-tfp mode"), the
|
||||
compositor will use a workaround. Many drivers require non-tfp mode in
|
||||
order to work, and will paint all windows clear blue or clear white
|
||||
without it. Thanks to Travis Watkins for suggesting this switch; he
|
||||
cautions that some games or video players may require tfp mode.
|
||||
|
||||
METACITY_BLING
|
||||
|
||||
This turns on several pretty but non-essential animations (dialogues
|
||||
fracturing and exploding, minimisations doing a shrinkydink effect,
|
||||
and so on). If it is not set, the standard non-GL animations are
|
||||
retained. This affects only window event animations; it doesn't change
|
||||
menus zooming, dialogues being semi-transparent, and so on. Try it
|
||||
and see whether you like it.
|
||||
|
||||
If you have any problems, ask on mutter-devel-list@gnome.org, or
|
||||
#gnome-hackers on gimpnet, or come and find me (tthurman at gnome) and ask.
|
283
doc/how-constraints-works.txt
Normal file
283
doc/how-constraints-works.txt
Normal file
@ -0,0 +1,283 @@
|
||||
File contents:
|
||||
Basic Ideas
|
||||
Important points to remember
|
||||
Explanation of fields in the ConstraintInfo struct
|
||||
Gory details of resize_gravity vs. fixed_directions
|
||||
|
||||
IMPORTANT NOTE: There's a big comment at the top of constraints.c
|
||||
explaining how to add extra constraints or tweak others. Read it. I put
|
||||
that information there because it may be enough information by itself for
|
||||
people to hack on constraints.c. I won't duplicate that information in
|
||||
this file; this file is for deeper details.
|
||||
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
Basic Ideas
|
||||
---------------------------------------------------------------------------
|
||||
There are a couple basic ideas behind how this constraints.c code works and
|
||||
why it works that way:
|
||||
|
||||
1) Split the low-level error-prone operations into a special file
|
||||
2) Add robustness by prioritizing constraints
|
||||
3) Make use of a minimal spanning set of rectangles for the
|
||||
"onscreen region" (screen minus struts).
|
||||
4) Constraints can be user-action vs app-action oriented
|
||||
5) Avoid over-complification ;-)
|
||||
|
||||
Some more details explaining these basic ideas:
|
||||
|
||||
1) Split tedious operations out
|
||||
|
||||
boxes.[ch] have been added which contain many common, tedious, and
|
||||
error-prone operations. I find that this separation helps a lot for
|
||||
managing the complexity and ensuring that things work correctly.
|
||||
Also, note that testboxes.c thoroughly tests all functionality in
|
||||
boxes.[ch] and a testboxes program is automatically compiled.
|
||||
|
||||
Note that functions have also been added to this file to handle some
|
||||
of the tedium necessary for edge resistance as well.
|
||||
|
||||
2) Prioritize constraints
|
||||
|
||||
In the old code, if each and every constraint could not be
|
||||
simultaneously satisfied, then it would result in some
|
||||
difficult-to-predict set of constraints being violated. This was
|
||||
because constraints were applied in order, with the possibility for
|
||||
each making changes that violated previous constraints, with no
|
||||
checking done at the end.
|
||||
|
||||
Now, all constraints have an associated priority, defined in the
|
||||
ConstraintPriority enum near the top of constraints.c. The
|
||||
constraints are all applied, and then are all checked; if not all are
|
||||
satisfied then the least important constraints are dropped and the
|
||||
process is repeated. This ensures that the most important constraints
|
||||
are satisfied.
|
||||
|
||||
A special note to make here is that if any one given constraint is
|
||||
impossible to satisfy even individually (e.g. if minimum size hints
|
||||
specify a larger window than the screen size, making the
|
||||
fully-onscreen constraint impossible to satisfy) then we treat the
|
||||
constraint as being satisfied. This sounds counter-intuitive, but the
|
||||
idea is that we want to satisfy as many constraints as possible and if
|
||||
we treat it as a violation then all constraints with a lesser priority
|
||||
also get dropped along with the impossible to satisfy one.
|
||||
|
||||
3) Using maximal/spanning rectangles
|
||||
|
||||
The constraints rely heavily on something I call spanning rectangles
|
||||
(which Soeren referred to as maximal rectangles, a name which I think
|
||||
I like better but I don't want to go change all the code now). These
|
||||
spanning rectangles have the property that a window will fit on the
|
||||
screen if and only if it fits within at least one of the rectangles.
|
||||
Soeren had an alternative way of describing these rectangles, namely
|
||||
that they were rectangles with the property that if you made any of
|
||||
them larger in any direction, they would overlap with struts or be
|
||||
offscreen (with the implicit assumption that there are enough of these
|
||||
rectangles that combined they cover all relevant parts of the screen).
|
||||
Note that, by necessity, these spanning/maximal rectangles will often
|
||||
overlap each other.
|
||||
|
||||
Such a list makes it relatively easy to define operations like
|
||||
window-is-onscreen or clamp-window-to-region or
|
||||
shove-window-into-region. Since we have a on-single-xinerama
|
||||
constraint in addition to the onscreen constraint(s), we cache
|
||||
number_xineramas + 1 of these lists in the workspace. These lists
|
||||
then only need to be updated whenever the workarea is (e.g. when strut
|
||||
list change or screen or xinerama size changes).
|
||||
|
||||
4) Constraints can be user-action vs app-action oriented
|
||||
|
||||
Such differentiation requires special care for the constraints to be
|
||||
consistent; e.g. if the user does something and one constraint
|
||||
applies, then the app does something you have to be careful that the
|
||||
constraint on the app action doesn't result in some jarring motion.
|
||||
|
||||
In particular, the constraints currently allow offscreen movement or
|
||||
resizing for user actions only. The way consistency is handled is
|
||||
that at the end of the constraints, update_onscreen_requirements()
|
||||
checks to see if the window is offscreen or split across xineramas and
|
||||
updates window->require_fully_onscreen and
|
||||
window->require_on_single_xinerama appropriately.
|
||||
|
||||
5) Avoid over-complification
|
||||
|
||||
The previous code tried to reform the constraints into terms of a
|
||||
single variable. This made the code rather difficult to
|
||||
understand. ("This is a rather complicated fix for an obscure bug
|
||||
that happened when resizing a window and encountering a constraint
|
||||
such as the top edge of the screen.") It also failed, even on the
|
||||
very example for which it used as justification for the complexity
|
||||
(bug 312104 -- when keyboard resizing the top of the window,
|
||||
Metacity extends the bottom once the titlebar hits the top panel),
|
||||
though the reason why it failed is somewhat mysterious as it should
|
||||
have worked. Further, it didn't really reform the constraints in
|
||||
terms of a single variable -- there was both an x_move_delta and an
|
||||
x_resize_delta, and the existence of both caused bug 109553
|
||||
(gravity with simultaneous move and resize doesn't work)
|
||||
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
Important points to remember
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
- Inner vs Outer window
|
||||
|
||||
Note that because of how configure requests work and
|
||||
meta_window_move_resize_internal() and friends are set up, that the
|
||||
rectangles passed to meta_window_constrain() are with respect to inner
|
||||
window positions instead of outer window positions (meaning that window
|
||||
manager decorations are not included in the position/size). For the
|
||||
constraints that need to be enforced with respect to outer window
|
||||
positions, you'll need to make use of the extend_by_frame() and
|
||||
unextend_by_frame() functions.
|
||||
|
||||
- meta_window_move_resize_internal() accepts a really hairy set of
|
||||
inputs. See the huge comment at the beginning of that function.
|
||||
constraints gets screwed up if that function can't sanitize the input,
|
||||
so be very careful about that. It used to be pretty busted.
|
||||
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
Explanation of fields in the ConstraintInfo strut
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
As of the time of this writing, ConstraintInfo had the following fields:
|
||||
orig
|
||||
current
|
||||
fgeom
|
||||
action_type
|
||||
is_user_action
|
||||
resize_gravity
|
||||
fixed_directions
|
||||
work_area_xinerama
|
||||
entire_xinerama
|
||||
usable_screen_region
|
||||
usable_xinerama_region
|
||||
|
||||
A brief description of each and/or pointers to more information are found
|
||||
below:
|
||||
orig
|
||||
The previous position and size of the window, ignoring any window
|
||||
decorations
|
||||
current
|
||||
The requested position and size of the window, ignoring any window
|
||||
decorations. This rectangle gets modified by the various constraints
|
||||
to specify the allowed position closest to the requested position.
|
||||
fgeom
|
||||
The geometry of the window frame (i.e. "decorations"), if it exists.
|
||||
Otherwise, it's a dummy 0-size frame for convenience (i.e. this pointer
|
||||
is guaranteed to be non-NULL so you don't have to do the stupid check).
|
||||
action_type
|
||||
Whether the action being constrained is a move, resize, or a combined
|
||||
move and resize. Some constraints can run faster with this information
|
||||
(e.g. constraining size increment hints or min size hints don't need to
|
||||
do anything for pure move operations). This may also be used for
|
||||
providing slightly different behavior (e.g. clip-to-region instead of
|
||||
shove-into-region for resize vs. moving operations), but doesn't
|
||||
currently have a lot of use for this.
|
||||
is_user_action
|
||||
Used to determine whether the action being constrained is a user
|
||||
action. If so, certain parts of the constraint may be relaxed. Note
|
||||
that this requires care to get right; see item 4 of the basic ideas
|
||||
section for more details.
|
||||
resize_gravity
|
||||
The gravity used in the resize operation, used in order to make sure
|
||||
windows are resized correctly if constraints specify that their size
|
||||
must be modified. Explained further in the resize_gravity
|
||||
vs. fixed_directions section.
|
||||
fixed_directions
|
||||
There may be multiple solutions to shoving a window back onscreen.
|
||||
Typically, the shortest distance used is the solution picked, but if
|
||||
e.g. an application only moved its window in a single direction, it's
|
||||
more desirable that the window is shoved back in that direction than in
|
||||
a different one. fixed_directions facilitates that. Explained further
|
||||
in the resize_gravity vs. fixed_directions section.
|
||||
work_area_xinerama
|
||||
This region is defined in the workspace and just cached here for
|
||||
convenience. It is basically the area obtained by taking the current
|
||||
xinerama, treating all partial struts as full struts, and then
|
||||
subtracting all struts from the current xinerama region. Useful
|
||||
e.g. for enforcing maximization constraints.
|
||||
entire_xinerama
|
||||
Just a cache of the rectangle corresponding to the entire current
|
||||
xinerama, including struts. Useful e.g. for enforcing fullscreen
|
||||
constraints.
|
||||
usable_screen_region
|
||||
The set of maximal/spanning rectangles for the entire screen; this
|
||||
region doesn't overlap with any struts and helps to enforce
|
||||
e.g. onscreen constraints.
|
||||
usable_xinerama_region
|
||||
The set of maximal/spanning rectangles for the current xinerama; this
|
||||
region doesn't overlap with any struts on the xinerama and helps to
|
||||
enforce e.g. the on-single-xinerama constraint.
|
||||
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
Gory details of resize_gravity vs. fixed_directions
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
Note that although resize_gravity and fixed_directions look similar, they
|
||||
are used for different purposes:
|
||||
|
||||
- resize_gravity is only for resize operations and is used for
|
||||
constraints unrelated to keeping a window within a certain region
|
||||
- fixed_directions is for both move and resize operations and is
|
||||
specifically for keeping a window within a specified region.
|
||||
|
||||
Examples of where each are used:
|
||||
|
||||
- If a window is simultaneously moved and resized to the southeast corner
|
||||
with SouthEastGravity, but it turns out that the window was sized to
|
||||
something smaller than the minimum size hint, then the size_hints
|
||||
constraint should resize the window using the resize_gravity to ensure
|
||||
that the southeast corner doesn't move.
|
||||
- If an application resizes itself so that it grows downward only (which
|
||||
I note could be using any of three different gravities, most likely
|
||||
NorthWest), and happens to put the southeast part of the window under a
|
||||
partial strut, then the window needs to be forced back on screen.
|
||||
(Yes, shoved onscreen and not clipped; see bug 136307). It may be the
|
||||
case that moving the window to the left results in less movement of the
|
||||
window than moving the window up, which, in the absence of fixed
|
||||
directions would cause us to chose moving to the left. But since the
|
||||
user knows that only the height of the window is changing, they would
|
||||
find moving to the left weird (especially if this were a dialog that
|
||||
had been centered on its parent). It'd be better to shove the window
|
||||
upwards so we make sure to keep the left and right sides fixed in this
|
||||
case. Note that moving the window upwards (or leftwards) is probably
|
||||
totally against the gravity in this case; but that's okay because
|
||||
gravity typically assumes there's more than enough onscreen space for
|
||||
the resize and we only override the gravity when that assumption is
|
||||
wrong.
|
||||
|
||||
For the paranoid, a fixed directions might give an impossible to fulfill
|
||||
constraint (I don't think that's true currently in the code, but I haven't
|
||||
thought it through in a while). If this ever becomes a problem, it should
|
||||
be relatively simple to throw out the fixed directions when this happens
|
||||
and rerun the constraint. Of course, it might be better to rethink things
|
||||
to just avoid such a problem.
|
||||
|
||||
The nitty gritty of what gets fixed:
|
||||
User move:
|
||||
in x direction - y direction fixed
|
||||
in y direction - x direction fixed
|
||||
in both dirs. - neither direction fixed
|
||||
User resize: (note that for clipping, only 1 side ever changed)
|
||||
in x direction - y direction fixed (technically opposite x side fixed too)
|
||||
in y direction - x direction fixed (technically opposite y side fixed too)
|
||||
in both dirs. - neither direction fixed
|
||||
App move:
|
||||
in x direction - y direction fixed
|
||||
in y direction - x direction fixed
|
||||
in both dirs. - neither direction fixed
|
||||
App resize
|
||||
in x direction - y direction fixed
|
||||
in y direction - x direction fixed
|
||||
in 2 parallel directions (center side gravity) - other dir. fixed
|
||||
in 2 orthogonal directions (corner gravity) - neither dir. fixed
|
||||
in 3 or 4 directions (a center-like gravity) - neither dir. fixed
|
||||
Move & resize
|
||||
Treat like resize case though this will usually mean all four sides
|
||||
change and result in neither direction being fixed
|
||||
Note that in all cases, if neither direction moves it is likely do to a
|
||||
change in struts and thus neither direction should be fixed despite the
|
||||
lack of movement.
|
252
doc/how-to-get-focus-right.txt
Normal file
252
doc/how-to-get-focus-right.txt
Normal file
@ -0,0 +1,252 @@
|
||||
To make choice of focus window consistent for each focus method, a
|
||||
number of guidelines should be followed. (For purposes of discussion
|
||||
here, I'm excluding things like the panel and the desktop from
|
||||
"windows". It is technically incorrect to do this, but I'm lazy and
|
||||
"windows" is shorter than something like "normal windows". See the
|
||||
end of the discussion for how these special cases are handled.) The
|
||||
basics are easy:
|
||||
|
||||
Focus method Behavior
|
||||
click When a user clicks on a window, focus it
|
||||
sloppy When an EnterNotify is received, focus the window
|
||||
mouse Same as sloppy, but also defocus when mouse enters DESKTOP
|
||||
window
|
||||
|
||||
Note that these choices (along with the choice that clicking on a
|
||||
window raises it for the click focus method) introduces the following
|
||||
invariants for focus from mouse activity:
|
||||
|
||||
Focus method Invariant
|
||||
click The window on top is focused
|
||||
sloppy If the mouse is in a window, then it is focused; if the
|
||||
mouse is not in a window, then the most recently used
|
||||
window is focused.
|
||||
mouse If the mouse is in a non-DESKTOP window, then it is focused;
|
||||
otherwise, the designated "no_focus_window" is focused
|
||||
|
||||
However, there are a number of cases where the current focus window
|
||||
becomes invalid and another should be chosen. Some examples are when
|
||||
a focused window is closed or minimized, or when the user changes
|
||||
workspaces. In these cases, there needs to be a rule consistent with
|
||||
the above about the new window to choose.
|
||||
|
||||
Focus method Behavior
|
||||
click Focus the window on top
|
||||
sloppy Focus the window containing the pointer if there is such
|
||||
a window, otherwise focus the most recently used window.
|
||||
mouse Focus the non-DESKTOP window containing the pointer if
|
||||
there is one, otherwise focus the designated
|
||||
"no_focus_window".
|
||||
|
||||
Note that "most recently used window", as used here, has a slightly
|
||||
different connotation than "most recent to have keyboard focus". This
|
||||
is because when a user activates a window that is a transient, its
|
||||
ancestor(s) should be considered to be more recently used than other
|
||||
windows that have had the keyboard focus more recently. (See bug
|
||||
157360; this may mean that the alt-tab order should also change
|
||||
simultaneously, although the current implementation does not do that.)
|
||||
|
||||
Also, sometimes a new window will be mapped (e.g. unminimizing a
|
||||
window or launching a new application). Most users want to interact
|
||||
with new windows right away, so these should typically be focused.
|
||||
This does conflict with the invariants for sloppy and mouse focus
|
||||
modes, so this wouldn't be true for a strict-pointer-focus mode. For
|
||||
all other modes (non-strict-pointer-focus modes), there are only two
|
||||
cases in which a new window shouldn't be focused:
|
||||
|
||||
1) If the window takes a while to launch and the user starts
|
||||
interacting with a different application, the new window should
|
||||
not take focus.
|
||||
2) If the window that will appear was not launched by the user
|
||||
(error dialogs, instant messaging windows, etc.), then the window
|
||||
should not take focus when it appears.
|
||||
|
||||
To handle these cases, Metacity compares timestamps of the event that
|
||||
caused the launch and the timestamp of the last interaction with the
|
||||
focused window. (Case 2 is handled by the application providing a
|
||||
special timestamp of 0 for the launch time, which ensures that the
|
||||
window that appears doesn't get focus)
|
||||
|
||||
If the newly launched window isn't focused, some things should be done
|
||||
to alert the user that there is a window to work with:
|
||||
1) The _NET_WM_DEMANDS_ATTENTION hint should be set
|
||||
2) If the new window isn't modal for the focused window, it should
|
||||
appear below the focused window so that it doesn't obscure the
|
||||
focused window that the user is interacting with.
|
||||
3) If the new window is modal to the focused window, the currently
|
||||
focused window should lose focus but the modal window should
|
||||
appear on top.
|
||||
|
||||
Additionally, the user may decide to use the keyboard instead of the mouse
|
||||
to navigate between windows (referred to as "keynav"). This poses no
|
||||
problems for click-to-focus (because the same invariant can be
|
||||
maintained), but for sloppy and mouse focus it requires extra work to
|
||||
attempt to handle the INHERENTLY CONFLICTING CONSTRAINTS. Metacity does
|
||||
this by having a mouse_mode boolean used to determine which of the two
|
||||
sets of invariants holds. This mode is set according to which method was
|
||||
most recently used to choose a focus window:
|
||||
1) When receiving EnterNotify events from mouse movement, set
|
||||
mouse_mode to TRUE.
|
||||
2) When using keynav to choose a focus window (e.g. alt-tab, alt-esc,
|
||||
alt-f2, move-window-to-workspace keybindings), set mouse_mode to FALSE.
|
||||
3) When handling events that don't choose a focus window but rather need
|
||||
a focus_window chosen for them (e.g. switch-to-workspace keybindings),
|
||||
don't change the mouse_mode and just use the current value.
|
||||
Note that grabs present a special case since they can generate EnterNotify
|
||||
and LeaveNotify events without using the mouse, thus these events should be
|
||||
ignored when the crossing mode is NotifyGrab or NotifyUngrab. THIS
|
||||
MOUSENAV/KEYNAV MODERATION METHOD IS NOT PERFECT--there are corner cases
|
||||
when trying to mix-and-match between mousenav and keynav simultaneously
|
||||
that cause problems; but it appears to be the most reasonable tradeoff and
|
||||
works well in most cases, especially if the user sticks to just mousenav
|
||||
for a long time or just keynav for a long time.
|
||||
|
||||
Finally, windows of type WM_DOCK or WM_DESKTOP (e.g. the desktop and
|
||||
the panel) present a special case, at least partially due to the lack
|
||||
of decorations. For WM_DESKTOP windows, we only focus them if the
|
||||
user explicitly requests it (e.g. clicks on the window, uses
|
||||
Ctrl-Alt-Tab to navigate to it, uses a keybinding to show the desktop,
|
||||
etc.). For WM_DOCK windows, we do not focus unless we receive a very
|
||||
explicit request (e.g. Ctrl-Alt-Tab or a _NET_ACTIVE_WINDOW message;
|
||||
not normal clicks).
|
||||
|
||||
|
||||
|
||||
|
||||
To read more about the bugs that inspired these choices:
|
||||
- When a focused window becomes invalid and another should be chosen
|
||||
http://bugzilla.gnome.org/show_bug.cgi?id=135810
|
||||
- When a new window is mapped
|
||||
http://bugzilla.gnome.org/show_bug.cgi?id=118372
|
||||
Also, the EWMH spec, especially the parts relating to _NET_WM_USER_TIME
|
||||
- Modal vs. non-modal dialogs that get denied focus when mapped
|
||||
http://bugzilla.gnome.org/show_bug.cgi?id=151996
|
||||
- Mousenav vs. Keynav in mouse and sloppy focus modes
|
||||
http://bugzilla.gnome.org/show_bug.cgi?id=167545
|
||||
http://bugzilla.gnome.org/show_bug.cgi?id=101190
|
||||
http://bugzilla.gnome.org/show_bug.cgi?id=357695
|
||||
- Not focusing panels
|
||||
http://bugzilla.gnome.org/show_bug.cgi?id=160470
|
||||
http://bugzilla.gnome.org/show_bug.cgi?id=120100
|
||||
|
||||
There were many bugs which had to be fixed to get all the above
|
||||
working; they helped form these policies and/or show the difficulties
|
||||
in implementing this policy (my apologies in advance for producing a
|
||||
list heavily lopsided to what I've done; it's just that these bugs are
|
||||
the ones I'm the most familiar with):
|
||||
bug 72314 ignore LeaveNotify events from grabs
|
||||
bug 82921 focus windows on map
|
||||
bug 87531 only show focus for sticky windows on active workspace (pager)
|
||||
bug 94545 focus window on workspace switch is non-deterministic
|
||||
bug 95747 should ignore EnterNotify events with NotifyInferior detail set
|
||||
bug 97635 sticky windows always keep focus when switching workspaces
|
||||
bug 102665 a window unminimized from the tasklist should be focused
|
||||
bug 107347 focus windows that manually position themselves too
|
||||
bug 108643 focus in MRU order instead of stack order
|
||||
bug 110970 moving a window to another workspace loses focus
|
||||
bug 112031 closing a dialog can result in a strange focus window
|
||||
bug 115650 add _NET_WM_USER_TIME support to gtk+ (see also 150502)
|
||||
bug 120100 panel shouldn't be focused after workspace applet usage
|
||||
bug 123803 need final EnterNotify after workspace switch (see also 124798)
|
||||
bug 124981 focus clicked window in pager only if on current workspace
|
||||
bug 125492 catch the xserver unfocusing everything and fix its braindeadedness
|
||||
bug 128200 focus correct window on libwnck window minimize (see 107681 too)
|
||||
bug 131582 fix race condition on window minimize/close
|
||||
bug 133120 wrong window focused when changing workspaces
|
||||
bug 135024 _NET_ACTIVE_WINDOW messages need timestamps
|
||||
bug 135786 middle-clicking on focused window to lower it should defocus too
|
||||
bug 136581 window minimization vs. activation for mouse focus
|
||||
bug 144900 fix focus choice on "un-showing" the desktop
|
||||
bug 147475 don't lock keyboard on workspace change
|
||||
bug 148364 DEMANDS_ATTENTION support for metacity & libwnck (and other stuff)
|
||||
bug 149028 focus-stealing-prevention for metacity-dialog (and other stuff)
|
||||
bug 149366 windows denied focus on map occur in wrong order in alt-tab list
|
||||
bug 149543 consistent focus window when unshowing desktop
|
||||
bug 149589 race in focus choice from libwnck messages
|
||||
bug 150271 make sure "run application" dialog gets focused
|
||||
bug 150668 update gtk+ _NET_ACTIVE_WINDOW support
|
||||
bug 151245 application startup notification forwarding (partially rejected)
|
||||
bug 151984 Soeren's idea--backup timestamp when startup notification not used
|
||||
bug 151990 prevent focus inconsistencies by only providing one focus method
|
||||
bug 151996 modal dialogs denied focus should not be lowered
|
||||
bug 152000 fix race on window close followed by rapid mouse movement
|
||||
bug 152004 ways to handle new window versus mouse invariants
|
||||
bug 153220 catch the root window getting focus and reset to default window
|
||||
bug 157360 focus parents of dismissed transient windows in preference to
|
||||
the window that most recently had focus
|
||||
bug 159257 focus the desktop when showing it
|
||||
bug 160470 don't focus panels on click
|
||||
bug 163450 correct highlighting in workspace switcher popup
|
||||
bug 164716 refuse to focus a window with a modal transient, and focus
|
||||
the transient instead
|
||||
bug 166524 avoid new windows being obscured by the focus window
|
||||
bug 167545 mousenav vs. keynav in mouse and sloppy focus modes
|
||||
<a massive heap of bugs relating to focus stealing prevention...>
|
||||
|
||||
|
||||
Addendum on sloppy and mouse focus
|
||||
You may occasionally hear people refer to sloppy or mouse focus
|
||||
modes as inherently buggy. This is what they mean by that:
|
||||
|
||||
1) Keynav doesn't maintain the same invariants as mouse navigation
|
||||
for these focus modes; switching back and forth between
|
||||
navigation methods, therefore, may have or appear to have
|
||||
inconsistencies. Examples:
|
||||
a) If the user uses Alt-Tab to change the window with focus, then
|
||||
starts to move the mouse, at that moment the window where the
|
||||
mouse is does not have focus.
|
||||
b) Users expect that a workspace they previously used will not
|
||||
change when the return to it. This means things like window
|
||||
position and stacking order, but also the focus window.
|
||||
Unfortunately, using the original focus window (which would be
|
||||
the most recently used window on that workspace) will
|
||||
sometimes conflict with the invariants for mouse and sloppy
|
||||
focus modes. Users are much more surprised by the invariant
|
||||
being broken than by having the focus window changed (see bug
|
||||
94545 and probably others), so we maintain the invariant.
|
||||
This only matters when using Ctrl-Alt-Arrow to switch
|
||||
workspaces instead of clicking in the workspace switcher, so
|
||||
this really is a keynav vs mouse issue. Either that, or a
|
||||
windows-are-being-mapped exception. ;-)
|
||||
c) Opening a menu, then moving the mouse to a different window,
|
||||
and then pressing escape to dismiss the menu will result in
|
||||
the window containing the mouse not being focused. This is
|
||||
actually correct behavior (because pressing escape shows that
|
||||
the user is using key navigation to interact with the window
|
||||
containing the menu) but is one of those hard-to-get-right
|
||||
keynav and mouse focus mixture cases. (See bug 101190 for
|
||||
more details)
|
||||
d) Similar to (c), moving the mouse off the menu doesn't immediately
|
||||
focus the window that the mouse goes over, due to an application
|
||||
grab (we couldn't change this and wouldn't want to, but
|
||||
technically it does break the invariant).
|
||||
e) If mouse_mode is off and the user does something to cause focus to
|
||||
change (e.g. switch workspaces, close or minimize a window, etc.)
|
||||
and simultaneously tries to move the mouse, the choice of which
|
||||
window to focus is inherently race-y. (You probably can't satisfy
|
||||
both keynav and mousenav invariants simultaneously...)
|
||||
2) The sloppy/mouse invariants are often not strictly maintained;
|
||||
for example, we provide an exception to the invariant for newly
|
||||
mapped windows. (Most find that not allowing this exception is
|
||||
confusing)
|
||||
3) There are an awful lot of little cases to handle to get any focus
|
||||
mode right, even for click-to-focus. Since mouse and sloppy
|
||||
focus have sometimes been hard to even determine what correct
|
||||
behavior is, it is much harder to get them completely right.
|
||||
Plus mouse and sloppy focus users are a minority, decreasing the
|
||||
motivation of window manager implementors to get those focus
|
||||
modes right.
|
||||
4) Because of -1-, -2-, and -3-, implementations are often buggy or
|
||||
inconsistent and people form their opinions from usage of these
|
||||
implementations.
|
||||
5) Sloppy focus suffers from a bit of a discoverability problem (for
|
||||
example, I have seen a scientist sit down to a computer for which
|
||||
sloppy focus was in use and take a few minutes before figuring
|
||||
out how window activation worked; granted the layout of the
|
||||
windows in that situation was a bit unusual but it still
|
||||
illustrates that sloppy focus is harder than it should be to
|
||||
figure out). Mouse focus solves this problem; however, people
|
||||
that have experience with other computing environments are
|
||||
accustomed to being able to move their mouse outside the window
|
||||
they are working with and still continue interacting with that
|
||||
window, which conflicts with mouse focus.
|
4
doc/man/Makefile.am
Normal file
4
doc/man/Makefile.am
Normal file
@ -0,0 +1,4 @@
|
||||
man_MANS = mutter.1 mutter-theme-viewer.1 \
|
||||
mutter-window-demo.1 mutter-message.1
|
||||
|
||||
EXTRA_DIST = $(man_MANS)
|
60
doc/man/mutter-message.1
Normal file
60
doc/man/mutter-message.1
Normal file
@ -0,0 +1,60 @@
|
||||
.\" Hey, EMACS: -*- nroff -*-
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.\" -----
|
||||
.\" This file was confirmed to be licenced under the GPL
|
||||
.\" by its author and copyright holder, Akira TAGOH, on June 1st 2008:
|
||||
.\"
|
||||
.\" > I'm comfortable with DFSG-free. that sounds great if you think it's
|
||||
.\" > useful and worth containing it in upstream.
|
||||
.\" ...
|
||||
.\" > Right I know. any licenses that is DFSG-free, I'm ok with whatever,
|
||||
.\" > since I have contributed that for Debian. so GPL is no problem for me.
|
||||
.\" -----
|
||||
.TH MUTTER\-MESSAGE 1 "28 August 2002"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
MUTTER\-MESSAGE \- a command to send a message to Mutter
|
||||
.SH SYNOPSIS
|
||||
.B MUTTER\-MESSAGE
|
||||
[restart|reload\-theme|enable\-keybindings|disable\-keybindings]
|
||||
.SH DESCRIPTION
|
||||
This manual page documents briefly the
|
||||
.B mutter\-message\fP.
|
||||
This manual page was written for the Debian distribution
|
||||
because the original program does not have a manual page.
|
||||
.PP
|
||||
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
||||
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
||||
.\" respectively.
|
||||
\fBmutter\-message\fP send a specified message to \fBmutter\fP(1).
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B restart
|
||||
Restart \fBmutter\fP(1) which is running.
|
||||
.TP
|
||||
.B reload-theme
|
||||
Reload a theme which is specified on gsettings database.
|
||||
.TP
|
||||
.B enable-keybindings
|
||||
Enable all of keybindings which is specified on gsettings database.
|
||||
.TP
|
||||
.B disable-keybindings
|
||||
Disable all of keybindings which is specified on gsettings database.
|
||||
.SH SEE ALSO
|
||||
.BR mutter (1)
|
||||
.SH AUTHOR
|
||||
This manual page was written by Akira TAGOH <tagoh@debian.org>,
|
||||
for the Debian GNU/Linux system (but may be used by others).
|
43
doc/man/mutter-theme-viewer.1
Normal file
43
doc/man/mutter-theme-viewer.1
Normal file
@ -0,0 +1,43 @@
|
||||
.\" In .TH, FOO should be all caps, SECTION should be 1-8, maybe w/ subsection
|
||||
.\" other parms are allowed: see man(7), man(1)
|
||||
.\"
|
||||
.\" Based on template provided by Tom Christiansen <tchrist@jhereg.perl.com>.
|
||||
.\"
|
||||
.TH MUTTER-THEME-VIEWER 1 "1 June 2004"
|
||||
.SH NAME
|
||||
mutter-theme-viewer \- view mutter themes
|
||||
.SH SYNOPSIS
|
||||
.B mutter-theme-viewer
|
||||
[
|
||||
.I THEMENAME
|
||||
]
|
||||
.SH DESCRIPTION
|
||||
.\" Putting a newline after each sentence can generate better output.
|
||||
.B mutter-theme-viewer
|
||||
allows you to preview any installed Mutter theme.
|
||||
.PP
|
||||
When designing a new Mutter theme, you can use
|
||||
.B mutter-theme-viewer
|
||||
to measure the performance of a window frame option, and to preview
|
||||
the option.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.I THEMENAME
|
||||
Name of the theme to be shown (\fIAtlanta\fR by default).
|
||||
It is case-sensitive.
|
||||
.SH FILES
|
||||
.br
|
||||
.nf
|
||||
.TP
|
||||
.I /usr/share/themes
|
||||
system themes directory
|
||||
.TP
|
||||
.I /usr/share/themes/*/mutter-1/mutter-theme-1.xml
|
||||
theme specification file
|
||||
.SH AUTHOR
|
||||
This manual page was written by Jose M. Moya <josem@die.upm.es>, for
|
||||
the Debian GNU/Linux system (but may be used by others).
|
||||
.SH "SEE ALSO"
|
||||
.\" Always quote multiple words for .SH
|
||||
.BR mutter (1),
|
||||
.BR mutter-window-demo (1).
|
25
doc/man/mutter-window-demo.1
Normal file
25
doc/man/mutter-window-demo.1
Normal file
@ -0,0 +1,25 @@
|
||||
.\" In .TH, FOO should be all caps, SECTION should be 1-8, maybe w/ subsection
|
||||
.\" other parms are allowed: see man(7), man(1)
|
||||
.\"
|
||||
.\" Based on template provided by Tom Christiansen <tchrist@jhereg.perl.com>.
|
||||
.\"
|
||||
.TH MUTTER-WINDOW-DEMO 1 "1 June 2004"
|
||||
.SH NAME
|
||||
mutter-window-demo \- demo of window features
|
||||
.SH SYNOPSIS
|
||||
.B mutter-window-demo
|
||||
.SH DESCRIPTION
|
||||
.\" Putting a newline after each sentence can generate better output.
|
||||
This program demonstrates various kinds of windows that window
|
||||
managers and window manager themes should handle.
|
||||
.PP
|
||||
Be sure to tear off the menu and toolbar, those are also a special
|
||||
kind of window.
|
||||
.SH AUTHOR
|
||||
This manual page was written by Jose M. Moya <josem@die.upm.es>, for
|
||||
the Debian GNU/Linux system (but may be used by others).
|
||||
.SH "SEE ALSO"
|
||||
.\" Always quote multiple words for .SH
|
||||
.BR x-window-manager (1),
|
||||
.BR mutter (1),
|
||||
.BR mutter-theme-viewer (1).
|
60
doc/man/mutter.1
Normal file
60
doc/man/mutter.1
Normal file
@ -0,0 +1,60 @@
|
||||
.\" Hey, EMACS: -*- nroff -*-
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH MUTTER 1 "11 February 2006"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
MUTTER \- Clutter based compositing GTK2 Window Manager
|
||||
.SH SYNOPSIS
|
||||
.B mutter
|
||||
[\-\-display=\fIDISPLAY\fP] [\-\-replace] [\-\-sm\-client\-id=\fIID\fP] [\-\-sm\-disable] [\-\-sm\-save\-file=\fIFILENAME\fP] [\-\-version] [\-\-help]
|
||||
.SH DESCRIPTION
|
||||
This manual page documents briefly
|
||||
.B mutter\fP.
|
||||
.PP
|
||||
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
||||
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
||||
.\" respectively.
|
||||
\fBmutter\fP is a minimal X window manager aimed at nontechnical users and is designed to integrate well with the GNOME desktop. \fBmutter\fP lacks some features that may be expected by traditional UNIX or other technical users; these users may want to investigate other available window managers for use with GNOME or standalone.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B \-\-display=DISPLAY
|
||||
Connect to X display \fIDISPLAY\fP.
|
||||
.TP
|
||||
.B \-\-replace
|
||||
a window manager which is running is replaced by \fBmutter\fP. Users are encouraged to change the GNOME window manager by running the new WM with the --replace or -replace option, and subsequently saving the session.
|
||||
.TP
|
||||
.B \-\-sm\-client\-id=ID
|
||||
Specify a session management \fIID\fP.
|
||||
.TP
|
||||
.B \-\-sm\-disable
|
||||
Disable the session management.
|
||||
.TP
|
||||
.B \-\-sm\-save\-file=FILENAME
|
||||
Load a session from \fIFILENAME\fP.
|
||||
.TP
|
||||
.B \-\-version
|
||||
Print the version number.
|
||||
.TP
|
||||
.B \-?, \-\-help
|
||||
Show summary of options.
|
||||
.SH CONFIGURATION
|
||||
\fBmutter\fP configuration can be found under \fIPreferences\fP->\fIWindows\fP and \fIPreferences\fP->\fIKeyboard Shortcuts\fP on the menu-panel. Advanced configuration can be achieved directly through gsettings.
|
||||
.SH SEE ALSO
|
||||
.BR mutter-message (1)
|
||||
.SH AUTHOR
|
||||
The original manual page was written by Thom May <thom@debian.org>. It was updated by Akira TAGOH <tagoh@debian.org>
|
||||
for the Debian GNU/Linux system (with permission to use by others), and then updated by Luke Morton and Philip O'Brien
|
||||
for inclusion in mutter.
|
@ -1,273 +0,0 @@
|
||||
<!--
|
||||
DTD for Metacity themes, as of Metacity 2.4.1
|
||||
Author: Ross Burton <ross@burtonini.com>
|
||||
Copyright (C) 2002 Ross Burton
|
||||
Licensed under the GPL, version 2
|
||||
-->
|
||||
|
||||
<!-- Top-level element -->
|
||||
<!ELEMENT metacity_theme (info,(window|frame_style_set|frame_style|frame_geometry|constant|draw_ops|menu_icon)+)>
|
||||
|
||||
<!-- Theme metadata -->
|
||||
<!ELEMENT info (name?|author?|copyright?|date?|description?)*>
|
||||
<!ELEMENT name (#PCDATA)>
|
||||
<!ELEMENT author (#PCDATA)>
|
||||
<!ELEMENT copyright (#PCDATA)>
|
||||
<!ELEMENT date (#PCDATA)>
|
||||
<!ELEMENT description (#PCDATA)>
|
||||
|
||||
<!ENTITY % xyrequired "
|
||||
x CDATA #REQUIRED
|
||||
y CDATA #REQUIRED
|
||||
">
|
||||
|
||||
<!ENTITY % xyimplied "
|
||||
x CDATA #IMPLIED
|
||||
y CDATA #IMPLIED
|
||||
">
|
||||
|
||||
<!ENTITY % widthheightrequired "
|
||||
width CDATA #REQUIRED
|
||||
height CDATA #REQUIRED
|
||||
">
|
||||
|
||||
<!ENTITY % widthheightimplied "
|
||||
width CDATA #IMPLIED
|
||||
height CDATA #IMPLIED
|
||||
">
|
||||
|
||||
<!ENTITY % boolean "(true|false)">
|
||||
|
||||
<!ENTITY % piece_positions "
|
||||
(entire_background|titlebar|titlebar_middle|left_titlebar_edge|right_titlebar_edge|top_titlebar_edge|bottom_titlebar_edge|title|left_edge|right_edge|bottom_edge|overlay)
|
||||
">
|
||||
|
||||
<!ENTITY % gtk-state "
|
||||
state (normal|prelight|active|selected|insensitive) #REQUIRED
|
||||
">
|
||||
|
||||
<!ENTITY % gtk-shadow "
|
||||
shadow (none|in|out|etched_in|etched_out) #REQUIRED
|
||||
">
|
||||
|
||||
|
||||
<!-- The actual theme -->
|
||||
|
||||
<!ELEMENT window EMPTY>
|
||||
<!ATTLIST window
|
||||
type (normal|dialog|modal_dialog|menu|utility|border) #REQUIRED
|
||||
style_set CDATA #REQUIRED
|
||||
>
|
||||
|
||||
|
||||
<!ELEMENT frame_style_set (frame+)>
|
||||
<!ATTLIST frame_style_set
|
||||
name CDATA #REQUIRED
|
||||
parent CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT frame EMPTY>
|
||||
<!ATTLIST frame
|
||||
focus (yes|no) #REQUIRED
|
||||
state (normal|maximized|shaded|maximized_and_shaded) #REQUIRED
|
||||
resize (both|horizontal|vertical|none) #IMPLIED
|
||||
style CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT frame_style (piece|button)*>
|
||||
<!ATTLIST frame_style
|
||||
name CDATA #REQUIRED
|
||||
geometry CDATA #REQUIRED
|
||||
parent CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT piece (draw_ops?)>
|
||||
<!ATTLIST piece
|
||||
position %piece_positions; #REQUIRED
|
||||
draw_ops CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT button (draw_ops?)>
|
||||
<!ATTLIST button
|
||||
function (menu|minimize|maximize|close|left_left_background|left_middle_background|left_right_background|right_left_background|right_middle_background|right_right_background) #REQUIRED
|
||||
state (normal|prelight|pressed) #REQUIRED
|
||||
draw_ops CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT frame_geometry (border|(aspect_ratio|distance))+>
|
||||
<!ATTLIST frame_geometry
|
||||
name CDATA #REQUIRED
|
||||
parent CDATA #IMPLIED
|
||||
title_scale (xx-small|x-small|small|medium|large|x-large|xx-large) #IMPLIED
|
||||
has_title (true|false) 'true'
|
||||
rounded_top_left %boolean; #IMPLIED
|
||||
rounded_top_right %boolean; #IMPLIED
|
||||
rounded_bottom_left %boolean; #IMPLIED
|
||||
rounded_bottom_right %boolean; #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT distance EMPTY>
|
||||
<!ATTLIST distance
|
||||
name (left_width|right_width|bottom_height|title_vertical_pad|right_titlebar_edge|left_titlebar_edge|button_width|button_height) #REQUIRED
|
||||
value CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT border EMPTY>
|
||||
<!ATTLIST border
|
||||
name CDATA #REQUIRED
|
||||
top CDATA #REQUIRED
|
||||
bottom CDATA #REQUIRED
|
||||
left CDATA #REQUIRED
|
||||
right CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT aspect_ratio EMPTY>
|
||||
<!ATTLIST aspect_ratio
|
||||
name CDATA #REQUIRED
|
||||
value CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT draw_ops (line|rectangle|arc|tint|gradient|image|gtk_arrow|gtk_box|gtk_vline|icon|title|clip|include|tile)*>
|
||||
<!-- not sure about this.. maybe it should be removed. see #3478 in theme-parser.c -->
|
||||
<!ATTLIST draw_ops
|
||||
name CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT line EMPTY>
|
||||
<!ATTLIST line
|
||||
color CDATA #REQUIRED
|
||||
x1 CDATA #REQUIRED
|
||||
y1 CDATA #REQUIRED
|
||||
x2 CDATA #REQUIRED
|
||||
y2 CDATA #REQUIRED
|
||||
width CDATA #IMPLIED
|
||||
dash_on_length CDATA #IMPLIED
|
||||
dash_off_length CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT rectangle EMPTY>
|
||||
<!ATTLIST rectangle
|
||||
color CDATA #REQUIRED
|
||||
%xyrequired;
|
||||
%widthheightrequired;
|
||||
filled %boolean; 'false'
|
||||
>
|
||||
|
||||
<!ELEMENT arc EMPTY>
|
||||
<!ATTLIST arc
|
||||
color CDATA #REQUIRED
|
||||
%xyrequired;
|
||||
%widthheightrequired;
|
||||
start_angle CDATA #REQUIRED
|
||||
extent_angle CDATA #REQUIRED
|
||||
filled %boolean; 'false'
|
||||
>
|
||||
|
||||
<!ELEMENT icon EMPTY>
|
||||
<!ATTLIST icon
|
||||
%xyrequired;
|
||||
width CDATA #REQUIRED
|
||||
height CDATA #REQUIRED
|
||||
alpha CDATA #IMPLIED
|
||||
fill_type (tile|scale) 'scale'
|
||||
>
|
||||
|
||||
<!ELEMENT image EMPTY>
|
||||
<!ATTLIST image
|
||||
filename CDATA #REQUIRED
|
||||
colorize CDATA #IMPLIED
|
||||
%xyrequired;
|
||||
%widthheightrequired;
|
||||
alpha CDATA #IMPLIED
|
||||
fill_type (tile|scale) 'scale'
|
||||
>
|
||||
|
||||
<!ELEMENT tile EMPTY>
|
||||
<!ATTLIST tile
|
||||
name CDATA #REQUIRED
|
||||
%xyrequired;
|
||||
%widthheightrequired;
|
||||
tile_xoffset CDATA #IMPLIED
|
||||
tile_yoffset CDATA #IMPLIED
|
||||
tile_width CDATA #REQUIRED
|
||||
tile_height CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT clip EMPTY>
|
||||
<!ATTLIST clip
|
||||
%xyrequired;
|
||||
%widthheightrequired;
|
||||
>
|
||||
|
||||
<!ELEMENT title EMPTY>
|
||||
<!ATTLIST title
|
||||
color CDATA #REQUIRED
|
||||
%xyrequired;
|
||||
>
|
||||
|
||||
<!ELEMENT tint EMPTY>
|
||||
<!ATTLIST tint
|
||||
color CDATA #REQUIRED
|
||||
%xyrequired;
|
||||
%widthheightrequired;
|
||||
alpha CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT gtk_box EMPTY>
|
||||
<!ATTLIST gtk_box
|
||||
%gtk-state;
|
||||
%gtk-shadow;
|
||||
%xyrequired;
|
||||
%widthheightrequired;
|
||||
>
|
||||
|
||||
<!ELEMENT gtk_arrow EMPTY>
|
||||
<!ATTLIST gtk_arrow
|
||||
%gtk-state;
|
||||
%gtk-shadow;
|
||||
arrow (up|down|left|right) #REQUIRED
|
||||
%xyrequired;
|
||||
%widthheightrequired;
|
||||
filed CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT gtk_vline EMPTY>
|
||||
<!ATTLIST gtk_vline
|
||||
%gtk-state;
|
||||
x CDATA #REQUIRED
|
||||
y1 CDATA #REQUIRED
|
||||
y2 CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT gradient (color)+>
|
||||
<!ATTLIST gradient
|
||||
type (vertical|horizontal|diagonal) #REQUIRED
|
||||
%xyrequired;
|
||||
%widthheightrequired;
|
||||
alpha CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT color EMPTY>
|
||||
<!ATTLIST color
|
||||
value CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT include EMPTY>
|
||||
<!ATTLIST include
|
||||
name CDATA #REQUIRED
|
||||
%xyimplied;
|
||||
%widthheightimplied;
|
||||
>
|
||||
|
||||
<!ELEMENT constant EMPTY>
|
||||
<!ATTLIST constant
|
||||
name CDATA #REQUIRED
|
||||
value CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT menu_icon (draw_ops?)>
|
||||
<!ATTLIST menu_icon
|
||||
function (close|maximize|minimize|unmaximize) #REQUIRED
|
||||
%gtk-state;
|
||||
draw_ops CDATA #IMPLIED
|
||||
>
|
54
doc/strut-and-related-updating.txt
Normal file
54
doc/strut-and-related-updating.txt
Normal file
@ -0,0 +1,54 @@
|
||||
How updates happen for struts, workareas, and screen/xinerama regions/edges:
|
||||
One of three things causes meta_window_update_struts to be called
|
||||
(a) initial window map (window.c:meta_window_new_with_attrs())
|
||||
(b) update of _net_wm_strut* properties (window.c:process_property_notify())
|
||||
(c) screen resizes (e.g. via xrandr; from screen.c:meta_screen_resize_func())
|
||||
meta_window_update_struts (MetaWindow *window)
|
||||
- Gets new list of struts from window properties
|
||||
- Makes sure window doesn't single-handedly fill the screen
|
||||
- records new struts if different and calls invalidate_work_areas()
|
||||
invalidate_work_areas ()
|
||||
- Calls meta_workspace_invalidate_work_area() for each workspace it's on
|
||||
meta_workspace_invalidate_work_area()
|
||||
- Cleans out all strut lists
|
||||
- queues all windows for resizing
|
||||
- Calls meta_screen_queue_workarea_recalc (workspace->screen);
|
||||
meta_screen_queue_workarea_recalc()
|
||||
- Adds set_work_area_idle_func() as an idle handler
|
||||
|
||||
set_work_area_idle_func()
|
||||
- Calls set_work_area_hint()
|
||||
set_work_area_hint()
|
||||
- Calls meta_workspace_get_work_area_all_xineramas()
|
||||
- Sets _NET_WORKAREA property
|
||||
meta_workspace_get_work_area_all_xineramas()
|
||||
- Calls ensure_work_areas_validated()
|
||||
ensure_work_areas_validated()
|
||||
- Loops over xineramas
|
||||
- Loops over windows, then struts:
|
||||
- Adds struts to list first time through xinerama loop
|
||||
- Find the amount of the strut on the given xinerama for <dir>_strut
|
||||
- Just max the amount of the strut with the all_<dir>_strut
|
||||
- Makes sure there's a non-empty xinerama workarea
|
||||
- Record the xinerama workarea
|
||||
- Make sure there's a non-empty screen workarea
|
||||
- Record the screen workarea
|
||||
- Cache the spanning rects for the screen and xinerama regions
|
||||
- Cache the screen and xinerama edges
|
||||
|
||||
Alternatively to all the above, if the idle function for the screen
|
||||
has not yet fired, constraints.c:setup_constraint_info() can call
|
||||
either workspace.c:meta_workspace_get_onscreen_region() or
|
||||
workspace.c:meta_workspace_get_onxinerama_region() which in turn
|
||||
call workspace.c:ensure_work_areas_validated().
|
||||
|
||||
Meaning of related functions that might be difficult to tell apart:
|
||||
screen.c:meta_screen_get_current_xinerama ()
|
||||
- Finds out which xinerama the mouse is on with an XQueryPointer
|
||||
window.c:meta_window_get_work_area_current_xinerama()
|
||||
window.c:meta_window_get_work_area_for_xinerama()
|
||||
window.c:meta_window_get_work_area_all_xineramas ()
|
||||
- All three are for finding the intersection of workareas across
|
||||
multiple workspaces so that placement of windows can be
|
||||
determined in such a way that they remain in the workarea for
|
||||
all workspaces that they are on.
|
@ -1,6 +1,157 @@
|
||||
Docs on the theme format
|
||||
Themes are in a simple XML-subset format. There are multiple versions
|
||||
of the theme format, and a given theme can support more than one format.
|
||||
|
||||
Themes are in a simple XML-subset format.
|
||||
Version 1: THEMEDIR/metacity-1/metacity-theme-1.xml
|
||||
(original metacity format)
|
||||
Version 2: THEMEDIR/metacity-1/metacity-theme-2.xml
|
||||
Version 3: THEMEDIR/metacity-1/metacity-theme-3.xml
|
||||
|
||||
The subdirectory name is "metacity-1" in all versions.
|
||||
|
||||
As you might expect, older versions of metacity will not understand
|
||||
newer theme formats. However, newer versions will use old themes.
|
||||
Metacity will always use the newest theme format it understands that
|
||||
the X server supports. Some format versions are only supported if you
|
||||
have the right X server features.
|
||||
|
||||
Each format *requires* the corresponding filename. If you put version
|
||||
2 format features in the metacity-1/metacity-theme-1.xml file, then
|
||||
metacity will get angry.
|
||||
|
||||
This document has separate sections for each format version. You may
|
||||
want to read the document in reverse order, since the base features
|
||||
are discussed under version 1.
|
||||
|
||||
New Features in Theme Format Version 3.4
|
||||
========================================
|
||||
|
||||
An additional color type is added to pick up custom colors defined
|
||||
in the GTK+ theme's CSS:
|
||||
|
||||
gtk:custom(name,fallback)
|
||||
|
||||
where <name> refers to a custom color defined with @define-color in
|
||||
the GTK+ theme, and <fallback> provides an alternative color definition
|
||||
in case the color referenced by <name> is not found.
|
||||
|
||||
New Features in Theme Format Version 3.3
|
||||
========================================
|
||||
|
||||
Add two additional button background functions - left_single_background and
|
||||
right_single_background - for button groups with just a single button.
|
||||
|
||||
There are now additional frame states to style left/right tiled windows
|
||||
differently ("tiled_left", "tiled_right", "tiled_left_and_shaded",
|
||||
"tiled_right_and_shaded").
|
||||
|
||||
New Features in Theme Format Version 3.2
|
||||
========================================
|
||||
|
||||
A new window type 'attached' is added for modal dialogs which are
|
||||
attached to their parent window. (When the attach_modal_dialogs preference
|
||||
is turned on.) If no style is defined for the 'attached' window type,
|
||||
the 'border' window type will be used instead.
|
||||
|
||||
New Features in Theme Format Version 3.1
|
||||
========================================
|
||||
|
||||
Additional predefined variables are added for positioning expressions:
|
||||
|
||||
frame_x_center: the X center of the entire frame, with respect to the
|
||||
piece currently being drawn.
|
||||
frame_y_center: the Y center of the entire frame, with respect to the
|
||||
piece currently being drawn.
|
||||
|
||||
The <title/> element now supports an "ellipsize_width" attribute. When
|
||||
specified, this gives a width at which to ellipsize the title. If not
|
||||
specified, the title will simply be clipped to the title area.
|
||||
|
||||
New Features in Theme Format Version 3
|
||||
======================================
|
||||
|
||||
Format version 3 has exactly one new feature; any element in the file
|
||||
can now have a version attribute:
|
||||
|
||||
version="[<|<=|=>|>] MAJOR.MINOR"
|
||||
|
||||
(< and > should be to be entity escaped as < and >). If this
|
||||
version check is not met, then the element and its children will be
|
||||
ignored. This allows having alternate sections of the theme file for
|
||||
older and newer version of the Metacity theme format.
|
||||
|
||||
When placed on the toplevel <metacity_theme> element, an unsatisfied
|
||||
version check will not just cause the contents of the file to be
|
||||
ignored, it will also cause the lookup of a theme file to proceed on
|
||||
and look for an older format 2 or format 1 file. This allows making a
|
||||
metacity-theme-3.xml file that is only used the format version 3.2 or
|
||||
newer is supported, and using metacity-theme-1.xml for older window
|
||||
managers.
|
||||
|
||||
New Features in Theme Format Version 2
|
||||
======================================
|
||||
|
||||
The optional attributes rounded_top_left, rounded_top_right,
|
||||
rounded_bottom_left and rounded_bottom_right on <frame_geometry>
|
||||
should now be the radius of the corner in pixels. You may still use
|
||||
the values "false" for 0 and "true" for 5, which means v1 values will
|
||||
still work just fine.
|
||||
|
||||
<frame_geometry> has a new optional attribute, hide_buttons. If this
|
||||
is true, no buttons will be displayed on the titlebar.
|
||||
|
||||
Anywhere you can use a positive integer, you can use an integer constant.
|
||||
|
||||
As well as constant integers and reals, you may define constant colours,
|
||||
thus:
|
||||
<constant name="RevoltingPink" value="#FF00FF"/>
|
||||
<constant name="Background" value="gtk:bg[NORMAL]"/>
|
||||
|
||||
<frame_style> has two new optional attributes, background and alpha.
|
||||
If you specify alpha, you must specify background. background is a
|
||||
colour used for the background of the frame. alpha is the transparency
|
||||
as a real between 0.0 and 1.0. If the current X server does not support
|
||||
alpha channels, the value is ignored.
|
||||
|
||||
The filename attribute of <image> may begin with "theme:". If so, the
|
||||
rest of the string is the name of a theme icon. The 64x64 version of the
|
||||
icon is used, except for fallback mini_icons, which use the 16x16 version.
|
||||
This does not affect ordinary resizing. For example:
|
||||
<button function="close" state="normal">
|
||||
<draw_ops>
|
||||
<include name="active_button"/>
|
||||
<image filename="theme:gnome-logout" x="2" y="2"
|
||||
width="width-4" height="height-4"/>
|
||||
<!-- Note: not "theme:gnome-logout.png" or similar. -->
|
||||
</draw_ops>
|
||||
</button>
|
||||
|
||||
<menu_icon>s are parsed but ignored.
|
||||
|
||||
Fallback icons can be specified using <fallback>. There are two
|
||||
optional arguments, icon and mini_icon. The values of these arguments
|
||||
are identical to that of the filename attribute of <image>. Fallback
|
||||
icons are used when a window does not supply its own icon. If a fallback
|
||||
icon is not specified with <fallback>, Metacity will use a built-in
|
||||
icon, as in metacity-theme-1.
|
||||
|
||||
The <arc> element, as well as the original start_angle and end_angle
|
||||
attributes, may be given from and to attributes. The values of these
|
||||
attributes are given in degrees clockwise, with 0 being straight up.
|
||||
For example:
|
||||
<arc from="0.0" to="90.0" filled="true" color="#FF00FF"
|
||||
x="0" y="5" width="15" height="15"/>
|
||||
|
||||
<frame state="shaded"> may now take an optional resize attribute, with
|
||||
the same interpretation as the resize attribute on <frame state="normal">.
|
||||
If this attribute is omitted for state="shaded", it defaults to "both".
|
||||
(If it is omitted for state="normal", it remains an error.)
|
||||
|
||||
In addition to the four <button> functions which are required in
|
||||
metacity-theme-1, there are six new functions in metacity-theme-2:
|
||||
shade, unshade, above, unabove, stick and unstick.
|
||||
|
||||
Overview of Theme Format Version 1
|
||||
==================================
|
||||
|
||||
<?xml version="1.0"?>
|
||||
<metacity_theme>
|
||||
|
49
mutter.doap
Normal file
49
mutter.doap
Normal file
@ -0,0 +1,49 @@
|
||||
<Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
|
||||
xmlns:foaf="http://xmlns.com/foaf/0.1/"
|
||||
xmlns:gnome="http://api.gnome.org/doap-extensions#"
|
||||
xmlns="http://usefulinc.com/ns/doap#">
|
||||
|
||||
<name xml:lang="en">mutter</name>
|
||||
<shortdesc xml:lang="en">Window and compositing manager based on Clutter</shortdesc>
|
||||
<description>Mutter is a window and compositing manager that displays and
|
||||
manages your desktop via OpenGL. Mutter combines a sophisticated display engine
|
||||
using the Clutter toolkit with solid window-management logic inherited from the
|
||||
Metacity window manager.
|
||||
|
||||
While Mutter can be used stand-alone, it is primarily intended to be used as
|
||||
the display core of a larger system such as GNOME Shell. For this reason,
|
||||
Mutter is very extensible via plugins, which are used both to add fancy visual
|
||||
effects and to rework the window management behaviors to meet the needs of the
|
||||
environment.</description>
|
||||
<!--
|
||||
<homepage rdf:resource="http://www.gnome.org/" />
|
||||
-->
|
||||
<mailing-list rdf:resource="http://mail.gnome.org/mailman/listinfo/gnome-shell-list" />
|
||||
<download-page rdf:resource="http://download.gnome.org/sources/mutter/" />
|
||||
<bug-database rdf:resource="http://bugzilla.gnome.org/browse.cgi?product=mutter" />
|
||||
|
||||
<category rdf:resource="http://api.gnome.org/doap-extensions#desktop" />
|
||||
|
||||
<maintainer>
|
||||
<foaf:Person>
|
||||
<foaf:name>Tomas Frydrych</foaf:name>
|
||||
<foaf:mbox rdf:resource="mailto:tf@linux.intel.com" />
|
||||
<gnome:userid>tomasf</gnome:userid>
|
||||
</foaf:Person>
|
||||
</maintainer>
|
||||
<maintainer>
|
||||
<foaf:Person>
|
||||
<foaf:name>Owen Taylor</foaf:name>
|
||||
<foaf:mbox rdf:resource="mailto:otaylor@redhat.com" />
|
||||
<gnome:userid>otaylor</gnome:userid>
|
||||
</foaf:Person>
|
||||
</maintainer>
|
||||
<maintainer>
|
||||
<foaf:Person>
|
||||
<foaf:name>Florian Müllner</foaf:name>
|
||||
<foaf:mbox rdf:resource="mailto:fmuellner@gnome.org" />
|
||||
<gnome:userid>fmuellner</gnome:userid>
|
||||
</foaf:Person>
|
||||
</maintainer>
|
||||
</Project>
|
@ -9,3 +9,4 @@ cat-id-tbl.c
|
||||
messages
|
||||
missing
|
||||
stamp-cat-id
|
||||
stamp-it
|
||||
|
3776
po/ChangeLog
3776
po/ChangeLog
File diff suppressed because it is too large
Load Diff
94
po/LINGUAS
Normal file
94
po/LINGUAS
Normal file
@ -0,0 +1,94 @@
|
||||
# please keep this list sorted alphabetically
|
||||
#
|
||||
am
|
||||
ar
|
||||
as
|
||||
ast
|
||||
az
|
||||
be
|
||||
be@latin
|
||||
bg
|
||||
bn
|
||||
bn_IN
|
||||
br
|
||||
bs
|
||||
ca
|
||||
ca@valencia
|
||||
cs
|
||||
cy
|
||||
da
|
||||
de
|
||||
dz
|
||||
el
|
||||
en_CA
|
||||
en_GB
|
||||
eo
|
||||
es
|
||||
et
|
||||
eu
|
||||
fa
|
||||
fi
|
||||
fr
|
||||
ga
|
||||
gl
|
||||
gu
|
||||
ha
|
||||
he
|
||||
hi
|
||||
hr
|
||||
hu
|
||||
hy
|
||||
id
|
||||
ig
|
||||
is
|
||||
it
|
||||
ja
|
||||
ka
|
||||
kn
|
||||
ko
|
||||
ku
|
||||
la
|
||||
lt
|
||||
lv
|
||||
mai
|
||||
mg
|
||||
mk
|
||||
ml
|
||||
mn
|
||||
mr
|
||||
ms
|
||||
nb
|
||||
nds
|
||||
ne
|
||||
nl
|
||||
nn
|
||||
oc
|
||||
or
|
||||
pa
|
||||
pl
|
||||
pt
|
||||
pt_BR
|
||||
ro
|
||||
ru
|
||||
rw
|
||||
si
|
||||
sk
|
||||
sl
|
||||
sq
|
||||
sr
|
||||
sr@latin
|
||||
sv
|
||||
ta
|
||||
te
|
||||
th
|
||||
tk
|
||||
tr
|
||||
ug
|
||||
uk
|
||||
vi
|
||||
wa
|
||||
xh
|
||||
yo
|
||||
zh_CN
|
||||
zh_HK
|
||||
zh_TW
|
@ -1,27 +1,33 @@
|
||||
# List of source files containing translatable strings.
|
||||
# Please keep this file sorted alphabetically.
|
||||
src/tools/metacity-message.c
|
||||
src/delete.c
|
||||
src/display.c
|
||||
src/errors.c
|
||||
src/frames.c
|
||||
src/keybindings.c
|
||||
src/main.c
|
||||
src/menu.c
|
||||
src/metaaccellabel.c
|
||||
src/metacity-dialog.c
|
||||
src/metacity.desktop.in
|
||||
src/metacity.schemas.in
|
||||
src/prefs.c
|
||||
src/resizepopup.c
|
||||
src/screen.c
|
||||
src/session.c
|
||||
src/theme-parser.c
|
||||
src/theme.c
|
||||
src/tools/metacity-properties.desktop.in
|
||||
src/tools/metacity-properties.glade
|
||||
src/util.c
|
||||
src/window-props.c
|
||||
src/window.c
|
||||
src/workspace.c
|
||||
src/xprops.c
|
||||
src/50-mutter-navigation.xml.in
|
||||
src/50-mutter-system.xml.in
|
||||
src/50-mutter-windows.xml.in
|
||||
src/compositor/compositor.c
|
||||
src/core/bell.c
|
||||
src/core/core.c
|
||||
src/core/delete.c
|
||||
src/core/display.c
|
||||
src/core/errors.c
|
||||
src/core/keybindings.c
|
||||
src/core/main.c
|
||||
src/core/mutter.c
|
||||
src/core/prefs.c
|
||||
src/core/screen.c
|
||||
src/core/session.c
|
||||
src/core/util.c
|
||||
src/core/window.c
|
||||
src/core/window-props.c
|
||||
src/core/xprops.c
|
||||
src/mutter.desktop.in
|
||||
src/mutter-wm.desktop.in
|
||||
src/org.gnome.mutter.gschema.xml.in
|
||||
src/tools/mutter-message.c
|
||||
src/ui/frames.c
|
||||
src/ui/menu.c
|
||||
src/ui/metaaccellabel.c
|
||||
src/ui/resizepopup.c
|
||||
src/ui/theme.c
|
||||
src/ui/theme-parser.c
|
||||
src/ui/theme-viewer.c
|
||||
|
||||
|
2
po/POTFILES.skip
Normal file
2
po/POTFILES.skip
Normal file
@ -0,0 +1,2 @@
|
||||
src/metacity.schemas.in
|
||||
|
3885
po/be@latin.po
Normal file
3885
po/be@latin.po
Normal file
File diff suppressed because it is too large
Load Diff
2321
po/bn_IN.po
Normal file
2321
po/bn_IN.po
Normal file
File diff suppressed because it is too large
Load Diff
4062
po/ca@valencia.po
Normal file
4062
po/ca@valencia.po
Normal file
File diff suppressed because it is too large
Load Diff
3631
po/en_CA.po
Normal file
3631
po/en_CA.po
Normal file
File diff suppressed because it is too large
Load Diff
6124
po/en_GB.po
6124
po/en_GB.po
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user