Compare commits
2765 Commits
wip/fmuell
...
wip/carlos
Author | SHA1 | Date | |
---|---|---|---|
f0cf611e1b | |||
beddbc0583 | |||
2f840174cb | |||
015559a207 | |||
98d6c4e8dd | |||
1675b54738 | |||
44cbd1e718 | |||
0dc1e1e99a | |||
1029e683d3 | |||
cf1d09b482 | |||
a436226266 | |||
33ff3dc44f | |||
2e77ed712c | |||
9d6ccb6072 | |||
5091eab280 | |||
6d38bc69ca | |||
adc8b1ba89 | |||
38777b41a5 | |||
263320696e | |||
e6153bb578 | |||
c723a1b72a | |||
0b56416d30 | |||
0c5716b018 | |||
1fa1333e13 | |||
6edd3c4b93 | |||
72a8522a10 | |||
b91903555a | |||
6b78f58a75 | |||
e62c0757c3 | |||
9168f6055e | |||
8993de76f0 | |||
01fedeed8f | |||
757e4b6731 | |||
c2b70101f2 | |||
9d4a3a614d | |||
2af7264cff | |||
a96c8d91b5 | |||
3541a57570 | |||
18155fc6ea | |||
b83c93ad62 | |||
d0dab5a6d1 | |||
c9708b140c | |||
dd846f1ba2 | |||
ec3653240a | |||
b689b35b7d | |||
01a927f388 | |||
41d5b1455f | |||
b710c6e275 | |||
4c9f42eea9 | |||
2b0731ab81 | |||
a9b803f075 | |||
73436b5276 | |||
20dcc8aa87 | |||
fdac0602db | |||
e5272c84d7 | |||
1812db7aa8 | |||
260405a49e | |||
71d37bffdf | |||
95436a08b5 | |||
13137aad9d | |||
71f55643b2 | |||
5c550daecb | |||
4e0492c517 | |||
f386103bc1 | |||
26e66aa4fd | |||
4420f52080 | |||
b4082063de | |||
bde974087a | |||
d93b51e135 | |||
730a68dffc | |||
f06c257952 | |||
7afab2c28c | |||
16a18f2ae7 | |||
704e08dc08 | |||
60311aa4d1 | |||
cceb74706a | |||
578ae29ed2 | |||
701d110493 | |||
d1cbf6c7a9 | |||
b64ce217e4 | |||
783dbe2aa9 | |||
f4ce1cf462 | |||
d04d6e069d | |||
40de201056 | |||
18234ea91a | |||
e3f3297cba | |||
e1ea1d2954 | |||
8e23ff8111 | |||
8a50a8e64c | |||
fae207811a | |||
1d86424942 | |||
2bc8175219 | |||
1e31caf0b8 | |||
8e24ac6b26 | |||
427b9ac75f | |||
f50205e9b4 | |||
168cfdd86b | |||
d339c94c18 | |||
97509bf1d2 | |||
4a9c2ee805 | |||
51e1e6d15c | |||
f0d2509dc3 | |||
95bb194356 | |||
de8b43a45d | |||
82be010fd8 | |||
2a0c116757 | |||
6cdaec4001 | |||
ed4baec40f | |||
9e8883c922 | |||
9bb64da895 | |||
049f348e25 | |||
be190cc4d9 | |||
0893789b34 | |||
7b5c6b657a | |||
9363fd3524 | |||
0ad242a81e | |||
7031449f01 | |||
06df79286d | |||
9297d87775 | |||
ef56b14553 | |||
30ff76272e | |||
52a7481ba6 | |||
14cfd74f08 | |||
fa97f7141b | |||
03bcd4c05b | |||
89574abc83 | |||
602078cbde | |||
96f63b08c2 | |||
d66cd0d206 | |||
ff13ad9e71 | |||
5e4b65d37e | |||
51fd0875d1 | |||
75f8903c7e | |||
124eb1ca18 | |||
b5d925817f | |||
c134091268 | |||
ff89693998 | |||
c26860dcb7 | |||
6757c7d20a | |||
751189253a | |||
21187a4cec | |||
b7db56ca9b | |||
261d36ba72 | |||
1e72874192 | |||
f29dbd1f18 | |||
b60836932a | |||
bf47d1b22d | |||
4ea0fca4fc | |||
809f820cd4 | |||
75235624b2 | |||
5ea54426b9 | |||
4aabcd9e7d | |||
918b3eeb42 | |||
482c655590 | |||
86b5a43008 | |||
d7cb2eeebc | |||
770231c2d7 | |||
ecdf62d63e | |||
d885486397 | |||
1524abc947 | |||
cb9842e4a4 | |||
140ab4dec1 | |||
845122497b | |||
d51a622fc0 | |||
e90466347a | |||
73f8c1c482 | |||
0ff75941ea | |||
e4bb2037ca | |||
481014ac9e | |||
6dbcb5f9da | |||
c1f06daf88 | |||
0717f76362 | |||
da738988cd | |||
e86e88ea47 | |||
ae338af1e8 | |||
3f9cc0ed37 | |||
8f8ecdb983 | |||
8f547c9d5d | |||
821f3e8ddf | |||
81be25bbd6 | |||
26d27fdbf8 | |||
c7e597cf72 | |||
e4db68a1da | |||
980a90f8fb | |||
87e4bf52b7 | |||
a368df61ac | |||
5e66b104dc | |||
08a5f41505 | |||
ec36762309 | |||
aa70020bc8 | |||
1e77e6fc79 | |||
68203e7091 | |||
cff0752bcc | |||
45d8e11123 | |||
5aee714b70 | |||
3c3c3b7c69 | |||
6ba2913075 | |||
75c4e1cd63 | |||
fb4a4ca4a2 | |||
4c2c1297be | |||
c5dbdad5fc | |||
4e05bcd3b6 | |||
3555550d5e | |||
8e05fa2728 | |||
d7c3050e2d | |||
89ba8562c3 | |||
82da73baff | |||
b2eeda9b46 | |||
0db41a3773 | |||
8d7f7e61dd | |||
3f4b253dac | |||
e4cbe5126a | |||
8357739ef8 | |||
6bef9334b7 | |||
8c49f45ac8 | |||
46600740fe | |||
c281e868a0 | |||
039431a73f | |||
d4f8ea1c53 | |||
96f5e2b33e | |||
93a542d52c | |||
f4fcba74ff | |||
cadbf7cd8b | |||
dd8e1aef51 | |||
15dc37a139 | |||
c23ad83c59 | |||
4a6f550acb | |||
8078d78c30 | |||
d7185d71c6 | |||
522ecba180 | |||
9b22f6183f | |||
b2c35e4fb0 | |||
af543daf1c | |||
baeb4079ee | |||
f91f9801b4 | |||
c5634335b0 | |||
2b4317349f | |||
96bfd1f8be | |||
33ab53068e | |||
40123ae6da | |||
df149524d4 | |||
f0ee9cdcf8 | |||
a3257e8df5 | |||
d2cf13eff4 | |||
8cd352b72b | |||
c210052dc6 | |||
0561af66e7 | |||
1e9b170d87 | |||
be02f76aa7 | |||
687928e7b7 | |||
ffdf3feb04 | |||
a60b8b3b50 | |||
3d6add68c7 | |||
85e055ffe3 | |||
1691e422e7 | |||
f442c9510e | |||
0de98eb772 | |||
30172b5625 | |||
8ae99a6898 | |||
5cfe5bf8c8 | |||
c790c01a3b | |||
d4a947b475 | |||
60d7999b6a | |||
c040d08b97 | |||
3a53b25873 | |||
d8e6f654a3 | |||
fdfcacf1db | |||
d3efbcce9b | |||
ac34dbe353 | |||
e0f3e13456 | |||
fdd9def922 | |||
771050f4d7 | |||
8451df977c | |||
ff55cf017e | |||
d36a180852 | |||
12c7f693d0 | |||
e0a8cb565e | |||
46547ae027 | |||
68745328df | |||
4582d7a183 | |||
cc5ed2fbf5 | |||
a2545d186a | |||
1ea22a5281 | |||
090057d2df | |||
b3aab7f401 | |||
8154728d09 | |||
5569090d1c | |||
fc3bc7678d | |||
8914a46669 | |||
e7ec373aee | |||
fe131f926d | |||
35d21c0bca | |||
b487846c0a | |||
7bbce1d5ad | |||
bf40d96a83 | |||
2d650e51a5 | |||
85d2837466 | |||
25985868e8 | |||
393c6c6805 | |||
775d6ec431 | |||
988f996407 | |||
315c8820ca | |||
8a89de04a2 | |||
63abfc163d | |||
f58cb34065 | |||
ece1329145 | |||
989118981b | |||
c511c469fe | |||
dac05c7e53 | |||
c90e7ce258 | |||
963f96292d | |||
989ee6593b | |||
2a8eea1ff5 | |||
55c287280b | |||
1fdd4ff313 | |||
3522338b3d | |||
61e3349dc7 | |||
dc27db0897 | |||
f09fbb19cf | |||
846fa77b37 | |||
b57bcf823f | |||
548e19a7cd | |||
4ae04d5aa8 | |||
5d5ca80d17 | |||
d81237b9d6 | |||
71b3b03b2f | |||
8c909e37e9 | |||
6508fa4349 | |||
ce8fb83c36 | |||
58ec607818 | |||
f06223df48 | |||
9a8ced9f5b | |||
67c45e5648 | |||
b88ed3f251 | |||
669b0f193a | |||
9cad7ae975 | |||
48e6a58250 | |||
d2583aa47b | |||
0ab34fe21f | |||
0f947d4ff9 | |||
9dc421875b | |||
9c3c9a155e | |||
faaed642a7 | |||
9b99b67fea | |||
693dd79d28 | |||
400d045a6a | |||
e20cf1ac78 | |||
8d4e650a95 | |||
82fd68b985 | |||
6ddd43f361 | |||
4e2ae30a47 | |||
32bc064d10 | |||
87606c6a6b | |||
955afb8711 | |||
3309031fd1 | |||
a2235c269a | |||
1cf2c9edd0 | |||
64a3ecf9b1 | |||
f144ed6e87 | |||
a47e0f9845 | |||
0737c8f416 | |||
fba350eaad | |||
6d5e93b00b | |||
f526e592fe | |||
751a94ab5d | |||
e0e128e207 | |||
137e6c8493 | |||
72751c2d92 | |||
b84fa852f6 | |||
d20961f323 | |||
5a01395a2b | |||
e59ca7053b | |||
6895592a7b | |||
eed27a2a4c | |||
43c6afa80f | |||
7d60f418e7 | |||
94dca1606f | |||
27774582b6 | |||
7dc08b06b1 | |||
a9d73b1017 | |||
25e4d0ba8b | |||
2d56395921 | |||
0ecddafc20 | |||
af34c8d2f4 | |||
5223599145 | |||
c96af776d6 | |||
34da48453e | |||
13dcd78be1 | |||
3bfa9916da | |||
b17017679b | |||
9d7832ea44 | |||
49605c7b00 | |||
bf8b9cecf5 | |||
c291291304 | |||
e08a4acd06 | |||
0397a104ba | |||
a41c1d4fda | |||
8ae3ed907a | |||
31cd8f738c | |||
a4cd9e0038 | |||
e06109c23c | |||
05485fe04c | |||
13062af7ef | |||
5e254666b0 | |||
d29eb8646a | |||
f1af37f220 | |||
d3880c0bff | |||
4dfa39457e | |||
325ff73c5b | |||
1fa4e3b1b2 | |||
f89091d0f0 | |||
859927df39 | |||
e7512fcd79 | |||
2b70151794 | |||
153b7d525d | |||
2e80995f19 | |||
9232cbf8a7 | |||
55f74bb863 | |||
b02e3719b3 | |||
3ba4304da9 | |||
49d6db34b7 | |||
63a0e521fd | |||
c00d79bae2 | |||
30d902f898 | |||
8f9da6f801 | |||
20648e9207 | |||
614fe202e0 | |||
c3646a7642 | |||
772df91762 | |||
c90910731f | |||
ba69cd99d1 | |||
fb6e341efd | |||
3dc4f01113 | |||
d94d0f60c8 | |||
8d79f6f4c8 | |||
c5e5bb0be1 | |||
8d139bbd95 | |||
fb1bb291eb | |||
3199620a83 | |||
c88bb66369 | |||
a60d57ea1f | |||
527ce66cd4 | |||
40415a6849 | |||
1ff638a51f | |||
2a9ccf2e2c | |||
2909d91c13 | |||
0dba12193d | |||
02f40b3b63 | |||
1fd51efc7f | |||
6f881f232e | |||
be12c71534 | |||
6aa1b817c9 | |||
300961e19e | |||
b191e9ef91 | |||
5ec5978d4a | |||
f4d90bc127 | |||
bfa34914db | |||
8d1e4659d1 | |||
b3b91f1699 | |||
ff4c5270d3 | |||
e240f7ea59 | |||
9f1ad5d86d | |||
a1ab32af0f | |||
3fac0632a8 | |||
c2b518929d | |||
c422d82752 | |||
da0c7fc2b6 | |||
167bc080d9 | |||
7d7a15f978 | |||
1b5cf0b8a8 | |||
306b005943 | |||
d229abf07d | |||
6f6251c0bc | |||
fd034e3551 | |||
f9bee05d49 | |||
37c6fbc6b2 | |||
9719604b79 | |||
b6262f0666 | |||
6c0bd207e9 | |||
91b13effc8 | |||
143ab6ac7f | |||
3e5b90dbba | |||
b82039e324 | |||
83862d04a0 | |||
52d07f6d9b | |||
21de88c3ba | |||
456ca3d3e0 | |||
f4ba3e4ab8 | |||
d4db5a59c1 | |||
4aee87a31b | |||
e8f5a842b1 | |||
5c681a76b6 | |||
53a24e6ddd | |||
b27c89f836 | |||
9f870aa1c7 | |||
c9cfeb8318 | |||
497e66ce6a | |||
bc973b80d7 | |||
85846d88f0 | |||
6b7c85b079 | |||
d80ef67d1d | |||
62f3457a95 | |||
636ab4b0e9 | |||
23e382dd33 | |||
f5a170ce46 | |||
fbd6beea2c | |||
360f5b1642 | |||
f0a785df9d | |||
e2c1bfbedd | |||
7e5a1cfd90 | |||
07deda593a | |||
1ca39e8586 | |||
402fd8ec29 | |||
fbe2e30f38 | |||
fb6ead2881 | |||
7ff7fb5d3b | |||
8030d9ad32 | |||
45bc850715 | |||
51a913730e | |||
0a4974ac8c | |||
1666fa195d | |||
a9df4e7516 | |||
343b3351f1 | |||
407b12c3cb | |||
455a8f3076 | |||
5067bda61a | |||
e138b6e3af | |||
9bc9d5165f | |||
26c2cb9f65 | |||
da44649e6f | |||
a0def23940 | |||
f49b58cf97 | |||
cadd9a99c0 | |||
7061889a29 | |||
764527c8c9 | |||
18742fcc32 | |||
5c33fe4a0a | |||
4f427f4e0d | |||
6d3c740b37 | |||
34c4627db9 | |||
b08b125df6 | |||
50301bcfd4 | |||
c2cacc63ee | |||
c226081a23 | |||
16f4e4dc4c | |||
308b58175f | |||
454e3fd39a | |||
e4d72fb2b0 | |||
f3fcc4adb7 | |||
867587ef4c | |||
b68fb35783 | |||
8dfed7e762 | |||
97fe4f761a | |||
ba8210ea98 | |||
656168543f | |||
8378c9c9e0 | |||
de16fe8dff | |||
793f053309 | |||
bea34da289 | |||
aafec16f49 | |||
73df61f36d | |||
39e6375aff | |||
ed21a4e5c1 | |||
73472ba6a7 | |||
702417ce83 | |||
766e9034e2 | |||
91748aedb7 | |||
4783d767d6 | |||
dedbf0cb09 | |||
e5b7462b94 | |||
48b0a91385 | |||
6170bea283 | |||
dcceb615bf | |||
da673639ca | |||
dd7727e315 | |||
f3ba1e65ba | |||
f8b4696211 | |||
d71d85e90c | |||
660a2b6e62 | |||
cc347bf6d8 | |||
26ffeaae47 | |||
01a57206bc | |||
279072795f | |||
c89d6a633a | |||
fecc0c06ac | |||
512862f2d7 | |||
a90fcb7ddb | |||
6baf490aab | |||
f971b8426d | |||
83c6b2ab48 | |||
24742f3566 | |||
03a46be5c7 | |||
9a26b970f9 | |||
2ef71b62df | |||
766288eec1 | |||
53e8285cf0 | |||
ff844a2a81 | |||
78997cb7eb | |||
f52574bd28 | |||
e6a814fac8 | |||
ddb85c03c3 | |||
66c4b1a8b6 | |||
11daf14e80 | |||
35484151ce | |||
1bccbe7f11 | |||
b4162afa65 | |||
eb51942a05 | |||
23e5cd4e10 | |||
13f3f75303 | |||
3dd8ffc2bb | |||
541847d8b6 | |||
fb9854c003 | |||
c748b9de5c | |||
34e85342d8 | |||
91b7474d5a | |||
d76162c1c0 | |||
2b517e352d | |||
08203c9c1e | |||
d29e5765ba | |||
61beccf733 | |||
ffb8bd5fa7 | |||
7f6e2ff36b | |||
7d94bfa642 | |||
eb3c857f23 | |||
a096ed37d6 | |||
498a743c08 | |||
2c91b6164c | |||
04352ae158 | |||
5c5dc03b78 | |||
8a89e22e8e | |||
8f851e8adf | |||
49e4757c0b | |||
dc002a61eb | |||
bea3987f3e | |||
7cd37a4017 | |||
3d69fa8b9c | |||
3a52bfbc0f | |||
38c0f3bbf2 | |||
7b1533caf7 | |||
afd83d929e | |||
d9e8a525de | |||
b25142c517 | |||
6893fc3810 | |||
13ef33ae0a | |||
f8886468ce | |||
3bf0511f1b | |||
1b485427cf | |||
ebf04e3a95 | |||
2f78b8428b | |||
00eef6cd5d | |||
5c031200ce | |||
4340260c49 | |||
96e534796f | |||
3ee878491b | |||
b92ddc0d39 | |||
c8a4a91681 | |||
e572d5d08c | |||
9829d56bfa | |||
b30d999878 | |||
35b62baf6e | |||
39f61fc41c | |||
d3939a38a3 | |||
b97fc02e57 | |||
ea1adea24d | |||
eb7533bbf1 | |||
69ea038a8f | |||
b80115dc6e | |||
36b8dcbe07 | |||
07fa5ef849 | |||
d9a75412c3 | |||
66f9a9df81 | |||
4bfdd677e3 | |||
002160e524 | |||
f2df347ddb | |||
799bbdb503 | |||
1aff64a38b | |||
574c560677 | |||
f8db5aa106 | |||
b18469427e | |||
72c4f148ef | |||
94f6976ddd | |||
be187f4149 | |||
1b872c1195 | |||
89f2187d72 | |||
943df86cb0 | |||
a5a6c699c3 | |||
a0467bf875 | |||
b1da3ae772 | |||
8af466e34d | |||
66c7616892 | |||
c05098cd12 | |||
4723dd1f4c | |||
7e4c32ec1f | |||
3d443d5b17 | |||
3155d03d9e | |||
989c0ee49e | |||
69f6c43b60 | |||
bf2d012e40 | |||
4d773a5ce9 | |||
711d4ba65c | |||
4490463513 | |||
1ec5117715 | |||
bf367daaba | |||
1de008f2d5 | |||
4baa091bc5 | |||
cb7d1925ef | |||
3ddae9d815 | |||
e22421a25a | |||
09a1e61c63 | |||
7345a6f276 | |||
fda938175e | |||
3a39fb5ab8 | |||
1a0ec782b5 | |||
a96753f085 | |||
4ff94f80a0 | |||
e6d4581959 | |||
07bbcb1b48 | |||
f4ea9074d0 | |||
d4ee2e8bbf | |||
cf82d5ba85 | |||
5e04f6eb23 | |||
0dd171a7c8 | |||
837fbbf417 | |||
d7b61e7281 | |||
073da0806c | |||
ff54b0d35e | |||
ff2a736193 | |||
c6cf81f28b | |||
104d1ae151 | |||
12e14884ef | |||
3c4a5a67e2 | |||
e4f9efc134 | |||
bd665df321 | |||
bd197789c1 | |||
daff787a62 | |||
ff1343611f | |||
da05c85f3c | |||
648179a2db | |||
a5ad81d923 | |||
abfa61abc5 | |||
abdfaeb444 | |||
06b690ff21 | |||
d0226c7897 | |||
19e084036a | |||
a7d974e670 | |||
7a0c866d97 | |||
cc3f439323 | |||
51b7eb7a2b | |||
023859ee4b | |||
09acd0a3db | |||
bf213af362 | |||
bfb0bc7a29 | |||
c00f1d040b | |||
ba7cfff90c | |||
548c41d164 | |||
172d21cf50 | |||
5c8f3a65f7 | |||
07369125b6 | |||
59cae58f25 | |||
e07b9a75b5 | |||
19fc7c4d31 | |||
d66f5ab3c6 | |||
c773c8c162 | |||
9a3ed0056e | |||
b3999e4078 | |||
d0a587d42f | |||
2bb8e1be9b | |||
967a6ae44d | |||
89ca5e71d4 | |||
4c4d23ed83 | |||
7173ec1df7 | |||
bc465ab006 | |||
fe4973b585 | |||
0d0384ebb1 | |||
27ef8eb9a0 | |||
24a3fd4c4d | |||
d9f8e04478 | |||
b9f6032ddd | |||
d62391c8f1 | |||
ab24ee7a7e | |||
c52fd9373c | |||
1249655d0a | |||
120b907c33 | |||
3848513cf4 | |||
725c72e020 | |||
0b113094b4 | |||
3633e1feca | |||
4759197200 | |||
1d39afabdc | |||
483607311c | |||
d90a79fe7a | |||
87ed0118d1 | |||
1f5eccbc70 | |||
dac2274993 | |||
39db86e755 | |||
255627bd69 | |||
0afac36713 | |||
c0c027c608 | |||
e938986a74 | |||
32fa060a62 | |||
38da479ee8 | |||
574ab04e9f | |||
ee6635282c | |||
ff39b3274b | |||
2c1d654035 | |||
1bdb065ffa | |||
57669bca1b | |||
e647ceb4d1 | |||
4d9e84f6f7 | |||
5171bdd45f | |||
9ab0071aa5 | |||
cf39b2db87 | |||
8a1c0f3a42 | |||
4b42879a2c | |||
394121f77d | |||
f4f8982825 | |||
7220f6d25b | |||
059fb5c7cb | |||
0057c19bfc | |||
05409b949f | |||
affbec73ef | |||
e781e1fdba | |||
12de4e67f8 | |||
9201701c95 | |||
6e7344b837 | |||
b8f8e1710b | |||
8b0a67fe64 | |||
1eb1b1be4e | |||
de5a4a98c9 | |||
26a49168ba | |||
ff4623454f | |||
cf5204760d | |||
46c13349fc | |||
2a3875775d | |||
38b38732d3 | |||
24c8f5bb70 | |||
c02296a9b9 | |||
4eb122ea8d | |||
90d5d16343 | |||
45c8f0b76c | |||
236ee9e483 | |||
459b200cc0 | |||
45bc8ae292 | |||
fbfe5a1988 | |||
87a6dc1b95 | |||
1b11f0673e | |||
3a4dd55c11 | |||
1219a304fb | |||
9d941f8202 | |||
0c232876c3 | |||
dcbc7236a0 | |||
80a869e768 | |||
b7d874d36b | |||
9f9f4a4cf6 | |||
217a2f3216 | |||
84e94db275 | |||
5f2a6003e1 | |||
2876a8afe1 | |||
6f12864776 | |||
5934dc16d3 | |||
bcc652632d | |||
95ebbb9360 | |||
775c3345eb | |||
c8734b8f35 | |||
9f2dbfd463 | |||
d6c0a53db9 | |||
9c7098816e | |||
8834088f3b | |||
0d766dcf70 | |||
41da4b0681 | |||
5cad5c20e9 | |||
133b623204 | |||
d44a4a6a62 | |||
06565542e7 | |||
ead73e5195 | |||
c395a1d1cd | |||
4f1174ccbb | |||
b78f09de78 | |||
9eff9adaae | |||
41b4c51341 | |||
9bada1f2fb | |||
7e27a2db3d | |||
523eec521c | |||
77890c6000 | |||
40a50f77ea | |||
ccc64e2621 | |||
b58eaeb3e7 | |||
e206e3ba59 | |||
71ec81cff7 | |||
37adbf610d | |||
6ed3d3d05d | |||
c023eba22c | |||
c7fb61984b | |||
65b1e04f13 | |||
90786509bb | |||
ebaf969a05 | |||
d2a62bcc7f | |||
66a8f2860d | |||
d96131793a | |||
6c6c89c634 | |||
e57768e2e8 | |||
d43401cc74 | |||
9e5071849c | |||
55bfc4d820 | |||
6577a295da | |||
a0db95e00f | |||
1562d6c63a | |||
8d3277cb37 | |||
c65d820390 | |||
9f5f6aa9b2 | |||
261d6d35f5 | |||
0f34cbb658 | |||
077a1d2309 | |||
ea6b34de0f | |||
66835c6e15 | |||
99e81b32f4 | |||
fe69dacaf1 | |||
6daeb048af | |||
db4dfd8fa5 | |||
0b150a17c5 | |||
43a45c091d | |||
f4e35a9e82 | |||
cc5adcbeef | |||
848cc1bb19 | |||
654093dc40 | |||
aebea82474 | |||
a6b29d6501 | |||
9766562062 | |||
c6a79fafc9 | |||
7fc4fe9a97 | |||
ee0a36e6a3 | |||
a5972d2882 | |||
2fdc627257 | |||
77f77b4305 | |||
910a1aed96 | |||
bf0bd21757 | |||
e1be4ba434 | |||
7c8ed95330 | |||
f351cfa2f7 | |||
d26bb38be9 | |||
b75e61d5c8 | |||
ca35ae4364 | |||
f6fa08fa75 | |||
46f94241eb | |||
ea2ddaa9dd | |||
b4d491a4d2 | |||
463dcc6b93 | |||
f755905c75 | |||
b70fb5b69a | |||
8b64d88091 | |||
b66c8b1411 | |||
d6a746dceb | |||
224ab2e543 | |||
dee738e24f | |||
84c7890917 | |||
fd484099ae | |||
727c84251d | |||
37e55df298 | |||
2644f62318 | |||
893bde0ca1 | |||
bd0bf3d3d0 | |||
05c918dc1a | |||
3651cb2047 | |||
b9c7631a55 | |||
b59c9c6946 | |||
f02313c1c6 | |||
6493789bc9 | |||
4081b97462 | |||
c20451c2e7 | |||
16dcb1ac15 | |||
c1ee656c35 | |||
cd09144069 | |||
7851069d9c | |||
e42700a308 | |||
febc0690c1 | |||
308b4f81b5 | |||
66a3ad42da | |||
1b84a3ecb2 | |||
78fd9d9e4f | |||
baa5bfcf49 | |||
5d88729fc1 | |||
15b59414d6 | |||
2b39d6e95a | |||
73eaf0df9f | |||
54e2d3ceb7 | |||
d3cfb5801b | |||
143cda628e | |||
e90940ae10 | |||
34207cc457 | |||
cedcda0ccc | |||
cfcf1d5192 | |||
8d9bc4bc4c | |||
d456e938d2 | |||
f15208e26d | |||
1999a359fa | |||
3c180bc8f7 | |||
8de42d1f63 | |||
1769a96362 | |||
37a3d0d09a | |||
e16def0c43 | |||
83d083f189 | |||
b1ea4f6c35 | |||
60c540e93a | |||
f3b56e0eb1 | |||
c8d02be14a | |||
42b50051ac | |||
bda18888c0 | |||
c150fe95b9 | |||
8b4b9d396b | |||
9c0f069f86 | |||
8929c89d1f | |||
881eab7669 | |||
141652b7ec | |||
b5651e38c7 | |||
33ae220ad2 | |||
6ec996e45b | |||
4f3e847897 | |||
07a1f107cc | |||
e062f27edc | |||
36c417e6d9 | |||
87ca1e034f | |||
dbf1ffc9d4 | |||
c5bed7e963 | |||
fa915ff7ea | |||
cbced1ce28 | |||
900d36d0ea | |||
62441ebeb4 | |||
051f081db7 | |||
ddbc4ef42e | |||
fc4dfa11c3 | |||
60f12da3cd | |||
40f7d61524 | |||
1263f84c3f | |||
9d91b586d8 | |||
ab8bce35f1 | |||
7287ee3651 | |||
9d7a319721 | |||
b7df1133b8 | |||
dfb8737007 | |||
a06a418ac1 | |||
35063c9e7c | |||
ded4586781 | |||
89790ac723 | |||
d253b0671b | |||
e58dcd3040 | |||
050a1898ab | |||
79a8fa2ede | |||
7819f8f82e | |||
5c570460cf | |||
07882c4b6a | |||
f26eb304f5 | |||
7b33e240ed | |||
a205f4e249 | |||
e16c64dbdd | |||
404ae0a897 | |||
9e00e8a0fb | |||
529829a561 | |||
ed84541050 | |||
075f4a5efc | |||
f1bd94a367 | |||
db69ad876a | |||
c6f297e4e5 | |||
1067642300 | |||
059524b007 | |||
1d72f28a1c | |||
5b92e3a9a8 | |||
8795668c41 | |||
872c84a1c3 | |||
b47879d0a7 | |||
679fc20765 | |||
db85e7084c | |||
1afd2c6ad2 | |||
a74a9f6443 | |||
f49e20bbae | |||
9916989272 | |||
1054f7533a | |||
5f457f6ed2 | |||
9df2edc87e | |||
28eb94402e | |||
d2bf869c16 | |||
05ea1bdac2 | |||
454e85f0a9 | |||
45c5f21f6c | |||
59bd2dd1e3 | |||
3c47923953 | |||
dbaf5687dd | |||
20895c7791 | |||
ddeb2fa05d | |||
7a1f4f9af3 | |||
dc578a9e79 | |||
040c1638ea | |||
ded8412a2a | |||
2f3738fae0 | |||
a59da75830 | |||
2b184a10d6 | |||
fc36837606 | |||
4871845d01 | |||
53ac00eabb | |||
75905ebd3c | |||
12f033ee0f | |||
964106513e | |||
9aca26916c | |||
5a006d9e79 | |||
bd016c6b49 | |||
484dd98448 | |||
84d92bf65e | |||
8d88a9b9c4 | |||
b86ef8cde5 | |||
bd48b0641f | |||
0f4aeb2654 | |||
0b3fec22d7 | |||
9009b50bd1 | |||
eee0657727 | |||
056f5e5100 | |||
5b2c604fe4 | |||
db9ef11f28 | |||
ea5732fe6f | |||
b7e828fa3c | |||
cbc9bc5fc6 | |||
9c785ca6b6 | |||
375d1892bf | |||
2dae3f5656 | |||
0a5d07871d | |||
2490a2ffda | |||
3eaa19ab0f | |||
4c4846e9bd | |||
747ba97dbd | |||
74393c700e | |||
3f21c21532 | |||
526c601512 | |||
6d2c834694 | |||
0b51a52c9b | |||
7224afd32a | |||
d5dbc28f77 | |||
2996d9d977 | |||
eec25367fc | |||
7388e4006a | |||
6c1cd1d8be | |||
5e08c80857 | |||
26b78e7d77 | |||
b674cdbde2 | |||
68598f7c0c | |||
ee7e62c9c8 | |||
a750d04bdb | |||
ef035c1b60 | |||
854bd93385 | |||
9c589297d5 | |||
aae59801f1 | |||
c95926aaed | |||
c61685e617 | |||
a0d49bad36 | |||
2b89efab4e | |||
eb8b82b62a | |||
d9b3d6745c | |||
c2956e8bd2 | |||
397454d844 | |||
7638485f9e | |||
49170585b3 | |||
88ac339774 | |||
ed647f5937 | |||
b49023c31c | |||
9e9f3ff6b4 | |||
b4cf07d05f | |||
aba3336b51 | |||
2cabef97b6 | |||
4e26e0e53c | |||
6eacbeb203 | |||
84f490cceb | |||
786aa8302d | |||
b4ed8a3d06 | |||
9f0ef0044d | |||
5f3f4c3301 | |||
1ef7306149 | |||
e15d8eeb17 | |||
1f7c99d9fb | |||
f7620b385a | |||
9746c00a22 | |||
dc6f36bf5e | |||
973c920284 | |||
1dad5f3ffa | |||
802c8d5844 | |||
7781f973f2 | |||
53c12dc33e | |||
f46d10c4f9 | |||
e573d739af | |||
6c0c5f8ed4 | |||
4333820f8e | |||
ad2d95d523 | |||
479c14c766 | |||
56805a4c85 | |||
1fb955b8da | |||
0e3a2654d4 | |||
ef4009f17d | |||
31a2758606 | |||
f7153ed340 | |||
02e885b3a4 | |||
012dde3de9 | |||
b3db8fc73f | |||
aae3789142 | |||
184f980c18 | |||
11283339b6 | |||
765895fb19 | |||
a68762980f | |||
c565186ea8 | |||
efd6be60e3 | |||
84250bbf88 | |||
79ccf1a0b5 | |||
b3770fd923 | |||
f0e04e7892 | |||
889863f353 | |||
9726aba257 | |||
c4646c15e9 | |||
5195f6f92e | |||
7ed39f7905 | |||
ebf6e75b5e | |||
b0ca52ffdc | |||
fbfa22f964 | |||
260cce9d92 | |||
dcf7ba3bc7 | |||
2ae8606e5e | |||
9719b13cf8 | |||
d27638e37e | |||
e4cb1a8f4b | |||
2fc84e0fe3 | |||
845c52797b | |||
48f1c4b9d7 | |||
5d99bdbe5e | |||
929c2c3921 | |||
914c6e48b1 | |||
259c44395f | |||
5de713b262 | |||
882f6d9a72 | |||
aac01f1c9e | |||
8b15519160 | |||
69a5e89096 | |||
e784afe9ac | |||
8b8d3e28b2 | |||
9b673dc98b | |||
c0fcf2d3a8 | |||
3b46c3910c | |||
76961927d5 | |||
8064f4498e | |||
b21c8c1290 | |||
4c6a0678ff | |||
a8dcfa4656 | |||
3e6bcbb486 | |||
a11f417cd0 | |||
a0c0e52229 | |||
1f2116eaf8 | |||
ceda02f2da | |||
0df3b47366 | |||
e169e5a30a | |||
0d9dcd4e0a | |||
6233d87e5b | |||
57751a2bef | |||
f93e4d7424 | |||
3582133e29 | |||
39b206d862 | |||
29a561c0b1 | |||
276f912c45 | |||
46878d69f3 | |||
7c0b6c8413 | |||
5e1def2642 | |||
e30144a0dc | |||
e9d484f77f | |||
f2e9757862 | |||
d713d78745 | |||
fb3e5a4495 | |||
79a837b87a | |||
d50e06dcce | |||
891f2201c5 | |||
9ea745bcd4 | |||
eb2ebd2bf9 | |||
1ef4d85b50 | |||
fc7bcf4761 | |||
08ebfa1acf | |||
944b835fa9 | |||
9c1940ef9d | |||
f55ff01239 | |||
8f4414de97 | |||
24e631ffe2 | |||
248eb7419e | |||
49f32d2a43 | |||
b0753f78cc | |||
dfb9270a2c | |||
dd2e560255 | |||
d0507ec69f | |||
27b927448b | |||
2d4941f432 | |||
45fe925a1b | |||
9dc85d76d9 | |||
10818c74a6 | |||
460cf9df30 | |||
42af514c51 | |||
3244c280d8 | |||
e07a5749b7 | |||
a8f44be5c1 | |||
8f8892aa20 | |||
45a8b92d84 | |||
6b4017fbb6 | |||
28d42628d1 | |||
c1d738d60c | |||
c2609227ff | |||
f5f9bd2e5e | |||
15d74c9cd4 | |||
3c87ad5aab | |||
9db62236da | |||
93fa1034f5 | |||
35494f5d08 | |||
4f66b301e7 | |||
d1f87ca115 | |||
fe106358f5 | |||
1c3ad0f1cf | |||
89b3104f8f | |||
624cf1dad4 | |||
4e9154ca64 | |||
51518d4d96 | |||
26dc2a439d | |||
bfd5fc3f24 | |||
60721a7c23 | |||
df230989b1 | |||
474dda7ffe | |||
1d54f1e6ab | |||
a1238a0ea4 | |||
684b918915 | |||
b166de08dc | |||
281c87d11b | |||
14eeaf4a2a | |||
9115f6e796 | |||
0223d38602 | |||
33c10e9180 | |||
c7dec4130d | |||
512130172c | |||
a849945bc4 | |||
4d16d2ceed | |||
9a45d9692a | |||
4a6c2f1fe6 | |||
086ba11621 | |||
154655838d | |||
0795d8df5f | |||
85bec783ee | |||
ccd8b47d30 | |||
c0309d9732 | |||
0185c288c3 | |||
3c4c37e4d0 | |||
2ba4108838 | |||
203c3f9949 | |||
61b71998a0 | |||
c4fa052b03 | |||
f3eeb94c90 | |||
a2044c61ae | |||
2703eed446 | |||
59a43f496d | |||
d28bc7afe6 | |||
22cb0b002d | |||
021f3e49b5 | |||
91bf7f1e44 | |||
7fbdaadce2 | |||
ff7dfa9259 | |||
85f10f1f6a | |||
9b4780fa1d | |||
8c4d07ba92 | |||
632a643994 | |||
988a0e7314 | |||
73776508b3 | |||
01c0803a4a | |||
582bfe830a | |||
236bdaa53c | |||
52f5793c9b | |||
1e8e08ce61 | |||
05c3ac2359 | |||
47758d16ff | |||
867cffaf20 | |||
5f9036e815 | |||
5b957f69d8 | |||
749a4c9f6c | |||
0a9e1b4173 | |||
66f4feeb16 | |||
e642e1c106 | |||
d9ef612302 | |||
f742484795 | |||
1ecdb393d7 | |||
eee1ab4890 | |||
42eb9f4a28 | |||
18421e8aed | |||
c255b4d14e | |||
bb48205aae | |||
5a287a4205 | |||
b0c8192496 | |||
0897915b05 | |||
2894085c45 | |||
c506eda20a | |||
a8005e3c30 | |||
6c8eb1a18e | |||
5af8bf2788 | |||
7e9f30da0a | |||
2842670082 | |||
95f388b9a7 | |||
e72c38b5ab | |||
f6f373b0c2 | |||
b757f5c655 | |||
784c0b7e4b | |||
f2df9f1ae4 | |||
18a1435c25 | |||
669d12f957 | |||
d52b23dec3 | |||
998fe58482 | |||
109f39afa5 | |||
9790b0ee5d | |||
c48330a986 | |||
9132063b87 | |||
d5e8f8cdf7 | |||
55362aed3d | |||
135d178d08 | |||
e7b9bd75d8 | |||
bd173ac5d2 | |||
bfc7c1cd65 | |||
cae69b3a88 | |||
910037f014 | |||
acaa9f7f77 | |||
b779f6f728 | |||
83f224e08b | |||
c1a7c71549 | |||
c68bd33432 | |||
8f4e91a738 | |||
6af25b282c | |||
e3e1a27f2d | |||
c1ec7b2ffa | |||
45ebb94b33 | |||
89bf360bad | |||
3a7228cf2f | |||
c1ae634174 | |||
88bcaafe86 | |||
66fc5c07bb | |||
a32c4f30d1 | |||
65c5cfd4dc | |||
0483c78dd1 | |||
abc7cc9a26 | |||
913990b9ea | |||
61210fdae1 | |||
077d8f33fb | |||
e44adb92cf | |||
ebf77748a8 | |||
07cc84f632 | |||
c860409da5 | |||
9eaa0089d0 | |||
682bd7e97c | |||
2e4e2500dd | |||
67ea424525 | |||
69f63dc94f | |||
bef5043135 | |||
fea5ecc9e8 | |||
697912d8a4 | |||
a0b0237689 | |||
8eb5d5aac5 | |||
f28f041a95 | |||
cd84fa824f | |||
40bd65c9ba | |||
5e43f282a1 | |||
d83d8f2c45 | |||
348e4ac901 | |||
5944a1e74b | |||
0ed702d1af | |||
fc71f8b33a | |||
cb7374b1ec | |||
f5996a9232 | |||
5fd52e99d3 | |||
fd5989e99a | |||
cf6beee9e2 | |||
be5f5ec9d4 | |||
a58bdbfbd4 | |||
f51952f5d6 | |||
ac1f896107 | |||
3913fa5044 | |||
32185c17d0 | |||
d3d165243c | |||
1e203f4631 | |||
0617be9fb9 | |||
0749ac27ce | |||
d5eafbad87 | |||
5c7a701a68 | |||
cd36301d2b | |||
70203b58ca | |||
c627d47019 | |||
f546715cc3 | |||
f5e179f03d | |||
35a265a183 | |||
147a743d8d | |||
e4147f3611 | |||
6a42d77261 | |||
55867c40c4 | |||
28c535e341 | |||
f309d98bc8 | |||
2c62e45168 | |||
f2bd39b20c | |||
72af64d964 | |||
2f39bd8ba4 | |||
f0a5170473 | |||
104071acbd | |||
4338ca5fd9 | |||
e06421b04b | |||
5687035c9b | |||
8cb819926a | |||
284ace5b5f | |||
7bc39ba750 | |||
aa9031d8e7 | |||
4dc44304df | |||
975280fc50 | |||
39e6fc9e9d | |||
91707f4f82 | |||
b7bf9e09e9 | |||
db9249a1b7 | |||
10b2083d3e | |||
fa1b7a9ef5 | |||
b6e57a5ae8 | |||
b6d47c18c3 | |||
c35b4cede5 | |||
6cfcfc72cc | |||
0732e1426a | |||
055c007ac2 | |||
43cf466d09 | |||
6965781d59 | |||
80680803aa | |||
51601f3ead | |||
b25a73c243 | |||
d0690c3952 | |||
f2466caef3 | |||
b1d22d2058 | |||
6f7e5976e2 | |||
29543f369f | |||
a144a1c76d | |||
d91927674d | |||
d12cd12e1b | |||
caa50dc1a3 | |||
55b57421dc | |||
320df13b65 | |||
e4920b2f80 | |||
c9fbae3408 | |||
a3c6217875 | |||
db7726c5bf | |||
0b91dee5a9 | |||
3838220961 | |||
9bb12f6f87 | |||
4dea1f801a | |||
91a5133116 | |||
c4c5c4fd5c | |||
f67b409fc1 | |||
22fe4e92c7 | |||
91eb84fa4e | |||
4e1492c926 | |||
ed97f61750 | |||
b5676a2a5c | |||
7059dcced3 | |||
c7e0c7eb79 | |||
ff775213a5 | |||
7f9c709c85 | |||
74d7d3e259 | |||
0353a5bf2c | |||
ab6a629955 | |||
6cad251187 | |||
d7c569c692 | |||
0615370930 | |||
7a92a9ba21 | |||
0199857c5b | |||
59e3a1a816 | |||
6533690fff | |||
d0d1845bb6 | |||
20f4fc7c87 | |||
b4128967a1 | |||
38ad1d7c13 | |||
f78136182f | |||
11d46cf5b3 | |||
7326e7a9fa | |||
a65164e540 | |||
279024afc2 | |||
ef8000d2e6 | |||
986600ab31 | |||
3d39b32a0b | |||
6205d5eb27 | |||
a722b4c51d | |||
31fe517007 | |||
31d915a38a | |||
e00878ab75 | |||
3b5675b79a | |||
ee97512bcc | |||
085531b43d | |||
9e8b97d474 | |||
a3a7953704 | |||
92c0171aeb | |||
6a6d66486d | |||
1cc766d636 | |||
60cad01880 | |||
63c9a6efd0 | |||
1d1b42756f | |||
a95601afdb | |||
2dbdf792db | |||
e23ce37e62 | |||
a05cb76e0d | |||
60cab56f86 | |||
70a5c3875c | |||
0fdbde9101 | |||
2156577333 | |||
f3e09b2b2f | |||
6180f59c13 | |||
506b75fc7f | |||
a0d0a17d68 | |||
92e5713e29 | |||
856c32db91 | |||
7b45ffa511 | |||
b6754d7db7 | |||
2a9977a5b3 | |||
dab60d5580 | |||
8e3aac8ed7 | |||
147cb53140 | |||
54f369404a | |||
af1aabff75 | |||
d6ba6dc554 | |||
42188b7698 | |||
48adb2ef4b | |||
f8e648b7e3 | |||
daa5452af2 | |||
259874d731 | |||
23344701de | |||
00e95de114 | |||
942758bb30 | |||
e0947b01bd | |||
cf00231aa8 | |||
5c3f4f5f8b | |||
5f10047b58 | |||
3094f86334 | |||
8ffea9d5c5 | |||
4f3c8b8d69 | |||
edf6bd6909 | |||
3e58af10ca | |||
9e55d262f9 | |||
252e694979 | |||
efed695eca | |||
b446667df6 | |||
133a1e7bef | |||
5b3935fa43 | |||
471165ca9b | |||
111f87a1b2 | |||
93525539c2 | |||
a77377efe7 | |||
81ab2865f7 | |||
e585f7d97b | |||
1a32e3e74a | |||
8d6820c4df | |||
2546445884 | |||
e44b7df078 | |||
3a9eaa39ea | |||
af87bd8c87 | |||
4bfb4a0e3d | |||
d1a6601e60 | |||
817aec5466 | |||
314a89a837 | |||
57ed68541a | |||
413c677fcf | |||
3d86e6e791 | |||
3fbd61cbf0 | |||
43b4f2c7d5 | |||
7eb4088f45 | |||
f00201fa6c | |||
1aca2ba6bb | |||
e9131465dd | |||
0ee7f02f8e | |||
451f4e3636 | |||
2fc4987c73 | |||
4525ad346d | |||
e4b8a4b432 | |||
62e594af6d | |||
ce92270626 | |||
bdcf3037ca | |||
9698ff491a | |||
2a9e065cfb | |||
4c93ef39fa | |||
22107c183b | |||
c06eb5d0a7 | |||
e76877c4b8 | |||
2a32fb2e72 | |||
de86920e0e | |||
8754736fda | |||
d2ead59d74 | |||
2f4fcc59a1 | |||
ba6dbb228d | |||
60e386048b | |||
c2904fa14d | |||
dfdb139d9c | |||
ce63d21dcc | |||
1da9937453 | |||
9f11fbad16 | |||
f54e7804c5 | |||
7db5f8b28e | |||
743ce23fbc | |||
a3267be192 | |||
4ad2523877 | |||
4bfee3a8ca | |||
fc964f975a | |||
52f85c9465 | |||
691610f23c | |||
b6a2b2b8a5 | |||
1ad8a2fcf6 | |||
7ce08845f1 | |||
d469250130 | |||
7fd5c47e06 | |||
8704b1004e | |||
65a9fb8c01 | |||
25a7a8006a | |||
6fe1d3248a | |||
13f97532bf | |||
1acee3d702 | |||
1d17404471 | |||
48b860b69f | |||
a030c54661 | |||
dcf7bae6c7 | |||
d0ace108e5 | |||
32d5744014 | |||
d16094774b | |||
ac664ba321 | |||
0888a9bffd | |||
5e82d72424 | |||
2513835e89 | |||
98b70ef00f | |||
ae11381b88 | |||
e9596f2775 | |||
8adbc8010a | |||
76fb559964 | |||
1bc1b4d9d8 | |||
dfc0ef56f6 | |||
1e68e78d8e | |||
17fa5a2db4 | |||
004a5e1042 | |||
4915a9e8e4 | |||
8a7e44ccf0 | |||
a497afe695 | |||
15c252c11d | |||
27da3ed1fe | |||
8656102182 | |||
24d3744cb9 | |||
031913b9df | |||
e53443daf9 | |||
06317f4f6a | |||
c69e195441 | |||
a53b48de4c | |||
eca98aee42 | |||
ea5aaa8ab2 | |||
72566eda43 | |||
7a4f9a5ff3 | |||
ba23fd9989 | |||
c101196f5b | |||
1687a5451e | |||
ea4d5f89eb | |||
9e388ebcfd | |||
8d9cae45f9 | |||
406d0900a7 | |||
cf611d2be8 | |||
7875fc831b | |||
44bca36385 | |||
e2c3198627 | |||
8b549f3d5b | |||
a0e3c342a6 | |||
a80331dbcf | |||
0068dab001 | |||
7d42990462 | |||
e6dec7a9dd | |||
8adfc5b106 | |||
8be95b5785 | |||
9194de8460 | |||
6dccbc5a90 | |||
efba1e83c7 | |||
d1442765a6 | |||
72e5caf6e1 | |||
3768b6b701 | |||
e5cde4700f | |||
a207f67f73 | |||
b73aace476 | |||
346d37ecbb | |||
7bb29817f7 | |||
92b92a2e0a | |||
8e79f9f2dc | |||
05b345cc92 | |||
89f9925208 | |||
fcc1d7beff | |||
f226398c7c | |||
890ac9ff38 | |||
6a027cd566 | |||
1dc971d760 | |||
dcf0bf0bb1 | |||
cf156b469c | |||
da6c154ceb | |||
957fa910b3 | |||
8ac5be95d3 | |||
c27bd62106 | |||
480e8b8842 | |||
c6580421b3 | |||
c2f5331187 | |||
5d0c403f1d | |||
20fc4b4490 | |||
ea3f906f38 | |||
2c4df6abcf | |||
67a0b3b98e | |||
c366e9f3ca | |||
812a8552e5 | |||
069d7d6cac | |||
785a8b78b1 | |||
2d927639fe | |||
d5cad10181 | |||
441a56b916 | |||
c2a6a6c939 | |||
15d1aee21a | |||
f1bc2d56f4 | |||
6f62965305 | |||
a6aa0ac74a | |||
32ed4ee12e | |||
33a48aecb7 | |||
3b63062a30 | |||
b680952197 | |||
a4ec460f96 | |||
5bd295842b | |||
db9a7ea7a9 | |||
490a62e781 | |||
d4b8912c0e | |||
532acf4c4a | |||
7141c5be6d | |||
2df7757905 | |||
9d5c743a98 | |||
653e6c85bb | |||
d9fa389079 | |||
a429fdbd08 | |||
f9357457bf | |||
369e400e32 | |||
07ad4d8911 | |||
803a096b7e | |||
1b40abe37a | |||
0de5209cf1 | |||
07fad38a50 | |||
ac4b88f25d | |||
23a7aa5740 | |||
0b1e29e5e3 | |||
c8c93b2a70 | |||
d8c7cac536 | |||
5cb02c1cb5 | |||
10c1df61cd | |||
387e5ef0f1 | |||
f8f40f247f | |||
16cb918e0d | |||
638b315e40 | |||
a20b8dc1ad | |||
4370aee81e | |||
779e37fbd9 | |||
6f4c5022eb | |||
b499ca47a3 | |||
dc38e48202 | |||
7efdb97641 | |||
14fd7c7532 | |||
21e14bd46f | |||
f0e1dc5715 | |||
6b7af407e1 | |||
d67c64af83 | |||
5d2e5fe85a | |||
308da6ae53 | |||
76eceec1f5 | |||
209d332a30 | |||
35dbc3fcc9 | |||
ada01507a4 | |||
826ac95726 | |||
9b7f228f8e | |||
5d8ea4f9a3 | |||
4c89eac9a4 | |||
f76f30fd6a | |||
488d98289c | |||
ff3d32dd18 | |||
be6ce3c5b4 | |||
21966afbc6 | |||
68e3f74ffd | |||
87f5aa7a13 | |||
1dadbd0cbb | |||
481490fdc7 | |||
3114a24d1f | |||
73850fee02 | |||
c0047cd11d | |||
dd9a452594 | |||
e45c917811 | |||
fd19906c64 | |||
54a2773046 | |||
ec8b7bc7b2 | |||
ea71172d44 | |||
5dfa620f86 | |||
09d5f0779d | |||
d1880dc987 | |||
928b49705f | |||
f50cac3005 | |||
ec6e1315a5 | |||
ad55cb6d5d | |||
0ce0376725 | |||
015ca2c507 | |||
21e752e5e4 | |||
1e20a1249a | |||
b67c300484 | |||
8ac2086ed1 | |||
72defaa97e | |||
9097c5e9c0 | |||
79b54f65b4 | |||
52c2417685 | |||
9073debe60 | |||
8b368d010f | |||
8b97a06961 | |||
fffe7bdf9c | |||
ef18f621ac | |||
dfa41f6926 | |||
3d3dca4aa2 | |||
928595fe21 | |||
fc958f4215 | |||
0846238f69 | |||
007b6ca2e8 | |||
0b4a4487a0 | |||
99b4e047dd | |||
ae2af34453 | |||
fdf24ceecc | |||
870dd84a50 | |||
5d6db923b7 | |||
8eb88d17fe | |||
abe012b9fc | |||
749f52fc8b | |||
1e6cb43815 | |||
213d10bf4e | |||
1abfbb82c5 | |||
bf36d99a33 | |||
3ee525833e | |||
bf497ed643 | |||
9b8c0f7519 | |||
12ec5d1cbe | |||
0f178c3b3d | |||
9aa06e3001 | |||
00ec8ca989 | |||
9c6f558c9e | |||
1c172955ee | |||
1d44bf7ce6 | |||
036e41621d | |||
3003e9091d | |||
8d9da10710 | |||
4d23c12028 | |||
476816732f | |||
31968ea53c | |||
7e00d22bfa | |||
50055004f5 | |||
abe2f07779 | |||
277f0d77f3 | |||
01d2ad760a | |||
25f118bf2c | |||
12b8fb15b1 | |||
5295866eff | |||
02b47f4640 | |||
108ac7cf20 | |||
933c037c6e | |||
8f3554ff3e | |||
668128f8c9 | |||
28ab1f4af4 | |||
d360114226 | |||
5fc456d9d9 | |||
007d305736 | |||
ae7ec648b2 | |||
99a2fad311 | |||
82d466598c | |||
3a748fe737 | |||
89ce53e3ff | |||
2f29081667 | |||
cb0d28770f | |||
86c3909908 | |||
b970ee7293 | |||
5545e84430 | |||
85d9f39417 | |||
a81450df17 | |||
a7c94b2cd2 | |||
9d65c8b2ec | |||
1b7ff76092 | |||
17e32bf16d | |||
74905f3edc | |||
8e1b13ca96 | |||
c0e90807e0 | |||
3db1058c2c | |||
a57c4c580e | |||
33bbbdc322 | |||
5826336a77 | |||
3b5d13a0b2 | |||
ed37ba1d9b | |||
8ea6fd1925 | |||
93a461f3f7 | |||
fda7c9b06e | |||
1e13f32cea | |||
e357559582 | |||
71759a0769 | |||
11b116cb9d | |||
2f97a1a55d | |||
79cf3a6dd0 | |||
0257de1b7e | |||
466dc8da8f | |||
2c61badc02 | |||
3f8d3a7ee2 | |||
a455860978 | |||
0ecf135a4b | |||
cebb6d40df | |||
0ee13672ee | |||
49260a85ad | |||
da9f37e629 | |||
164f3fa3fd | |||
8e75d81a44 | |||
1d60c4d9d4 | |||
eaa32090b9 | |||
32ddb6f739 | |||
2653402c5c | |||
2743f18af4 | |||
dd1fdf88ff | |||
2a041e9d8d | |||
1117f4760c | |||
7dda7abf5e | |||
7ca3cca306 | |||
d471e3a23b | |||
ce1bee727a | |||
43cb3754d9 | |||
1d6ddf060b | |||
9928125e7d | |||
1c63893c4b | |||
a7ec7583aa | |||
4a3476266f | |||
32e0b895a4 | |||
58806359ee | |||
4589da957b | |||
6a4c55b852 | |||
ea17740719 | |||
d82810240f | |||
2768b73015 | |||
f9a7718dda | |||
d9d9778a98 | |||
bd5162105e | |||
208c5e9562 | |||
305e63750e | |||
ab0f74aa15 | |||
43443d08ae | |||
b82b553b9e | |||
08464eadff | |||
49e56776e8 | |||
043667dde5 | |||
f583a7c6d8 | |||
2d908e80fc | |||
8f0e9abe47 | |||
1a27ff6130 | |||
3f2cffc2e6 | |||
a78527050a | |||
a823a213ba | |||
2c8d380e67 | |||
3996309f8a | |||
bd18313d12 | |||
2ff7a78b56 | |||
c765082f72 | |||
7d2c5c1ac9 | |||
404bc34089 | |||
16ca7a21a7 | |||
1b31fd5afe | |||
e0457b6dc4 | |||
42b77e7ba5 | |||
f6bed08993 | |||
5f77cdb0b9 | |||
109b8e8f38 | |||
4c0bd88a2c | |||
3731be9947 | |||
6cc19ee6f0 | |||
1570f838f3 | |||
74feb110b5 | |||
6ba03ac2a6 | |||
55c717c2dc | |||
355b5eebec | |||
51938c398a | |||
dbb71f0dfc | |||
1cac7b2218 | |||
ff9bb5399b | |||
68e45eb051 | |||
d0da96ad29 | |||
55b036170b | |||
5473637736 | |||
bb6d9734e4 | |||
53be76c9e2 | |||
be40de5a9b | |||
7359e431d3 | |||
8a5de327bb | |||
1778adae0d | |||
0d035a4e53 | |||
46874eed05 | |||
e95f3febd6 | |||
0bdd1b6fc4 | |||
8a22092632 | |||
915415d919 | |||
14d7897a93 | |||
1398aa6562 | |||
8fcd6c7153 | |||
6ed5bc2f6c | |||
5ec4c2e43e | |||
6f8dd065a4 | |||
02db21fc55 | |||
8c28f9a77d | |||
95b80eec01 | |||
02c76695e5 | |||
d5a1a888d9 | |||
6c33aff6d1 | |||
61f86cbc54 | |||
4c5206954a | |||
8fda3116f0 | |||
7ac35c644e | |||
29b04fcbf2 | |||
55235c2552 | |||
f250643385 | |||
d008c6c5c5 | |||
e2e02c9a2f | |||
e56d7f5021 | |||
e7d44bb349 | |||
321730fcb9 | |||
fe83cd91bb | |||
0b08ee54bb | |||
f6b4b96737 | |||
b87455c089 | |||
2c1a81f448 | |||
b3736f45e6 | |||
3c382c4bbe | |||
5f3bad9c94 | |||
6970f43e66 | |||
9476aa598a | |||
69725e5d41 | |||
42dabef8c7 | |||
e10a768ddb | |||
a8f0787c91 | |||
074129682b | |||
c67460a1e3 | |||
eab320dab5 | |||
04c7cb6fbe | |||
d4582491f5 | |||
0641b1e279 | |||
ae0450b68e | |||
cb0a5de83b | |||
2f5086efaf | |||
68e580e394 | |||
b143869d5d | |||
6a477be874 | |||
03bb8cdcbd | |||
8864816b94 | |||
751cd2f1c1 | |||
6f6b6fb9d6 | |||
fe346b89f0 | |||
0744c6af2e | |||
2e070ab834 | |||
00f9b7bf69 | |||
94ba52af0c | |||
44e1a6ce06 | |||
ccf646f54a | |||
4e84b46c9b | |||
b4797956c7 | |||
c1c45f95af | |||
ac09e0110a | |||
0e37cd2ec9 | |||
76dc77f617 | |||
cb4c0d32c0 | |||
3d4ba028c4 | |||
5481c1899f | |||
2fd120162f | |||
523ba5a719 | |||
07d25cd69d | |||
520cea9394 | |||
58c4212cfa | |||
7059e31f6a | |||
a9234f7631 | |||
1e5a8b0cd7 | |||
5ef343f245 | |||
22e33b4c47 | |||
5ace4682bf | |||
14d9839ed3 | |||
3b6fae582b | |||
3cbdf4f9a5 | |||
d8825e0d12 | |||
3c5fea59df | |||
443c8347ea | |||
ee3f52c097 | |||
4b01bb6f99 | |||
27ef8154dc | |||
0a7e717e0e | |||
2d2824b947 | |||
40c2a403ac | |||
238b87d386 | |||
8c01d341c7 | |||
866629b3d3 | |||
2b3ab3ecec | |||
759120b95f | |||
de0e21612c | |||
83e83444db | |||
5060aee7b2 | |||
12bace2721 | |||
2c45b5416e | |||
96c2473317 | |||
6359d6ef30 | |||
2f6323afc2 | |||
d25bcbc3a7 | |||
dd5d7d3b70 | |||
771b1a0788 | |||
5a9d094f3e | |||
9ca8433170 | |||
0ada312748 | |||
88697add1b | |||
4730b7a094 | |||
aa3e64aec3 | |||
af26e2b212 | |||
8167f20972 | |||
bd4aac8f49 | |||
785dd5c5f7 | |||
71e469a59c | |||
6d4b9d29b8 | |||
33f5bb39cd | |||
a1c3900630 | |||
cdaf164c01 | |||
2bd80579ed | |||
54039c3552 | |||
b197a1affb | |||
51655be6a3 | |||
9697c209c0 | |||
6ecb0a4546 | |||
30861d4800 | |||
a23391ea28 | |||
58e0b80cac | |||
41dd744b74 | |||
bdf66d7b62 | |||
4258ae3ec2 | |||
9b379c49ba | |||
7e70dd8453 | |||
2e209a82f9 | |||
ab0ecc469f | |||
7d75ddf635 | |||
271e43a1ed | |||
2702a82896 | |||
8ad33d8752 | |||
d84bbb8770 | |||
c0c2edf2e1 | |||
de0c3251dd | |||
0afd600ea4 | |||
598407b14a | |||
d9bfa16f05 | |||
03117d65b2 | |||
5520bb3890 | |||
4e6b2eb72a | |||
2e5295b3a9 | |||
3121c9aa29 | |||
1ebbd7c768 | |||
8572bb97c7 | |||
d5ebd8c816 | |||
ed999ce926 | |||
50b7739076 | |||
94995e9c1e | |||
fb04dafb0b | |||
d57234bec9 | |||
38da54fb02 | |||
bbd3275dad | |||
3a3f9aa008 | |||
3c54e863e6 | |||
a63ba61194 | |||
ab9710ee7b | |||
43cef45229 | |||
8db4f3c67f | |||
594a070029 | |||
c2e04e3cfa | |||
293f50e8e5 | |||
df7fea3407 | |||
563412698a | |||
2b30146c6c | |||
0f531d8c44 | |||
218c87994b | |||
f74c07b9ac | |||
59edea4bb4 | |||
4d4d5a0b16 | |||
03c4930883 | |||
9593e20425 | |||
2b1d6e607f | |||
1dff32e48a | |||
1e3a174de9 | |||
7bb84dae80 | |||
44fcb9e9af | |||
2d30e310bc | |||
be2d630348 | |||
bea6045aae | |||
ad491e7922 | |||
fedb8e706a | |||
1be933bc49 | |||
526bb72f3d | |||
49c95cff6c | |||
56a361650c | |||
d4763b157d | |||
d2dc072ba9 | |||
ffaca00594 | |||
9090b7dc3d | |||
a540fe4130 | |||
5be61bbb68 | |||
8e51fee5c1 | |||
9d6fcfdc85 | |||
5f5a3b78a5 | |||
4e5ca6d376 | |||
2fab75f448 | |||
22883f2fa2 | |||
5d9f80bc73 | |||
f7d117488b | |||
244a329ee7 | |||
044572cb60 | |||
746875258d | |||
4892a87dfe | |||
8b9c8ddb1e | |||
eb9000576c | |||
862aaf341e | |||
a5c75ff58b | |||
4541fb9819 | |||
9f8edd980c | |||
e5b9043435 | |||
c0012c2ea4 | |||
b77e4975f0 | |||
e83f2344f6 | |||
de6512be1a | |||
0b72ff1896 | |||
fea0192772 | |||
f81ac498fb | |||
5357e0a18c | |||
d7632bbd3d | |||
1b5e91e4b3 | |||
727195c767 | |||
9158f55360 | |||
8146e9d527 | |||
4247251020 | |||
7eee0e0ed6 | |||
4f0851ca77 | |||
911ae49767 | |||
5af81d4057 | |||
c435889baa | |||
49f79d9d5d | |||
1767cd0f6c | |||
3e0915521a | |||
a298943fac | |||
df9ddf96a5 | |||
4fa5d701d5 | |||
b05683d586 | |||
2f3f3fbcdb | |||
611605a67f | |||
0427a782be | |||
32baff5906 | |||
0089143d06 | |||
05e55cee23 | |||
31e7f0340f | |||
6e317a54fd | |||
9c1f62c38c | |||
1341d5557f | |||
b7d79a5f06 | |||
62233a4db4 | |||
4a7e2ddff5 | |||
fb737ebde0 | |||
bf77cb44e7 | |||
c72e2bb4a9 | |||
68c182b1df | |||
348d303794 | |||
ede0fd8660 | |||
187c2193e8 | |||
706bdd8059 | |||
436861edc8 | |||
9729a2e772 | |||
6b924c00c5 | |||
b90f4d29a4 | |||
47915f8c11 | |||
5dfdeaa4ea | |||
98a2a81f2a | |||
c4850027bc | |||
d4202e7f38 | |||
4f65283f31 | |||
d86d3bbe54 | |||
6f794738e8 | |||
ef7a93bb07 | |||
5197a992a6 | |||
49d8540f6d | |||
6e1a1f1a57 | |||
c73428247c | |||
fc2caf5794 | |||
b117826ada | |||
26b44b48ab | |||
6349f0feb1 | |||
2ae17cfb50 | |||
4785093a5c | |||
859aef78c4 | |||
20730a5465 | |||
fc5f687afc | |||
53e56f2395 | |||
da314aff79 | |||
fe89f7c5ac | |||
8b3be5e063 | |||
58dc538510 | |||
6cbef9355d | |||
22eac5c508 | |||
a2860e9c73 | |||
1c5258ab68 | |||
8641eaa538 | |||
88436383c0 | |||
affdcdcb0e | |||
06174be777 | |||
fde8401124 | |||
70ac33d58c | |||
5a897407d9 | |||
1b3c26364b | |||
ae07aa7864 | |||
fb80831269 | |||
561cecf383 | |||
60ccdc2deb | |||
d7d996b1d3 | |||
32b8bc39ac | |||
9dc99ad611 | |||
628cb4d553 | |||
ad80bce78d | |||
1c9d821aa2 | |||
510b060947 | |||
26e33ff093 | |||
5f2bd70690 | |||
6dfa550663 | |||
252e2420ad | |||
572d54981e | |||
61471f9fb4 | |||
4d0a742d64 | |||
5f4e0e5ff8 | |||
a4c159ecad | |||
b1f893e998 | |||
789dc165af | |||
115eda9650 | |||
d027e35cef | |||
b3e178af9d | |||
559ec8750a | |||
02c3980b83 | |||
6f027ee7dc | |||
6d6c2e5b99 | |||
4a4f752459 | |||
8f1fff1374 | |||
deead2af97 | |||
9e881ab637 | |||
b6ec02cef2 | |||
26e3ccda49 | |||
2bda79cb3a | |||
19c60ff5c5 | |||
e3c5c9a2e7 | |||
2c17c186b8 | |||
ef1697d00d | |||
40e7638a4b | |||
aaf69b2898 | |||
0464361ca5 | |||
420697693b | |||
37f53a42da | |||
5617ffc79c | |||
ca4d86e9e5 | |||
0141fef561 | |||
5d4a804c90 | |||
6bc3300e5a | |||
15f69bdc3b | |||
0bcf76970a | |||
03c4628cad | |||
9f4ae9618a | |||
3590af15bb | |||
c5de7fd20e | |||
7127fb1fa1 | |||
7cf11abefc | |||
d78b416e1a | |||
f5144ec899 | |||
08d1ebe7ee | |||
a665801e9f | |||
112e3b110b | |||
94a674c008 | |||
72be8eeb31 | |||
ad8690bb2e | |||
76cb08a72a | |||
2d4989e937 | |||
f248b91f82 | |||
d671eb1969 | |||
70f4906ca5 | |||
ffb9aa1ace | |||
823fd855cf | |||
f5ee225362 | |||
ff1ea4b1c9 | |||
779b5afa51 | |||
6d870f6ae4 | |||
d3926cbca9 | |||
a308804679 | |||
a4e4da705a | |||
7a494ec027 | |||
d53ebb101a | |||
f3168d22a6 | |||
be06101e9a | |||
6e4178981a | |||
b85ea59cda | |||
bbd68626cc | |||
8490173879 | |||
baed9518c2 | |||
27d0d9f2b3 | |||
382282b931 | |||
23d233857e | |||
9620bd0f22 | |||
ecfe56ca63 | |||
eabb02d3da | |||
da3953a388 | |||
2d26dbc96f | |||
7073471302 | |||
81f0e7de9e | |||
33e05f5912 | |||
c1d3e304cb | |||
1b169655ac | |||
67393e09c3 | |||
1ec8d2c531 | |||
a111bfb90a | |||
7dd326f090 | |||
24a26e025b | |||
1eb7ba0506 | |||
d17d99bd6d | |||
fd50b9a45e | |||
a1534dab02 | |||
7484458b7c | |||
5ca039c1db | |||
2294ae0c46 | |||
4d2b2a12ea | |||
c6d57059ff | |||
5f13cf767e | |||
93425b0500 | |||
a87ab6d0fc | |||
1c117c469a | |||
8003f8b803 | |||
7df93458d7 | |||
753618a19f | |||
e355756758 | |||
62a3b9e6a3 | |||
dc79393b27 | |||
c334aa2a4c | |||
9f61a4f5fd | |||
15d0050994 | |||
1846f337d8 | |||
a9e63039ce | |||
7edd5f27d1 | |||
9b47195974 | |||
4ef8041be0 | |||
f0a7395b30 | |||
c1a6effea0 | |||
f78efc46e7 | |||
42ae052da7 | |||
fab390826e | |||
2a9923628b | |||
291aa0b053 | |||
83eb75ad7a | |||
bb215966e5 | |||
545d49c70d | |||
ace44af815 | |||
699e97559d | |||
4aecf4c973 | |||
b092c5f37d | |||
aca8aec94b | |||
9cfb51c106 | |||
e2352f5126 | |||
40e624444c | |||
3cf67b1236 | |||
5dedb97fcc | |||
4590094605 | |||
15e7625c80 | |||
cdd2803498 | |||
43fb2b38b1 | |||
95224bd006 | |||
446183adee | |||
345a8fe748 | |||
d8593c5b4a | |||
f89d721c12 | |||
af34b7c25e | |||
b108aa1ace | |||
5dbf09c008 | |||
680dc18c6b | |||
73413ac6c0 | |||
f61c8e5e1d | |||
36713db990 | |||
6bb7d4002f | |||
aa28d487d3 | |||
a7d974481c | |||
3730314dd5 | |||
6b0c8c9fe0 | |||
28a56d24ad | |||
5e6629e1a7 | |||
a00b967df0 | |||
193e4ae31e | |||
409a27c3b8 | |||
ba97e8da7a | |||
c47e672eea | |||
43a19739ab | |||
36f9147b21 | |||
8647922df9 | |||
df3068d9ca | |||
036e67049b | |||
f02033acb7 | |||
91d73d65c3 | |||
81c4c23016 | |||
fef2bac8ab | |||
c59c5eb893 | |||
a977c1388a | |||
0f799ae313 | |||
23c3f3fdea | |||
82c7090e9e | |||
0fdfebdb67 | |||
208c551787 | |||
b10606e884 | |||
f4a64f77f2 | |||
e92477a752 | |||
37e0a73c8f | |||
4f76e05058 | |||
3134222d27 | |||
a9ed128dce | |||
c264cc4131 | |||
a7943ff934 | |||
c353914dd0 | |||
91319e3963 | |||
dc4ff941bd | |||
b597d5faf0 | |||
f6da36ad3a | |||
5f4e2749a2 | |||
69b1fb699f | |||
259f90bbf6 | |||
8665045326 | |||
a7bb8ee639 | |||
8f732e4f45 | |||
95a31b0c31 | |||
36b9f45368 | |||
46575804cc | |||
86a00b6872 | |||
23d6d13d80 | |||
09addfc87c | |||
a2f27a9409 | |||
412003efbf | |||
582b3aacf4 | |||
1af0b54c1e | |||
74ba2e6634 | |||
78608a5080 | |||
7a86637f8d | |||
c2961f2152 | |||
6845c6f958 | |||
794a056819 | |||
69ad75cf48 | |||
3db52155dd | |||
38805ae662 | |||
dfa0750ffd | |||
d80e7e0118 | |||
b7e2718bdc | |||
e68dfed1f7 | |||
bacfdbbb03 | |||
99ce3deeb0 | |||
d75a3484d6 | |||
3dcb593a71 | |||
1847a4f4cc | |||
deec0bf255 | |||
8bb9eb0fc9 | |||
21de3c327b | |||
081d94e0f6 | |||
ddd1825162 | |||
5f223e0bd8 | |||
809d92129b | |||
8840608a25 | |||
edbb204332 | |||
9dc3b73ef9 | |||
a7d618915c | |||
3e3da8e2f8 | |||
a6763e7731 | |||
8f15193b40 | |||
467b7c1bca | |||
97963a1ca8 | |||
2fc1f1adbe | |||
200f4908d5 | |||
1f864c905d | |||
df77fb6793 | |||
3fa3889fa5 | |||
4b28b90e0f | |||
e0a992af73 | |||
7c4e43c84f | |||
b57832716a | |||
945a019974 | |||
22e21ad7d1 | |||
ae48f8bda9 | |||
62abf3edc7 | |||
f8ce47c24d | |||
ddb3a5c625 | |||
c6d2bc4c57 | |||
e3a0b6d4ee | |||
e5a0dcb47e | |||
3989cad3db | |||
2a1f915f9d | |||
a6002652d0 | |||
25bfe99ed5 | |||
9a35c9902a | |||
4259676f6e | |||
2159d6886f | |||
ca4e563f55 | |||
8be0c5a58a | |||
5edceba588 | |||
49133c7245 | |||
c1c00a8c1d | |||
d3bf1a9ee7 | |||
f43f9557e4 | |||
a92ad59595 | |||
616852cf2b | |||
e5ce3d541e | |||
925a25da17 | |||
6743c18fdf | |||
4d649d6ee8 | |||
121c427438 | |||
25fbffc454 | |||
0e0574a0b4 | |||
4c11d15a07 | |||
3217c10ff2 | |||
264050742b | |||
cdb8ac3a2f | |||
10b3671a99 | |||
4d2dce2c52 | |||
27c660d2a9 | |||
8e7c90b930 | |||
ff2fbf5ae4 | |||
e77463b875 | |||
74bb9e6249 | |||
43041f0464 | |||
c3ec813f6f | |||
04d7069d83 | |||
52c59ac0dd | |||
240f3faf6e | |||
284978757e | |||
50c28714df | |||
6099e92df5 | |||
a4d09b4264 | |||
6f5a099184 | |||
8c3811a866 | |||
118cab1766 | |||
367b1c0627 | |||
33b8537bf5 | |||
361cc6cf92 | |||
5fb8d4f730 | |||
a98ed08a54 | |||
80a7547129 | |||
ca3f4cfb41 | |||
551e827841 | |||
4dc2039859 | |||
f1195ecb01 | |||
127ba318fd | |||
72fa44d0fd | |||
b96cc9a161 | |||
5f2c167947 | |||
86a78c340f | |||
1acdff822a | |||
a5e6dd52d2 | |||
14953041cc | |||
4e422a527f | |||
c0b561dd4a | |||
0f542c2e16 | |||
cff9eaf5aa | |||
468117583a | |||
7026a6fd32 | |||
ceed3e07e4 | |||
a0dc8dc7ef | |||
b405ed6442 | |||
8566ec2ee5 | |||
ae7dd5e2db | |||
9f3c85fdc8 | |||
aa685310bb | |||
76117fd306 | |||
8855622666 | |||
655234e6c3 |
3
.eslintrc.yml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
extends:
|
||||||
|
- ./lint/eslintrc-gjs.yml
|
||||||
|
- ./lint/eslintrc-shell.yml
|
4
.gitignore
vendored
@ -21,6 +21,8 @@ data/org.gnome.shell.gschema.valid
|
|||||||
data/org.gnome.Shell.PortalHelper.desktop
|
data/org.gnome.Shell.PortalHelper.desktop
|
||||||
data/org.gnome.Shell.PortalHelper.service
|
data/org.gnome.Shell.PortalHelper.service
|
||||||
data/theme/.sass-cache
|
data/theme/.sass-cache
|
||||||
|
data/theme/gnome-shell*.css.map
|
||||||
|
data/theme/gnome-shell*.css
|
||||||
docs/reference/*/*.args
|
docs/reference/*/*.args
|
||||||
docs/reference/*/*.bak
|
docs/reference/*/*.bak
|
||||||
docs/reference/*/*.hierarchy
|
docs/reference/*/*.hierarchy
|
||||||
@ -58,7 +60,6 @@ src/calendar-server/evolution-calendar.desktop
|
|||||||
src/calendar-server/org.gnome.Shell.CalendarServer.service
|
src/calendar-server/org.gnome.Shell.CalendarServer.service
|
||||||
src/gnome-shell
|
src/gnome-shell
|
||||||
src/gnome-shell-calendar-server
|
src/gnome-shell-calendar-server
|
||||||
src/gnome-shell-extension-prefs
|
|
||||||
src/gnome-shell-extension-tool
|
src/gnome-shell-extension-tool
|
||||||
src/gnome-shell-hotplug-sniffer
|
src/gnome-shell-hotplug-sniffer
|
||||||
src/gnome-shell-perf-helper
|
src/gnome-shell-perf-helper
|
||||||
@ -80,3 +81,4 @@ tests/run-test.sh
|
|||||||
*~
|
*~
|
||||||
*.patch
|
*.patch
|
||||||
*.sw?
|
*.sw?
|
||||||
|
.vscode
|
||||||
|
119
.gitlab-ci.yml
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
include: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml'
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- review
|
||||||
|
- build
|
||||||
|
- test
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
variables:
|
||||||
|
BUNDLE: "extensions-git.flatpak"
|
||||||
|
JS_LOG: "js-report.txt"
|
||||||
|
|
||||||
|
.only_default: &only_default
|
||||||
|
only:
|
||||||
|
- branches
|
||||||
|
- tags
|
||||||
|
- merge_requests
|
||||||
|
|
||||||
|
check_commit_log:
|
||||||
|
image: registry.gitlab.gnome.org/gnome/mutter/master:v4
|
||||||
|
stage: review
|
||||||
|
variables:
|
||||||
|
GIT_DEPTH: "100"
|
||||||
|
script:
|
||||||
|
- ./.gitlab-ci/check-commit-log.sh
|
||||||
|
only:
|
||||||
|
- merge_requests
|
||||||
|
|
||||||
|
js_check:
|
||||||
|
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2
|
||||||
|
stage: review
|
||||||
|
script:
|
||||||
|
- find js -name '*.js' -exec js68 -c -s '{}' ';' 2>&1 | tee $JS_LOG
|
||||||
|
- (! grep -q . $JS_LOG)
|
||||||
|
<<: *only_default
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- ${JS_LOG}
|
||||||
|
when: on_failure
|
||||||
|
|
||||||
|
eslint:
|
||||||
|
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2
|
||||||
|
stage: review
|
||||||
|
script:
|
||||||
|
- ./.gitlab-ci/run-eslint.sh
|
||||||
|
<<: *only_default
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- reports
|
||||||
|
when: always
|
||||||
|
|
||||||
|
potfile_check:
|
||||||
|
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2
|
||||||
|
stage: review
|
||||||
|
script:
|
||||||
|
- ./.gitlab-ci/check-potfiles.sh
|
||||||
|
<<: *only_default
|
||||||
|
|
||||||
|
no_template_check:
|
||||||
|
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2
|
||||||
|
stage: review
|
||||||
|
script:
|
||||||
|
- ./.gitlab-ci/check-template-strings.sh
|
||||||
|
<<: *only_default
|
||||||
|
|
||||||
|
build:
|
||||||
|
image: registry.gitlab.gnome.org/gnome/mutter/master:v4
|
||||||
|
stage: build
|
||||||
|
needs: []
|
||||||
|
before_script:
|
||||||
|
- .gitlab-ci/checkout-mutter.sh
|
||||||
|
- meson mutter mutter/build --prefix=/usr -Dtests=false
|
||||||
|
- ninja -C mutter/build install
|
||||||
|
script:
|
||||||
|
- meson . build -Dbuiltype=debugoptimized -Dman=false --werror
|
||||||
|
- ninja -C build
|
||||||
|
- ninja -C build install
|
||||||
|
<<: *only_default
|
||||||
|
artifacts:
|
||||||
|
expire_in: 1 day
|
||||||
|
paths:
|
||||||
|
- mutter
|
||||||
|
- build
|
||||||
|
|
||||||
|
test:
|
||||||
|
image: registry.gitlab.gnome.org/gnome/mutter/master:v4
|
||||||
|
stage: test
|
||||||
|
needs: ["build"]
|
||||||
|
variables:
|
||||||
|
XDG_RUNTIME_DIR: "$CI_PROJECT_DIR/runtime-dir"
|
||||||
|
NO_AT_BRIDGE: "1"
|
||||||
|
before_script:
|
||||||
|
- ninja -C mutter/build install
|
||||||
|
script:
|
||||||
|
- dbus-run-session -- xvfb-run meson test -C build --no-rebuild
|
||||||
|
<<: *only_default
|
||||||
|
artifacts:
|
||||||
|
expire_in: 1 day
|
||||||
|
paths:
|
||||||
|
- build/meson-logs/testlog.txt
|
||||||
|
when: on_failure
|
||||||
|
|
||||||
|
flatpak:
|
||||||
|
stage: build
|
||||||
|
needs: []
|
||||||
|
variables:
|
||||||
|
SUBPROJECT: "subprojects/extensions-app"
|
||||||
|
# Your manifest path
|
||||||
|
MANIFEST_PATH: "$SUBPROJECT/build-aux/flatpak/org.gnome.Extensions.json"
|
||||||
|
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
|
||||||
|
FLATPAK_MODULE: "gnome-extensions-app"
|
||||||
|
APP_ID: "org.gnome.Extensions"
|
||||||
|
extends: .flatpak
|
||||||
|
<<: *only_default
|
||||||
|
|
||||||
|
nightly:
|
||||||
|
extends: '.publish_nightly'
|
||||||
|
variables:
|
||||||
|
BUNDLES: '$BUNDLE'
|
24
.gitlab-ci/Dockerfile
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# Rebuild and push with
|
||||||
|
#
|
||||||
|
# cd .gitlab-ci/
|
||||||
|
# podman build --format docker --no-cache -t registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2 .
|
||||||
|
# podman push registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM registry.fedoraproject.org/fedora:32
|
||||||
|
|
||||||
|
RUN dnf -y update && dnf -y upgrade && \
|
||||||
|
dnf install -y 'dnf-command(copr)' git && \
|
||||||
|
|
||||||
|
# For syntax checks with `find . -name '*.js' -exec js68 -c -s '{}' ';'`
|
||||||
|
dnf install -y findutils mozjs68-devel && \
|
||||||
|
|
||||||
|
# For static analysis with eslint
|
||||||
|
dnf install -y nodejs && \
|
||||||
|
npm install -g eslint && \
|
||||||
|
|
||||||
|
# Shameless plug for my own tooling; useful for generating zip
|
||||||
|
dnf copr enable -y fmuellner/gnome-shell-ci && \
|
||||||
|
dnf install -y gnome-extensions-tool meson && \
|
||||||
|
|
||||||
|
dnf clean all
|
31
.gitlab-ci/check-commit-log.sh
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
if [ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
|
||||||
|
echo Cannot review non-merge request
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
git fetch $CI_MERGE_REQUEST_PROJECT_URL.git $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
||||||
|
|
||||||
|
branch_point=$(git merge-base HEAD FETCH_HEAD)
|
||||||
|
|
||||||
|
commits=$(git log --format='format:%H' $branch_point..$CI_COMMIT_SHA)
|
||||||
|
|
||||||
|
if [ -z "$commits" ]; then
|
||||||
|
echo Commit range empty
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
function commit_message_has_url() {
|
||||||
|
commit=$1
|
||||||
|
commit_message=$(git show -s --format='format:%b' $commit)
|
||||||
|
echo "$commit_message" | grep -qe "\($CI_MERGE_REQUEST_PROJECT_URL/\(-/\)\?\(issues\|merge_requests\)/[0-9]\+\|https://bugzilla.gnome.org/show_bug.cgi?id=[0-9]\+\)"
|
||||||
|
return $?
|
||||||
|
}
|
||||||
|
|
||||||
|
for commit in $commits; do
|
||||||
|
if ! commit_message_has_url $commit; then
|
||||||
|
echo "Missing merge request or issue URL on commit $(echo $commit | cut -c -8)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
31
.gitlab-ci/check-potfiles.sh
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
srcdirs="js src subprojects/extensions-tool"
|
||||||
|
globs=('*.js' '*.c')
|
||||||
|
|
||||||
|
# find source files that contain gettext keywords
|
||||||
|
files=$(grep -lR ${globs[@]/#/--include=} '\(gettext\|[^I_)]_\)(' $srcdirs)
|
||||||
|
|
||||||
|
# filter out excluded files
|
||||||
|
if [ -f po/POTFILES.skip ]; then
|
||||||
|
files=$(for f in $files; do ! grep -q ^$f po/POTFILES.skip && echo $f; done)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# find those that aren't listed in POTFILES.in
|
||||||
|
missing=$(for f in $files; do ! grep -q ^$f po/POTFILES.in && echo $f; done)
|
||||||
|
|
||||||
|
if [ ${#missing} -eq 0 ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat >&2 <<EOT
|
||||||
|
|
||||||
|
The following files are missing from po/POTFILES.po:
|
||||||
|
|
||||||
|
EOT
|
||||||
|
for f in $missing; do
|
||||||
|
echo " $f" >&2
|
||||||
|
done
|
||||||
|
echo >&2
|
||||||
|
|
||||||
|
exit 1
|
23
.gitlab-ci/check-template-strings.sh
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# find files from POTFILES.in that use js template strings
|
||||||
|
baddies=$(grep -l '${' $(grep ^js po/POTFILES.in))
|
||||||
|
|
||||||
|
if [ ${#baddies} -eq 0 ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat >&2 <<EOT
|
||||||
|
|
||||||
|
xgettext cannot handle template strings properly, so we ban their use
|
||||||
|
in files with translatable strings.
|
||||||
|
|
||||||
|
The following files are listed in po/POTFILES.in and use template strings:
|
||||||
|
|
||||||
|
EOT
|
||||||
|
for f in $baddies; do
|
||||||
|
echo " $f" >&2
|
||||||
|
done
|
||||||
|
echo >&2
|
||||||
|
|
||||||
|
exit 1
|
33
.gitlab-ci/checkout-mutter.sh
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
mutter_target=
|
||||||
|
|
||||||
|
git clone https://gitlab.gnome.org/GNOME/mutter.git
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo Checkout failed
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd mutter
|
||||||
|
|
||||||
|
if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
|
||||||
|
merge_request_remote=${CI_MERGE_REQUEST_SOURCE_PROJECT_URL//gnome-shell/mutter}
|
||||||
|
merge_request_branch=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
|
||||||
|
|
||||||
|
echo Looking for $merge_request_branch on remote ...
|
||||||
|
if git fetch -q $merge_request_remote $merge_request_branch 2>/dev/null; then
|
||||||
|
mutter_target=FETCH_HEAD
|
||||||
|
else
|
||||||
|
mutter_target=origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
||||||
|
echo Using $mutter_target instead
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$mutter_target" ]; then
|
||||||
|
mutter_target=$(git branch -r -l origin/$CI_COMMIT_REF_NAME)
|
||||||
|
mutter_target=${mutter_target:-origin/master}
|
||||||
|
echo Using $mutter_target instead
|
||||||
|
fi
|
||||||
|
|
||||||
|
git checkout -q $mutter_target
|
116
.gitlab-ci/run-eslint.sh
Executable file
@ -0,0 +1,116 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
OUTPUT_REGULAR=reports/lint-regular-report.txt
|
||||||
|
OUTPUT_LEGACY=reports/lint-legacy-report.txt
|
||||||
|
OUTPUT_FINAL=reports/lint-common-report.txt
|
||||||
|
|
||||||
|
OUTPUT_MR=reports/lint-mr-report.txt
|
||||||
|
|
||||||
|
LINE_CHANGES=changed-lines.txt
|
||||||
|
|
||||||
|
is_empty() {
|
||||||
|
(! grep -q . $1)
|
||||||
|
}
|
||||||
|
|
||||||
|
run_eslint() {
|
||||||
|
ARGS_LEGACY='--config lint/eslintrc-legacy.yml'
|
||||||
|
|
||||||
|
local extra_args=ARGS_$1
|
||||||
|
local output_var=OUTPUT_$1
|
||||||
|
local output=${!output_var}
|
||||||
|
local cache=.eslintcache-${1,,}
|
||||||
|
|
||||||
|
# ensure output exists even if eslint doesn't report any errors
|
||||||
|
mkdir -p $(dirname $output)
|
||||||
|
touch $output
|
||||||
|
|
||||||
|
eslint -f unix --cache --cache-location $cache ${!extra_args} -o $output \
|
||||||
|
js subprojects/extensions-app/js
|
||||||
|
}
|
||||||
|
|
||||||
|
list_commit_range_additions() {
|
||||||
|
# Turn raw context-less git-diff into a list of
|
||||||
|
# filename:lineno pairs of new (+) lines
|
||||||
|
git diff -U0 "$@" -- js |
|
||||||
|
awk '
|
||||||
|
BEGIN { file=""; }
|
||||||
|
/^+++ b/ { file=substr($0,7); }
|
||||||
|
/^@@ / {
|
||||||
|
len = split($3,a,",")
|
||||||
|
start=a[1]
|
||||||
|
count=(len > 1) ? a[2] : 1
|
||||||
|
|
||||||
|
for (line=start; line<start+count; line++)
|
||||||
|
printf "%s/%s:%d:\n",ENVIRON["PWD"],file,line;
|
||||||
|
}'
|
||||||
|
}
|
||||||
|
|
||||||
|
copy_matched_lines() {
|
||||||
|
local source=$1
|
||||||
|
local matches=$2
|
||||||
|
local target=$3
|
||||||
|
|
||||||
|
echo -n > $target
|
||||||
|
for l in $(<$matches); do
|
||||||
|
grep $l $source >> $target
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
create_common() {
|
||||||
|
# comm requires sorted input;
|
||||||
|
# we also strip the error message to make the following a "common" error:
|
||||||
|
# regular:
|
||||||
|
# file.js:42:23 Indentation of 55, expected 42
|
||||||
|
# legacy:
|
||||||
|
# file.js:42:23 Indentation of 55, extected 24
|
||||||
|
prepare() {
|
||||||
|
sed 's: .*::' $1 | sort
|
||||||
|
}
|
||||||
|
|
||||||
|
comm -12 <(prepare $OUTPUT_REGULAR) <(prepare $OUTPUT_LEGACY) >$OUTPUT_FINAL.tmp
|
||||||
|
|
||||||
|
# Now add back the stripped error messages
|
||||||
|
copy_matched_lines $OUTPUT_REGULAR $OUTPUT_FINAL.tmp $OUTPUT_FINAL
|
||||||
|
rm $OUTPUT_FINAL.tmp
|
||||||
|
}
|
||||||
|
|
||||||
|
# Disable MR handling for now. We aren't ready to enforce
|
||||||
|
# non-legacy style just yet ...
|
||||||
|
unset CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
||||||
|
|
||||||
|
REMOTE=${1:-$CI_MERGE_REQUEST_PROJECT_URL.git}
|
||||||
|
BRANCH_NAME=${2:-$CI_MERGE_REQUEST_TARGET_BRANCH_NAME}
|
||||||
|
|
||||||
|
if [ "$BRANCH_NAME" ]; then
|
||||||
|
git fetch $REMOTE $BRANCH_NAME
|
||||||
|
branch_point=$(git merge-base HEAD FETCH_HEAD)
|
||||||
|
commit_range=$branch_point...HEAD
|
||||||
|
|
||||||
|
list_commit_range_additions $commit_range > $LINE_CHANGES
|
||||||
|
|
||||||
|
# Don't bother with running lint when no JS changed
|
||||||
|
if is_empty $LINE_CHANGES; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo Generating lint report using regular configuration
|
||||||
|
run_eslint REGULAR
|
||||||
|
echo Generating lint report using legacy configuration
|
||||||
|
run_eslint LEGACY
|
||||||
|
echo Done.
|
||||||
|
create_common
|
||||||
|
|
||||||
|
if ! is_empty $OUTPUT_FINAL; then
|
||||||
|
cat $OUTPUT_FINAL
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Just show the report and succeed when not testing a MR
|
||||||
|
if [ -z "$BRANCH_NAME" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
copy_matched_lines $OUTPUT_REGULAR $LINE_CHANGES $OUTPUT_MR
|
||||||
|
cat $OUTPUT_MR
|
||||||
|
is_empty $OUTPUT_MR
|
55
.gitlab/issue_templates/Bug.md
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<!--
|
||||||
|
Please read https://wiki.gnome.org/Community/GettingInTouch/BugReportingGuidelines
|
||||||
|
first to ensure that you create a clear and specific issue.
|
||||||
|
-->
|
||||||
|
|
||||||
|
### Affected version
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Provide at least the following information:
|
||||||
|
* Your OS and version
|
||||||
|
* Affected GNOME Shell version
|
||||||
|
* Does this issue appear in XOrg and/or Wayland
|
||||||
|
-->
|
||||||
|
|
||||||
|
### Bug summary
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Provide a short summary of the bug you encountered.
|
||||||
|
-->
|
||||||
|
|
||||||
|
### Steps to reproduce
|
||||||
|
|
||||||
|
<!--
|
||||||
|
1. Step one
|
||||||
|
2. Step two
|
||||||
|
3. ...
|
||||||
|
-->
|
||||||
|
|
||||||
|
### What happened
|
||||||
|
|
||||||
|
<!--
|
||||||
|
What did GNOME Shell do that was unexpected?
|
||||||
|
-->
|
||||||
|
|
||||||
|
### What did you expect to happen
|
||||||
|
|
||||||
|
<!--
|
||||||
|
What did you expect GNOME Shell to do?
|
||||||
|
-->
|
||||||
|
|
||||||
|
### Relevant logs, screenshots, screencasts etc.
|
||||||
|
|
||||||
|
<!--
|
||||||
|
If you have further information, such as technical documentation, logs,
|
||||||
|
screenshots or screencasts related, please provide them here.
|
||||||
|
|
||||||
|
If the bug is a crash, please obtain a stack trace with installed debug
|
||||||
|
symbols (at least for GNOME Shell and Mutter) and attach it to
|
||||||
|
this issue following the instructions on
|
||||||
|
https://wiki.gnome.org/Community/GettingInTouch/Bugzilla/GettingTraces.
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Do not remove the following line. -->
|
||||||
|
/label ~"1. Bug"
|
30
.gitlab/issue_templates/Feature.md
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<!--
|
||||||
|
Please read https://wiki.gnome.org/Community/GettingInTouch/BugReportingGuidelines
|
||||||
|
first to ensure that you create a clear and specific issue.
|
||||||
|
-->
|
||||||
|
|
||||||
|
### Feature summary
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Describe what you would like to be able to do with GNOME Shell
|
||||||
|
that you currently cannot do.
|
||||||
|
-->
|
||||||
|
|
||||||
|
### How would you like it to work
|
||||||
|
|
||||||
|
<!--
|
||||||
|
If you can think of a way GNOME Shell might be able to do this,
|
||||||
|
let us know here.
|
||||||
|
-->
|
||||||
|
|
||||||
|
### Relevant links, screenshots, screencasts etc.
|
||||||
|
|
||||||
|
<!--
|
||||||
|
If you have further information, such as technical documentation,
|
||||||
|
code, mockups or a similar feature in another desktop environments,
|
||||||
|
please provide them here.
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Do not remove the following line. -->
|
||||||
|
/label ~"1. Feature"
|
31
.project
@ -1,31 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<projectDescription>
|
|
||||||
<name>gnome-shell</name>
|
|
||||||
<comment></comment>
|
|
||||||
<projects>
|
|
||||||
</projects>
|
|
||||||
<buildSpec>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.linuxtools.cdt.autotools.genmakebuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
</buildSpec>
|
|
||||||
<natures>
|
|
||||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
|
||||||
<nature>org.eclipse.linuxtools.cdt.autotools.autotoolsNature</nature>
|
|
||||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
|
||||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
|
||||||
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
|
|
||||||
</natures>
|
|
||||||
</projectDescription>
|
|
@ -1,148 +0,0 @@
|
|||||||
#Fri Nov 28 14:33:30 EST 2008
|
|
||||||
eclipse.preferences.version=1
|
|
||||||
org.eclipse.cdt.core.formatter.alignment_for_arguments_in_method_invocation=16
|
|
||||||
org.eclipse.cdt.core.formatter.alignment_for_base_clause_in_type_declaration=80
|
|
||||||
org.eclipse.cdt.core.formatter.alignment_for_compact_if=0
|
|
||||||
org.eclipse.cdt.core.formatter.alignment_for_conditional_expression=80
|
|
||||||
org.eclipse.cdt.core.formatter.alignment_for_declarator_list=16
|
|
||||||
org.eclipse.cdt.core.formatter.alignment_for_enumerator_list=48
|
|
||||||
org.eclipse.cdt.core.formatter.alignment_for_expression_list=0
|
|
||||||
org.eclipse.cdt.core.formatter.alignment_for_expressions_in_array_initializer=16
|
|
||||||
org.eclipse.cdt.core.formatter.alignment_for_parameters_in_method_declaration=16
|
|
||||||
org.eclipse.cdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
|
|
||||||
org.eclipse.cdt.core.formatter.brace_position_for_array_initializer=next_line_shifted
|
|
||||||
org.eclipse.cdt.core.formatter.brace_position_for_block=next_line_shifted
|
|
||||||
org.eclipse.cdt.core.formatter.brace_position_for_block_in_case=next_line_shifted
|
|
||||||
org.eclipse.cdt.core.formatter.brace_position_for_method_declaration=next_line
|
|
||||||
org.eclipse.cdt.core.formatter.brace_position_for_namespace_declaration=next_line
|
|
||||||
org.eclipse.cdt.core.formatter.brace_position_for_switch=next_line_shifted
|
|
||||||
org.eclipse.cdt.core.formatter.brace_position_for_type_declaration=next_line
|
|
||||||
org.eclipse.cdt.core.formatter.compact_else_if=true
|
|
||||||
org.eclipse.cdt.core.formatter.continuation_indentation=2
|
|
||||||
org.eclipse.cdt.core.formatter.continuation_indentation_for_array_initializer=2
|
|
||||||
org.eclipse.cdt.core.formatter.format_guardian_clause_on_one_line=false
|
|
||||||
org.eclipse.cdt.core.formatter.indent_access_specifier_compare_to_type_header=false
|
|
||||||
org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_access_specifier=true
|
|
||||||
org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_namespace_header=true
|
|
||||||
org.eclipse.cdt.core.formatter.indent_breaks_compare_to_cases=true
|
|
||||||
org.eclipse.cdt.core.formatter.indent_declaration_compare_to_template_header=true
|
|
||||||
org.eclipse.cdt.core.formatter.indent_empty_lines=false
|
|
||||||
org.eclipse.cdt.core.formatter.indent_statements_compare_to_block=true
|
|
||||||
org.eclipse.cdt.core.formatter.indent_statements_compare_to_body=true
|
|
||||||
org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_cases=true
|
|
||||||
org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_switch=false
|
|
||||||
org.eclipse.cdt.core.formatter.indentation.size=8
|
|
||||||
org.eclipse.cdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_new_line_after_template_declaration=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_new_line_in_empty_block=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_assignment_operator=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_binary_operator=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_arguments=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_parameters=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_closing_brace_in_block=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_base_clause=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_case=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_conditional=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_base_types=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_declarator_list=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_expression_list=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_arguments=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_parameters=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_arguments=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_parameters=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_opening_bracket=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_postfix_operator=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_prefix_operator=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_question_in_conditional=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_semicolon_in_for=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_after_unary_operator=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_assignment_operator=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_binary_operator=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_arguments=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_parameters=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_closing_bracket=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_base_clause=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_case=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_conditional=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_default=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_base_types=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_declarator_list=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_expression_list=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_arguments=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_parameters=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_arguments=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_parameters=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_block=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_namespace_declaration=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_bracket=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_for=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_if=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_while=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_postfix_operator=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_prefix_operator=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_question_in_conditional=insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_semicolon=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_before_unary_operator=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_between_empty_brackets=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
|
|
||||||
org.eclipse.cdt.core.formatter.keep_else_statement_on_same_line=false
|
|
||||||
org.eclipse.cdt.core.formatter.keep_empty_array_initializer_on_one_line=false
|
|
||||||
org.eclipse.cdt.core.formatter.keep_imple_if_on_one_line=false
|
|
||||||
org.eclipse.cdt.core.formatter.keep_then_statement_on_same_line=false
|
|
||||||
org.eclipse.cdt.core.formatter.lineSplit=80
|
|
||||||
org.eclipse.cdt.core.formatter.number_of_empty_lines_to_preserve=1
|
|
||||||
org.eclipse.cdt.core.formatter.put_empty_statement_on_new_line=true
|
|
||||||
org.eclipse.cdt.core.formatter.tabulation.char=space
|
|
||||||
org.eclipse.cdt.core.formatter.tabulation.size=2
|
|
||||||
org.eclipse.cdt.core.formatter.use_tabs_only_for_leading_indentations=false
|
|
@ -1,4 +0,0 @@
|
|||||||
#Fri Nov 28 14:33:30 EST 2008
|
|
||||||
eclipse.preferences.version=1
|
|
||||||
formatter_profile=org.eclipse.cdt.ui.default.gnu_profile
|
|
||||||
formatter_settings_version=1
|
|
@ -1,315 +0,0 @@
|
|||||||
#Fri Nov 28 14:43:43 EST 2008
|
|
||||||
eclipse.preferences.version=1
|
|
||||||
org.eclipse.wst.jsdt.core.codeComplete.argumentPrefixes=
|
|
||||||
org.eclipse.wst.jsdt.core.codeComplete.argumentSuffixes=
|
|
||||||
org.eclipse.wst.jsdt.core.codeComplete.fieldPrefixes=
|
|
||||||
org.eclipse.wst.jsdt.core.codeComplete.fieldSuffixes=
|
|
||||||
org.eclipse.wst.jsdt.core.codeComplete.localPrefixes=
|
|
||||||
org.eclipse.wst.jsdt.core.codeComplete.localSuffixes=
|
|
||||||
org.eclipse.wst.jsdt.core.codeComplete.staticFieldPrefixes=
|
|
||||||
org.eclipse.wst.jsdt.core.codeComplete.staticFieldSuffixes=
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.codegen.inlineJsrBytecode=disabled
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.codegen.targetPlatform=1.2
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.codegen.unusedLocal=preserve
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.compliance=1.4
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.debug.lineNumber=generate
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.debug.localVariable=generate
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.debug.sourceFile=generate
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.assertIdentifier=warning
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.deprecation=warning
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.discouragedReference=warning
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.emptyStatement=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.enumIdentifier=warning
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.fallthroughCase=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.fieldHiding=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.forbiddenReference=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.hiddenCatchBlock=warning
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.indirectStaticAccess=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.localVariableHiding=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.looseVarDecleration=warning
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.noEffectAssignment=warning
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.nullReference=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.optionalSemicolon=warning
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.parameterAssignment=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.redundantNullCheck=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.undefinedField=warning
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.undocumentedEmptyBlock=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.unnecessaryElse=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.unresolvedFieldReference=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.unresolvedMethodReference=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.unresolvedTypeReference=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.unusedLabel=warning
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.unusedLocal=warning
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.unusedParameter=ignore
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.problem.unusedPrivateMember=warning
|
|
||||||
org.eclipse.wst.jsdt.core.compiler.source=1.3
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.align_type_members_on_columns=false
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_enum_constant=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_assignment=0
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_binary_expression=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_compact_if=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_conditional_expression=80
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_enum_constants=0
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_expressions_in_array_initializer=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_multiple_fields=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_method_declaration=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_superclass_in_type_declaration=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports=1
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package=1
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field=0
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration=0
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports=1
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type=1
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method=1
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk=1
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package=0
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.blank_lines_between_import_groups=1
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations=0
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer=end_of_line
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.brace_position_for_block=end_of_line
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.brace_position_for_block_in_case=end_of_line
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_constant=end_of_line
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_declaration=end_of_line
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration=end_of_line
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.brace_position_for_objlit_initializer=end_of_line
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch=end_of_line
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration=end_of_line
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.comment.format_block_comments=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.comment.format_header=false
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.comment.format_html=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.comment.format_javadoc_comments=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.comment.format_line_comments=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.comment.format_source_code=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.comment.indent_parameter_description=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.comment.indent_root_tags=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_before_root_tags=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_for_parameter=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.comment.line_length=80
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.compact_else_if=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.continuation_indentation=2
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_array_initializer=2
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_objlit_initializer=1
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line=false
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.indent_empty_lines=false
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_block=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_body=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch=false
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.indentation.size=4
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_annotation=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_comma_in_objlit_initializer=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_objlit_initializer=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_objlit_initializer=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_and_in_type_parameter=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operator=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_brace_in_block=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_case=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_for=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_annotation=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_ellipsis=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_and_in_type_parameter=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operator=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_for=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_ellipsis=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_block=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_for=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_if=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_while=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional=insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line=false
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.keep_empty_array_initializer_on_one_line=false
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.keep_empty_objlit_initializer_on_one_line=false
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line=false
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line=false
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.lineSplit=80
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.never_indent_block_comments_on_first_column=false
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.never_indent_line_comments_on_first_column=false
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve=1
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line=true
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.tabulation.char=space
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.tabulation.size=4
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.use_tabs_only_for_leading_indentations=false
|
|
||||||
org.eclipse.wst.jsdt.core.formatter.wrap_before_binary_operator=true
|
|
@ -1,10 +0,0 @@
|
|||||||
#Fri Nov 28 14:39:12 EST 2008
|
|
||||||
eclipse.preferences.version=1
|
|
||||||
formatter_profile=_gjs
|
|
||||||
formatter_settings_version=11
|
|
||||||
org.eclipse.wst.jsdt.ui.exception.name=e
|
|
||||||
org.eclipse.wst.jsdt.ui.gettersetter.use.is=true
|
|
||||||
org.eclipse.wst.jsdt.ui.javadoc=false
|
|
||||||
org.eclipse.wst.jsdt.ui.keywordthis=false
|
|
||||||
org.eclipse.wst.jsdt.ui.overrideannotation=true
|
|
||||||
org.eclipse.wst.jsdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
|
|
@ -1 +0,0 @@
|
|||||||
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
|
|
@ -1 +0,0 @@
|
|||||||
Window
|
|
206
HACKING.md
@ -10,15 +10,15 @@ Life isn't fun if you can't break the rules. If a rule seems unnecessarily
|
|||||||
restrictive while you're coding, ignore it, and let the patch reviewer decide
|
restrictive while you're coding, ignore it, and let the patch reviewer decide
|
||||||
what to do.
|
what to do.
|
||||||
|
|
||||||
## Indentation and whitespace
|
## Indentation, braces and whitespace
|
||||||
|
|
||||||
Use four-space indents. Braces are on the same line as their associated
|
* Use four-space indents.
|
||||||
statements. You should only omit braces if *both* sides of the statement are
|
* Braces are on the same line as their associated statements.
|
||||||
on one line.
|
* You should only omit braces if *both* sides of the statement are on one line.
|
||||||
|
* One space after the `function` keyword.
|
||||||
|
* No space between the function name in a declaration or a call.
|
||||||
|
* One space before the parens in the `if` statements, or `while`, or `for` loops.
|
||||||
|
|
||||||
* One space after the `function` keyword. No space between the function name
|
|
||||||
* in a declaration or a call. One space before the parens in the `if`
|
|
||||||
* statements, or `while`, or `for` loops.
|
|
||||||
```javascript
|
```javascript
|
||||||
function foo(a, b) {
|
function foo(a, b) {
|
||||||
let bar;
|
let bar;
|
||||||
@ -29,9 +29,8 @@ on one line.
|
|||||||
bar = do_thing(b);
|
bar = do_thing(b);
|
||||||
|
|
||||||
if (var == 5) {
|
if (var == 5) {
|
||||||
for (let i = 0; i < 10; i++) {
|
for (let i = 0; i < 10; i++)
|
||||||
print(i);
|
print(i);
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
print(20);
|
print(20);
|
||||||
}
|
}
|
||||||
@ -80,14 +79,10 @@ e.g. `imports.ui.popupMenu`.
|
|||||||
Each import block should be sorted alphabetically. Don't import modules you
|
Each import block should be sorted alphabetically. Don't import modules you
|
||||||
don't use.
|
don't use.
|
||||||
```javascript
|
```javascript
|
||||||
const GLib = imports.gi.GLib;
|
const { GLib, Gio, St } = imports.gi;
|
||||||
const Gio = imports.gi.Gio;
|
|
||||||
const Lang = imports.lang;
|
|
||||||
const St = imports.gi.St;
|
|
||||||
|
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
const Params = imports.misc.params;
|
const Params = imports.misc.params;
|
||||||
const Tweener = imports.ui.tweener;
|
|
||||||
const Util = imports.misc.util;
|
const Util = imports.misc.util;
|
||||||
```
|
```
|
||||||
The alphabetical ordering should be done independently of the location of the
|
The alphabetical ordering should be done independently of the location of the
|
||||||
@ -106,9 +101,8 @@ under the imports:
|
|||||||
Always use either `const` or `let` when defining a variable.
|
Always use either `const` or `let` when defining a variable.
|
||||||
```javascript
|
```javascript
|
||||||
// Iterating over an array
|
// Iterating over an array
|
||||||
for (let i = 0; i < arr.length; ++i) {
|
for (let i = 0; i < arr.length; ++i)
|
||||||
let item = arr[i];
|
let item = arr[i];
|
||||||
}
|
|
||||||
|
|
||||||
// Iterating over an object's properties
|
// Iterating over an object's properties
|
||||||
for (let prop in someobj) {
|
for (let prop in someobj) {
|
||||||
@ -121,40 +115,34 @@ See [What's new in JavaScript 1.7](https://developer.mozilla.org/en/JavaScript/N
|
|||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
There are many approaches to classes in JavaScript. We use our own class framework
|
There are many approaches to classes in JavaScript. We use standard ES6 classes
|
||||||
(sigh), which is built in gjs. The advantage is that it supports inheriting from
|
whenever possible, that is when not inheriting from GObjects.
|
||||||
GObjects, although this feature isn't used very often in the Shell itself.
|
|
||||||
```javascript
|
```javascript
|
||||||
var IconLabelMenuItem = new Lang.Class({
|
var IconLabelMenuItem = class extends PopupMenu.PopupMenuBaseItem {
|
||||||
Name: 'IconLabelMenuItem',
|
constructor(icon, label) {
|
||||||
Extends: PopupMenu.PopupMenuBaseItem,
|
super({ reactive: false });
|
||||||
|
|
||||||
_init(icon, label) {
|
|
||||||
this.parent({ reactive: false });
|
|
||||||
this.actor.add_child(icon);
|
this.actor.add_child(icon);
|
||||||
this.actor.add_child(label);
|
this.actor.add_child(label);
|
||||||
},
|
}
|
||||||
|
|
||||||
open() {
|
open() {
|
||||||
log("menu opened!");
|
log("menu opened!");
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
* 'Name' is required. 'Extends' is optional. If you leave it out, you will
|
For GObject inheritence, we use the GObject.registerClass() function provided
|
||||||
automatically inherit from Object.
|
by gjs.
|
||||||
|
```javascript
|
||||||
|
var MyActor = GObject.registerClass(
|
||||||
|
class MyActor extends Clutter.Actor {
|
||||||
|
_init(params) {
|
||||||
|
super._init(params);
|
||||||
|
|
||||||
* Leave a blank line between the "class header" (Name, Extends, and other
|
this.name = 'MyCustomActor';
|
||||||
things) and the "class body" (methods). Leave a blank line between each
|
}
|
||||||
method.
|
});
|
||||||
|
```
|
||||||
* No space before the colon, one space after.
|
|
||||||
|
|
||||||
* No trailing comma after the last item.
|
|
||||||
|
|
||||||
* Make sure to use a semicolon after the closing paren to the class. It's
|
|
||||||
still a giant function call, even though it may resemble a more
|
|
||||||
conventional syntax.
|
|
||||||
|
|
||||||
## GObject Introspection
|
## GObject Introspection
|
||||||
|
|
||||||
@ -162,23 +150,28 @@ GObject Introspection is a powerful feature that allows us to have native
|
|||||||
bindings for almost any library built around GObject. If a library requires
|
bindings for almost any library built around GObject. If a library requires
|
||||||
you to inherit from a type to use it, you can do so:
|
you to inherit from a type to use it, you can do so:
|
||||||
```javascript
|
```javascript
|
||||||
var MyClutterActor = new Lang.Class({
|
var MyClutterActor = GObject.registerClass(
|
||||||
Name: 'MyClutterActor',
|
class MyClutterActor extends Clutter.Actor {
|
||||||
Extends: Clutter.Actor,
|
|
||||||
|
|
||||||
vfunc_get_preferred_width(actor, forHeight) {
|
vfunc_get_preferred_width(forHeight) {
|
||||||
return [100, 100];
|
return [100, 100];
|
||||||
},
|
}
|
||||||
|
|
||||||
vfunc_get_preferred_height(actor, forWidth) {
|
vfunc_get_preferred_height(forWidth) {
|
||||||
return [100, 100];
|
return [100, 100];
|
||||||
},
|
}
|
||||||
|
|
||||||
vfunc_paint(actor) {
|
vfunc_paint(paintContext) {
|
||||||
|
let framebuffer = paintContext.get_framebuffer();
|
||||||
|
let coglContext = framebuffer.get_context();
|
||||||
let alloc = this.get_allocation_box();
|
let alloc = this.get_allocation_box();
|
||||||
Cogl.set_source_color4ub(255, 0, 0, 255);
|
|
||||||
Cogl.rectangle(alloc.x1, alloc.y1,
|
let pipeline = new Cogl.Pipeline(coglContext);
|
||||||
alloc.x2, alloc.y2);
|
pipeline.set_color4ub(255, 0, 0, 255);
|
||||||
|
|
||||||
|
framebuffer.draw_rectangle(pipeline,
|
||||||
|
alloc.x1, alloc.y1,
|
||||||
|
alloc.x2, alloc.y2);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
@ -197,30 +190,40 @@ and "double quotes" for strings that the user may see. This allows us to
|
|||||||
quickly find untranslated or mistranslated strings by grepping through the
|
quickly find untranslated or mistranslated strings by grepping through the
|
||||||
sources for double quotes without a gettext call around them.
|
sources for double quotes without a gettext call around them.
|
||||||
|
|
||||||
## `actor` and `_delegate`
|
## `actor` (deprecated) and `_delegate`
|
||||||
|
|
||||||
gjs allows us to set so-called "expando properties" on introspected objects,
|
gjs allows us to set so-called "expando properties" on introspected objects,
|
||||||
allowing us to treat them like any other. Because the Shell was built before
|
allowing us to treat them like any other. Because the Shell was built before
|
||||||
you could inherit from GTypes natively in JS, we usually have a wrapper class
|
you could inherit from GTypes natively in JS, in some cases we have a wrapper
|
||||||
that has a property called `actor`. We call this wrapper class the "delegate".
|
class that has a property called `actor` (now deprecated). We call this
|
||||||
|
wrapper class the "delegate".
|
||||||
|
|
||||||
We sometimes use expando properties to set a property called `_delegate` on
|
We sometimes use expando properties to set a property called `_delegate` on
|
||||||
the actor itself:
|
the actor itself:
|
||||||
```javascript
|
```javascript
|
||||||
var MyClass = new Lang.Class({
|
var MyActor = GObject.registerClass(
|
||||||
Name: 'MyClass',
|
class MyActor extends Clutter.Actor {
|
||||||
|
_init(params) {
|
||||||
|
super._init(params);
|
||||||
|
this._delegate = this;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
_init() {
|
Or using the deprecated `actor`:
|
||||||
|
```javascript
|
||||||
|
var MyClass = class {
|
||||||
|
constructor() {
|
||||||
this.actor = new St.Button({ text: "This is a button" });
|
this.actor = new St.Button({ text: "This is a button" });
|
||||||
this.actor._delegate = this;
|
this.actor._delegate = this;
|
||||||
|
|
||||||
this.actor.connect('clicked', this._onClicked.bind(this));
|
this.actor.connect('clicked', this._onClicked.bind(this));
|
||||||
},
|
}
|
||||||
|
|
||||||
_onClicked(actor) {
|
_onClicked(actor) {
|
||||||
actor.set_label("You clicked the button!");
|
actor.set_label("You clicked the button!");
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
The 'delegate' property is important for anything which trying to get the
|
The 'delegate' property is important for anything which trying to get the
|
||||||
@ -228,6 +231,7 @@ delegate object from an associated actor. For instance, the drag and drop
|
|||||||
system calls the `handleDragOver` function on the delegate of a "drop target"
|
system calls the `handleDragOver` function on the delegate of a "drop target"
|
||||||
when the user drags an item over it. If you do not set the `_delegate`
|
when the user drags an item over it. If you do not set the `_delegate`
|
||||||
property, your actor will not be able to be dropped onto.
|
property, your actor will not be able to be dropped onto.
|
||||||
|
In case the class is an actor itself, the `_delegate` can be just set to `this`.
|
||||||
|
|
||||||
## Functional style
|
## Functional style
|
||||||
|
|
||||||
@ -246,28 +250,25 @@ variable that can be captured in closures.
|
|||||||
All closures should be wrapped with Function.prototype.bind or use arrow
|
All closures should be wrapped with Function.prototype.bind or use arrow
|
||||||
notation.
|
notation.
|
||||||
```javascript
|
```javascript
|
||||||
const Lang = imports.lang;
|
let closure1 = () => this._fnorbate();
|
||||||
|
|
||||||
let closure1 = () => { this._fnorbate(); };
|
|
||||||
let closure2 = this._fnorbate.bind(this);
|
let closure2 = this._fnorbate.bind(this);
|
||||||
```
|
```
|
||||||
|
|
||||||
A more realistic example would be connecting to a signal on a method of a
|
A more realistic example would be connecting to a signal on a method of a
|
||||||
prototype:
|
prototype:
|
||||||
```javascript
|
```javascript
|
||||||
const Lang = imports.lang;
|
|
||||||
const FnorbLib = imports.fborbLib;
|
const FnorbLib = imports.fborbLib;
|
||||||
|
|
||||||
var MyClass = new Lang.Class({
|
var MyClass = class {
|
||||||
_init() {
|
_init() {
|
||||||
let fnorb = new FnorbLib.Fnorb();
|
let fnorb = new FnorbLib.Fnorb();
|
||||||
fnorb.connect('frobate', this._onFnorbFrobate.bind(this));
|
fnorb.connect('frobate', this._onFnorbFrobate.bind(this));
|
||||||
},
|
}
|
||||||
|
|
||||||
_onFnorbFrobate(fnorb) {
|
_onFnorbFrobate(fnorb) {
|
||||||
this._updateFnorb();
|
this._updateFnorb();
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
## Object literal syntax
|
## Object literal syntax
|
||||||
@ -292,36 +293,49 @@ If your usage of an object is like a hash table (and thus conceptually the keys
|
|||||||
can have special chars in them), don't use quotes, but use brackets: `{ bar: 42
|
can have special chars in them), don't use quotes, but use brackets: `{ bar: 42
|
||||||
}`, `foo['bar']`.
|
}`, `foo['bar']`.
|
||||||
|
|
||||||
## Getters, setters, and Tweener
|
## Animations
|
||||||
|
|
||||||
|
Most objects that are animated are actors, and most properties used in animations
|
||||||
|
are animatable, which means they can use implicit animations:
|
||||||
|
|
||||||
Getters and setters should be used when you are dealing with an API that is
|
|
||||||
designed around setting properties, like Tweener. If you want to animate an
|
|
||||||
arbitrary property, create a getter and setter, and use Tweener to animate the
|
|
||||||
property.
|
|
||||||
```javascript
|
```javascript
|
||||||
var ANIMATION_TIME = 2000;
|
moveActor(actor, x, y) {
|
||||||
|
actor.ease({
|
||||||
var MyClass = new Lang.Class({
|
x,
|
||||||
Name: 'MyClass',
|
y,
|
||||||
|
duration: 500, // ms
|
||||||
_init() {
|
mode: Clutter.AnimationMode.EASE_OUT_QUAD
|
||||||
this.actor = new St.BoxLayout();
|
});
|
||||||
this._position = 0;
|
}
|
||||||
},
|
```
|
||||||
|
|
||||||
get position() {
|
The above is a convenience wrapper around the actual Clutter API, and should generally
|
||||||
return this._position;
|
be preferred over the more verbose:
|
||||||
},
|
|
||||||
|
```javascript
|
||||||
set position(value) {
|
moveActor(actor, x, y) {
|
||||||
this._position = value;
|
actor.save_easing_state();
|
||||||
this.actor.set_position(value, value);
|
|
||||||
}
|
actor.set_easing_duration(500);
|
||||||
});
|
actor.set_easing_mode(Clutter.AnimationMode.EASE_OUT_QUAD);
|
||||||
|
actor.set({
|
||||||
let myThing = new MyClass();
|
x,
|
||||||
Tweener.addTween(myThing,
|
y
|
||||||
{ position: 100,
|
});
|
||||||
time: ANIMATION_TIME,
|
|
||||||
transition: 'easeOutQuad' });
|
actor.restore_easing_state();
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
There is a similar convenience API around Clutter.PropertyTransition to animate
|
||||||
|
actor (or actor meta) properties that cannot use implicit animations:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
desaturateActor(actor, desaturate) {
|
||||||
|
let factor = desaturate ? 1.0 : 0.0;
|
||||||
|
actor.ease_property('@effects.desaturate.factor', factor, {
|
||||||
|
duration: 500, // ms
|
||||||
|
mode: Clutter.AnimationMode.EASE_OUT_QUAD
|
||||||
|
});
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
767
NEWS
@ -1,3 +1,770 @@
|
|||||||
|
3.37.90
|
||||||
|
=======
|
||||||
|
* Fix extension updates when many extensions are installed [Jeremias; !1363]
|
||||||
|
* Fix missing icons in on-screen keyboard [Emre; #2631, #3007]
|
||||||
|
* Fix delay when showing calendar events [Sebastian; #2992]
|
||||||
|
* Allow rearranging items in app picker [Georges; !1284]
|
||||||
|
* Fix top bar navigation when NumLock is active [Olivier; #550]
|
||||||
|
* Delay login animation until wallpaper has loaded [Michael; #734996]
|
||||||
|
* Reset auth prompt on login screen on VT switch before fade in [Ray; #2997]
|
||||||
|
* Move screencasting into a separate service [Jonas Å.; !1372]
|
||||||
|
* Replace loaded terms with more descriptive one [Olivier; !1393]
|
||||||
|
* Add "Boot Options" support to restart dialog [Hans; !199]
|
||||||
|
* Move "Restart" into a separate menu item/dialog [Florian; #2202]
|
||||||
|
* Default to not installing updates on low battery [Michael; #2717]
|
||||||
|
* Misc. bug fixes and cleanups [Florian, Daniel V., Georges, Jonas Å.,
|
||||||
|
Daniel G., Carlos, Benjamin, Piotr, Andre, Jonas D., Andy; !1357, !1356,
|
||||||
|
#2969, #2969, !1358, !1371, #3005, !1380, #3022, !1381, !895, !1387, !1386,
|
||||||
|
!1385, #3037, !1389, !1390, !1391, !1383, !1399, #2983, !1403]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Jonas Ådahl, Benjamin Berg, Michael Catanzaro, Piotr Drąg, Jonas Dreßler,
|
||||||
|
Olivier Fourdan, Carlos Garnacho, Hans de Goede, Andy Holmes,
|
||||||
|
Sebastian Keller, Andre Moreira Magalhaes, Daniel García Moreno,
|
||||||
|
Florian Müllner, Georges Basile Stavracas Neto, Jeremias Ortega, Ray Strode,
|
||||||
|
Emre Uyguroglu, Daniel van Vugt
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Tim Sabsch [de], Boyuan Yang [zh_CN], Fabio Tomat [fur],
|
||||||
|
Efstathios Iosifidis [el], Rafael Fontenelle [pt_BR], Yuri Chornoivan [uk],
|
||||||
|
Daniel Șerbănescu [ro], Jordi Mas [ca], Daniel Mustieles [es],
|
||||||
|
Emin Tufan Çetin [tr], Asier Sarasua Garmendia [eu]
|
||||||
|
|
||||||
|
3.37.3
|
||||||
|
======
|
||||||
|
* Refactor and clean up window picker
|
||||||
|
[Jonas D., Florian; !1297, !1298, !1305, !1345, !1353]
|
||||||
|
* Move calendar events out of notifications list [Florian; !1282]
|
||||||
|
* Refine app folder dialogs [Georges; !1301]
|
||||||
|
* Hide switch-user button on lock screen if unsupported [Chingkai; #2687]
|
||||||
|
* Refactor and clean up app picker pagination [Georges; !1271]
|
||||||
|
* Add API to retrieve specified mimetypes from clipboards [Carlos; !1321]
|
||||||
|
* Support prepending workspace with horizontal layouts [Florian; #2916]
|
||||||
|
* Update microphone icon on input volume changes [fludixx; #2902]
|
||||||
|
* Cache labels on GPU [Daniel; !1329]
|
||||||
|
* Fix regressions in redesigned modal dialogs [Florian, Jonas D.; #2491, !1336]
|
||||||
|
* Use GIcon for all application icons [Florian; !1342]
|
||||||
|
* Support pre-authenticated logins in vmware environments [yun341; #1983]
|
||||||
|
* Better support sandboxed apps with multiple .desktop files [Florian; #219]
|
||||||
|
* Fix on-screen keyboard size in portrait orientation [Florian; #2349]
|
||||||
|
* Plugged leaks [Sebastian, Daniel, Florian; !1306, !1319, !1341]
|
||||||
|
* Misc. bug fixes and cleanups [Jonas D., Georges, Marco, Florian, Sebastian,
|
||||||
|
MOZGIII, Daniel, Mariana, Jonas Å.; !1296, !1295, #2643, !1300, !1309,
|
||||||
|
!1119, #2901, !1313, !1251, !1285, !1307, !1318, !1310, !1320, !1327, !1315,
|
||||||
|
!1289, !1331, !1332, !1333, !1334, !1340, !1287, !1308, !1346, !1299, !1343,
|
||||||
|
!1351, !1352, !1322]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Marco Trevisan (Treviño), Chingkai, Jonas Dreßler, Carlos Garnacho,
|
||||||
|
Sebastian Keller, MOZGIII, Florian Müllner, Georges Basile Stavracas Neto,
|
||||||
|
Mariana Picolo, Daniel van Vugt, fludixx, yun341, Jonas Ådahl
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Daniel Mustieles [es], Boyuan Yang [zh_CN], Yuri Chornoivan [uk],
|
||||||
|
Jordi Mas [ca], sicklylife [ja], Emin Tufan Çetin [tr],
|
||||||
|
Baurzhan Muftakhidinov [kk], Florentina Mușat [ro], Aurimas Černius [lt],
|
||||||
|
Rūdolfs Mazurs [lv]
|
||||||
|
|
||||||
|
3.37.2
|
||||||
|
======
|
||||||
|
* Add support for "PrefersNonDefaultGPU" desktop key [Bastien; !1226]
|
||||||
|
* Only start systemd units when running under systemd
|
||||||
|
[Carlos, Florian; #2755, !1242, !1252]
|
||||||
|
* Fix "ghost" media controls [Bryan; #2776]
|
||||||
|
* Fix zombie sockets from extensions downloader [Michael; #2774]
|
||||||
|
* Update world clocks offsets when timezone changes [Bryan; #2209]
|
||||||
|
* Support scrolling anywhere in slider menu items [Peter; #2795]
|
||||||
|
* Fix "Do Not Disturb" setting getting reset on startup [Florian; #2804]
|
||||||
|
* Only allow updates for extensions that aren't cached [Florian; !1248]
|
||||||
|
* Fix matching notifications by PID [Florian; #2592]
|
||||||
|
* Indicate extension errors in Extensions app [Florian; #2337]
|
||||||
|
* Add clipboard API for querying supported mimetypes [Andy; #2819]
|
||||||
|
* Add preview to color picker [Florian; #451]
|
||||||
|
* Improve world clocks styling [PrOF-kk; #2825]
|
||||||
|
* Remove Frequent view from app picker [Georges; !880]
|
||||||
|
* Fix pad OSD glitches [Carlos; !1290]
|
||||||
|
* Expose actor tree in looking glass [Georges; !1292]
|
||||||
|
* Fixed crashes [Jonas D., Florian; #2709, #2757]
|
||||||
|
* Misc. bug fixes and cleanups [Florian, AsciiWolf, Michael, Piotr, Ting-Wei,
|
||||||
|
Amr, Alexander, Bryan, Georges, Jonas D., Andy, Björn, Koki, Carlos; !1229,
|
||||||
|
!1231, !1233, !1235, #2578, #2735, #2751, #2602, #2777, !1249, #2796, !1268,
|
||||||
|
!1269, !1265, !1245, !1273, #2816, !1274, !1263, !1188, !1276, #2652, !1277,
|
||||||
|
!1281, #2286, !1267, !1286, !1279, !1288, !1293, !1294, !1291]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
AsciiWolf, Michael Catanzaro, Björn Daase, Jonas Dreßler, Bryan Dunsmore,
|
||||||
|
Koki Fukuda, Carlos Garnacho, Andy Holmes, Amr Ibrahim, Soslan Khubulov,
|
||||||
|
Ting-Wei Lan, Michael Lass, Alexander Mikhaylenko, Florian Müllner,
|
||||||
|
Georges Basile Stavracas Neto, Bastien Nocera, PrOF-kk, Peter Simonyi
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Fabio Tomat [fur], Cheng-Chia Tseng [zh_TW], Yuri Chornoivan [uk],
|
||||||
|
Dušan Kazik [sk], Piotr Drąg [pl], Soslan Khubulov [os],
|
||||||
|
Daniel Mustieles [es], Nathan Follens [nl], Bruce Cowan [en_GB],
|
||||||
|
Florentina Mușat [ro], Milo Casagrande [it], Anders Jonsson [sv],
|
||||||
|
Charles Monzat [fr], Danial Behzadi [fa], sicklylife [ja], Kukuh Syafaat [id],
|
||||||
|
Jordi Mas [ca], Emin Tufan Çetin [tr], Jiri Grönroos [fi], Марко Костић [sr],
|
||||||
|
Christian Kirbach [de], Changwoo Ryu [ko], Matej Urbančič [sl]
|
||||||
|
|
||||||
|
3.37.1
|
||||||
|
======
|
||||||
|
* Improve bluetooth submenu title [Mariana; #2340]
|
||||||
|
* Add openPrefs() convenience method for extensions [Florian; !1163]
|
||||||
|
* Bring back support for empty StIcons [Andre, Jonas D.; !1173, !1178]
|
||||||
|
* Wake up screen when unlocking programmatically [Florian; !1158]
|
||||||
|
* Improve extensions tool error reporting [Florian; #2391]
|
||||||
|
* Improve handling of scale-factor changes [Georges; !1176]
|
||||||
|
* Tone down weekend days with events in calendar [Jakub; #2588]
|
||||||
|
* Fix showing bluetooth submenu when devices were set up [Florian; !1174]
|
||||||
|
* Add support for parental controls filtering [Philip W.; !465]
|
||||||
|
* Provide alternative extension templates [Florian; !812]
|
||||||
|
* Improve weather section's empty state [Mariana; #2179]
|
||||||
|
* Fix translations of folder names [Florian; #2623]
|
||||||
|
* Drop Tweener [Jonas Å.; !1200]
|
||||||
|
* Match ASCII alternatives of system actions [Will; #2688]
|
||||||
|
* Fix delay on lock screen after entering wrong password [Jonas D.; #2655]
|
||||||
|
* Use globalThis instead of window [Andy; #2322]
|
||||||
|
* Inhibit remote access when disabled by session mode [Jonas Å.; !1210]
|
||||||
|
* Improve calendar-server performance [Milan; #1875]
|
||||||
|
* Add gnome-shell-extension-prefs wrapper for compatibility [Florian; !1220]
|
||||||
|
* Fix stuck lock screen after unlock [Jonas D., Florian; #2446]
|
||||||
|
* Fixed crashes [Jonas D., Florian, Carlos; #2584, #2625, !1223, !1218]
|
||||||
|
* Misc. bug fixes and cleanups [Florian, Jonas Å., Marco, Andre, Georges,
|
||||||
|
Jonas D., Jan, Philip Ch.,, Xiaoguang, Will, Jordan, Matthew, qarmin;
|
||||||
|
!1126, !1155, !1156, !1165, !1168, !1169, #2551, #2563, !1172, !1175, !1179,
|
||||||
|
!1160, #2562, #2578, !1184, #2559, !1186, #2607, !1191, !1194, !1199, !1203,
|
||||||
|
#2649, #2628, !1205, !1206, !1208, !1207, !1211, !1214, !1213, !1192, !1217,
|
||||||
|
!1219, #1615, #2691, !1094, !1177]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Marco Trevisan (Treviño), Philip Chimento, Milan Crha, Jonas Dreßler,
|
||||||
|
Carlos Garnacho, Andy Holmes, Matthew Leeds, Andre Moreira Magalhaes,
|
||||||
|
Florian Müllner, Georges Basile Stavracas Neto, Jordan Petridis,
|
||||||
|
Mariana Picolo, Jakub Steiner, Will Thompson, Jan Tojnar, Xiaoguang Wang,
|
||||||
|
Philip Withnall, qarmin, Jonas Ådahl
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Fabio Tomat [fur], Cheng-Chia Tseng [zh_TW], Danial Behzadi [fa],
|
||||||
|
Jiri Grönroos [fi], Ibai Oihanguren Sala [eu], Марко Костић [sr],
|
||||||
|
Rūdolfs Mazurs [lv], Yuri Chornoivan [uk], Carmen Bianca BAKKER [eo],
|
||||||
|
Dingzhong Chen [zh_CN], Rafael Fontenelle [pt_BR], Petr Kovář [cs],
|
||||||
|
Asier Sarasua Garmendia [eu], Daniel Mustieles [es], Emin Tufan Çetin [tr]
|
||||||
|
|
||||||
|
3.36.0
|
||||||
|
======
|
||||||
|
* Fix off-by-1900 error in date conversions [Florian; !1061]
|
||||||
|
* Fix crash on startup with topIcons* extension enabled [Florian; #2308]
|
||||||
|
* Don't require gsd-xsettings for X11 support on wayland [Olivier; !1065]
|
||||||
|
* Fix ibus support in Xorg session [Carlos; #1690]
|
||||||
|
* Improve Extensions D-Bus API [Florian; !1074]
|
||||||
|
* Allow session modes to specify alternative resource name [Marco; !1063]
|
||||||
|
* Fix link to location settings in aggregate menu [Sebastian; #2316]
|
||||||
|
* Fix illegible app folder titles with light theme [ub; !1059]
|
||||||
|
* Really fix visual glitch in sliders [Jonas; #1569]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Marco Trevisan (Treviño), Jonas Dreßler, Olivier Fourdan, Carlos Garnacho,
|
||||||
|
Sebastian Keller, Florian Müllner, ub
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Aman Alam [pa], Goran Vidović [hr], Aurimas Černius [lt],
|
||||||
|
Milo Casagrande [it], Daniel Korostil [uk], sicklylife [ja],
|
||||||
|
Marek Černocký [cs], Nathan Follens [nl]
|
||||||
|
|
||||||
|
3.35.92
|
||||||
|
=======
|
||||||
|
* Plug a memory leak [Jonas D.; !1015]
|
||||||
|
* Fix missing "back" button on login screen [Florian; #2228]
|
||||||
|
* Fix width of window preview titles in overview [Jonas D.; #58]
|
||||||
|
* Fix looking glass text with light style variant [Feichtmeier; !1023]
|
||||||
|
* Center unlock entry [Florian; !1021]
|
||||||
|
* Hide overlay scrollbars in notification popup [Jonas D.; !1013]
|
||||||
|
* Work around add_actor() slowness in icon spring animation [Daniel; !1002]
|
||||||
|
* Add disable-animations heuristics [Jonas Å.; !757]
|
||||||
|
* Fix visual glitches in on-screen keyboard [Carlos; #2214]
|
||||||
|
* Fix clearing changed textures from cache [Florian; #2244]
|
||||||
|
* Fix visual glitch in sliders [Daniel; #1569]
|
||||||
|
* Stop using dedicated lock screen background [Florian; !1001]
|
||||||
|
* Fix entries disappearing after authentication errors [Florian; #2236]
|
||||||
|
* Fix crash when animations are disabled [Florian; #2255]
|
||||||
|
* Fix passing pointer events to clients when magnified [Jonas D.; !993]
|
||||||
|
* Fix keynav on new lock screen [Florian; #2210]
|
||||||
|
* Avoid short-lived allocations on actor removal [Christian; #2263]
|
||||||
|
* Fix super-sized default avatars in user list [Florian, Sam; #2242]
|
||||||
|
* Leave overview when locking the screen [Jonas D.; !1043]
|
||||||
|
* Hide message list on login screen [Florian; #2241]
|
||||||
|
* Avoid IO on the main thread [Christian, Florian; !1050, !1051]
|
||||||
|
* Fix window animations getting stuck when client doesn't respond [Jonas; !1055]
|
||||||
|
* Only subscribe to touchpad events for touchpad gestures [Daniel; !925]
|
||||||
|
* Start X11 session services before Xwayland clients [Carlos; !836, !1056]
|
||||||
|
* Only show switch-user button with unlock prompt [Florian; !1029]
|
||||||
|
* Misc. bug fixes and cleanups [Jonas D., Florian, Georges, Jonas Å., Daniel,
|
||||||
|
Jakub, Philippe; !1018, !1020, !1024, !1027, !1026, !1022, !1031, !1035,
|
||||||
|
!1032, !1025, !1039, #2157, !1037, !1042, !1047, !1048, #2270, !1046,
|
||||||
|
!167, !1016]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Jonas Dreßler, Feichtmeier, Carlos Garnacho, Christian Hergert, Sam Hewitt,
|
||||||
|
Florian Müllner, Georges Basile Stavracas Neto, Jakub Steiner, Philippe Troin,
|
||||||
|
Daniel van Vugt, Jonas Ådahl
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Danial Behzadi [fa], Efstathios Iosifidis [el], Daniel Mustieles [es],
|
||||||
|
Sabri Ünal [tr], sicklylife [ja], Piotr Drąg [pl], Jordi Mas [ca],
|
||||||
|
Anders Jonsson [sv], Chao-Hsiung Liao [zh_TW], Asier Sarasua Garmendia [eu],
|
||||||
|
Rafael Fontenelle [pt_BR], Марко Костић [sr], Changwoo Ryu [ko],
|
||||||
|
Charles Monzat [fr], Jiri Grönroos [fi], Jor Teron [mjw], Bruce Cowan [en_GB],
|
||||||
|
Emin Tufan Çetin [tr], Alan Mortensen [da], Balázs Úr [hu], Fran Dieguez [gl],
|
||||||
|
Kukuh Syafaat [id]
|
||||||
|
|
||||||
|
3.35.91
|
||||||
|
=======
|
||||||
|
* Improve magnifier [Carlos; !984]
|
||||||
|
* Only enable OSK automatically if touch-mode is enabled [Carlos; #872]
|
||||||
|
* Merge screen shield and unlock dialog to new lock screen [Georges; !872]
|
||||||
|
* Improve ShellBlur effect [Jonas; !991]
|
||||||
|
* Adapt user avatar for new lock screen [Umang, Georges; !922]
|
||||||
|
* Animate prompt transition on lock screen [Florian; !972]
|
||||||
|
* Reduce font-size in dialog titles if text doesn't fit [Jonas; !1012]
|
||||||
|
* Various lock screen improvements and bug fixes [Jakub, Florian, Georges;
|
||||||
|
!996, !997, !999, #2212, !998, !1006, #2215, #2213]
|
||||||
|
* Misc. bug fixes and cleanups [Daniel, Florian, Jakub, nana-4, Jonas; #2170,
|
||||||
|
#2167, !936, !988, #2187, !994, !995, !938, #2194, #2203, !1004, !977, !1014]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Jonas Dreßler, Carlos Garnacho, Umang Jain, Daniel Mustieles, Florian Müllner,
|
||||||
|
Georges Basile Stavracas Neto, Jakub Steiner, Daniel van Vugt, nana-4
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Daniel Mustieles [es, pt_BR], Rafael Fontenelle [pt_BR], Danial Behzadi [fa],
|
||||||
|
Anders Jonsson [sv], Asier Sarasua Garmendia [eu], Aurimas Černius [lt],
|
||||||
|
Bruce Cowan [en_GB], sicklylife [ja], Fran Dieguez [gl], Kukuh Syafaat [id],
|
||||||
|
Emin Tufan Çetin [tr], Jiri Grönroos [fi], Jordi Mas [ca], Claude Paroz [fr],
|
||||||
|
Ask Hjorth Larsen [da], Марко Костић [sr], Piotr Drąg [pl],
|
||||||
|
Charles Monzat [fr], Balázs Úr [hu]
|
||||||
|
|
||||||
|
3.35.90
|
||||||
|
=======
|
||||||
|
* Update default favorite apps [Michael; !907]
|
||||||
|
* Add Shell.Blur effect [Georges; !864, !924]
|
||||||
|
* Overhaul scroll/swipe gestures [Alexander; !821, !825, !826]
|
||||||
|
* Fix VPN connections when delaying request [Florian; #2008]
|
||||||
|
* Overhaul theme [Sam, Jakub, nana-4; !904, !931, !957]
|
||||||
|
* Improve visual appearance of Weather integration [Florian; #1143]
|
||||||
|
* Implement new system dialog designs [Jonas; #1343]
|
||||||
|
* Animate position changes of app icons [Georges; !882]
|
||||||
|
* Add St.Viewport [Georges; !929]
|
||||||
|
* Make app folders behave as dialogs [Georges; !896]
|
||||||
|
* Add do-not-disturb functionality to calendar popup [Florian; #239]
|
||||||
|
* Show hint actor in focused entries [Jonas; !944]
|
||||||
|
* Switch screen-recorder back to VP8 [Björn; #256]
|
||||||
|
* Allow to run perf-tool as wayland compositor [Olivier; !941]
|
||||||
|
* Handle extension updates [Florian; !945]
|
||||||
|
* Animate showing and hiding caps-lock warning [Jonas; !952]
|
||||||
|
* Support "auto" lengths in CSS [Florian; !971]
|
||||||
|
* Turn extension-prefs into the offical Extensions app [Florian; #1968]
|
||||||
|
* Sandbox the portal helper [Michael; !983]
|
||||||
|
* Misc. bug fixes and cleanups [Florian, Björn, Jakub, Alexander, Daniel V.,
|
||||||
|
Jonas, nana-4, Carlos, Sebastian, Daniel G., Georges, Piotr; !918, !917,
|
||||||
|
!919, !920, #763, #791659, !927, #2091, !930, !926, !888, !934, !168, #2133,
|
||||||
|
#682, #2142, #2131, !943, #2132, #1958, #2146, !951, #1779, #2130, !964,
|
||||||
|
!965, !948, #2151, #1746, !967, !760, !968, !970, !973, #2169, #2176, !978,
|
||||||
|
!980, !979, #2177, !981, #2180, !974]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Michael Catanzaro, Björn Daase, Jonas Dreßler, Piotr Drąg, Olivier Fourdan,
|
||||||
|
Carlos Garnacho, Sam Hewitt, Sebastian Keller, Andre Klapper,
|
||||||
|
Alexander Mikhaylenko, Daniel García Moreno, Florian Müllner,
|
||||||
|
Georges Basile Stavracas Neto, Jakub Steiner, Daniel van Vugt, nana-4
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Asier Sarasua Garmendia [eu], Daniel Mustieles [es], Andrej Shadura [sk],
|
||||||
|
Carmen Bianca BAKKER [eo], Sucipto [id], Dušan Kazik [sk], Goran Vidović [hr],
|
||||||
|
sicklylife [ja], Kukuh Syafaat [id], Yi-Jyun Pan [zh_TW],
|
||||||
|
Rafael Fontenelle [pt_BR], Jordi Mas [ca], Jiri Grönroos [fi],
|
||||||
|
Fabio Tomat [fur], Umarzuki Bin Mochlis Moktar [ms], Daniel Korostil [uk],
|
||||||
|
Jor Teron [mjw], Anders Jonsson [sv], Aurimas Černius [lt]
|
||||||
|
|
||||||
|
3.35.3
|
||||||
|
======
|
||||||
|
* Add discrete GPU support for NVidia drivers [Bastien; #1810]
|
||||||
|
* Fix DND of window previews with tablet devices [Carlos; !897]
|
||||||
|
* Update pad OSD actions dynamically on mode changes [Carlos; !898]
|
||||||
|
* st: Add dedicated PasswordEntry widget [Umang; !619]
|
||||||
|
* Allow stand-alone builds of gnome-extensions tool [Florian; !877]
|
||||||
|
* extension-tool: Don't treat missing .js handler as error [Chuck; !905]
|
||||||
|
* Disallow top bar menus without top bar [Florian; #2002]
|
||||||
|
* Misc. bug fixes and cleanups [Georges, Florian, Robert, Umang; !901,
|
||||||
|
#789937, !909, !910, !911, !913, !916]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Michael Catanzaro, Chuck, Carlos Garnacho, Umang Jain, Robert Mader,
|
||||||
|
Florian Müllner, Georges Basile Stavracas Neto, Bastien Nocera
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Fabio Tomat [fur], Fran Dieguez [gl], Jordi Mas [ca], Daniel Mustieles [es]
|
||||||
|
|
||||||
|
3.35.2
|
||||||
|
======
|
||||||
|
* Fix unredirection after cancelled animations [Florian; #1788]
|
||||||
|
* Include shadow in window screenshots [Robert; !762]
|
||||||
|
* Show indicator when microphone is active [Florian; !729]
|
||||||
|
* Use inheritance instead of delegate pattern [Marco; !559]
|
||||||
|
* Use cached coordinates for window sorting in overview [Andrew; !763]
|
||||||
|
* Wiggle login/unlock password entries on failure [Georges; !769]
|
||||||
|
* Update window titles in app menu [Florian; #1830]
|
||||||
|
* Fix window animations getting stuck by workspace switches [Jonas D.; !784]
|
||||||
|
* Fix not-responding dialog size when using geometry scaling [Jonas D.; !783]
|
||||||
|
* Handle buggy MPRIS clients more gracefully [Philip; #1362]
|
||||||
|
* Deprecate StBoxLayout's child properties [Florian; !780]
|
||||||
|
* Remove StBin's align properties [Florian; !803]
|
||||||
|
* Use correct timezones for events [Milan, Florian; !806, #1895]
|
||||||
|
* Reduce overhead of tracking stylesheet changes [Carlos; !779]
|
||||||
|
* Replace action icons in system menu with regular menu items [Florian; #270]
|
||||||
|
* Refine polkit dialogs [Jonas D.; !788]
|
||||||
|
* Fix battery icon glitch in "100% but charging" case [Philip; !814]
|
||||||
|
* Fix windows getting stuck on screen if closed while animating [Florian; !815]
|
||||||
|
* Use font from interface settings [Florian; #688288]
|
||||||
|
* Show polkit confirmation dialog for users with no password
|
||||||
|
[Joaquim, Jonas D.; !829]
|
||||||
|
* Use better OSK layout fallback for unsupported variants [Florian; #1907]
|
||||||
|
* Hide stopped spinner in top bar [Joonas; !832]
|
||||||
|
* Reuse existing icons when updating the app picker grid [Georges; !841]
|
||||||
|
* Show switcher popups immediately on second key press [Florian; #1928]
|
||||||
|
* Add position-based animation to page indicators [Alexander; !843]
|
||||||
|
* Improve modifier-less keyboard navigation of switcher popups [Florian; #1883]
|
||||||
|
* Improve weather integration [Florian; #1927, #1926]
|
||||||
|
* Add back sound feedback when scrolling volume indicator [Florian; #53]
|
||||||
|
* Fix creating app folders with no pre-existing folders [Jonas D.; #1652]
|
||||||
|
* Improve DND page switching in app picker [Florian, Jonas D.; #1693]
|
||||||
|
* Fix disable command of gnome-extensions tool [Florian; #1946]
|
||||||
|
* Tweak styling of notifications/media constrols [Joonas; !855, !865]
|
||||||
|
* Enable clean session shutdown after gnome-shell failure [Benjamin; !858]
|
||||||
|
* Also remove scaled keys when texture cache is cleared [Daniel M.; !567]
|
||||||
|
* Don't show overflow indicator in switchers that fit screen [Florian; #1834]
|
||||||
|
* Move libcroco dependency in-tree [Federico; !861]
|
||||||
|
* Move to app folder location when it is created/renamed [Georges; !883]
|
||||||
|
* Dismiss switcher popups when a system modal dialogs opens [Florian; #1536]
|
||||||
|
* Fix weather forecasts for automatic location when Weather is not sandboxed
|
||||||
|
[Florian; #1823]
|
||||||
|
* Place launched applications into a systemd scope [Benjamin; !863]
|
||||||
|
* Fixed crashes [Jonas D., Carlos; !787, !813]
|
||||||
|
* Misc. bug fixes and cleanups [Marco, Georges, Daniel V., Florian, Robert,
|
||||||
|
Kalev, Philip, Jonas D., Will, Carlos, Jonas Å., cunidev, Joonas, Federico;
|
||||||
|
!747, !765, !421, !759, !749, !730, !770, #1799, !774, !773, !776, !777,
|
||||||
|
!782, !794, !778, !792, !790, !190, !796, !795, !797, !798, !800, !804, !808,
|
||||||
|
!807, !810, !811, !563, !809, !805, !817, !818, !822, !830, !828, !823, !835,
|
||||||
|
!840, !842, !833, !845, !846, !847, !851, #1916, !862, !866, #1979, !827,
|
||||||
|
#1976, !884, !873, !885, !799, !887, !891, !816]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Marco Trevisan (Treviño), Benjamin Berg, Philip Chimento, Milan Crha,
|
||||||
|
Jonas Dreßler, Carlos Garnacho, Joonas Henriksson, Kalev Lember, Robert Mader,
|
||||||
|
Alexander Mikhaylenko, Daniel García Moreno, Florian Müllner,
|
||||||
|
Georges Basile Stavracas Neto, Federico Mena Quintero, Joaquim Rocha,
|
||||||
|
Will Thompson, Daniel van Vugt, Andrew Watson, cunidev, Jonas Ådahl
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Daniel Mustieles [es], Goran Vidović [hr], Fabio Tomat [fur],
|
||||||
|
Danial Behzadi [fa], Andika Triwidada [id], Efstathios Iosifidis [el],
|
||||||
|
Ricardo Silva Veloso [pt_BR]
|
||||||
|
|
||||||
|
3.35.1
|
||||||
|
======
|
||||||
|
* Misc. bug fixes and cleanups [Marco; Matthias; !758, #701212]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Marco Trevisan (Treviño)
|
||||||
|
|
||||||
|
3.34.1
|
||||||
|
======
|
||||||
|
* Fix "Frequent" view icons disappearing on hover [Jonas D.; #1502]
|
||||||
|
* Allow editing app folder names [Georges, Marco; !675, !720]
|
||||||
|
* Skip property transitions while hidden [Florian; !708]
|
||||||
|
* Make menu animations more consistent [Florian, GB_2; #1595, !717]
|
||||||
|
* Improve performance when enabling/disabling all extensions [Jonas D.; !96]
|
||||||
|
* Fix extra icons appearing in "Frequent" view animation [Georges; !696]
|
||||||
|
* Fix fading out desktop icons [Harshula; #1616]
|
||||||
|
* Fix box-shadow glitch with prerendered resources [Daniel; #1186]
|
||||||
|
* Fix accidentally skipped animations [Florian; #1572]
|
||||||
|
* Fix screenshots and window animations when scaled [Robert; !728]
|
||||||
|
* Don't leak NOTIFY_SOCKET environment variable to applications [Benjamin; !741]
|
||||||
|
* Fix lock-up on X11 when ibus is already running on startup [Marco; #1712]
|
||||||
|
* Fix screen dimming on idle [Marco; #1683]
|
||||||
|
* Do not notify systemd before initialization is complete [Iain; !750]
|
||||||
|
* Support SAE secrets in network agent [Lubomir; !751]
|
||||||
|
* Fix various regressions with dynamic workspaces [Florian; #1497]
|
||||||
|
* Fixed crashes [Florian, Marco; #1678, !746]
|
||||||
|
* Misc. bug fixes and cleanups [Marco, Jonas D., Florian, Iain, Georges,
|
||||||
|
Jonas Å., Martin, Takao, Carlos; !700, !705, !709, !711, !707, #1538, !710,
|
||||||
|
!713, !699, !715, !718, !716, !719, !721, #1243, !725, !731, #1614, !683,
|
||||||
|
!732, !121, !735, !736, !740, #573, #1641, #1571]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Marco Trevisan (Treviño), Benjamin Berg, Jonas Dreßler, Takao Fujiwara, GB_2,
|
||||||
|
Carlos Garnacho, Harshula Jayasuriya, Iain Lane, Robert Mader,
|
||||||
|
Daniel García Moreno, Florian Müllner, Georges Basile Stavracas Neto,
|
||||||
|
Lubomir Rintel, Martin Zurowietz, Jonas Ådahl
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Rafael Fontenelle [pt_BR], Fran Dieguez [gl], Balázs Úr [hu],
|
||||||
|
Milo Casagrande [it], Daniel Șerbănescu [ro], Kukuh Syafaat [id],
|
||||||
|
Jiri Grönroos [fi], Daniel Mustieles [es], Piotr Drąg [pl],
|
||||||
|
Anders Jonsson [sv], Marek Černocký [cs], Jordi Mas [ca],
|
||||||
|
Aurimas Černius [lt], Christian Kirbach [de], Emin Tufan Çetin [tr],
|
||||||
|
Enrico Nicoletto [pt_BR], Danial Behzadi [fa], Марко Костић [sr],
|
||||||
|
Alexandre Franke [fr], Charles Monzat [fr], Kjartan Maraas [nb],
|
||||||
|
Ryuta Fujii [ja], Nathan Follens [nl], Dušan Kazik [sk], Fabio Tomat [fur],
|
||||||
|
Matej Urbančič [sl], Ask Hjorth Larsen [da], Alan Mortensen [da]
|
||||||
|
|
||||||
|
3.34.0
|
||||||
|
======
|
||||||
|
* Handle startup/shutdown of misc X11 services [Carlos; !680]
|
||||||
|
* Fix sound volume mute/unmute [Iain; #1557]
|
||||||
|
* Correctly terminate pasted text [Carlos; #1570]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Carlos Garnacho, Iain Lane
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Tom Tryfonidis [el], Milo Casagrande [it], Ryuta Fujii [ja],
|
||||||
|
Efstathios Iosifidis [el], Carmen Bianca BAKKER [eo], Sabri Ünal [tr],
|
||||||
|
Dušan Kazik [sk], Balázs Meskó [hu], Claude Paroz [fr]
|
||||||
|
|
||||||
|
3.33.92
|
||||||
|
=======
|
||||||
|
* Animate pointer a11y pie timer [Jonas D.; !688]
|
||||||
|
* Fix restarting shell in systemd user session [Benjamin; !690]
|
||||||
|
* Misc. bug fixes and cleanups [Florian, Jonas D., Jonas Å., Will;
|
||||||
|
!691, !689, !692, #1552, !698]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Jonas Ådahl, Benjamin Berg, Piotr Drąg, Jonas Dreßler, Florian Müllner,
|
||||||
|
Will Thompson
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Daniel Șerbănescu [ro], Danial Behzadi [fa], Daniel Mustieles [es],
|
||||||
|
Jiri Grönroos [fi], Asier Sarasua Garmendia [eu], Piotr Drąg [pl],
|
||||||
|
Rūdolfs Mazurs [lv], Anders Jonsson [sv], Fran Dieguez [gl], Jordi Mas [ca],
|
||||||
|
Matej Urbančič [sl], Zander Brown [en_GB], Ryuta Fujii [ja], Tim Sabsch [de],
|
||||||
|
Fabio Tomat [fur], Pawan Chitrakar [ne], A S Alam [pa], Changwoo Ryu [ko],
|
||||||
|
Aurimas Černius [lt], Daniel Rusek [cs], Marek Černocký [cs],
|
||||||
|
Kukuh Syafaat [id], Goran Vidović [hr], Rafael Fontenelle [pt_BR]
|
||||||
|
|
||||||
|
3.33.91
|
||||||
|
=======
|
||||||
|
* Fix regression when adjusting brightness [Florian; #1500]
|
||||||
|
* Fix pointer a11y timeout animation [Jonas D.; #1533]
|
||||||
|
* Add new extensions CLI tool [Florian; #1234]
|
||||||
|
* Only track top-level windows [Carlos; #556]
|
||||||
|
* Misc. bug fixes and cleanups [Jonas D., Jonas Å., Piotr, Florian;
|
||||||
|
!678, !682, !686]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Jonas Ådahl, Jonas Dreßler, Carlos Garnacho, Florian Müllner
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Asier Sarasua Garmendia [eu], Sveinn í Felli [is], Anders Jonsson [sv],
|
||||||
|
Jordi Mas [ca], Kukuh Syafaat [id], Florentina Mușat [ro], Jiri Grönroos [fi],
|
||||||
|
Aurimas Černius [lt], Daniel Mustieles [es], Piotr Drąg [pl],
|
||||||
|
Danial Behzadi [fa]
|
||||||
|
|
||||||
|
3.33.90
|
||||||
|
=======
|
||||||
|
* Implement DND app picker folder management [Georges; !643, !645, !664, !671]
|
||||||
|
* Make Clocks/Weather integration work with sandboxed apps [Florian; #1158]
|
||||||
|
* Support startup via systemd user instance [Benjamin; !507]
|
||||||
|
* Replace Tweener with Clutter animations [Florian; !663, !22, !666, !668, !669]
|
||||||
|
* Minimize travel distance in overview animation [Sergey; !267]
|
||||||
|
* Rescan icon theme when installed apps changed [Georges; !661]
|
||||||
|
* Consistently animate new window actions [Jonas; !662, !673]
|
||||||
|
* Misc. bug fixes and cleanups [Florian, Daniel, Ray, Bastien, Jonas, Niels,
|
||||||
|
Marco, Georges; !635, !636, !637, #1462, !628, !640, !641, !627, !644, !647,
|
||||||
|
!385, #1474, !651, #1144, !646, !653, !652, !655, #1482, !656, $654, !665,
|
||||||
|
!667, !670, #1357, !672, !657, #1507, !674, !677]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Benjamin Berg, Sergey Bugaev, Jonas Dreßler, Niels De Graef, Florian Müllner,
|
||||||
|
Georges Basile Stavracas Neto, Bastien Nocera, Ray Strode,
|
||||||
|
Marco Trevisan (Treviño), verdre, Daniel van Vugt
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Asier Sarasua Garmendia [eu], Rafael Fontenelle [pt_BR],
|
||||||
|
Kristjan SCHMIDT [eo], Jor Teron [mjw], Daniel Mustieles [es],
|
||||||
|
Kukuh Syafaat [id], Jordi Mas [ca], Fabio Tomat [fur], Daniel Șerbănescu [ro],
|
||||||
|
Anders Jonsson [sv]
|
||||||
|
|
||||||
|
3.33.4
|
||||||
|
======
|
||||||
|
* Fix unintentional interference between gestures [Jonas; !598]
|
||||||
|
* Fix unintentional loop while polkit dialog is active [Ray; !602]
|
||||||
|
* Fix alt-tab icon size on HiDPI [Jonas; !587]
|
||||||
|
* Style fixes and improvements [Frederik, Jakub; !610, #1446, #1449]
|
||||||
|
* Fix style updates for non-background CSS properties [Florian; #1212]
|
||||||
|
* Fix cursor visibility in screen recordings [Illya; #1208]
|
||||||
|
* Add option for disabling the hot corner [Florian; #688320]
|
||||||
|
* Use more fine-grained levels in battery indicator [Florian; !561, #1442]
|
||||||
|
* Fix the calculation of the maximum number of app search results [Jonas; !110]
|
||||||
|
* Handle horizontal workspace layout with gestures/animations [Florian; !575]
|
||||||
|
* Improve handling of session mode extensions [Florian, Didier; #789852]
|
||||||
|
* Misc. bug fixes and cleanups [Jonas, Florian, Sonny, Carlos, Mario, Benjamin,
|
||||||
|
Marco, Ting-Wei; !599, !600, !591, !606, !152, !607, !604, !495, !608, !611,
|
||||||
|
!614, !612, !615, !618, #369, !620, #774, !621, !616, #1065, !609, !626,
|
||||||
|
!491, !631, !632, !633, #1457]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Benjamin Berg, Jonas Dreßler, Frederik Feichtmeier, Carlos Garnacho,
|
||||||
|
Illya Klymov, Ting-Wei Lan, Florian Müllner, Sonny Piers, Mario Sanchez Prada,
|
||||||
|
Didier Roche, Jakub Steiner, Ray Strode, Jor Teron, Marco Trevisan (Treviño)
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Jordi Mas [ca], Jor Teron [mjw]
|
||||||
|
|
||||||
|
3.33.3
|
||||||
|
======
|
||||||
|
* Prepare for optional X11 [Carlos; !378]
|
||||||
|
* Fix opening window menu [Marco; !557]
|
||||||
|
* Reload search providers when installed applications change [Cosimo; !562]
|
||||||
|
* Implement locate-pointer accessibility feature [Olivier; #981]
|
||||||
|
* Allow to disable window menus via session mode [Cosimo; !569]
|
||||||
|
* Implement mouse accessibility [Olivier; !474]
|
||||||
|
* Call GDM's RegisterSession() after startup [Iain; !570]
|
||||||
|
* Fix extended keys popups being hidden by on-screen keyboard [Marco; !583]
|
||||||
|
* Fix top bar being hidden by lock screen [Jonas; !571]
|
||||||
|
* Update theme to better match GTK's Adwaita [Frederik; #841]
|
||||||
|
* Set up GJS profiler when GJS_TRACE_FD is set [Christian; !573]
|
||||||
|
* Misc. bug fixes and cleanups [Jonas, Cosimo, Robert, Florian, Marco, Simon,
|
||||||
|
Laurent, Niels, Will; !551, !555, !464, #1333, !565, !572, !568, !558, #1205,
|
||||||
|
#1336, !579, !576, #1392, !582, !586, #1406, #1351]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Laurent Bigonville, Cosimo Cecchi, Piotr Drąg, Jonas Dreßler,
|
||||||
|
Frederik Feichtmeier, Olivier Fourdan, Carlos Garnacho, Niels De Graef,
|
||||||
|
Christian Hergert, Iain Lane, Robert Mader, Florian Müllner, Simon Schampijer,
|
||||||
|
Jakub Steiner, Will Thompson, Marco Trevisan (Treviño)
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Kukuh Syafaat [id], Balázs Meskó [hu], Daniel Mustieles [es],
|
||||||
|
Fabio Tomat [fur], Nathan Follens [nl], Goran Vidović [hr], Jordi Mas [ca]
|
||||||
|
|
||||||
|
3.33.2
|
||||||
|
======
|
||||||
|
* Fix keeping actors visible in scrollviews [Marco; #1061]
|
||||||
|
* Move some chrome above popup windows [Jonas D.; !358]
|
||||||
|
* Include 'sandboxed-app-id' in winodw introspection info [Florian; #1289]
|
||||||
|
* Port to libecal-2.0 [Milan; !501]
|
||||||
|
* Support TCRYPT in mount password dialog [segfault; !126]
|
||||||
|
* Misc. bug fixes and cleanups [Florian, Marco, Veerasamy; !517, #745, !499,
|
||||||
|
!510, !515, !546, !549]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Cosimo Cecchi, Milan Crha, Jonas Dreßler, Florian Müllner, segfault,
|
||||||
|
Veerasamy Sevagen, Marco Trevisan (Treviño)
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Daniel Mustieles [es]
|
||||||
|
|
||||||
|
3.33.1
|
||||||
|
======
|
||||||
|
* Refine the app menu [Florian; #968]
|
||||||
|
* Refine window preview style [Feichtmeier; !461]
|
||||||
|
* Only emit ::style-changed on actual changes [Carlos; #1153]
|
||||||
|
* Disable emoji on-screen keyboard support on X11 [Florian; #1172]
|
||||||
|
* Fix tablet button mapping overlay [Carlos; #1220]
|
||||||
|
* Don't crash for world clock locations with no timezone [Florian; #1062]
|
||||||
|
* Don't leak old on-screen keyboard layout groups [Carlos; mutter#556]
|
||||||
|
* Fix ellipsization in dialog subtitles/bodies [Marco; !531]
|
||||||
|
* Fix glitch of fullscreen window in workspace switch animation [Jonas D.; !322]
|
||||||
|
* Fix distortion of some image contents [Florian; !525]
|
||||||
|
* Allow dragging unfocused tiled/maximized windows from top bar [Dylan; #679290]
|
||||||
|
* Handle network interface name changes [Fabrice; !534]
|
||||||
|
* Avoid unnecessary style changes when computing :first/:last-child
|
||||||
|
[Florian; !529]
|
||||||
|
* Misc. bug fixes and cleanups [Florian, Marco, Robert, Georges, Carlos, Simon,
|
||||||
|
Jonas D.; !487, !441, !502, !503, !504, !506, #822, !551, !512, !509, !511,
|
||||||
|
#1054, !524, #1065, !331, !540]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Fabrice Bellet, Jonas Dreßler, Feichtmeier, Carlos Garnacho, Robert Mader,
|
||||||
|
Dylan McCall, Simon McVittie, Florian Müllner, Georges Basile Stavracas Neto,
|
||||||
|
Marco Trevisan (Treviño)
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Daniel Mustieles [es], Kukuh Syafaat [id], Fabio Tomat [fur],
|
||||||
|
Carmen Bianca BAKKER [eo], Dingzhong Chen [zh_CN], Tim Sabsch [de]
|
||||||
|
|
||||||
|
3.32.1
|
||||||
|
======
|
||||||
|
* Fix avatar scaling on login screen [Florian; #1024]
|
||||||
|
* Fix distortion of desktop zoom [Florian; #646]
|
||||||
|
* Fix mouse cursor visibility when using desktop zoom [Florian, Marco; #1020]
|
||||||
|
* Fix screen dimming after wake-up on lock screen [Xiaoguang; #900]
|
||||||
|
* Fix Alt+Esc switcher [Florian; #1064]
|
||||||
|
* Respect struts for popover placement [Andrea; #1102]
|
||||||
|
* Fix app icons updates after theme changes [Florian; #1117]
|
||||||
|
* Fix desktop zoom after resolution changes [Marco; #1120]
|
||||||
|
* Implement stick-to-finger workspace switch overview gestures [Florian; #516]
|
||||||
|
* Make World Clocks offsets relative to local time [Florian; #1157]
|
||||||
|
* Fix top app icon disappearing from dash [Florian; #1053]
|
||||||
|
* Update switch style to match new Adwaita [Jakub; !496]
|
||||||
|
* Ensure CSS units are pixel-aligned when scaling is used [Carlos; #91]
|
||||||
|
* Misc. bug fixes and cleanups [Florian, Jakub, Robert, Alex, Carlos, Phil,
|
||||||
|
Marco, Benjamin, AsciiWolf, Ray, verdre; !444, #1016, #1018, !449, #1036,
|
||||||
|
!455, #1094, !440, #1023, #624, #1017, !476, !473, !480, #1130, !485, !481,
|
||||||
|
!490, !489, #1151, !435, #1160, !482, #1150, #1166, !384]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
AsciiWolf, Andrea Azzarone, Benjamin Berg, Carlos Garnacho, Victor Ibragimov,
|
||||||
|
Robert Mader, Alex Monday, Florian Müllner, Jakub Steiner, Ray Strode,
|
||||||
|
Marco Trevisan (Treviño), verdre, Xiaoguang Wang, Phil Wyett
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Victor Ibragimov [tg, af, et, ja], Bruce Cowan [en_GB], Piotr Drąg [tg],
|
||||||
|
Charles Monzat [fr], Khaled Hosny [ar], Goran Vidović [hr],
|
||||||
|
Cheng-Chia Tseng [zh_TW], Carmen Bianca BAKKER [eo], Daniel Mustieles [es],
|
||||||
|
Dušan Kazik [sk]
|
||||||
|
|
||||||
|
3.32.0
|
||||||
|
======
|
||||||
|
* Fix sizing issues in on-screen-keyboard emoji panel [Carlos; !439]
|
||||||
|
* Fix test linker failure on Debian/Ubuntu [Iain; !442]
|
||||||
|
* Avoid assertion when sizing fallback app icons from CSS [Florian; #1027]
|
||||||
|
* Fix mis-sized menu arrows after texture cache changes [Florian; !452]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Carlos Garnacho, Iain Lane, Florian Müllner
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Gábor Kelemen [hu], Victor Ibragimov [tg], Ryuta Fujii [ja], Piotr Drąg [af,
|
||||||
|
tg], Mart Raudsepp [et]
|
||||||
|
|
||||||
|
3.31.92
|
||||||
|
=======
|
||||||
|
* Fix visual glitch in submenus [Alex; #987]
|
||||||
|
* Support fractional scaling [Jonas, Marco; #765011, !5]
|
||||||
|
* Only consider visible children for :first-child/:last-child [Florian; !312]
|
||||||
|
* Hide trailing separator in search results [verdre; !311]
|
||||||
|
* Remember choice in inhibit-shortcuts dialogue [Olivier; !382]
|
||||||
|
* Don't toggle on-screen keyboard on every focus change [Carlos; !397]
|
||||||
|
* Fix legacy tray icons not responding to events on wayland [Florian; #191]
|
||||||
|
* Fix generating French OSK layout [Florian; #997]
|
||||||
|
* Use borderless round user images [Florian; #811]
|
||||||
|
* Misc. bug fixes and cleanups [Andrea, Robert, Florian, Marco, Niels,
|
||||||
|
Benjamin; !414, !417, !420, #996, !408, !422, !425, #1006, !427, !315,
|
||||||
|
#989, !430, !431, !432, #1015, !429, !423, !419, !434]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Jonas Ådahl, Alan, Andrea Azzarone, Benjamin Berg, Olivier Fourdan,
|
||||||
|
Carlos Garnacho, Niels De Graef, Robert Mader, Alex Monday, Florian Müllner,
|
||||||
|
Marco Trevisan (Treviño), verdre
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Carmen Bianca BAKKER [eo], Asier Sarasua Garmendia [eu], Stas Solovey [ru],
|
||||||
|
Changwoo Ryu [ko], Julien Humbert [fr], Milo Casagrande [it],
|
||||||
|
Марко Костић [sr], Ask Hjorth Larsen [da], Kukuh Syafaat [id],
|
||||||
|
Daniel Șerbănescu [ro], Bernd Homuth [de], Trần Ngọc Quân [vi],
|
||||||
|
Nathan Follens [nl], Rūdolfs Mazurs [lv], Aurimas Černius [lt]
|
||||||
|
|
||||||
|
3.31.91
|
||||||
|
=======
|
||||||
|
* Don't close on-screen-keyboard's language menu on hover [Florian; #171]
|
||||||
|
* Don't let unfullscreen gesture interfere with top bar taps [Jonas D.; #552]
|
||||||
|
* Always use symbolic user icon in system menu [Florian; #957]
|
||||||
|
* Add flags parameter in GrabAccelerators API [Andrea; #68]
|
||||||
|
* Misc. bug fixes and cleanups [Florian, Jonas A.; !399, !398, !400, !402,
|
||||||
|
!407, !410, !411]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Jonas Ådahl, Andrea Azzarone, Arnaud Bonatti, Jonas Dreßler, Florian Müllner
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Jordi Mas [ca], Ryuta Fujii [ja], Marek Cernocky [cs], Fran Dieguez [gl],
|
||||||
|
Jiri Grönroos [fi], Serdar Sağlam [tr], Anders Jonsson [sv],
|
||||||
|
Matej Urbančič [sl], Gun Chleoc [gd], Kukuh Syafaat [id],
|
||||||
|
Baurzhan Muftakhidinov [kk], Alan Mortensen [da], Rafael Fontenelle [pt_BR],
|
||||||
|
Sveinn í Felli [is]
|
||||||
|
|
||||||
|
3.31.90
|
||||||
|
=======
|
||||||
|
* Fix input methods after ibus restarts [Takao; #295]
|
||||||
|
* Refresh world clocks and weather sections [Florian; #262]
|
||||||
|
* Port to ES6 classes (update your extensions!) [Florian; !361]
|
||||||
|
* networkAgent: Advise users when WPS support is available [Lubomir; !329]
|
||||||
|
* Performance improvements [Carlos; #832, #815]
|
||||||
|
* Fix drag-and-drop with wacom pens [Carlos; #540]
|
||||||
|
* Fix CAPS LOCK indication on wayland [Carlos; #762881]
|
||||||
|
* Show details of non-sensitive notifications on lock screen [Philip; #726]
|
||||||
|
* Refine extension-prefs' error UI [Florian; !193]
|
||||||
|
* Add switch-to-application-n keybindings [Florian; #648000]
|
||||||
|
* Remove top bar translucency [Florian; #408]
|
||||||
|
* Support emojis and keypads in on-screen keyboard [Carlos; #675]
|
||||||
|
* Don't allow popups to re-enable keyboard shortcuts on lock screen
|
||||||
|
(CVE-2019-3820) [Florian, Ray; #851]
|
||||||
|
* Replace app menu [Florian; #624]
|
||||||
|
* Include commonly copied+pasted extension helpers [Florian; !150]
|
||||||
|
* Misc. bug fixes and cleanups [Florian, Daniel, Philip, Sergio, Pascal,
|
||||||
|
Georges, verdre, Carlos, Christopher; #780, #909, !316, !308, !309, #915,
|
||||||
|
!350, !362, !357, !365, !366, !283, !367, #942, !371, !373, !374, !343,
|
||||||
|
!375, !292, !317, !377, !379, !346, !383, #953, !388]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Sergio Costas, Christopher Davis, Bilal Elmoussaoui, Takao Fujiwara,
|
||||||
|
Carlos Garnacho, Niels De Graef, Christian Kellner, Ignat Loskutov,
|
||||||
|
Florian Müllner, Georges Basile Stavracas Neto, Pascal Nowack, Lubomir Rintel,
|
||||||
|
Jakub Steiner, Ray Strode, verdre, Daniel van Vugt, Philip Withnall
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Daniel Mustieles [es], Carmen Bianca BAKKER [eo], Charles Monzat [fr],
|
||||||
|
Pieter Schalk Schoeman [af], Jordi Mas [ca], Matej Urbančič [sl],
|
||||||
|
Fran Dieguez [gl], Balázs Úr [hu], A S Alam [pa], Fabio Tomat [fur],
|
||||||
|
Aurimas Černius [lt], Piotr Drąg [pl], Marek Cernocky [cs], Ryuta Fujii [ja]
|
||||||
|
|
||||||
|
3.31.4
|
||||||
|
======
|
||||||
|
* Improve icon grid performance [Daniel; #174]
|
||||||
|
* Remove browser plugin [Michael; #766776]
|
||||||
|
* Add DBus API for introspecting the application state [Jonas, Olivier; !326]
|
||||||
|
* Always allow leaving the overview via the hot-corner [Pascal; #429]
|
||||||
|
* Misc. bug fixes [Florian, Jasper, Andrea, Sam, Dani, Cosimo, Jonas, Carlos;
|
||||||
|
#643595, #673767, !293, #783, #781, !298, !297, #782, !301, !314, !305, #799,
|
||||||
|
#632, !327]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Jonas Ådahl, Andrea Azzarone, Michael Catanzaro, Cosimo Cecchi, daniruiz,
|
||||||
|
Olivier Fourdan, Carlos Garnacho, Sam Hewitt, Andre Klapper, Florian Müllner,
|
||||||
|
Pascal Nowack, Jasper St. Pierre, RyuzakiKK, Marco Trevisan (Treviño),
|
||||||
|
João Paulo Rechi Vita, Daniel van Vugt
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Kristjan SCHMIDT [eo], Matej Urbančič [sl], Daniel Mustieles [es],
|
||||||
|
Fabio Tomat [fur], Emin Tufan Çetin [tr], Anders Jonsson [sv],
|
||||||
|
Ryuta Fujii [ja]
|
||||||
|
|
||||||
|
3.31.2
|
||||||
|
======
|
||||||
|
* Port away from and remove ShellGenericContainer [Georges; !153]
|
||||||
|
* popupMenu: Fix keyboard activation when numlock is active [Andrea; #550]
|
||||||
|
* Do not block all shortcuts while app folders are expanded [Florian; #648]
|
||||||
|
* Fix regression in handling new input sources [Carlos; #691]
|
||||||
|
* Reask password after udisk errors for no/wrong passwords [Sebastian; #640]
|
||||||
|
* Improve performance of app icon animations [Daniel; !253, !261]
|
||||||
|
* Avoid focus changes when updating keyboard options [Takao; #391]
|
||||||
|
* notifications: Support icon theme names in 'image-path' hint [Marco; !285]
|
||||||
|
* Respect natural-scroll setting for workspace swipe gesture [Erik; #516]
|
||||||
|
* Confine window preview titles to workspace area [Florian; !214]
|
||||||
|
* Misc. bug fixes [Florian, Carmen, Georges, Cosimo, Carlos; #602, #693,
|
||||||
|
#666, #647, !66, #768, #430, !286, !258, !287, gtk#1447]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Andrea Azzarone, Carmen Bianca Bakker, Cosimo Cecchi, Sergio Costas,
|
||||||
|
Erik Duxstad, Takao Fujiwara, Carlos Garnacho, Florian Müllner,
|
||||||
|
Georges Basile Stavracas Neto, Sebastian Pinnau, Didier Roche, Jakub Steiner,
|
||||||
|
Marco Trevisan (Treviño), verdre, Daniel van Vugt
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Kristjan SCHMIDT [eo], Dušan Kazik [sk], Matej Urbančič [sl],
|
||||||
|
Anish Sheela [ml], Rafael Fontenelle [pt_BR], Daniel Mustieles [es]
|
||||||
|
|
||||||
3.30.1
|
3.30.1
|
||||||
======
|
======
|
||||||
* Cancel search on overview hiding [Marco; !205]
|
* Cancel search on overview hiding [Marco; !205]
|
||||||
|
@ -11,6 +11,14 @@ see the [project wiki][project-wiki].
|
|||||||
|
|
||||||
Bugs should be reported to the GNOME [bug tracking system][bug-tracker].
|
Bugs should be reported to the GNOME [bug tracking system][bug-tracker].
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
To contribute, open merge requests at https://gitlab.gnome.org/GNOME/gnome-shell.
|
||||||
|
|
||||||
|
Commit messages should follow the [GNOME commit message
|
||||||
|
guidelines](https://wiki.gnome.org/Git/CommitMessages). We require an URL
|
||||||
|
to either an issue or a merge request in each commit.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
GNOME Shell is distributed under the terms of the GNU General Public License,
|
GNOME Shell is distributed under the terms of the GNU General Public License,
|
||||||
version 2 or later. See the [COPYING][license] file for details.
|
version 2 or later. See the [COPYING][license] file for details.
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
The GNOME Shell Browser Plugin provides integration with gnome-shell and the
|
|
||||||
corresponding extensions repository, codenamed "SweetTooth". The plugin allows
|
|
||||||
the extensions repository to provide good integration, letting the website
|
|
||||||
know which extensions are enabled and disabled, and allowing the website to
|
|
||||||
enable, disable and install them.
|
|
||||||
|
|
||||||
Bugs should be reported to the GNOME [bug tracking system][bug-tracker].
|
|
||||||
|
|
||||||
## License
|
|
||||||
The GNOME Shell Browser Plugin, like GNOME Shell itself is distributed under
|
|
||||||
the GNU General Public License, version 2 or later. The plugin also contains
|
|
||||||
header files from the "NPAPI SDK" project, tri-licensed under MPL 1.1, GPL 2.0
|
|
||||||
and LGPL 2.1. These headers are third-party sources and can be retrieved from:
|
|
||||||
|
|
||||||
http://code.google.com/p/npapi-sdk/
|
|
||||||
|
|
||||||
[bug-tracker]: https://gitlab.gnome.org/GNOME/gnome-shell/issues
|
|
@ -1,19 +0,0 @@
|
|||||||
plugin_sources = [
|
|
||||||
'browser-plugin.c',
|
|
||||||
'npapi/npapi.h',
|
|
||||||
'npapi/npfunctions.h',
|
|
||||||
'npapi/npruntime.h',
|
|
||||||
'npapi/nptypes.h'
|
|
||||||
]
|
|
||||||
|
|
||||||
shared_module('gnome-shell-browser-plugin', plugin_sources,
|
|
||||||
dependencies: [gio_dep, json_glib_dep],
|
|
||||||
c_args: ['-DG_LOG_DOMAIN="GnomeShellBrowserPlugin"'],
|
|
||||||
# Browsers can unload and reload the module while browsing, which is not
|
|
||||||
# supported by GObject.
|
|
||||||
# We pass -Wl,-z,nodelete to the linker to ensure the module is never
|
|
||||||
# unloaded. See https://bugzilla.gnome.org/show_bug.cgi?id=737932.
|
|
||||||
link_args: ['-Wl,-z,nodelete'],
|
|
||||||
install: true,
|
|
||||||
install_dir: plugindir
|
|
||||||
)
|
|
@ -1,893 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
||||||
/* ***** BEGIN LICENSE BLOCK *****
|
|
||||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the Mozilla Public License Version
|
|
||||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
||||||
* the License. You may obtain a copy of the License at
|
|
||||||
* http://www.mozilla.org/MPL/
|
|
||||||
*
|
|
||||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
||||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
||||||
* for the specific language governing rights and limitations under the
|
|
||||||
* License.
|
|
||||||
*
|
|
||||||
* The Original Code is mozilla.org code.
|
|
||||||
*
|
|
||||||
* The Initial Developer of the Original Code is
|
|
||||||
* Netscape Communications Corporation.
|
|
||||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
|
||||||
* the Initial Developer. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* Alternatively, the contents of this file may be used under the terms of
|
|
||||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
||||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
||||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
||||||
* of those above. If you wish to allow use of your version of this file only
|
|
||||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
||||||
* use your version of this file under the terms of the MPL, indicate your
|
|
||||||
* decision by deleting the provisions above and replace them with the notice
|
|
||||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
||||||
* the provisions above, a recipient may use your version of this file under
|
|
||||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
||||||
*
|
|
||||||
* ***** END LICENSE BLOCK ***** */
|
|
||||||
|
|
||||||
#ifndef npapi_h_
|
|
||||||
#define npapi_h_
|
|
||||||
|
|
||||||
#if defined(__OS2__)
|
|
||||||
#pragma pack(1)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "nptypes.h"
|
|
||||||
|
|
||||||
#if defined(__OS2__) || defined(OS2)
|
|
||||||
#ifndef XP_OS2
|
|
||||||
#define XP_OS2 1
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(_WIN32) && !defined(__SYMBIAN32__)
|
|
||||||
#include <windef.h>
|
|
||||||
#ifndef XP_WIN
|
|
||||||
#define XP_WIN 1
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__SYMBIAN32__)
|
|
||||||
#ifndef XP_SYMBIAN
|
|
||||||
#define XP_SYMBIAN 1
|
|
||||||
#undef XP_WIN
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__APPLE_CC__) && !defined(XP_UNIX)
|
|
||||||
#ifndef XP_MACOSX
|
|
||||||
#define XP_MACOSX 1
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(XP_MACOSX) && defined(__LP64__)
|
|
||||||
#define NP_NO_QUICKDRAW
|
|
||||||
#define NP_NO_CARBON
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(XP_MACOSX)
|
|
||||||
#include <ApplicationServices/ApplicationServices.h>
|
|
||||||
#include <OpenGL/OpenGL.h>
|
|
||||||
#ifndef NP_NO_CARBON
|
|
||||||
#include <Carbon/Carbon.h>
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(XP_UNIX)
|
|
||||||
#include <stdio.h>
|
|
||||||
#if defined(MOZ_X11)
|
|
||||||
#include <X11/Xlib.h>
|
|
||||||
#include <X11/Xutil.h>
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(XP_SYMBIAN)
|
|
||||||
#include <QEvent>
|
|
||||||
#include <QRegion>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------*/
|
|
||||||
/* Plugin Version Constants */
|
|
||||||
/*----------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#define NP_VERSION_MAJOR 0
|
|
||||||
#define NP_VERSION_MINOR 27
|
|
||||||
|
|
||||||
|
|
||||||
/* The OS/2 version of Netscape uses RC_DATA to define the
|
|
||||||
mime types, file extensions, etc that are required.
|
|
||||||
Use a vertical bar to separate types, end types with \0.
|
|
||||||
FileVersion and ProductVersion are 32bit ints, all other
|
|
||||||
entries are strings that MUST be terminated with a \0.
|
|
||||||
|
|
||||||
AN EXAMPLE:
|
|
||||||
|
|
||||||
RCDATA NP_INFO_ProductVersion { 1,0,0,1,}
|
|
||||||
|
|
||||||
RCDATA NP_INFO_MIMEType { "video/x-video|",
|
|
||||||
"video/x-flick\0" }
|
|
||||||
RCDATA NP_INFO_FileExtents { "avi|",
|
|
||||||
"flc\0" }
|
|
||||||
RCDATA NP_INFO_FileOpenName{ "MMOS2 video player(*.avi)|",
|
|
||||||
"MMOS2 Flc/Fli player(*.flc)\0" }
|
|
||||||
|
|
||||||
RCDATA NP_INFO_FileVersion { 1,0,0,1 }
|
|
||||||
RCDATA NP_INFO_CompanyName { "Netscape Communications\0" }
|
|
||||||
RCDATA NP_INFO_FileDescription { "NPAVI32 Extension DLL\0"
|
|
||||||
RCDATA NP_INFO_InternalName { "NPAVI32\0" )
|
|
||||||
RCDATA NP_INFO_LegalCopyright { "Copyright Netscape Communications \251 1996\0"
|
|
||||||
RCDATA NP_INFO_OriginalFilename { "NVAPI32.DLL" }
|
|
||||||
RCDATA NP_INFO_ProductName { "NPAVI32 Dynamic Link Library\0" }
|
|
||||||
*/
|
|
||||||
/* RC_DATA types for version info - required */
|
|
||||||
#define NP_INFO_ProductVersion 1
|
|
||||||
#define NP_INFO_MIMEType 2
|
|
||||||
#define NP_INFO_FileOpenName 3
|
|
||||||
#define NP_INFO_FileExtents 4
|
|
||||||
/* RC_DATA types for version info - used if found */
|
|
||||||
#define NP_INFO_FileDescription 5
|
|
||||||
#define NP_INFO_ProductName 6
|
|
||||||
/* RC_DATA types for version info - optional */
|
|
||||||
#define NP_INFO_CompanyName 7
|
|
||||||
#define NP_INFO_FileVersion 8
|
|
||||||
#define NP_INFO_InternalName 9
|
|
||||||
#define NP_INFO_LegalCopyright 10
|
|
||||||
#define NP_INFO_OriginalFilename 11
|
|
||||||
|
|
||||||
#ifndef RC_INVOKED
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------*/
|
|
||||||
/* Definition of Basic Types */
|
|
||||||
/*----------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
typedef unsigned char NPBool;
|
|
||||||
typedef int16_t NPError;
|
|
||||||
typedef int16_t NPReason;
|
|
||||||
typedef char* NPMIMEType;
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------*/
|
|
||||||
/* Structures and definitions */
|
|
||||||
/*----------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#if !defined(__LP64__)
|
|
||||||
#if defined(XP_MACOSX)
|
|
||||||
#pragma options align=mac68k
|
|
||||||
#endif
|
|
||||||
#endif /* __LP64__ */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NPP is a plug-in's opaque instance handle
|
|
||||||
*/
|
|
||||||
typedef struct _NPP
|
|
||||||
{
|
|
||||||
void* pdata; /* plug-in private data */
|
|
||||||
void* ndata; /* netscape private data */
|
|
||||||
} NPP_t;
|
|
||||||
|
|
||||||
typedef NPP_t* NPP;
|
|
||||||
|
|
||||||
typedef struct _NPStream
|
|
||||||
{
|
|
||||||
void* pdata; /* plug-in private data */
|
|
||||||
void* ndata; /* netscape private data */
|
|
||||||
const char* url;
|
|
||||||
uint32_t end;
|
|
||||||
uint32_t lastmodified;
|
|
||||||
void* notifyData;
|
|
||||||
const char* headers; /* Response headers from host.
|
|
||||||
* Exists only for >= NPVERS_HAS_RESPONSE_HEADERS.
|
|
||||||
* Used for HTTP only; NULL for non-HTTP.
|
|
||||||
* Available from NPP_NewStream onwards.
|
|
||||||
* Plugin should copy this data before storing it.
|
|
||||||
* Includes HTTP status line and all headers,
|
|
||||||
* preferably verbatim as received from server,
|
|
||||||
* headers formatted as in HTTP ("Header: Value"),
|
|
||||||
* and newlines (\n, NOT \r\n) separating lines.
|
|
||||||
* Terminated by \n\0 (NOT \n\n\0). */
|
|
||||||
} NPStream;
|
|
||||||
|
|
||||||
typedef struct _NPByteRange
|
|
||||||
{
|
|
||||||
int32_t offset; /* negative offset means from the end */
|
|
||||||
uint32_t length;
|
|
||||||
struct _NPByteRange* next;
|
|
||||||
} NPByteRange;
|
|
||||||
|
|
||||||
typedef struct _NPSavedData
|
|
||||||
{
|
|
||||||
int32_t len;
|
|
||||||
void* buf;
|
|
||||||
} NPSavedData;
|
|
||||||
|
|
||||||
typedef struct _NPRect
|
|
||||||
{
|
|
||||||
uint16_t top;
|
|
||||||
uint16_t left;
|
|
||||||
uint16_t bottom;
|
|
||||||
uint16_t right;
|
|
||||||
} NPRect;
|
|
||||||
|
|
||||||
typedef struct _NPSize
|
|
||||||
{
|
|
||||||
int32_t width;
|
|
||||||
int32_t height;
|
|
||||||
} NPSize;
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
NPFocusNext = 0,
|
|
||||||
NPFocusPrevious = 1
|
|
||||||
} NPFocusDirection;
|
|
||||||
|
|
||||||
/* Return values for NPP_HandleEvent */
|
|
||||||
#define kNPEventNotHandled 0
|
|
||||||
#define kNPEventHandled 1
|
|
||||||
/* Exact meaning must be spec'd in event model. */
|
|
||||||
#define kNPEventStartIME 2
|
|
||||||
|
|
||||||
#if defined(XP_UNIX)
|
|
||||||
/*
|
|
||||||
* Unix specific structures and definitions
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Callback Structures.
|
|
||||||
*
|
|
||||||
* These are used to pass additional platform specific information.
|
|
||||||
*/
|
|
||||||
enum {
|
|
||||||
NP_SETWINDOW = 1,
|
|
||||||
NP_PRINT
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
int32_t type;
|
|
||||||
} NPAnyCallbackStruct;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
int32_t type;
|
|
||||||
#if defined(MOZ_X11)
|
|
||||||
Display* display;
|
|
||||||
Visual* visual;
|
|
||||||
Colormap colormap;
|
|
||||||
unsigned int depth;
|
|
||||||
#endif
|
|
||||||
} NPSetWindowCallbackStruct;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
int32_t type;
|
|
||||||
FILE* fp;
|
|
||||||
} NPPrintCallbackStruct;
|
|
||||||
|
|
||||||
#endif /* XP_UNIX */
|
|
||||||
|
|
||||||
#if defined(XP_MACOSX)
|
|
||||||
typedef enum {
|
|
||||||
#ifndef NP_NO_QUICKDRAW
|
|
||||||
NPDrawingModelQuickDraw = 0,
|
|
||||||
#endif
|
|
||||||
NPDrawingModelCoreGraphics = 1,
|
|
||||||
NPDrawingModelOpenGL = 2,
|
|
||||||
NPDrawingModelCoreAnimation = 3,
|
|
||||||
NPDrawingModelInvalidatingCoreAnimation = 4
|
|
||||||
} NPDrawingModel;
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
#ifndef NP_NO_CARBON
|
|
||||||
NPEventModelCarbon = 0,
|
|
||||||
#endif
|
|
||||||
NPEventModelCocoa = 1
|
|
||||||
} NPEventModel;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The following masks are applied on certain platforms to NPNV and
|
|
||||||
* NPPV selectors that pass around pointers to COM interfaces. Newer
|
|
||||||
* compilers on some platforms may generate vtables that are not
|
|
||||||
* compatible with older compilers. To prevent older plugins from
|
|
||||||
* not understanding a new browser's ABI, these masks change the
|
|
||||||
* values of those selectors on those platforms. To remain backwards
|
|
||||||
* compatible with different versions of the browser, plugins can
|
|
||||||
* use these masks to dynamically determine and use the correct C++
|
|
||||||
* ABI that the browser is expecting. This does not apply to Windows
|
|
||||||
* as Microsoft's COM ABI will likely not change.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define NP_ABI_GCC3_MASK 0x10000000
|
|
||||||
/*
|
|
||||||
* gcc 3.x generated vtables on UNIX and OSX are incompatible with
|
|
||||||
* previous compilers.
|
|
||||||
*/
|
|
||||||
#if (defined(XP_UNIX) && defined(__GNUC__) && (__GNUC__ >= 3))
|
|
||||||
#define _NP_ABI_MIXIN_FOR_GCC3 NP_ABI_GCC3_MASK
|
|
||||||
#else
|
|
||||||
#define _NP_ABI_MIXIN_FOR_GCC3 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(XP_MACOSX)
|
|
||||||
#define NP_ABI_MACHO_MASK 0x01000000
|
|
||||||
#define _NP_ABI_MIXIN_FOR_MACHO NP_ABI_MACHO_MASK
|
|
||||||
#else
|
|
||||||
#define _NP_ABI_MIXIN_FOR_MACHO 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define NP_ABI_MASK (_NP_ABI_MIXIN_FOR_GCC3 | _NP_ABI_MIXIN_FOR_MACHO)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* List of variable names for which NPP_GetValue shall be implemented
|
|
||||||
*/
|
|
||||||
typedef enum {
|
|
||||||
NPPVpluginNameString = 1,
|
|
||||||
NPPVpluginDescriptionString,
|
|
||||||
NPPVpluginWindowBool,
|
|
||||||
NPPVpluginTransparentBool,
|
|
||||||
NPPVjavaClass,
|
|
||||||
NPPVpluginWindowSize,
|
|
||||||
NPPVpluginTimerInterval,
|
|
||||||
NPPVpluginScriptableInstance = (10 | NP_ABI_MASK),
|
|
||||||
NPPVpluginScriptableIID = 11,
|
|
||||||
NPPVjavascriptPushCallerBool = 12,
|
|
||||||
NPPVpluginKeepLibraryInMemory = 13,
|
|
||||||
NPPVpluginNeedsXEmbed = 14,
|
|
||||||
|
|
||||||
/* Get the NPObject for scripting the plugin. Introduced in NPAPI minor version 14.
|
|
||||||
*/
|
|
||||||
NPPVpluginScriptableNPObject = 15,
|
|
||||||
|
|
||||||
/* Get the plugin value (as \0-terminated UTF-8 string data) for
|
|
||||||
* form submission if the plugin is part of a form. Use
|
|
||||||
* NPN_MemAlloc() to allocate memory for the string data. Introduced
|
|
||||||
* in NPAPI minor version 15.
|
|
||||||
*/
|
|
||||||
NPPVformValue = 16,
|
|
||||||
|
|
||||||
NPPVpluginUrlRequestsDisplayedBool = 17,
|
|
||||||
|
|
||||||
/* Checks if the plugin is interested in receiving the http body of
|
|
||||||
* all http requests (including failed ones, http status != 200).
|
|
||||||
*/
|
|
||||||
NPPVpluginWantsAllNetworkStreams = 18,
|
|
||||||
|
|
||||||
/* Browsers can retrieve a native ATK accessibility plug ID via this variable. */
|
|
||||||
NPPVpluginNativeAccessibleAtkPlugId = 19,
|
|
||||||
|
|
||||||
/* Checks to see if the plug-in would like the browser to load the "src" attribute. */
|
|
||||||
NPPVpluginCancelSrcStream = 20,
|
|
||||||
|
|
||||||
NPPVsupportsAdvancedKeyHandling = 21,
|
|
||||||
|
|
||||||
NPPVpluginUsesDOMForCursorBool = 22
|
|
||||||
|
|
||||||
#if defined(XP_MACOSX)
|
|
||||||
/* Used for negotiating drawing models */
|
|
||||||
, NPPVpluginDrawingModel = 1000
|
|
||||||
/* Used for negotiating event models */
|
|
||||||
, NPPVpluginEventModel = 1001
|
|
||||||
/* In the NPDrawingModelCoreAnimation drawing model, the browser asks the plug-in for a Core Animation layer. */
|
|
||||||
, NPPVpluginCoreAnimationLayer = 1003
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (MOZ_PLATFORM_MAEMO == 5) || (MOZ_PLATFORM_MAEMO == 6)
|
|
||||||
, NPPVpluginWindowlessLocalBool = 2002
|
|
||||||
#endif
|
|
||||||
} NPPVariable;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* List of variable names for which NPN_GetValue should be implemented.
|
|
||||||
*/
|
|
||||||
typedef enum {
|
|
||||||
NPNVxDisplay = 1,
|
|
||||||
NPNVxtAppContext,
|
|
||||||
NPNVnetscapeWindow,
|
|
||||||
NPNVjavascriptEnabledBool,
|
|
||||||
NPNVasdEnabledBool,
|
|
||||||
NPNVisOfflineBool,
|
|
||||||
|
|
||||||
NPNVserviceManager = (10 | NP_ABI_MASK),
|
|
||||||
NPNVDOMElement = (11 | NP_ABI_MASK),
|
|
||||||
NPNVDOMWindow = (12 | NP_ABI_MASK),
|
|
||||||
NPNVToolkit = (13 | NP_ABI_MASK),
|
|
||||||
NPNVSupportsXEmbedBool = 14,
|
|
||||||
|
|
||||||
/* Get the NPObject wrapper for the browser window. */
|
|
||||||
NPNVWindowNPObject = 15,
|
|
||||||
|
|
||||||
/* Get the NPObject wrapper for the plugins DOM element. */
|
|
||||||
NPNVPluginElementNPObject = 16,
|
|
||||||
|
|
||||||
NPNVSupportsWindowless = 17,
|
|
||||||
|
|
||||||
NPNVprivateModeBool = 18,
|
|
||||||
|
|
||||||
NPNVsupportsAdvancedKeyHandling = 21
|
|
||||||
|
|
||||||
#if defined(XP_MACOSX)
|
|
||||||
/* Used for negotiating drawing models */
|
|
||||||
, NPNVpluginDrawingModel = 1000
|
|
||||||
#ifndef NP_NO_QUICKDRAW
|
|
||||||
, NPNVsupportsQuickDrawBool = 2000
|
|
||||||
#endif
|
|
||||||
, NPNVsupportsCoreGraphicsBool = 2001
|
|
||||||
, NPNVsupportsOpenGLBool = 2002
|
|
||||||
, NPNVsupportsCoreAnimationBool = 2003
|
|
||||||
, NPNVsupportsInvalidatingCoreAnimationBool = 2004
|
|
||||||
#ifndef NP_NO_CARBON
|
|
||||||
, NPNVsupportsCarbonBool = 3000 /* TRUE if the browser supports the Carbon event model */
|
|
||||||
#endif
|
|
||||||
, NPNVsupportsCocoaBool = 3001 /* TRUE if the browser supports the Cocoa event model */
|
|
||||||
, NPNVsupportsUpdatedCocoaTextInputBool = 3002 /* TRUE if the browser supports the updated
|
|
||||||
Cocoa text input specification. */
|
|
||||||
, NPNVsupportsCompositingCoreAnimationPluginsBool = 74656 /* TRUE if the browser supports
|
|
||||||
CA model compositing */
|
|
||||||
#endif
|
|
||||||
#if (MOZ_PLATFORM_MAEMO == 5) || (MOZ_PLATFORM_MAEMO == 6)
|
|
||||||
, NPNVSupportsWindowlessLocal = 2002
|
|
||||||
#endif
|
|
||||||
} NPNVariable;
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
NPNURLVCookie = 501,
|
|
||||||
NPNURLVProxy
|
|
||||||
} NPNURLVariable;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The type of Toolkit the widgets use
|
|
||||||
*/
|
|
||||||
typedef enum {
|
|
||||||
NPNVGtk12 = 1,
|
|
||||||
NPNVGtk2
|
|
||||||
} NPNToolkitType;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The type of a NPWindow - it specifies the type of the data structure
|
|
||||||
* returned in the window field.
|
|
||||||
*/
|
|
||||||
typedef enum {
|
|
||||||
NPWindowTypeWindow = 1,
|
|
||||||
NPWindowTypeDrawable
|
|
||||||
} NPWindowType;
|
|
||||||
|
|
||||||
typedef struct _NPWindow
|
|
||||||
{
|
|
||||||
void* window; /* Platform specific window handle */
|
|
||||||
/* OS/2: x - Position of bottom left corner */
|
|
||||||
/* OS/2: y - relative to visible netscape window */
|
|
||||||
int32_t x; /* Position of top left corner relative */
|
|
||||||
int32_t y; /* to a netscape page. */
|
|
||||||
uint32_t width; /* Maximum window size */
|
|
||||||
uint32_t height;
|
|
||||||
NPRect clipRect; /* Clipping rectangle in port coordinates */
|
|
||||||
#if (defined(XP_UNIX) || defined(XP_SYMBIAN)) && !defined(XP_MACOSX)
|
|
||||||
void * ws_info; /* Platform-dependent additional data */
|
|
||||||
#endif /* XP_UNIX */
|
|
||||||
NPWindowType type; /* Is this a window or a drawable? */
|
|
||||||
} NPWindow;
|
|
||||||
|
|
||||||
typedef struct _NPImageExpose
|
|
||||||
{
|
|
||||||
char* data; /* image pointer */
|
|
||||||
int32_t stride; /* Stride of data image pointer */
|
|
||||||
int32_t depth; /* Depth of image pointer */
|
|
||||||
int32_t x; /* Expose x */
|
|
||||||
int32_t y; /* Expose y */
|
|
||||||
uint32_t width; /* Expose width */
|
|
||||||
uint32_t height; /* Expose height */
|
|
||||||
NPSize dataSize; /* Data buffer size */
|
|
||||||
float translateX; /* translate X matrix value */
|
|
||||||
float translateY; /* translate Y matrix value */
|
|
||||||
float scaleX; /* scale X matrix value */
|
|
||||||
float scaleY; /* scale Y matrix value */
|
|
||||||
} NPImageExpose;
|
|
||||||
|
|
||||||
typedef struct _NPFullPrint
|
|
||||||
{
|
|
||||||
NPBool pluginPrinted;/* Set TRUE if plugin handled fullscreen printing */
|
|
||||||
NPBool printOne; /* TRUE if plugin should print one copy to default
|
|
||||||
printer */
|
|
||||||
void* platformPrint; /* Platform-specific printing info */
|
|
||||||
} NPFullPrint;
|
|
||||||
|
|
||||||
typedef struct _NPEmbedPrint
|
|
||||||
{
|
|
||||||
NPWindow window;
|
|
||||||
void* platformPrint; /* Platform-specific printing info */
|
|
||||||
} NPEmbedPrint;
|
|
||||||
|
|
||||||
typedef struct _NPPrint
|
|
||||||
{
|
|
||||||
uint16_t mode; /* NP_FULL or NP_EMBED */
|
|
||||||
union
|
|
||||||
{
|
|
||||||
NPFullPrint fullPrint; /* if mode is NP_FULL */
|
|
||||||
NPEmbedPrint embedPrint; /* if mode is NP_EMBED */
|
|
||||||
} print;
|
|
||||||
} NPPrint;
|
|
||||||
|
|
||||||
#if defined(XP_MACOSX)
|
|
||||||
#ifndef NP_NO_CARBON
|
|
||||||
typedef EventRecord NPEvent;
|
|
||||||
#endif
|
|
||||||
#elif defined(XP_SYMBIAN)
|
|
||||||
typedef QEvent NPEvent;
|
|
||||||
#elif defined(XP_WIN)
|
|
||||||
typedef struct _NPEvent
|
|
||||||
{
|
|
||||||
uint16_t event;
|
|
||||||
uintptr_t wParam;
|
|
||||||
uintptr_t lParam;
|
|
||||||
} NPEvent;
|
|
||||||
#elif defined(XP_OS2)
|
|
||||||
typedef struct _NPEvent
|
|
||||||
{
|
|
||||||
uint32_t event;
|
|
||||||
uint32_t wParam;
|
|
||||||
uint32_t lParam;
|
|
||||||
} NPEvent;
|
|
||||||
#elif defined(XP_UNIX) && defined(MOZ_X11)
|
|
||||||
typedef XEvent NPEvent;
|
|
||||||
#else
|
|
||||||
typedef void* NPEvent;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(XP_MACOSX)
|
|
||||||
typedef void* NPRegion;
|
|
||||||
#ifndef NP_NO_QUICKDRAW
|
|
||||||
typedef RgnHandle NPQDRegion;
|
|
||||||
#endif
|
|
||||||
typedef CGPathRef NPCGRegion;
|
|
||||||
#elif defined(XP_WIN)
|
|
||||||
typedef HRGN NPRegion;
|
|
||||||
#elif defined(XP_UNIX) && defined(MOZ_X11)
|
|
||||||
typedef Region NPRegion;
|
|
||||||
#elif defined(XP_SYMBIAN)
|
|
||||||
typedef QRegion* NPRegion;
|
|
||||||
#else
|
|
||||||
typedef void *NPRegion;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct _NPNSString NPNSString;
|
|
||||||
typedef struct _NPNSWindow NPNSWindow;
|
|
||||||
typedef struct _NPNSMenu NPNSMenu;
|
|
||||||
|
|
||||||
#if defined(XP_MACOSX)
|
|
||||||
typedef NPNSMenu NPMenu;
|
|
||||||
#else
|
|
||||||
typedef void *NPMenu;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
NPCoordinateSpacePlugin = 1,
|
|
||||||
NPCoordinateSpaceWindow,
|
|
||||||
NPCoordinateSpaceFlippedWindow,
|
|
||||||
NPCoordinateSpaceScreen,
|
|
||||||
NPCoordinateSpaceFlippedScreen
|
|
||||||
} NPCoordinateSpace;
|
|
||||||
|
|
||||||
#if defined(XP_MACOSX)
|
|
||||||
|
|
||||||
#ifndef NP_NO_QUICKDRAW
|
|
||||||
typedef struct NP_Port
|
|
||||||
{
|
|
||||||
CGrafPtr port;
|
|
||||||
int32_t portx; /* position inside the topmost window */
|
|
||||||
int32_t porty;
|
|
||||||
} NP_Port;
|
|
||||||
#endif /* NP_NO_QUICKDRAW */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NP_CGContext is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelCoreGraphics
|
|
||||||
* as its drawing model.
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef struct NP_CGContext
|
|
||||||
{
|
|
||||||
CGContextRef context;
|
|
||||||
void *window; /* A WindowRef under the Carbon event model. */
|
|
||||||
} NP_CGContext;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NP_GLContext is the type of the NPWindow's 'window' when the plugin specifies NPDrawingModelOpenGL as its
|
|
||||||
* drawing model.
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef struct NP_GLContext
|
|
||||||
{
|
|
||||||
CGLContextObj context;
|
|
||||||
#ifdef NP_NO_CARBON
|
|
||||||
NPNSWindow *window;
|
|
||||||
#else
|
|
||||||
void *window; /* Can be either an NSWindow or a WindowRef depending on the event model */
|
|
||||||
#endif
|
|
||||||
} NP_GLContext;
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
NPCocoaEventDrawRect = 1,
|
|
||||||
NPCocoaEventMouseDown,
|
|
||||||
NPCocoaEventMouseUp,
|
|
||||||
NPCocoaEventMouseMoved,
|
|
||||||
NPCocoaEventMouseEntered,
|
|
||||||
NPCocoaEventMouseExited,
|
|
||||||
NPCocoaEventMouseDragged,
|
|
||||||
NPCocoaEventKeyDown,
|
|
||||||
NPCocoaEventKeyUp,
|
|
||||||
NPCocoaEventFlagsChanged,
|
|
||||||
NPCocoaEventFocusChanged,
|
|
||||||
NPCocoaEventWindowFocusChanged,
|
|
||||||
NPCocoaEventScrollWheel,
|
|
||||||
NPCocoaEventTextInput
|
|
||||||
} NPCocoaEventType;
|
|
||||||
|
|
||||||
typedef struct _NPCocoaEvent {
|
|
||||||
NPCocoaEventType type;
|
|
||||||
uint32_t version;
|
|
||||||
union {
|
|
||||||
struct {
|
|
||||||
uint32_t modifierFlags;
|
|
||||||
double pluginX;
|
|
||||||
double pluginY;
|
|
||||||
int32_t buttonNumber;
|
|
||||||
int32_t clickCount;
|
|
||||||
double deltaX;
|
|
||||||
double deltaY;
|
|
||||||
double deltaZ;
|
|
||||||
} mouse;
|
|
||||||
struct {
|
|
||||||
uint32_t modifierFlags;
|
|
||||||
NPNSString *characters;
|
|
||||||
NPNSString *charactersIgnoringModifiers;
|
|
||||||
NPBool isARepeat;
|
|
||||||
uint16_t keyCode;
|
|
||||||
} key;
|
|
||||||
struct {
|
|
||||||
CGContextRef context;
|
|
||||||
double x;
|
|
||||||
double y;
|
|
||||||
double width;
|
|
||||||
double height;
|
|
||||||
} draw;
|
|
||||||
struct {
|
|
||||||
NPBool hasFocus;
|
|
||||||
} focus;
|
|
||||||
struct {
|
|
||||||
NPNSString *text;
|
|
||||||
} text;
|
|
||||||
} data;
|
|
||||||
} NPCocoaEvent;
|
|
||||||
|
|
||||||
#ifndef NP_NO_CARBON
|
|
||||||
/* Non-standard event types that can be passed to HandleEvent */
|
|
||||||
enum NPEventType {
|
|
||||||
NPEventType_GetFocusEvent = (osEvt + 16),
|
|
||||||
NPEventType_LoseFocusEvent,
|
|
||||||
NPEventType_AdjustCursorEvent,
|
|
||||||
NPEventType_MenuCommandEvent,
|
|
||||||
NPEventType_ClippingChangedEvent,
|
|
||||||
NPEventType_ScrollingBeginsEvent = 1000,
|
|
||||||
NPEventType_ScrollingEndsEvent
|
|
||||||
};
|
|
||||||
#endif /* NP_NO_CARBON */
|
|
||||||
|
|
||||||
#endif /* XP_MACOSX */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Values for mode passed to NPP_New:
|
|
||||||
*/
|
|
||||||
#define NP_EMBED 1
|
|
||||||
#define NP_FULL 2
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Values for stream type passed to NPP_NewStream:
|
|
||||||
*/
|
|
||||||
#define NP_NORMAL 1
|
|
||||||
#define NP_SEEK 2
|
|
||||||
#define NP_ASFILE 3
|
|
||||||
#define NP_ASFILEONLY 4
|
|
||||||
|
|
||||||
#define NP_MAXREADY (((unsigned)(~0)<<1)>>1)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Flags for NPP_ClearSiteData.
|
|
||||||
*/
|
|
||||||
#define NP_CLEAR_ALL 0
|
|
||||||
#define NP_CLEAR_CACHE (1 << 0)
|
|
||||||
|
|
||||||
#if !defined(__LP64__)
|
|
||||||
#if defined(XP_MACOSX)
|
|
||||||
#pragma options align=reset
|
|
||||||
#endif
|
|
||||||
#endif /* __LP64__ */
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------*/
|
|
||||||
/* Error and Reason Code definitions */
|
|
||||||
/*----------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Values of type NPError:
|
|
||||||
*/
|
|
||||||
#define NPERR_BASE 0
|
|
||||||
#define NPERR_NO_ERROR (NPERR_BASE + 0)
|
|
||||||
#define NPERR_GENERIC_ERROR (NPERR_BASE + 1)
|
|
||||||
#define NPERR_INVALID_INSTANCE_ERROR (NPERR_BASE + 2)
|
|
||||||
#define NPERR_INVALID_FUNCTABLE_ERROR (NPERR_BASE + 3)
|
|
||||||
#define NPERR_MODULE_LOAD_FAILED_ERROR (NPERR_BASE + 4)
|
|
||||||
#define NPERR_OUT_OF_MEMORY_ERROR (NPERR_BASE + 5)
|
|
||||||
#define NPERR_INVALID_PLUGIN_ERROR (NPERR_BASE + 6)
|
|
||||||
#define NPERR_INVALID_PLUGIN_DIR_ERROR (NPERR_BASE + 7)
|
|
||||||
#define NPERR_INCOMPATIBLE_VERSION_ERROR (NPERR_BASE + 8)
|
|
||||||
#define NPERR_INVALID_PARAM (NPERR_BASE + 9)
|
|
||||||
#define NPERR_INVALID_URL (NPERR_BASE + 10)
|
|
||||||
#define NPERR_FILE_NOT_FOUND (NPERR_BASE + 11)
|
|
||||||
#define NPERR_NO_DATA (NPERR_BASE + 12)
|
|
||||||
#define NPERR_STREAM_NOT_SEEKABLE (NPERR_BASE + 13)
|
|
||||||
#define NPERR_TIME_RANGE_NOT_SUPPORTED (NPERR_BASE + 14)
|
|
||||||
#define NPERR_MALFORMED_SITE (NPERR_BASE + 15)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Values of type NPReason:
|
|
||||||
*/
|
|
||||||
#define NPRES_BASE 0
|
|
||||||
#define NPRES_DONE (NPRES_BASE + 0)
|
|
||||||
#define NPRES_NETWORK_ERR (NPRES_BASE + 1)
|
|
||||||
#define NPRES_USER_BREAK (NPRES_BASE + 2)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Don't use these obsolete error codes any more.
|
|
||||||
*/
|
|
||||||
#define NP_NOERR NP_NOERR_is_obsolete_use_NPERR_NO_ERROR
|
|
||||||
#define NP_EINVAL NP_EINVAL_is_obsolete_use_NPERR_GENERIC_ERROR
|
|
||||||
#define NP_EABORT NP_EABORT_is_obsolete_use_NPRES_USER_BREAK
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Version feature information
|
|
||||||
*/
|
|
||||||
#define NPVERS_HAS_STREAMOUTPUT 8
|
|
||||||
#define NPVERS_HAS_NOTIFICATION 9
|
|
||||||
#define NPVERS_HAS_LIVECONNECT 9
|
|
||||||
#define NPVERS_68K_HAS_LIVECONNECT 11
|
|
||||||
#define NPVERS_HAS_WINDOWLESS 11
|
|
||||||
#define NPVERS_HAS_XPCONNECT_SCRIPTING 13
|
|
||||||
#define NPVERS_HAS_NPRUNTIME_SCRIPTING 14
|
|
||||||
#define NPVERS_HAS_FORM_VALUES 15
|
|
||||||
#define NPVERS_HAS_POPUPS_ENABLED_STATE 16
|
|
||||||
#define NPVERS_HAS_RESPONSE_HEADERS 17
|
|
||||||
#define NPVERS_HAS_NPOBJECT_ENUM 18
|
|
||||||
#define NPVERS_HAS_PLUGIN_THREAD_ASYNC_CALL 19
|
|
||||||
#define NPVERS_HAS_ALL_NETWORK_STREAMS 20
|
|
||||||
#define NPVERS_HAS_URL_AND_AUTH_INFO 21
|
|
||||||
#define NPVERS_HAS_PRIVATE_MODE 22
|
|
||||||
#define NPVERS_MACOSX_HAS_COCOA_EVENTS 23
|
|
||||||
#define NPVERS_HAS_ADVANCED_KEY_HANDLING 25
|
|
||||||
#define NPVERS_HAS_URL_REDIRECT_HANDLING 26
|
|
||||||
#define NPVERS_HAS_CLEAR_SITE_DATA 27
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------*/
|
|
||||||
/* Function Prototypes */
|
|
||||||
/*----------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
#if defined(__OS2__)
|
|
||||||
#define NP_LOADDS _System
|
|
||||||
#else
|
|
||||||
#define NP_LOADDS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* NPP_* functions are provided by the plugin and called by the navigator. */
|
|
||||||
|
|
||||||
#if defined(XP_UNIX)
|
|
||||||
const char* NPP_GetMIMEDescription(void);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
NPError NP_LOADDS NPP_New(NPMIMEType pluginType, NPP instance,
|
|
||||||
uint16_t mode, int16_t argc, char* argn[],
|
|
||||||
char* argv[], NPSavedData* saved);
|
|
||||||
NPError NP_LOADDS NPP_Destroy(NPP instance, NPSavedData** save);
|
|
||||||
NPError NP_LOADDS NPP_SetWindow(NPP instance, NPWindow* window);
|
|
||||||
NPError NP_LOADDS NPP_NewStream(NPP instance, NPMIMEType type,
|
|
||||||
NPStream* stream, NPBool seekable,
|
|
||||||
uint16_t* stype);
|
|
||||||
NPError NP_LOADDS NPP_DestroyStream(NPP instance, NPStream* stream,
|
|
||||||
NPReason reason);
|
|
||||||
int32_t NP_LOADDS NPP_WriteReady(NPP instance, NPStream* stream);
|
|
||||||
int32_t NP_LOADDS NPP_Write(NPP instance, NPStream* stream, int32_t offset,
|
|
||||||
int32_t len, void* buffer);
|
|
||||||
void NP_LOADDS NPP_StreamAsFile(NPP instance, NPStream* stream,
|
|
||||||
const char* fname);
|
|
||||||
void NP_LOADDS NPP_Print(NPP instance, NPPrint* platformPrint);
|
|
||||||
int16_t NP_LOADDS NPP_HandleEvent(NPP instance, void* event);
|
|
||||||
void NP_LOADDS NPP_URLNotify(NPP instance, const char* url,
|
|
||||||
NPReason reason, void* notifyData);
|
|
||||||
NPError NP_LOADDS NPP_GetValue(NPP instance, NPPVariable variable, void *value);
|
|
||||||
NPError NP_LOADDS NPP_SetValue(NPP instance, NPNVariable variable, void *value);
|
|
||||||
NPBool NP_LOADDS NPP_GotFocus(NPP instance, NPFocusDirection direction);
|
|
||||||
void NP_LOADDS NPP_LostFocus(NPP instance);
|
|
||||||
void NP_LOADDS NPP_URLRedirectNotify(NPP instance, const char* url, int32_t status, void* notifyData);
|
|
||||||
NPError NP_LOADDS NPP_ClearSiteData(const char* site, uint64_t flags, uint64_t maxAge);
|
|
||||||
char** NP_LOADDS NPP_GetSitesWithData(void);
|
|
||||||
|
|
||||||
/* NPN_* functions are provided by the navigator and called by the plugin. */
|
|
||||||
void NP_LOADDS NPN_Version(int* plugin_major, int* plugin_minor,
|
|
||||||
int* netscape_major, int* netscape_minor);
|
|
||||||
NPError NP_LOADDS NPN_GetURLNotify(NPP instance, const char* url,
|
|
||||||
const char* target, void* notifyData);
|
|
||||||
NPError NP_LOADDS NPN_GetURL(NPP instance, const char* url,
|
|
||||||
const char* target);
|
|
||||||
NPError NP_LOADDS NPN_PostURLNotify(NPP instance, const char* url,
|
|
||||||
const char* target, uint32_t len,
|
|
||||||
const char* buf, NPBool file,
|
|
||||||
void* notifyData);
|
|
||||||
NPError NP_LOADDS NPN_PostURL(NPP instance, const char* url,
|
|
||||||
const char* target, uint32_t len,
|
|
||||||
const char* buf, NPBool file);
|
|
||||||
NPError NP_LOADDS NPN_RequestRead(NPStream* stream, NPByteRange* rangeList);
|
|
||||||
NPError NP_LOADDS NPN_NewStream(NPP instance, NPMIMEType type,
|
|
||||||
const char* target, NPStream** stream);
|
|
||||||
int32_t NP_LOADDS NPN_Write(NPP instance, NPStream* stream, int32_t len,
|
|
||||||
void* buffer);
|
|
||||||
NPError NP_LOADDS NPN_DestroyStream(NPP instance, NPStream* stream,
|
|
||||||
NPReason reason);
|
|
||||||
void NP_LOADDS NPN_Status(NPP instance, const char* message);
|
|
||||||
const char* NP_LOADDS NPN_UserAgent(NPP instance);
|
|
||||||
void* NP_LOADDS NPN_MemAlloc(uint32_t size);
|
|
||||||
void NP_LOADDS NPN_MemFree(void* ptr);
|
|
||||||
uint32_t NP_LOADDS NPN_MemFlush(uint32_t size);
|
|
||||||
void NP_LOADDS NPN_ReloadPlugins(NPBool reloadPages);
|
|
||||||
NPError NP_LOADDS NPN_GetValue(NPP instance, NPNVariable variable,
|
|
||||||
void *value);
|
|
||||||
NPError NP_LOADDS NPN_SetValue(NPP instance, NPPVariable variable,
|
|
||||||
void *value);
|
|
||||||
void NP_LOADDS NPN_InvalidateRect(NPP instance, NPRect *invalidRect);
|
|
||||||
void NP_LOADDS NPN_InvalidateRegion(NPP instance,
|
|
||||||
NPRegion invalidRegion);
|
|
||||||
void NP_LOADDS NPN_ForceRedraw(NPP instance);
|
|
||||||
void NP_LOADDS NPN_PushPopupsEnabledState(NPP instance, NPBool enabled);
|
|
||||||
void NP_LOADDS NPN_PopPopupsEnabledState(NPP instance);
|
|
||||||
void NP_LOADDS NPN_PluginThreadAsyncCall(NPP instance,
|
|
||||||
void (*func) (void *),
|
|
||||||
void *userData);
|
|
||||||
NPError NP_LOADDS NPN_GetValueForURL(NPP instance, NPNURLVariable variable,
|
|
||||||
const char *url, char **value,
|
|
||||||
uint32_t *len);
|
|
||||||
NPError NP_LOADDS NPN_SetValueForURL(NPP instance, NPNURLVariable variable,
|
|
||||||
const char *url, const char *value,
|
|
||||||
uint32_t len);
|
|
||||||
NPError NP_LOADDS NPN_GetAuthenticationInfo(NPP instance,
|
|
||||||
const char *protocol,
|
|
||||||
const char *host, int32_t port,
|
|
||||||
const char *scheme,
|
|
||||||
const char *realm,
|
|
||||||
char **username, uint32_t *ulen,
|
|
||||||
char **password,
|
|
||||||
uint32_t *plen);
|
|
||||||
uint32_t NP_LOADDS NPN_ScheduleTimer(NPP instance, uint32_t interval, NPBool repeat, void (*timerFunc)(NPP npp, uint32_t timerID));
|
|
||||||
void NP_LOADDS NPN_UnscheduleTimer(NPP instance, uint32_t timerID);
|
|
||||||
NPError NP_LOADDS NPN_PopUpContextMenu(NPP instance, NPMenu* menu);
|
|
||||||
NPBool NP_LOADDS NPN_ConvertPoint(NPP instance, double sourceX, double sourceY, NPCoordinateSpace sourceSpace, double *destX, double *destY, NPCoordinateSpace destSpace);
|
|
||||||
NPBool NP_LOADDS NPN_HandleEvent(NPP instance, void *event, NPBool handled);
|
|
||||||
NPBool NP_LOADDS NPN_UnfocusInstance(NPP instance, NPFocusDirection direction);
|
|
||||||
void NP_LOADDS NPN_URLRedirectResponse(NPP instance, void* notifyData, NPBool allow);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
} /* end extern "C" */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* RC_INVOKED */
|
|
||||||
#if defined(__OS2__)
|
|
||||||
#pragma pack()
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* npapi_h_ */
|
|
@ -1,322 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
||||||
/* ***** BEGIN LICENSE BLOCK *****
|
|
||||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the Mozilla Public License Version
|
|
||||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
||||||
* the License. You may obtain a copy of the License at
|
|
||||||
* http://www.mozilla.org/MPL/
|
|
||||||
*
|
|
||||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
||||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
||||||
* for the specific language governing rights and limitations under the
|
|
||||||
* License.
|
|
||||||
*
|
|
||||||
* The Original Code is mozilla.org code.
|
|
||||||
*
|
|
||||||
* The Initial Developer of the Original Code is
|
|
||||||
* Netscape Communications Corporation.
|
|
||||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
|
||||||
* the Initial Developer. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
*
|
|
||||||
* Alternatively, the contents of this file may be used under the terms of
|
|
||||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
||||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
||||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
||||||
* of those above. If you wish to allow use of your version of this file only
|
|
||||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
||||||
* use your version of this file under the terms of the MPL, indicate your
|
|
||||||
* decision by deleting the provisions above and replace them with the notice
|
|
||||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
||||||
* the provisions above, a recipient may use your version of this file under
|
|
||||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
||||||
*
|
|
||||||
* ***** END LICENSE BLOCK ***** */
|
|
||||||
|
|
||||||
#ifndef npfunctions_h_
|
|
||||||
#define npfunctions_h_
|
|
||||||
|
|
||||||
#ifdef __OS2__
|
|
||||||
#pragma pack(1)
|
|
||||||
#define NP_LOADDS _System
|
|
||||||
#else
|
|
||||||
#define NP_LOADDS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "npapi.h"
|
|
||||||
#include "npruntime.h"
|
|
||||||
|
|
||||||
typedef NPError (* NP_LOADDS NPP_NewProcPtr)(NPMIMEType pluginType, NPP instance, uint16_t mode, int16_t argc, char* argn[], char* argv[], NPSavedData* saved);
|
|
||||||
typedef NPError (* NP_LOADDS NPP_DestroyProcPtr)(NPP instance, NPSavedData** save);
|
|
||||||
typedef NPError (* NP_LOADDS NPP_SetWindowProcPtr)(NPP instance, NPWindow* window);
|
|
||||||
typedef NPError (* NP_LOADDS NPP_NewStreamProcPtr)(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16_t* stype);
|
|
||||||
typedef NPError (* NP_LOADDS NPP_DestroyStreamProcPtr)(NPP instance, NPStream* stream, NPReason reason);
|
|
||||||
typedef int32_t (* NP_LOADDS NPP_WriteReadyProcPtr)(NPP instance, NPStream* stream);
|
|
||||||
typedef int32_t (* NP_LOADDS NPP_WriteProcPtr)(NPP instance, NPStream* stream, int32_t offset, int32_t len, void* buffer);
|
|
||||||
typedef void (* NP_LOADDS NPP_StreamAsFileProcPtr)(NPP instance, NPStream* stream, const char* fname);
|
|
||||||
typedef void (* NP_LOADDS NPP_PrintProcPtr)(NPP instance, NPPrint* platformPrint);
|
|
||||||
typedef int16_t (* NP_LOADDS NPP_HandleEventProcPtr)(NPP instance, void* event);
|
|
||||||
typedef void (* NP_LOADDS NPP_URLNotifyProcPtr)(NPP instance, const char* url, NPReason reason, void* notifyData);
|
|
||||||
/* Any NPObjects returned to the browser via NPP_GetValue should be retained
|
|
||||||
by the plugin on the way out. The browser is responsible for releasing. */
|
|
||||||
typedef NPError (* NP_LOADDS NPP_GetValueProcPtr)(NPP instance, NPPVariable variable, void *ret_value);
|
|
||||||
typedef NPError (* NP_LOADDS NPP_SetValueProcPtr)(NPP instance, NPNVariable variable, void *value);
|
|
||||||
typedef NPBool (* NP_LOADDS NPP_GotFocusPtr)(NPP instance, NPFocusDirection direction);
|
|
||||||
typedef void (* NP_LOADDS NPP_LostFocusPtr)(NPP instance);
|
|
||||||
typedef void (* NP_LOADDS NPP_URLRedirectNotifyPtr)(NPP instance, const char* url, int32_t status, void* notifyData);
|
|
||||||
typedef NPError (* NP_LOADDS NPP_ClearSiteDataPtr)(const char* site, uint64_t flags, uint64_t maxAge);
|
|
||||||
typedef char** (* NP_LOADDS NPP_GetSitesWithDataPtr)(void);
|
|
||||||
|
|
||||||
typedef NPError (*NPN_GetValueProcPtr)(NPP instance, NPNVariable variable, void *ret_value);
|
|
||||||
typedef NPError (*NPN_SetValueProcPtr)(NPP instance, NPPVariable variable, void *value);
|
|
||||||
typedef NPError (*NPN_GetURLNotifyProcPtr)(NPP instance, const char* url, const char* window, void* notifyData);
|
|
||||||
typedef NPError (*NPN_PostURLNotifyProcPtr)(NPP instance, const char* url, const char* window, uint32_t len, const char* buf, NPBool file, void* notifyData);
|
|
||||||
typedef NPError (*NPN_GetURLProcPtr)(NPP instance, const char* url, const char* window);
|
|
||||||
typedef NPError (*NPN_PostURLProcPtr)(NPP instance, const char* url, const char* window, uint32_t len, const char* buf, NPBool file);
|
|
||||||
typedef NPError (*NPN_RequestReadProcPtr)(NPStream* stream, NPByteRange* rangeList);
|
|
||||||
typedef NPError (*NPN_NewStreamProcPtr)(NPP instance, NPMIMEType type, const char* window, NPStream** stream);
|
|
||||||
typedef int32_t (*NPN_WriteProcPtr)(NPP instance, NPStream* stream, int32_t len, void* buffer);
|
|
||||||
typedef NPError (*NPN_DestroyStreamProcPtr)(NPP instance, NPStream* stream, NPReason reason);
|
|
||||||
typedef void (*NPN_StatusProcPtr)(NPP instance, const char* message);
|
|
||||||
/* Browser manages the lifetime of the buffer returned by NPN_UserAgent, don't
|
|
||||||
depend on it sticking around and don't free it. */
|
|
||||||
typedef const char* (*NPN_UserAgentProcPtr)(NPP instance);
|
|
||||||
typedef void* (*NPN_MemAllocProcPtr)(uint32_t size);
|
|
||||||
typedef void (*NPN_MemFreeProcPtr)(void* ptr);
|
|
||||||
typedef uint32_t (*NPN_MemFlushProcPtr)(uint32_t size);
|
|
||||||
typedef void (*NPN_ReloadPluginsProcPtr)(NPBool reloadPages);
|
|
||||||
typedef void* (*NPN_GetJavaEnvProcPtr)(void);
|
|
||||||
typedef void* (*NPN_GetJavaPeerProcPtr)(NPP instance);
|
|
||||||
typedef void (*NPN_InvalidateRectProcPtr)(NPP instance, NPRect *rect);
|
|
||||||
typedef void (*NPN_InvalidateRegionProcPtr)(NPP instance, NPRegion region);
|
|
||||||
typedef void (*NPN_ForceRedrawProcPtr)(NPP instance);
|
|
||||||
typedef NPIdentifier (*NPN_GetStringIdentifierProcPtr)(const NPUTF8* name);
|
|
||||||
typedef void (*NPN_GetStringIdentifiersProcPtr)(const NPUTF8** names, int32_t nameCount, NPIdentifier* identifiers);
|
|
||||||
typedef NPIdentifier (*NPN_GetIntIdentifierProcPtr)(int32_t intid);
|
|
||||||
typedef bool (*NPN_IdentifierIsStringProcPtr)(NPIdentifier identifier);
|
|
||||||
typedef NPUTF8* (*NPN_UTF8FromIdentifierProcPtr)(NPIdentifier identifier);
|
|
||||||
typedef int32_t (*NPN_IntFromIdentifierProcPtr)(NPIdentifier identifier);
|
|
||||||
typedef NPObject* (*NPN_CreateObjectProcPtr)(NPP npp, NPClass *aClass);
|
|
||||||
typedef NPObject* (*NPN_RetainObjectProcPtr)(NPObject *obj);
|
|
||||||
typedef void (*NPN_ReleaseObjectProcPtr)(NPObject *obj);
|
|
||||||
typedef bool (*NPN_InvokeProcPtr)(NPP npp, NPObject* obj, NPIdentifier methodName, const NPVariant *args, uint32_t argCount, NPVariant *result);
|
|
||||||
typedef bool (*NPN_InvokeDefaultProcPtr)(NPP npp, NPObject* obj, const NPVariant *args, uint32_t argCount, NPVariant *result);
|
|
||||||
typedef bool (*NPN_EvaluateProcPtr)(NPP npp, NPObject *obj, NPString *script, NPVariant *result);
|
|
||||||
typedef bool (*NPN_GetPropertyProcPtr)(NPP npp, NPObject *obj, NPIdentifier propertyName, NPVariant *result);
|
|
||||||
typedef bool (*NPN_SetPropertyProcPtr)(NPP npp, NPObject *obj, NPIdentifier propertyName, const NPVariant *value);
|
|
||||||
typedef bool (*NPN_RemovePropertyProcPtr)(NPP npp, NPObject *obj, NPIdentifier propertyName);
|
|
||||||
typedef bool (*NPN_HasPropertyProcPtr)(NPP npp, NPObject *obj, NPIdentifier propertyName);
|
|
||||||
typedef bool (*NPN_HasMethodProcPtr)(NPP npp, NPObject *obj, NPIdentifier propertyName);
|
|
||||||
typedef void (*NPN_ReleaseVariantValueProcPtr)(NPVariant *variant);
|
|
||||||
typedef void (*NPN_SetExceptionProcPtr)(NPObject *obj, const NPUTF8 *message);
|
|
||||||
typedef void (*NPN_PushPopupsEnabledStateProcPtr)(NPP npp, NPBool enabled);
|
|
||||||
typedef void (*NPN_PopPopupsEnabledStateProcPtr)(NPP npp);
|
|
||||||
typedef bool (*NPN_EnumerateProcPtr)(NPP npp, NPObject *obj, NPIdentifier **identifier, uint32_t *count);
|
|
||||||
typedef void (*NPN_PluginThreadAsyncCallProcPtr)(NPP instance, void (*func)(void *), void *userData);
|
|
||||||
typedef bool (*NPN_ConstructProcPtr)(NPP npp, NPObject* obj, const NPVariant *args, uint32_t argCount, NPVariant *result);
|
|
||||||
typedef NPError (*NPN_GetValueForURLPtr)(NPP npp, NPNURLVariable variable, const char *url, char **value, uint32_t *len);
|
|
||||||
typedef NPError (*NPN_SetValueForURLPtr)(NPP npp, NPNURLVariable variable, const char *url, const char *value, uint32_t len);
|
|
||||||
typedef NPError (*NPN_GetAuthenticationInfoPtr)(NPP npp, const char *protocol, const char *host, int32_t port, const char *scheme, const char *realm, char **username, uint32_t *ulen, char **password, uint32_t *plen);
|
|
||||||
typedef uint32_t (*NPN_ScheduleTimerPtr)(NPP instance, uint32_t interval, NPBool repeat, void (*timerFunc)(NPP npp, uint32_t timerID));
|
|
||||||
typedef void (*NPN_UnscheduleTimerPtr)(NPP instance, uint32_t timerID);
|
|
||||||
typedef NPError (*NPN_PopUpContextMenuPtr)(NPP instance, NPMenu* menu);
|
|
||||||
typedef NPBool (*NPN_ConvertPointPtr)(NPP instance, double sourceX, double sourceY, NPCoordinateSpace sourceSpace, double *destX, double *destY, NPCoordinateSpace destSpace);
|
|
||||||
typedef NPBool (*NPN_HandleEventPtr)(NPP instance, void *event, NPBool handled);
|
|
||||||
typedef NPBool (*NPN_UnfocusInstancePtr)(NPP instance, NPFocusDirection direction);
|
|
||||||
typedef void (*NPN_URLRedirectResponsePtr)(NPP instance, void* notifyData, NPBool allow);
|
|
||||||
|
|
||||||
typedef struct _NPPluginFuncs {
|
|
||||||
uint16_t size;
|
|
||||||
uint16_t version;
|
|
||||||
NPP_NewProcPtr newp;
|
|
||||||
NPP_DestroyProcPtr destroy;
|
|
||||||
NPP_SetWindowProcPtr setwindow;
|
|
||||||
NPP_NewStreamProcPtr newstream;
|
|
||||||
NPP_DestroyStreamProcPtr destroystream;
|
|
||||||
NPP_StreamAsFileProcPtr asfile;
|
|
||||||
NPP_WriteReadyProcPtr writeready;
|
|
||||||
NPP_WriteProcPtr write;
|
|
||||||
NPP_PrintProcPtr print;
|
|
||||||
NPP_HandleEventProcPtr event;
|
|
||||||
NPP_URLNotifyProcPtr urlnotify;
|
|
||||||
void* javaClass;
|
|
||||||
NPP_GetValueProcPtr getvalue;
|
|
||||||
NPP_SetValueProcPtr setvalue;
|
|
||||||
NPP_GotFocusPtr gotfocus;
|
|
||||||
NPP_LostFocusPtr lostfocus;
|
|
||||||
NPP_URLRedirectNotifyPtr urlredirectnotify;
|
|
||||||
NPP_ClearSiteDataPtr clearsitedata;
|
|
||||||
NPP_GetSitesWithDataPtr getsiteswithdata;
|
|
||||||
} NPPluginFuncs;
|
|
||||||
|
|
||||||
typedef struct _NPNetscapeFuncs {
|
|
||||||
uint16_t size;
|
|
||||||
uint16_t version;
|
|
||||||
NPN_GetURLProcPtr geturl;
|
|
||||||
NPN_PostURLProcPtr posturl;
|
|
||||||
NPN_RequestReadProcPtr requestread;
|
|
||||||
NPN_NewStreamProcPtr newstream;
|
|
||||||
NPN_WriteProcPtr write;
|
|
||||||
NPN_DestroyStreamProcPtr destroystream;
|
|
||||||
NPN_StatusProcPtr status;
|
|
||||||
NPN_UserAgentProcPtr uagent;
|
|
||||||
NPN_MemAllocProcPtr memalloc;
|
|
||||||
NPN_MemFreeProcPtr memfree;
|
|
||||||
NPN_MemFlushProcPtr memflush;
|
|
||||||
NPN_ReloadPluginsProcPtr reloadplugins;
|
|
||||||
NPN_GetJavaEnvProcPtr getJavaEnv;
|
|
||||||
NPN_GetJavaPeerProcPtr getJavaPeer;
|
|
||||||
NPN_GetURLNotifyProcPtr geturlnotify;
|
|
||||||
NPN_PostURLNotifyProcPtr posturlnotify;
|
|
||||||
NPN_GetValueProcPtr getvalue;
|
|
||||||
NPN_SetValueProcPtr setvalue;
|
|
||||||
NPN_InvalidateRectProcPtr invalidaterect;
|
|
||||||
NPN_InvalidateRegionProcPtr invalidateregion;
|
|
||||||
NPN_ForceRedrawProcPtr forceredraw;
|
|
||||||
NPN_GetStringIdentifierProcPtr getstringidentifier;
|
|
||||||
NPN_GetStringIdentifiersProcPtr getstringidentifiers;
|
|
||||||
NPN_GetIntIdentifierProcPtr getintidentifier;
|
|
||||||
NPN_IdentifierIsStringProcPtr identifierisstring;
|
|
||||||
NPN_UTF8FromIdentifierProcPtr utf8fromidentifier;
|
|
||||||
NPN_IntFromIdentifierProcPtr intfromidentifier;
|
|
||||||
NPN_CreateObjectProcPtr createobject;
|
|
||||||
NPN_RetainObjectProcPtr retainobject;
|
|
||||||
NPN_ReleaseObjectProcPtr releaseobject;
|
|
||||||
NPN_InvokeProcPtr invoke;
|
|
||||||
NPN_InvokeDefaultProcPtr invokeDefault;
|
|
||||||
NPN_EvaluateProcPtr evaluate;
|
|
||||||
NPN_GetPropertyProcPtr getproperty;
|
|
||||||
NPN_SetPropertyProcPtr setproperty;
|
|
||||||
NPN_RemovePropertyProcPtr removeproperty;
|
|
||||||
NPN_HasPropertyProcPtr hasproperty;
|
|
||||||
NPN_HasMethodProcPtr hasmethod;
|
|
||||||
NPN_ReleaseVariantValueProcPtr releasevariantvalue;
|
|
||||||
NPN_SetExceptionProcPtr setexception;
|
|
||||||
NPN_PushPopupsEnabledStateProcPtr pushpopupsenabledstate;
|
|
||||||
NPN_PopPopupsEnabledStateProcPtr poppopupsenabledstate;
|
|
||||||
NPN_EnumerateProcPtr enumerate;
|
|
||||||
NPN_PluginThreadAsyncCallProcPtr pluginthreadasynccall;
|
|
||||||
NPN_ConstructProcPtr construct;
|
|
||||||
NPN_GetValueForURLPtr getvalueforurl;
|
|
||||||
NPN_SetValueForURLPtr setvalueforurl;
|
|
||||||
NPN_GetAuthenticationInfoPtr getauthenticationinfo;
|
|
||||||
NPN_ScheduleTimerPtr scheduletimer;
|
|
||||||
NPN_UnscheduleTimerPtr unscheduletimer;
|
|
||||||
NPN_PopUpContextMenuPtr popupcontextmenu;
|
|
||||||
NPN_ConvertPointPtr convertpoint;
|
|
||||||
NPN_HandleEventPtr handleevent;
|
|
||||||
NPN_UnfocusInstancePtr unfocusinstance;
|
|
||||||
NPN_URLRedirectResponsePtr urlredirectresponse;
|
|
||||||
} NPNetscapeFuncs;
|
|
||||||
|
|
||||||
#ifdef XP_MACOSX
|
|
||||||
/*
|
|
||||||
* Mac OS X version(s) of NP_GetMIMEDescription(const char *)
|
|
||||||
* These can be called to retreive MIME information from the plugin dynamically
|
|
||||||
*
|
|
||||||
* Note: For compatibility with Quicktime, BPSupportedMIMEtypes is another way
|
|
||||||
* to get mime info from the plugin only on OSX and may not be supported
|
|
||||||
* in furture version -- use NP_GetMIMEDescription instead
|
|
||||||
*/
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
kBPSupportedMIMETypesStructVers_1 = 1
|
|
||||||
};
|
|
||||||
typedef struct _BPSupportedMIMETypes
|
|
||||||
{
|
|
||||||
SInt32 structVersion; /* struct version */
|
|
||||||
Handle typeStrings; /* STR# formated handle, allocated by plug-in */
|
|
||||||
Handle infoStrings; /* STR# formated handle, allocated by plug-in */
|
|
||||||
} BPSupportedMIMETypes;
|
|
||||||
OSErr BP_GetSupportedMIMETypes(BPSupportedMIMETypes *mimeInfo, UInt32 flags);
|
|
||||||
#define NP_GETMIMEDESCRIPTION_NAME "NP_GetMIMEDescription"
|
|
||||||
typedef const char* (*NP_GetMIMEDescriptionProcPtr)(void);
|
|
||||||
typedef OSErr (*BP_GetSupportedMIMETypesProcPtr)(BPSupportedMIMETypes*, UInt32);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(_WIN32)
|
|
||||||
#define OSCALL WINAPI
|
|
||||||
#else
|
|
||||||
#if defined(__OS2__)
|
|
||||||
#define OSCALL _System
|
|
||||||
#else
|
|
||||||
#define OSCALL
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(XP_UNIX)
|
|
||||||
/* GCC 3.3 and later support the visibility attribute. */
|
|
||||||
#if defined(__GNUC__) && ((__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
|
|
||||||
#define NP_VISIBILITY_DEFAULT __attribute__((visibility("default")))
|
|
||||||
#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
|
|
||||||
#define NP_VISIBILITY_DEFAULT __global
|
|
||||||
#else
|
|
||||||
#define NP_VISIBILITY_DEFAULT
|
|
||||||
#endif
|
|
||||||
#define NP_EXPORT(__type) NP_VISIBILITY_DEFAULT __type
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(_WIN32) || defined (__OS2__)
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
/* plugin meta member functions */
|
|
||||||
#if defined(__OS2__)
|
|
||||||
typedef struct _NPPluginData { /* Alternate OS2 Plugin interface */
|
|
||||||
char *pMimeTypes;
|
|
||||||
char *pFileExtents;
|
|
||||||
char *pFileOpenTemplate;
|
|
||||||
char *pProductName;
|
|
||||||
char *pProductDescription;
|
|
||||||
unsigned long dwProductVersionMS;
|
|
||||||
unsigned long dwProductVersionLS;
|
|
||||||
} NPPluginData;
|
|
||||||
typedef NPError (*NP_GetPluginDataFunc)(NPPluginData*);
|
|
||||||
NPError OSCALL NP_GetPluginData(NPPluginData * pPluginData);
|
|
||||||
#endif
|
|
||||||
typedef NPError (*NP_GetEntryPointsFunc)(NPPluginFuncs*);
|
|
||||||
NPError OSCALL NP_GetEntryPoints(NPPluginFuncs* pFuncs);
|
|
||||||
typedef NPError (*NP_InitializeFunc)(NPNetscapeFuncs*);
|
|
||||||
NPError OSCALL NP_Initialize(NPNetscapeFuncs* bFuncs);
|
|
||||||
typedef NPError (*NP_ShutdownFunc)(void);
|
|
||||||
NPError OSCALL NP_Shutdown(void);
|
|
||||||
typedef const char* (*NP_GetMIMEDescriptionFunc)(void);
|
|
||||||
const char* NP_GetMIMEDescription(void);
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__OS2__)
|
|
||||||
#pragma pack()
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef XP_UNIX
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
typedef char* (*NP_GetPluginVersionFunc)(void);
|
|
||||||
NP_EXPORT(char*) NP_GetPluginVersion(void);
|
|
||||||
typedef const char* (*NP_GetMIMEDescriptionFunc)(void);
|
|
||||||
NP_EXPORT(const char*) NP_GetMIMEDescription(void);
|
|
||||||
#ifdef XP_MACOSX
|
|
||||||
typedef NPError (*NP_InitializeFunc)(NPNetscapeFuncs*);
|
|
||||||
NP_EXPORT(NPError) NP_Initialize(NPNetscapeFuncs* bFuncs);
|
|
||||||
typedef NPError (*NP_GetEntryPointsFunc)(NPPluginFuncs*);
|
|
||||||
NP_EXPORT(NPError) NP_GetEntryPoints(NPPluginFuncs* pFuncs);
|
|
||||||
#else
|
|
||||||
typedef NPError (*NP_InitializeFunc)(NPNetscapeFuncs*, NPPluginFuncs*);
|
|
||||||
NP_EXPORT(NPError) NP_Initialize(NPNetscapeFuncs* bFuncs, NPPluginFuncs* pFuncs);
|
|
||||||
#endif
|
|
||||||
typedef NPError (*NP_ShutdownFunc)(void);
|
|
||||||
NP_EXPORT(NPError) NP_Shutdown(void);
|
|
||||||
typedef NPError (*NP_GetValueFunc)(void *, NPPVariable, void *);
|
|
||||||
NP_EXPORT(NPError) NP_GetValue(void *future, NPPVariable aVariable, void *aValue);
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* npfunctions_h_ */
|
|
@ -1,393 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
||||||
/*
|
|
||||||
* Copyright (c) 2004, Apple Computer, Inc. and The Mozilla Foundation.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are
|
|
||||||
* met:
|
|
||||||
*
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 3. Neither the names of Apple Computer, Inc. ("Apple") or The Mozilla
|
|
||||||
* Foundation ("Mozilla") nor the names of their contributors may be used
|
|
||||||
* to endorse or promote products derived from this software without
|
|
||||||
* specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY APPLE, MOZILLA AND THEIR CONTRIBUTORS "AS
|
|
||||||
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
||||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
|
||||||
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE, MOZILLA OR
|
|
||||||
* THEIR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
|
||||||
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#ifndef _NP_RUNTIME_H_
|
|
||||||
#define _NP_RUNTIME_H_
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "nptypes.h"
|
|
||||||
|
|
||||||
/*
|
|
||||||
This API is used to facilitate binding code written in C to script
|
|
||||||
objects. The API in this header does not assume the presence of a
|
|
||||||
user agent. That is, it can be used to bind C code to scripting
|
|
||||||
environments outside of the context of a user agent.
|
|
||||||
|
|
||||||
However, the normal use of the this API is in the context of a
|
|
||||||
scripting environment running in a browser or other user agent.
|
|
||||||
In particular it is used to support the extended Netscape
|
|
||||||
script-ability API for plugins (NP-SAP). NP-SAP is an extension
|
|
||||||
of the Netscape plugin API. As such we have adopted the use of
|
|
||||||
the "NP" prefix for this API.
|
|
||||||
|
|
||||||
The following NP{N|P}Variables were added to the Netscape plugin
|
|
||||||
API (in npapi.h):
|
|
||||||
|
|
||||||
NPNVWindowNPObject
|
|
||||||
NPNVPluginElementNPObject
|
|
||||||
NPPVpluginScriptableNPObject
|
|
||||||
|
|
||||||
These variables are exposed through NPN_GetValue() and
|
|
||||||
NPP_GetValue() (respectively) and are used to establish the
|
|
||||||
initial binding between the user agent and native code. The DOM
|
|
||||||
objects in the user agent can be examined and manipulated using
|
|
||||||
the NPN_ functions that operate on NPObjects described in this
|
|
||||||
header.
|
|
||||||
|
|
||||||
To the extent possible the assumptions about the scripting
|
|
||||||
language used by the scripting environment have been minimized.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define NP_BEGIN_MACRO do {
|
|
||||||
#define NP_END_MACRO } while (0)
|
|
||||||
|
|
||||||
/*
|
|
||||||
Objects (non-primitive data) passed between 'C' and script is
|
|
||||||
always wrapped in an NPObject. The 'interface' of an NPObject is
|
|
||||||
described by an NPClass.
|
|
||||||
*/
|
|
||||||
typedef struct NPObject NPObject;
|
|
||||||
typedef struct NPClass NPClass;
|
|
||||||
|
|
||||||
typedef char NPUTF8;
|
|
||||||
typedef struct _NPString {
|
|
||||||
const NPUTF8 *UTF8Characters;
|
|
||||||
uint32_t UTF8Length;
|
|
||||||
} NPString;
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
NPVariantType_Void,
|
|
||||||
NPVariantType_Null,
|
|
||||||
NPVariantType_Bool,
|
|
||||||
NPVariantType_Int32,
|
|
||||||
NPVariantType_Double,
|
|
||||||
NPVariantType_String,
|
|
||||||
NPVariantType_Object
|
|
||||||
} NPVariantType;
|
|
||||||
|
|
||||||
typedef struct _NPVariant {
|
|
||||||
NPVariantType type;
|
|
||||||
union {
|
|
||||||
bool boolValue;
|
|
||||||
int32_t intValue;
|
|
||||||
double doubleValue;
|
|
||||||
NPString stringValue;
|
|
||||||
NPObject *objectValue;
|
|
||||||
} value;
|
|
||||||
} NPVariant;
|
|
||||||
|
|
||||||
/*
|
|
||||||
NPN_ReleaseVariantValue is called on all 'out' parameters
|
|
||||||
references. Specifically it is to be called on variants that own
|
|
||||||
their value, as is the case with all non-const NPVariant*
|
|
||||||
arguments after a successful call to any methods (except this one)
|
|
||||||
in this API.
|
|
||||||
|
|
||||||
After calling NPN_ReleaseVariantValue, the type of the variant
|
|
||||||
will be NPVariantType_Void.
|
|
||||||
*/
|
|
||||||
void NPN_ReleaseVariantValue(NPVariant *variant);
|
|
||||||
|
|
||||||
#define NPVARIANT_IS_VOID(_v) ((_v).type == NPVariantType_Void)
|
|
||||||
#define NPVARIANT_IS_NULL(_v) ((_v).type == NPVariantType_Null)
|
|
||||||
#define NPVARIANT_IS_BOOLEAN(_v) ((_v).type == NPVariantType_Bool)
|
|
||||||
#define NPVARIANT_IS_INT32(_v) ((_v).type == NPVariantType_Int32)
|
|
||||||
#define NPVARIANT_IS_DOUBLE(_v) ((_v).type == NPVariantType_Double)
|
|
||||||
#define NPVARIANT_IS_STRING(_v) ((_v).type == NPVariantType_String)
|
|
||||||
#define NPVARIANT_IS_OBJECT(_v) ((_v).type == NPVariantType_Object)
|
|
||||||
|
|
||||||
#define NPVARIANT_TO_BOOLEAN(_v) ((_v).value.boolValue)
|
|
||||||
#define NPVARIANT_TO_INT32(_v) ((_v).value.intValue)
|
|
||||||
#define NPVARIANT_TO_DOUBLE(_v) ((_v).value.doubleValue)
|
|
||||||
#define NPVARIANT_TO_STRING(_v) ((_v).value.stringValue)
|
|
||||||
#define NPVARIANT_TO_OBJECT(_v) ((_v).value.objectValue)
|
|
||||||
|
|
||||||
#define VOID_TO_NPVARIANT(_v) \
|
|
||||||
NP_BEGIN_MACRO \
|
|
||||||
(_v).type = NPVariantType_Void; \
|
|
||||||
(_v).value.objectValue = NULL; \
|
|
||||||
NP_END_MACRO
|
|
||||||
|
|
||||||
#define NULL_TO_NPVARIANT(_v) \
|
|
||||||
NP_BEGIN_MACRO \
|
|
||||||
(_v).type = NPVariantType_Null; \
|
|
||||||
(_v).value.objectValue = NULL; \
|
|
||||||
NP_END_MACRO
|
|
||||||
|
|
||||||
#define BOOLEAN_TO_NPVARIANT(_val, _v) \
|
|
||||||
NP_BEGIN_MACRO \
|
|
||||||
(_v).type = NPVariantType_Bool; \
|
|
||||||
(_v).value.boolValue = !!(_val); \
|
|
||||||
NP_END_MACRO
|
|
||||||
|
|
||||||
#define INT32_TO_NPVARIANT(_val, _v) \
|
|
||||||
NP_BEGIN_MACRO \
|
|
||||||
(_v).type = NPVariantType_Int32; \
|
|
||||||
(_v).value.intValue = _val; \
|
|
||||||
NP_END_MACRO
|
|
||||||
|
|
||||||
#define DOUBLE_TO_NPVARIANT(_val, _v) \
|
|
||||||
NP_BEGIN_MACRO \
|
|
||||||
(_v).type = NPVariantType_Double; \
|
|
||||||
(_v).value.doubleValue = _val; \
|
|
||||||
NP_END_MACRO
|
|
||||||
|
|
||||||
#define STRINGZ_TO_NPVARIANT(_val, _v) \
|
|
||||||
NP_BEGIN_MACRO \
|
|
||||||
(_v).type = NPVariantType_String; \
|
|
||||||
NPString str = { _val, (uint32_t)(strlen(_val)) }; \
|
|
||||||
(_v).value.stringValue = str; \
|
|
||||||
NP_END_MACRO
|
|
||||||
|
|
||||||
#define STRINGN_TO_NPVARIANT(_val, _len, _v) \
|
|
||||||
NP_BEGIN_MACRO \
|
|
||||||
(_v).type = NPVariantType_String; \
|
|
||||||
NPString str = { _val, (uint32_t)(_len) }; \
|
|
||||||
(_v).value.stringValue = str; \
|
|
||||||
NP_END_MACRO
|
|
||||||
|
|
||||||
#define OBJECT_TO_NPVARIANT(_val, _v) \
|
|
||||||
NP_BEGIN_MACRO \
|
|
||||||
(_v).type = NPVariantType_Object; \
|
|
||||||
(_v).value.objectValue = _val; \
|
|
||||||
NP_END_MACRO
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
Type mappings (JavaScript types have been used for illustration
|
|
||||||
purposes):
|
|
||||||
|
|
||||||
JavaScript to C (NPVariant with type:)
|
|
||||||
undefined NPVariantType_Void
|
|
||||||
null NPVariantType_Null
|
|
||||||
Boolean NPVariantType_Bool
|
|
||||||
Number NPVariantType_Double or NPVariantType_Int32
|
|
||||||
String NPVariantType_String
|
|
||||||
Object NPVariantType_Object
|
|
||||||
|
|
||||||
C (NPVariant with type:) to JavaScript
|
|
||||||
NPVariantType_Void undefined
|
|
||||||
NPVariantType_Null null
|
|
||||||
NPVariantType_Bool Boolean
|
|
||||||
NPVariantType_Int32 Number
|
|
||||||
NPVariantType_Double Number
|
|
||||||
NPVariantType_String String
|
|
||||||
NPVariantType_Object Object
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef void *NPIdentifier;
|
|
||||||
|
|
||||||
/*
|
|
||||||
NPObjects have methods and properties. Methods and properties are
|
|
||||||
identified with NPIdentifiers. These identifiers may be reflected
|
|
||||||
in script. NPIdentifiers can be either strings or integers, IOW,
|
|
||||||
methods and properties can be identified by either strings or
|
|
||||||
integers (i.e. foo["bar"] vs foo[1]). NPIdentifiers can be
|
|
||||||
compared using ==. In case of any errors, the requested
|
|
||||||
NPIdentifier(s) will be NULL. NPIdentifier lifetime is controlled
|
|
||||||
by the browser. Plugins do not need to worry about memory management
|
|
||||||
with regards to NPIdentifiers.
|
|
||||||
*/
|
|
||||||
NPIdentifier NPN_GetStringIdentifier(const NPUTF8 *name);
|
|
||||||
void NPN_GetStringIdentifiers(const NPUTF8 **names, int32_t nameCount,
|
|
||||||
NPIdentifier *identifiers);
|
|
||||||
NPIdentifier NPN_GetIntIdentifier(int32_t intid);
|
|
||||||
bool NPN_IdentifierIsString(NPIdentifier identifier);
|
|
||||||
|
|
||||||
/*
|
|
||||||
The NPUTF8 returned from NPN_UTF8FromIdentifier SHOULD be freed.
|
|
||||||
*/
|
|
||||||
NPUTF8 *NPN_UTF8FromIdentifier(NPIdentifier identifier);
|
|
||||||
|
|
||||||
/*
|
|
||||||
Get the integer represented by identifier. If identifier is not an
|
|
||||||
integer identifier, the behaviour is undefined.
|
|
||||||
*/
|
|
||||||
int32_t NPN_IntFromIdentifier(NPIdentifier identifier);
|
|
||||||
|
|
||||||
/*
|
|
||||||
NPObject behavior is implemented using the following set of
|
|
||||||
callback functions.
|
|
||||||
|
|
||||||
The NPVariant *result argument of these functions (where
|
|
||||||
applicable) should be released using NPN_ReleaseVariantValue().
|
|
||||||
*/
|
|
||||||
typedef NPObject *(*NPAllocateFunctionPtr)(NPP npp, NPClass *aClass);
|
|
||||||
typedef void (*NPDeallocateFunctionPtr)(NPObject *npobj);
|
|
||||||
typedef void (*NPInvalidateFunctionPtr)(NPObject *npobj);
|
|
||||||
typedef bool (*NPHasMethodFunctionPtr)(NPObject *npobj, NPIdentifier name);
|
|
||||||
typedef bool (*NPInvokeFunctionPtr)(NPObject *npobj, NPIdentifier name,
|
|
||||||
const NPVariant *args, uint32_t argCount,
|
|
||||||
NPVariant *result);
|
|
||||||
typedef bool (*NPInvokeDefaultFunctionPtr)(NPObject *npobj,
|
|
||||||
const NPVariant *args,
|
|
||||||
uint32_t argCount,
|
|
||||||
NPVariant *result);
|
|
||||||
typedef bool (*NPHasPropertyFunctionPtr)(NPObject *npobj, NPIdentifier name);
|
|
||||||
typedef bool (*NPGetPropertyFunctionPtr)(NPObject *npobj, NPIdentifier name,
|
|
||||||
NPVariant *result);
|
|
||||||
typedef bool (*NPSetPropertyFunctionPtr)(NPObject *npobj, NPIdentifier name,
|
|
||||||
const NPVariant *value);
|
|
||||||
typedef bool (*NPRemovePropertyFunctionPtr)(NPObject *npobj,
|
|
||||||
NPIdentifier name);
|
|
||||||
typedef bool (*NPEnumerationFunctionPtr)(NPObject *npobj, NPIdentifier **value,
|
|
||||||
uint32_t *count);
|
|
||||||
typedef bool (*NPConstructFunctionPtr)(NPObject *npobj,
|
|
||||||
const NPVariant *args,
|
|
||||||
uint32_t argCount,
|
|
||||||
NPVariant *result);
|
|
||||||
|
|
||||||
/*
|
|
||||||
NPObjects returned by create, retain, invoke, and getProperty pass
|
|
||||||
a reference count to the caller. That is, the callee adds a
|
|
||||||
reference count which passes to the caller. It is the caller's
|
|
||||||
responsibility to release the returned object.
|
|
||||||
|
|
||||||
NPInvokeFunctionPtr function may return 0 to indicate a void
|
|
||||||
result.
|
|
||||||
|
|
||||||
NPInvalidateFunctionPtr is called by the scripting environment
|
|
||||||
when the native code is shutdown. Any attempt to message a
|
|
||||||
NPObject instance after the invalidate callback has been
|
|
||||||
called will result in undefined behavior, even if the native code
|
|
||||||
is still retaining those NPObject instances. (The runtime
|
|
||||||
will typically return immediately, with 0 or NULL, from an attempt
|
|
||||||
to dispatch to a NPObject, but this behavior should not be
|
|
||||||
depended upon.)
|
|
||||||
|
|
||||||
The NPEnumerationFunctionPtr function may pass an array of
|
|
||||||
NPIdentifiers back to the caller. The callee allocs the memory of
|
|
||||||
the array using NPN_MemAlloc(), and it's the caller's responsibility
|
|
||||||
to release it using NPN_MemFree().
|
|
||||||
*/
|
|
||||||
struct NPClass
|
|
||||||
{
|
|
||||||
uint32_t structVersion;
|
|
||||||
NPAllocateFunctionPtr allocate;
|
|
||||||
NPDeallocateFunctionPtr deallocate;
|
|
||||||
NPInvalidateFunctionPtr invalidate;
|
|
||||||
NPHasMethodFunctionPtr hasMethod;
|
|
||||||
NPInvokeFunctionPtr invoke;
|
|
||||||
NPInvokeDefaultFunctionPtr invokeDefault;
|
|
||||||
NPHasPropertyFunctionPtr hasProperty;
|
|
||||||
NPGetPropertyFunctionPtr getProperty;
|
|
||||||
NPSetPropertyFunctionPtr setProperty;
|
|
||||||
NPRemovePropertyFunctionPtr removeProperty;
|
|
||||||
NPEnumerationFunctionPtr enumerate;
|
|
||||||
NPConstructFunctionPtr construct;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define NP_CLASS_STRUCT_VERSION 3
|
|
||||||
|
|
||||||
#define NP_CLASS_STRUCT_VERSION_ENUM 2
|
|
||||||
#define NP_CLASS_STRUCT_VERSION_CTOR 3
|
|
||||||
|
|
||||||
#define NP_CLASS_STRUCT_VERSION_HAS_ENUM(npclass) \
|
|
||||||
((npclass)->structVersion >= NP_CLASS_STRUCT_VERSION_ENUM)
|
|
||||||
|
|
||||||
#define NP_CLASS_STRUCT_VERSION_HAS_CTOR(npclass) \
|
|
||||||
((npclass)->structVersion >= NP_CLASS_STRUCT_VERSION_CTOR)
|
|
||||||
|
|
||||||
struct NPObject {
|
|
||||||
NPClass *_class;
|
|
||||||
uint32_t referenceCount;
|
|
||||||
/*
|
|
||||||
* Additional space may be allocated here by types of NPObjects
|
|
||||||
*/
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
If the class has an allocate function, NPN_CreateObject invokes
|
|
||||||
that function, otherwise a NPObject is allocated and
|
|
||||||
returned. This method will initialize the referenceCount member of
|
|
||||||
the NPObject to 1.
|
|
||||||
*/
|
|
||||||
NPObject *NPN_CreateObject(NPP npp, NPClass *aClass);
|
|
||||||
|
|
||||||
/*
|
|
||||||
Increment the NPObject's reference count.
|
|
||||||
*/
|
|
||||||
NPObject *NPN_RetainObject(NPObject *npobj);
|
|
||||||
|
|
||||||
/*
|
|
||||||
Decremented the NPObject's reference count. If the reference
|
|
||||||
count goes to zero, the class's destroy function is invoke if
|
|
||||||
specified, otherwise the object is freed directly.
|
|
||||||
*/
|
|
||||||
void NPN_ReleaseObject(NPObject *npobj);
|
|
||||||
|
|
||||||
/*
|
|
||||||
Functions to access script objects represented by NPObject.
|
|
||||||
|
|
||||||
Calls to script objects are synchronous. If a function returns a
|
|
||||||
value, it will be supplied via the result NPVariant
|
|
||||||
argument. Successful calls will return true, false will be
|
|
||||||
returned in case of an error.
|
|
||||||
|
|
||||||
Calls made from plugin code to script must be made from the thread
|
|
||||||
on which the plugin was initialized.
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool NPN_Invoke(NPP npp, NPObject *npobj, NPIdentifier methodName,
|
|
||||||
const NPVariant *args, uint32_t argCount, NPVariant *result);
|
|
||||||
bool NPN_InvokeDefault(NPP npp, NPObject *npobj, const NPVariant *args,
|
|
||||||
uint32_t argCount, NPVariant *result);
|
|
||||||
bool NPN_Evaluate(NPP npp, NPObject *npobj, NPString *script,
|
|
||||||
NPVariant *result);
|
|
||||||
bool NPN_GetProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName,
|
|
||||||
NPVariant *result);
|
|
||||||
bool NPN_SetProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName,
|
|
||||||
const NPVariant *value);
|
|
||||||
bool NPN_RemoveProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName);
|
|
||||||
bool NPN_HasProperty(NPP npp, NPObject *npobj, NPIdentifier propertyName);
|
|
||||||
bool NPN_HasMethod(NPP npp, NPObject *npobj, NPIdentifier methodName);
|
|
||||||
bool NPN_Enumerate(NPP npp, NPObject *npobj, NPIdentifier **identifier,
|
|
||||||
uint32_t *count);
|
|
||||||
bool NPN_Construct(NPP npp, NPObject *npobj, const NPVariant *args,
|
|
||||||
uint32_t argCount, NPVariant *result);
|
|
||||||
|
|
||||||
/*
|
|
||||||
NPN_SetException may be called to trigger a script exception upon
|
|
||||||
return from entry points into NPObjects. Typical usage:
|
|
||||||
|
|
||||||
NPN_SetException (npobj, message);
|
|
||||||
*/
|
|
||||||
void NPN_SetException(NPObject *npobj, const NPUTF8 *message);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,121 +0,0 @@
|
|||||||
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
||||||
/* ***** BEGIN LICENSE BLOCK *****
|
|
||||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
||||||
*
|
|
||||||
* The contents of this file are subject to the Mozilla Public License Version
|
|
||||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
||||||
* the License. You may obtain a copy of the License at
|
|
||||||
* http://www.mozilla.org/MPL/
|
|
||||||
*
|
|
||||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
||||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
||||||
* for the specific language governing rights and limitations under the
|
|
||||||
* License.
|
|
||||||
*
|
|
||||||
* The Original Code is mozilla.org code.
|
|
||||||
*
|
|
||||||
* The Initial Developer of the Original Code is
|
|
||||||
* mozilla.org.
|
|
||||||
* Portions created by the Initial Developer are Copyright (C) 2004
|
|
||||||
* the Initial Developer. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Contributor(s):
|
|
||||||
* Johnny Stenback <jst@mozilla.org> (Original author)
|
|
||||||
*
|
|
||||||
* Alternatively, the contents of this file may be used under the terms of
|
|
||||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
||||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
||||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
||||||
* of those above. If you wish to allow use of your version of this file only
|
|
||||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
||||||
* use your version of this file under the terms of the MPL, indicate your
|
|
||||||
* decision by deleting the provisions above and replace them with the notice
|
|
||||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
||||||
* the provisions above, a recipient may use your version of this file under
|
|
||||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
||||||
*
|
|
||||||
* ***** END LICENSE BLOCK ***** */
|
|
||||||
|
|
||||||
#ifndef nptypes_h_
|
|
||||||
#define nptypes_h_
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Header file for ensuring that C99 types ([u]int32_t, [u]int64_t and bool) and
|
|
||||||
* true/false macros are available.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(WIN32) || defined(OS2)
|
|
||||||
/*
|
|
||||||
* Win32 and OS/2 don't know C99, so define [u]int_16/32/64 here. The bool
|
|
||||||
* is predefined tho, both in C and C++.
|
|
||||||
*/
|
|
||||||
typedef short int16_t;
|
|
||||||
typedef unsigned short uint16_t;
|
|
||||||
typedef int int32_t;
|
|
||||||
typedef unsigned int uint32_t;
|
|
||||||
typedef long long int64_t;
|
|
||||||
typedef unsigned long long uint64_t;
|
|
||||||
#elif defined(_AIX) || defined(__sun) || defined(__osf__) || defined(IRIX) || defined(HPUX)
|
|
||||||
/*
|
|
||||||
* AIX and SunOS ship a inttypes.h header that defines [u]int32_t,
|
|
||||||
* but not bool for C.
|
|
||||||
*/
|
|
||||||
#include <inttypes.h>
|
|
||||||
|
|
||||||
#ifndef __cplusplus
|
|
||||||
typedef int bool;
|
|
||||||
#define true 1
|
|
||||||
#define false 0
|
|
||||||
#endif
|
|
||||||
#elif defined(bsdi) || defined(FREEBSD) || defined(OPENBSD)
|
|
||||||
/*
|
|
||||||
* BSD/OS, FreeBSD, and OpenBSD ship sys/types.h that define int32_t and
|
|
||||||
* u_int32_t.
|
|
||||||
*/
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* BSD/OS ships no header that defines uint32_t, nor bool (for C)
|
|
||||||
*/
|
|
||||||
#if defined(bsdi)
|
|
||||||
typedef u_int32_t uint32_t;
|
|
||||||
typedef u_int64_t uint64_t;
|
|
||||||
|
|
||||||
#if !defined(__cplusplus)
|
|
||||||
typedef int bool;
|
|
||||||
#define true 1
|
|
||||||
#define false 0
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
/*
|
|
||||||
* FreeBSD and OpenBSD define uint32_t and bool.
|
|
||||||
*/
|
|
||||||
#include <inttypes.h>
|
|
||||||
#include <stdbool.h>
|
|
||||||
#endif
|
|
||||||
#elif defined(BEOS)
|
|
||||||
#include <inttypes.h>
|
|
||||||
#else
|
|
||||||
/*
|
|
||||||
* For those that ship a standard C99 stdint.h header file, include
|
|
||||||
* it. Can't do the same for stdbool.h tho, since some systems ship
|
|
||||||
* with a stdbool.h file that doesn't compile!
|
|
||||||
*/
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#ifndef __cplusplus
|
|
||||||
#if !defined(__GNUC__) || (__GNUC__ > 2 || __GNUC_MINOR__ > 95)
|
|
||||||
#include <stdbool.h>
|
|
||||||
#else
|
|
||||||
/*
|
|
||||||
* GCC 2.91 can't deal with a typedef for bool, but a #define
|
|
||||||
* works.
|
|
||||||
*/
|
|
||||||
#define bool int
|
|
||||||
#define true 1
|
|
||||||
#define false 0
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* nptypes_h_ */
|
|
40
data/cldr2json/README.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
cldr2json
|
||||||
|
=========
|
||||||
|
|
||||||
|
This script converts Unicode CLDR android keyboard layouts to JSON usable by
|
||||||
|
GNOME Shell.
|
||||||
|
|
||||||
|
CLDR keyboard layouts can be found at
|
||||||
|
<http://www.unicode.org/Public/cldr/latest/keyboards.zip>
|
||||||
|
|
||||||
|
|
||||||
|
Usage
|
||||||
|
=====
|
||||||
|
|
||||||
|
./cldr2json <input file or directory> <output directory>
|
||||||
|
|
||||||
|
example:
|
||||||
|
|
||||||
|
./cldr2json cldr/keyboards/android/ json_layouts/
|
||||||
|
|
||||||
|
|
||||||
|
Keyboard layout mapping
|
||||||
|
=======================
|
||||||
|
|
||||||
|
Unicode CLDR layout identifiers are language codes, while XKB layout
|
||||||
|
identifiers are... something else. The mapping between the two currently uses
|
||||||
|
heuristic based on the layout descriptions, in this order:
|
||||||
|
|
||||||
|
- if the CLDR layout description matches an XKB layout description, chose its
|
||||||
|
XKB identifier
|
||||||
|
- if one word of the CLDR layout description matches an XKB layout
|
||||||
|
description, chose its XKB identifier
|
||||||
|
- if the CLDR layout description matches one word of an XKB layout description,
|
||||||
|
chose its XKB identifier
|
||||||
|
|
||||||
|
That doesn't always work. For instance it fails for "en" language, that should
|
||||||
|
match "us" XKB identifier. For such cases, there is a mapping in
|
||||||
|
LOCALE_TO_XKB_OVERRIDES at the top of the script. If you discover a weird
|
||||||
|
mapping of if you get a "failed to find XKB mapping for <locale>" warning then
|
||||||
|
please consider adding an override there.
|
||||||
|
|
212
data/cldr2json/cldr2json.py
Executable file
@ -0,0 +1,212 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
#
|
||||||
|
# Copyright 2015 Daiki Ueno <dueno@src.gnome.org>
|
||||||
|
# 2016 Parag Nemade <pnemade@redhat.com>
|
||||||
|
# 2017 Alan <alan@boum.org>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Lesser General Public License as
|
||||||
|
# published by the Free Software Foundation; either version 2 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public
|
||||||
|
# License along with this program; if not, see
|
||||||
|
# <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import glob
|
||||||
|
import json
|
||||||
|
import locale
|
||||||
|
import logging
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
import xml.etree.ElementTree
|
||||||
|
|
||||||
|
import gi
|
||||||
|
gi.require_version('GnomeDesktop', '3.0') # NOQA: E402
|
||||||
|
from gi.repository import GnomeDesktop
|
||||||
|
|
||||||
|
ESCAPE_PATTERN = re.compile(r'\\u\{([0-9A-Fa-f]+?)\}')
|
||||||
|
ISO_PATTERN = re.compile(r'[A-E]([0-9]+)')
|
||||||
|
|
||||||
|
LOCALE_TO_XKB_OVERRIDES = {
|
||||||
|
'af': 'za',
|
||||||
|
'en': 'us',
|
||||||
|
'en-GB': 'uk',
|
||||||
|
'es-US': 'latam',
|
||||||
|
'fr-CA': 'ca',
|
||||||
|
'hi': 'in+bolnagri',
|
||||||
|
'ky': 'kg',
|
||||||
|
'nl-BE': 'be',
|
||||||
|
'zu': None
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def parse_single_key(value):
|
||||||
|
def unescape(m):
|
||||||
|
return chr(int(m.group(1), 16))
|
||||||
|
value = ESCAPE_PATTERN.sub(unescape, value)
|
||||||
|
return value
|
||||||
|
|
||||||
|
|
||||||
|
def parse_rows(keymap):
|
||||||
|
unsorted_rows = {}
|
||||||
|
for _map in keymap.iter('map'):
|
||||||
|
value = _map.get('to')
|
||||||
|
key = [parse_single_key(value)]
|
||||||
|
iso = _map.get('iso')
|
||||||
|
if not ISO_PATTERN.match(iso):
|
||||||
|
sys.stderr.write('invalid ISO key name: %s\n' % iso)
|
||||||
|
continue
|
||||||
|
if not iso[0] in unsorted_rows:
|
||||||
|
unsorted_rows[iso[0]] = []
|
||||||
|
unsorted_rows[iso[0]].append((int(iso[1:]), key))
|
||||||
|
# add subkeys
|
||||||
|
longPress = _map.get('longPress')
|
||||||
|
if longPress:
|
||||||
|
for value in longPress.split(' '):
|
||||||
|
subkey = parse_single_key(value)
|
||||||
|
key.append(subkey)
|
||||||
|
|
||||||
|
rows = []
|
||||||
|
for k, v in sorted(list(unsorted_rows.items()),
|
||||||
|
key=lambda x: x[0],
|
||||||
|
reverse=True):
|
||||||
|
row = []
|
||||||
|
for key in sorted(v, key=lambda x: x):
|
||||||
|
row.append(key[1])
|
||||||
|
rows.append(row)
|
||||||
|
|
||||||
|
return rows
|
||||||
|
|
||||||
|
|
||||||
|
def convert_xml(tree):
|
||||||
|
root = {}
|
||||||
|
for xml_keyboard in tree.iter("keyboard"):
|
||||||
|
locale_full = xml_keyboard.get("locale")
|
||||||
|
locale, sep, end = locale_full.partition("-t-")
|
||||||
|
root["locale"] = locale
|
||||||
|
for xml_name in tree.iter("name"):
|
||||||
|
name = xml_name.get("value")
|
||||||
|
root["name"] = name
|
||||||
|
root["levels"] = []
|
||||||
|
# parse levels
|
||||||
|
for index, keymap in enumerate(tree.iter('keyMap')):
|
||||||
|
# FIXME: heuristics here
|
||||||
|
modifiers = keymap.get('modifiers')
|
||||||
|
if not modifiers:
|
||||||
|
mode = 'default'
|
||||||
|
modifiers = ''
|
||||||
|
elif 'shift' in modifiers.split(' '):
|
||||||
|
mode = 'latched'
|
||||||
|
modifiers = 'shift'
|
||||||
|
else:
|
||||||
|
mode = 'locked'
|
||||||
|
level = {}
|
||||||
|
level["level"] = modifiers
|
||||||
|
level["mode"] = mode
|
||||||
|
level["rows"] = parse_rows(keymap)
|
||||||
|
root["levels"].append(level)
|
||||||
|
return root
|
||||||
|
|
||||||
|
|
||||||
|
def locale_to_xkb(locale, name):
|
||||||
|
if locale in sorted(LOCALE_TO_XKB_OVERRIDES.keys()):
|
||||||
|
xkb = LOCALE_TO_XKB_OVERRIDES[locale]
|
||||||
|
logging.debug("override for %s → %s",
|
||||||
|
locale, xkb)
|
||||||
|
if xkb:
|
||||||
|
return xkb
|
||||||
|
else:
|
||||||
|
raise KeyError("layout %s explicitely disabled in overrides"
|
||||||
|
% locale)
|
||||||
|
xkb_names = sorted(name_to_xkb.keys())
|
||||||
|
if name in xkb_names:
|
||||||
|
return name_to_xkb[name]
|
||||||
|
else:
|
||||||
|
logging.debug("name %s failed" % name)
|
||||||
|
for sub_name in name.split(' '):
|
||||||
|
if sub_name in xkb_names:
|
||||||
|
xkb = name_to_xkb[sub_name]
|
||||||
|
logging.debug("dumb mapping failed but match with locale word: "
|
||||||
|
"%s (%s) → %s (%s)",
|
||||||
|
locale, name, xkb, sub_name)
|
||||||
|
return xkb
|
||||||
|
else:
|
||||||
|
logging.debug("sub_name failed")
|
||||||
|
for xkb_name in xkb_names:
|
||||||
|
for xkb_sub_name in xkb_name.split(' '):
|
||||||
|
if xkb_sub_name.strip('()') == name:
|
||||||
|
xkb = name_to_xkb[xkb_name]
|
||||||
|
logging.debug("dumb mapping failed but match with xkb word: "
|
||||||
|
"%s (%s) → %s (%s)",
|
||||||
|
locale, name, xkb, xkb_name)
|
||||||
|
return xkb
|
||||||
|
raise KeyError("failed to find XKB mapping for %s" % locale)
|
||||||
|
|
||||||
|
|
||||||
|
def convert_file(source_file, destination_path):
|
||||||
|
logging.info("Parsing %s", source_file)
|
||||||
|
|
||||||
|
itree = xml.etree.ElementTree.ElementTree()
|
||||||
|
itree.parse(source_file)
|
||||||
|
|
||||||
|
root = convert_xml(itree)
|
||||||
|
|
||||||
|
try:
|
||||||
|
xkb_name = locale_to_xkb(root["locale"], root["name"])
|
||||||
|
except KeyError as e:
|
||||||
|
logging.warning(e)
|
||||||
|
return False
|
||||||
|
destination_file = os.path.join(destination_path, xkb_name + ".json")
|
||||||
|
|
||||||
|
try:
|
||||||
|
with open(destination_file, 'x', encoding="utf-8") as dest_fd:
|
||||||
|
json.dump(root, dest_fd, ensure_ascii=False, indent=2, sort_keys=True)
|
||||||
|
except FileExistsError as e:
|
||||||
|
logging.info("File %s exists, not updating", destination_file)
|
||||||
|
return False
|
||||||
|
|
||||||
|
logging.debug("written %s", destination_file)
|
||||||
|
|
||||||
|
|
||||||
|
def load_xkb_mappings():
|
||||||
|
xkb = GnomeDesktop.XkbInfo()
|
||||||
|
layouts = xkb.get_all_layouts()
|
||||||
|
name_to_xkb = {}
|
||||||
|
|
||||||
|
for layout in layouts:
|
||||||
|
name = xkb.get_layout_info(layout).display_name
|
||||||
|
name_to_xkb[name] = layout
|
||||||
|
|
||||||
|
return name_to_xkb
|
||||||
|
|
||||||
|
|
||||||
|
locale.setlocale(locale.LC_ALL, "C")
|
||||||
|
name_to_xkb = load_xkb_mappings()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
if "DEBUG" in os.environ:
|
||||||
|
logging.basicConfig(level=logging.DEBUG)
|
||||||
|
|
||||||
|
if len(sys.argv) < 2:
|
||||||
|
print("supply a CLDR keyboard file")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if len(sys.argv) < 3:
|
||||||
|
print("supply an output directory")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
source = sys.argv[1]
|
||||||
|
destination = sys.argv[2]
|
||||||
|
if os.path.isfile(source):
|
||||||
|
convert_file(source, destination)
|
||||||
|
elif os.path.isdir(source):
|
||||||
|
for path in glob.glob(source + "/*-t-k0-android.xml"):
|
||||||
|
convert_file(path, destination)
|
0
data/cldr2json/test/__init__.py
Normal file
138
data/cldr2json/test/data/fr-t-k0-android.xml
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE keyboard SYSTEM "../dtd/ldmlKeyboard.dtd">
|
||||||
|
<keyboard locale="fr-t-k0-android">
|
||||||
|
<version platform="4.4" number="$Revision: 11914 $"/>
|
||||||
|
<names>
|
||||||
|
<name value="French"/>
|
||||||
|
</names>
|
||||||
|
<keyMap>
|
||||||
|
<map iso="D01" to="a" longPress="à â % æ á ä ã å ā ª"/> <!-- Q -->
|
||||||
|
<map iso="D02" to="z"/> <!-- W -->
|
||||||
|
<map iso="D03" to="e" longPress="é è ê ë % ę ė ē"/>
|
||||||
|
<map iso="D04" to="r"/>
|
||||||
|
<map iso="D05" to="t"/>
|
||||||
|
<map iso="D06" to="y" longPress="% ÿ"/>
|
||||||
|
<map iso="D07" to="u" longPress="ù û % ü ú ū"/>
|
||||||
|
<map iso="D08" to="i" longPress="î % ï ì í į ī"/>
|
||||||
|
<map iso="D09" to="o" longPress="ô œ % ö ò ó õ ø ō º"/>
|
||||||
|
<map iso="D10" to="p"/>
|
||||||
|
<map iso="C01" to="q"/> <!-- A -->
|
||||||
|
<map iso="C02" to="s"/>
|
||||||
|
<map iso="C03" to="d"/>
|
||||||
|
<map iso="C04" to="f"/>
|
||||||
|
<map iso="C05" to="g"/>
|
||||||
|
<map iso="C06" to="h"/>
|
||||||
|
<map iso="C07" to="j"/>
|
||||||
|
<map iso="C08" to="k"/>
|
||||||
|
<map iso="C09" to="l"/>
|
||||||
|
<map iso="C10" to="m"/> <!-- ; -->
|
||||||
|
<map iso="B01" to="w"/> <!-- Z -->
|
||||||
|
<map iso="B02" to="x"/>
|
||||||
|
<map iso="B03" to="c" longPress="ç ć č"/>
|
||||||
|
<map iso="B04" to="v"/>
|
||||||
|
<map iso="B05" to="b"/>
|
||||||
|
<map iso="B06" to="n"/>
|
||||||
|
<map iso="B07" to="'" longPress="‘ ’ ‹ ›"/> <!-- M -->
|
||||||
|
<map iso="A02" to=","/> <!-- (key to left of space) -->
|
||||||
|
<map iso="A03" to=" "/> <!-- space -->
|
||||||
|
<map iso="A04" to="." longPress="# ! , ? - : ' @"/> <!-- (key to right of space) -->
|
||||||
|
</keyMap>
|
||||||
|
<keyMap modifiers="shift caps">
|
||||||
|
<map iso="D01" to="A" longPress="À Â % Æ Á Ä Ã Å Ā ª"/> <!-- Q -->
|
||||||
|
<map iso="D02" to="Z"/> <!-- W -->
|
||||||
|
<map iso="D03" to="E" longPress="É È Ê Ë % Ę Ė Ē"/>
|
||||||
|
<map iso="D04" to="R"/>
|
||||||
|
<map iso="D05" to="T"/>
|
||||||
|
<map iso="D06" to="Y" longPress="% Ÿ"/>
|
||||||
|
<map iso="D07" to="U" longPress="Ù Û % Ü Ú Ū"/>
|
||||||
|
<map iso="D08" to="I" longPress="Î % Ï Ì Í Į Ī"/>
|
||||||
|
<map iso="D09" to="O" longPress="Ô Œ % Ö Ò Ó Õ Ø Ō º"/>
|
||||||
|
<map iso="D10" to="P"/>
|
||||||
|
<map iso="C01" to="Q"/> <!-- A -->
|
||||||
|
<map iso="C02" to="S"/>
|
||||||
|
<map iso="C03" to="D"/>
|
||||||
|
<map iso="C04" to="F"/>
|
||||||
|
<map iso="C05" to="G"/>
|
||||||
|
<map iso="C06" to="H"/>
|
||||||
|
<map iso="C07" to="J"/>
|
||||||
|
<map iso="C08" to="K"/>
|
||||||
|
<map iso="C09" to="L"/>
|
||||||
|
<map iso="C10" to="M"/> <!-- ; -->
|
||||||
|
<map iso="B01" to="W"/> <!-- Z -->
|
||||||
|
<map iso="B02" to="X"/>
|
||||||
|
<map iso="B03" to="C" longPress="Ç Ć Č"/>
|
||||||
|
<map iso="B04" to="V"/>
|
||||||
|
<map iso="B05" to="B"/>
|
||||||
|
<map iso="B06" to="N"/>
|
||||||
|
<map iso="B07" to="'" longPress="‘ ’ ‹ ›"/> <!-- M -->
|
||||||
|
<map iso="A02" to=","/> <!-- (key to left of space) -->
|
||||||
|
<map iso="A03" to=" "/> <!-- space -->
|
||||||
|
<map iso="A04" to="." longPress="# ! , ? - : ' @"/> <!-- (key to right of space) -->
|
||||||
|
</keyMap>
|
||||||
|
<keyMap modifiers="opt">
|
||||||
|
<map iso="D01" to="1" longPress="¹ ½ ⅓ ¼ ⅛"/> <!-- Q base=a -->
|
||||||
|
<map iso="D02" to="2" longPress="² ⅔"/> <!-- W base=z -->
|
||||||
|
<map iso="D03" to="3" longPress="³ ¾ ⅜"/> <!-- E -->
|
||||||
|
<map iso="D04" to="4" longPress="⁴"/> <!-- R -->
|
||||||
|
<map iso="D05" to="5" longPress="⅝"/> <!-- T -->
|
||||||
|
<map iso="D06" to="6"/> <!-- Y -->
|
||||||
|
<map iso="D07" to="7" longPress="⅞"/> <!-- U -->
|
||||||
|
<map iso="D08" to="8"/> <!-- I -->
|
||||||
|
<map iso="D09" to="9"/> <!-- O -->
|
||||||
|
<map iso="D10" to="0" longPress="ⁿ ∅"/> <!-- P -->
|
||||||
|
<map iso="C01" to="@"/> <!-- A base=q -->
|
||||||
|
<map iso="C02" to="#"/> <!-- S -->
|
||||||
|
<map iso="C03" to="€" longPress="¢ £ $ ¥ ₱"/> <!-- D -->
|
||||||
|
<map iso="C04" to="%" longPress="‰"/> <!-- F -->
|
||||||
|
<map iso="C05" to="&"/> <!-- G -->
|
||||||
|
<map iso="C06" to="-" longPress="_ – — ·"/> <!-- H -->
|
||||||
|
<map iso="C07" to="+" longPress="±"/> <!-- J -->
|
||||||
|
<map iso="C08" to="(" longPress="< { ["/> <!-- K -->
|
||||||
|
<map iso="C09" to=")" longPress="> } ]"/> <!-- L -->
|
||||||
|
<map iso="B01" to="*" longPress="† ‡ ★"/> <!-- Z base=w -->
|
||||||
|
<map iso="B02" to="\u{22}" longPress="“ ” « »"/> <!-- X to= " -->
|
||||||
|
<map iso="B03" to="'" longPress="‘ ’ ‹ ›"/> <!-- C -->
|
||||||
|
<map iso="B04" to=":"/> <!-- V -->
|
||||||
|
<map iso="B05" to=";"/> <!-- B -->
|
||||||
|
<map iso="B06" to="!" longPress="¡"/> <!-- N -->
|
||||||
|
<map iso="B07" to="?" longPress="¿"/> <!-- M base=' -->
|
||||||
|
<map iso="A00" to="_"/> <!-- (3 keys to left of space) -->
|
||||||
|
<map iso="A01" to="/"/> <!-- (2 keys to left of space) -->
|
||||||
|
<map iso="A02" to=" "/> <!-- (key to left of space) base=, -->
|
||||||
|
<map iso="A03" to=","/> <!-- space -->
|
||||||
|
<map iso="A04" to="." longPress="…"/> <!-- (key to right of space) -->
|
||||||
|
</keyMap>
|
||||||
|
<keyMap modifiers="opt+shift">
|
||||||
|
<map iso="D01" to="~"/> <!-- Q base=a -->
|
||||||
|
<map iso="D02" to="`"/> <!-- W base=z -->
|
||||||
|
<map iso="D03" to="|"/> <!-- E -->
|
||||||
|
<map iso="D04" to="•" longPress="♪ ♥ ♠ ♦ ♣"/> <!-- R -->
|
||||||
|
<map iso="D05" to="√"/> <!-- T -->
|
||||||
|
<map iso="D06" to="Π" longPress="π"/> <!-- Y -->
|
||||||
|
<map iso="D07" to="÷"/> <!-- U -->
|
||||||
|
<map iso="D08" to="×"/> <!-- I -->
|
||||||
|
<map iso="D09" to="¶" longPress="§"/> <!-- O -->
|
||||||
|
<map iso="D10" to="∆"/> <!-- P -->
|
||||||
|
<map iso="C01" to="£"/> <!-- A base=q -->
|
||||||
|
<map iso="C02" to="¥"/> <!-- S -->
|
||||||
|
<map iso="C03" to="$" longPress="¢"/> <!-- D -->
|
||||||
|
<map iso="C04" to="¢"/> <!-- F -->
|
||||||
|
<map iso="C05" to="^" longPress="↑ ↓ ← →"/> <!-- G -->
|
||||||
|
<map iso="C06" to="°" longPress="′ ″"/> <!-- H -->
|
||||||
|
<map iso="C07" to="=" longPress="≠ ≈ ∞"/> <!-- J -->
|
||||||
|
<map iso="C08" to="{"/> <!-- K -->
|
||||||
|
<map iso="C09" to="}"/> <!-- L -->
|
||||||
|
<map iso="B01" to="\"/> <!-- Z base=w -->
|
||||||
|
<map iso="B02" to="©"/> <!-- X -->
|
||||||
|
<map iso="B03" to="®"/> <!-- C -->
|
||||||
|
<map iso="B04" to="™"/> <!-- V -->
|
||||||
|
<map iso="B05" to="℅"/> <!-- B -->
|
||||||
|
<map iso="B06" to="["/> <!-- N -->
|
||||||
|
<map iso="B07" to="]"/> <!-- M base=' -->
|
||||||
|
<map iso="A00" to="<" longPress="‹ ≤ «"/> <!-- (3 keys to left of space) -->
|
||||||
|
<map iso="A01" to=">" longPress="› ≥ »"/> <!-- (2 keys to left of space) -->
|
||||||
|
<map iso="A02" to=" "/> <!-- (key to left of space) base=, -->
|
||||||
|
<map iso="A03" to=","/> <!-- space -->
|
||||||
|
<map iso="A04" to="." longPress="…"/> <!-- (key to right of space) -->
|
||||||
|
</keyMap>
|
||||||
|
</keyboard>
|
614
data/cldr2json/test/data/fr.json
Normal file
@ -0,0 +1,614 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"à",
|
||||||
|
"â",
|
||||||
|
"%",
|
||||||
|
"æ",
|
||||||
|
"á",
|
||||||
|
"ä",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ā",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"è",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"%",
|
||||||
|
"ę",
|
||||||
|
"ė",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y",
|
||||||
|
"%",
|
||||||
|
"ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ù",
|
||||||
|
"û",
|
||||||
|
"%",
|
||||||
|
"ü",
|
||||||
|
"ú",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"î",
|
||||||
|
"%",
|
||||||
|
"ï",
|
||||||
|
"ì",
|
||||||
|
"í",
|
||||||
|
"į",
|
||||||
|
"ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ô",
|
||||||
|
"œ",
|
||||||
|
"%",
|
||||||
|
"ö",
|
||||||
|
"ò",
|
||||||
|
"ó",
|
||||||
|
"õ",
|
||||||
|
"ø",
|
||||||
|
"ō",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"ç",
|
||||||
|
"ć",
|
||||||
|
"č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"À",
|
||||||
|
"Â",
|
||||||
|
"%",
|
||||||
|
"Æ",
|
||||||
|
"Á",
|
||||||
|
"Ä",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ā",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"È",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"%",
|
||||||
|
"Ę",
|
||||||
|
"Ė",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y",
|
||||||
|
"%",
|
||||||
|
"Ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ù",
|
||||||
|
"Û",
|
||||||
|
"%",
|
||||||
|
"Ü",
|
||||||
|
"Ú",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Î",
|
||||||
|
"%",
|
||||||
|
"Ï",
|
||||||
|
"Ì",
|
||||||
|
"Í",
|
||||||
|
"Į",
|
||||||
|
"Ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ô",
|
||||||
|
"Œ",
|
||||||
|
"%",
|
||||||
|
"Ö",
|
||||||
|
"Ò",
|
||||||
|
"Ó",
|
||||||
|
"Õ",
|
||||||
|
"Ø",
|
||||||
|
"Ō",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Ç",
|
||||||
|
"Ć",
|
||||||
|
"Č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"$",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "fr",
|
||||||
|
"name": "French"
|
||||||
|
}
|
212
data/cldr2json/test/test_cldr2json.py
Executable file
@ -0,0 +1,212 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import json
|
||||||
|
import tempfile
|
||||||
|
import unittest
|
||||||
|
import xml.etree.ElementTree
|
||||||
|
|
||||||
|
import cldr2json
|
||||||
|
|
||||||
|
|
||||||
|
class TestParseSingleKey(unittest.TestCase):
|
||||||
|
def test_ascii(self):
|
||||||
|
self.assertEqual(cldr2json.parse_single_key("a"), "a")
|
||||||
|
|
||||||
|
def test_nonascii(self):
|
||||||
|
self.assertEqual(cldr2json.parse_single_key("Æ"), "Æ")
|
||||||
|
|
||||||
|
def test_twochars(self):
|
||||||
|
self.assertEqual(cldr2json.parse_single_key("ԵՒ"), "ԵՒ")
|
||||||
|
|
||||||
|
def test_decode(self):
|
||||||
|
self.assertEqual(cldr2json.parse_single_key("\\u{200D}"), "\u200d")
|
||||||
|
|
||||||
|
def test_decode_threechars(self):
|
||||||
|
self.assertEqual(cldr2json.parse_single_key("ज\\u{94D}ञ"), "ज\u094Dञ")
|
||||||
|
|
||||||
|
|
||||||
|
class TestParseRow(unittest.TestCase):
|
||||||
|
def test_parse_row(self):
|
||||||
|
xml_string = """
|
||||||
|
<keyMap>
|
||||||
|
<map iso="D01" to="a" longPress="à â % æ á ä ã å ā ª"/> <!-- Q -->
|
||||||
|
<map iso="D02" to="z"/> <!-- W -->
|
||||||
|
<map iso="D03" to="e" longPress="é è ê ë % ę ė ē"/>
|
||||||
|
<map iso="D04" to="r"/>
|
||||||
|
<map iso="D05" to="t"/>
|
||||||
|
<map iso="D06" to="y" longPress="% ÿ"/>
|
||||||
|
<map iso="D07" to="u" longPress="ù û % ü ú ū"/>
|
||||||
|
<map iso="D08" to="i" longPress="î % ï ì í į ī"/>
|
||||||
|
<map iso="D09" to="o" longPress="ô œ % ö ò ó õ ø ō º"/>
|
||||||
|
<map iso="D10" to="p"/>
|
||||||
|
<map iso="C01" to="q"/> <!-- A -->
|
||||||
|
<map iso="C02" to="s"/>
|
||||||
|
<map iso="C03" to="d"/>
|
||||||
|
<map iso="C04" to="f"/>
|
||||||
|
<map iso="C05" to="g"/>
|
||||||
|
<map iso="C06" to="h"/>
|
||||||
|
<map iso="C07" to="j"/>
|
||||||
|
<map iso="C08" to="k"/>
|
||||||
|
<map iso="C09" to="l"/>
|
||||||
|
<map iso="C10" to="m"/> <!-- ; -->
|
||||||
|
<map iso="B01" to="w"/> <!-- Z -->
|
||||||
|
<map iso="B02" to="x"/>
|
||||||
|
<map iso="B03" to="c" longPress="ç ć č"/>
|
||||||
|
<map iso="B04" to="v"/>
|
||||||
|
<map iso="B05" to="b"/>
|
||||||
|
<map iso="B06" to="n"/>
|
||||||
|
<map iso="B07" to="'" longPress="‘ ’ ‹ ›"/> <!-- M -->
|
||||||
|
<map iso="A02" to=","/> <!-- (key to left of space) -->
|
||||||
|
<map iso="A03" to=" "/> <!-- space -->
|
||||||
|
<map iso="A04" to="." longPress="# ! , ? - : ' @"/> <!-- (key to right of space) -->
|
||||||
|
</keyMap>
|
||||||
|
"""
|
||||||
|
xml_tree = xml.etree.ElementTree.XML(xml_string)
|
||||||
|
json = [[
|
||||||
|
['a', 'à', 'â', '%', 'æ', 'á', 'ä', 'ã', 'å', 'ā', 'ª'],
|
||||||
|
['z'],
|
||||||
|
['e', 'é', 'è', 'ê', 'ë', '%', 'ę', 'ė', 'ē'],
|
||||||
|
['r'],
|
||||||
|
['t'],
|
||||||
|
['y', '%', 'ÿ'],
|
||||||
|
['u', 'ù', 'û', '%', 'ü', 'ú', 'ū'],
|
||||||
|
['i', 'î', '%', 'ï', 'ì', 'í', 'į', 'ī'],
|
||||||
|
['o', 'ô', 'œ', '%', 'ö', 'ò', 'ó', 'õ', 'ø', 'ō', 'º'],
|
||||||
|
['p']
|
||||||
|
], [
|
||||||
|
['q'],
|
||||||
|
['s'],
|
||||||
|
['d'],
|
||||||
|
['f'],
|
||||||
|
['g'],
|
||||||
|
['h'],
|
||||||
|
['j'],
|
||||||
|
['k'],
|
||||||
|
['l'],
|
||||||
|
['m']
|
||||||
|
], [
|
||||||
|
['w'],
|
||||||
|
['x'],
|
||||||
|
['c', 'ç', 'ć', 'č'],
|
||||||
|
['v'],
|
||||||
|
['b'],
|
||||||
|
['n'],
|
||||||
|
["'", '‘', '’', '‹', '›']
|
||||||
|
], [
|
||||||
|
[','],
|
||||||
|
[' '],
|
||||||
|
['.', '#', '!', ',', '?', '-', ':', "'", '@']
|
||||||
|
]]
|
||||||
|
self.assertEqual(cldr2json.parse_rows(xml_tree), json)
|
||||||
|
|
||||||
|
|
||||||
|
class TestConvertXml(unittest.TestCase):
|
||||||
|
def test_convert_xml(self):
|
||||||
|
xml_string = """<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE keyboard SYSTEM "../dtd/ldmlKeyboard.dtd">
|
||||||
|
<keyboard locale="fr-t-k0-android">
|
||||||
|
<version platform="4.4" number="$Revision: 11914 $"/>
|
||||||
|
<names>
|
||||||
|
<name value="French"/>
|
||||||
|
</names>
|
||||||
|
<keyMap>
|
||||||
|
<map iso="D01" to="a" longPress="à â % æ á ä ã å ā ª"/> <!-- Q -->
|
||||||
|
</keyMap>
|
||||||
|
<keyMap modifiers="shift caps">
|
||||||
|
<map iso="D01" to="A" longPress="À Â % Æ Á Ä Ã Å Ā ª"/> <!-- Q -->
|
||||||
|
</keyMap>
|
||||||
|
<keyMap modifiers="opt">
|
||||||
|
<map iso="D01" to="1" longPress="¹ ½ ⅓ ¼ ⅛"/> <!-- Q base=a -->
|
||||||
|
</keyMap>
|
||||||
|
<keyMap modifiers="opt+shift">
|
||||||
|
<map iso="D01" to="~"/> <!-- Q base=a -->
|
||||||
|
</keyMap>
|
||||||
|
</keyboard>
|
||||||
|
"""
|
||||||
|
xml_tree = xml.etree.ElementTree.XML(xml_string)
|
||||||
|
json = {
|
||||||
|
"locale": "fr",
|
||||||
|
"name": "French",
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
['a', 'à', 'â', '%', 'æ', 'á', 'ä', 'ã', 'å', 'ā', 'ª'],
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
['A', 'À', 'Â', '%', 'Æ', 'Á', 'Ä', 'Ã', 'Å', 'Ā', 'ª'],
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
["1", "¹", "½", "⅓", "¼", "⅛"],
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
["~"],
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
self.assertEqual(cldr2json.convert_xml(xml_tree), json)
|
||||||
|
|
||||||
|
|
||||||
|
class TestConvertFile(unittest.TestCase):
|
||||||
|
def test_fr(self):
|
||||||
|
outdir = tempfile.mkdtemp()
|
||||||
|
cldr2json.convert_file("test/data/fr-t-k0-android.xml", outdir)
|
||||||
|
with open("test/data/fr.json", encoding="utf-8") as expected_json_fd:
|
||||||
|
expected_json = json.load(expected_json_fd)
|
||||||
|
with open(outdir + "/fr.json", encoding="utf-8") as actual_json_fd:
|
||||||
|
actual_json = json.load(actual_json_fd)
|
||||||
|
self.assertEqual(expected_json, actual_json)
|
||||||
|
|
||||||
|
|
||||||
|
class TestLocaleToXKB(unittest.TestCase):
|
||||||
|
def test_simple(self):
|
||||||
|
self.assertEqual(cldr2json.locale_to_xkb("fr", "French"),
|
||||||
|
"fr")
|
||||||
|
|
||||||
|
def test_fallback(self):
|
||||||
|
self.assertEqual(cldr2json.locale_to_xkb("nb", "Norwegian Bokmål"),
|
||||||
|
"no")
|
||||||
|
|
||||||
|
def test_fallback2(self):
|
||||||
|
self.assertEqual(cldr2json.locale_to_xkb("km", "Khmer"),
|
||||||
|
"kh")
|
||||||
|
|
||||||
|
def test_override(self):
|
||||||
|
self.assertEqual(cldr2json.locale_to_xkb("en-GB",
|
||||||
|
"English Great Britain"),
|
||||||
|
"uk")
|
||||||
|
|
||||||
|
|
||||||
|
class LoadXKBMapplings(unittest.TestCase):
|
||||||
|
def test_dictionnary(self):
|
||||||
|
self.assertIsInstance(cldr2json.load_xkb_mappings(), dict)
|
||||||
|
|
||||||
|
def test_mapping(self):
|
||||||
|
mapping = cldr2json.load_xkb_mappings()
|
||||||
|
self.assertEqual(mapping["French"], "fr")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
unittest.main()
|
@ -1,5 +1,6 @@
|
|||||||
dbus_interfaces = [
|
dbus_interfaces = [
|
||||||
'org.gnome.Shell.Extensions.xml',
|
'org.gnome.Shell.Extensions.xml',
|
||||||
|
'org.gnome.Shell.Introspect.xml',
|
||||||
'org.gnome.Shell.PadOsd.xml',
|
'org.gnome.Shell.PadOsd.xml',
|
||||||
'org.gnome.Shell.Screencast.xml',
|
'org.gnome.Shell.Screencast.xml',
|
||||||
'org.gnome.Shell.Screenshot.xml',
|
'org.gnome.Shell.Screenshot.xml',
|
||||||
|
@ -1,5 +1,46 @@
|
|||||||
|
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
|
||||||
|
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
|
||||||
|
|
||||||
<node>
|
<node>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
net.hadess.SwitcherooControl:
|
||||||
|
@short_description: D-Bus proxy to access dual-GPU controls.
|
||||||
|
|
||||||
|
After checking the availability of two switchable GPUs in the machine,
|
||||||
|
check the value of net.hadess.SwitcherooControl.HasDualGpu to see
|
||||||
|
if running applications on the discrete GPU should be offered.
|
||||||
|
|
||||||
|
The object path will be "/net/hadess/SwitcherooControl".
|
||||||
|
-->
|
||||||
<interface name="net.hadess.SwitcherooControl">
|
<interface name="net.hadess.SwitcherooControl">
|
||||||
|
<!--
|
||||||
|
HasDualGpu:
|
||||||
|
|
||||||
|
Whether two switchable GPUs are present on the system. This property
|
||||||
|
has been obsoleted in favour of the "NumGPUs" property.
|
||||||
|
-->
|
||||||
<property name="HasDualGpu" type="b" access="read"/>
|
<property name="HasDualGpu" type="b" access="read"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
NumGPUs:
|
||||||
|
|
||||||
|
The number of GPUs available on the system. Note that while having no
|
||||||
|
GPUs is unlikely, consumers of this API should probably not throw errors
|
||||||
|
if that were the case.
|
||||||
|
-->
|
||||||
|
<property name="NumGPUs" type="u" access="read"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
GPUs:
|
||||||
|
|
||||||
|
An array of key-pair values representing each GPU. The key named "Name" (s)
|
||||||
|
will contain a user-facing name for the GPU, the "Environment" (as) key will
|
||||||
|
contain an array of even number of strings, each being an environment
|
||||||
|
variable to set to use the GPU, followed by its value, the "Default" (b) key
|
||||||
|
will tag the default (usually integrated) GPU.
|
||||||
|
-->
|
||||||
|
<property name="GPUs" type="aa{sv}" access="read"/>
|
||||||
|
|
||||||
</interface>
|
</interface>
|
||||||
</node>
|
</node>
|
||||||
|
@ -20,6 +20,12 @@
|
|||||||
<method name="ListSessions">
|
<method name="ListSessions">
|
||||||
<arg name="sessions" type="a(susso)" direction="out"/>
|
<arg name="sessions" type="a(susso)" direction="out"/>
|
||||||
</method>
|
</method>
|
||||||
|
<method name="CanRebootToBootLoaderMenu">
|
||||||
|
<arg type="s" direction="out"/>
|
||||||
|
</method>
|
||||||
|
<method name="SetRebootToBootLoaderMenu">
|
||||||
|
<arg type="t" direction="in"/>
|
||||||
|
</method>
|
||||||
<signal name="PrepareForSleep">
|
<signal name="PrepareForSleep">
|
||||||
<arg type="b" direction="out"/>
|
<arg type="b" direction="out"/>
|
||||||
</signal>
|
</signal>
|
||||||
|
191
data/dbus-interfaces/org.gnome.Mutter.ScreenCast.xml
Normal file
@ -0,0 +1,191 @@
|
|||||||
|
<!DOCTYPE node PUBLIC
|
||||||
|
'-//freedesktop//DTD D-BUS Object Introspection 1.0//EN'
|
||||||
|
'http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd'>
|
||||||
|
<node>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
org.gnome.Mutter.ScreenCast:
|
||||||
|
@short_description: Screen cast interface
|
||||||
|
|
||||||
|
This API is private and not intended to be used outside of the integrated
|
||||||
|
system that uses libmutter. No compatibility between versions are
|
||||||
|
promised.
|
||||||
|
-->
|
||||||
|
<interface name="org.gnome.Mutter.ScreenCast">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
CreateSession:
|
||||||
|
@properties: Properties
|
||||||
|
@session_path: Path to the new session object
|
||||||
|
|
||||||
|
* "remote-desktop-session-id" (s): The ID of a remote desktop session.
|
||||||
|
Remote desktop driven screen casts
|
||||||
|
are started and stopped by the remote
|
||||||
|
desktop session.
|
||||||
|
* "disable-animations" (b): Set to "true" if the screen cast application
|
||||||
|
would prefer animations to be globally
|
||||||
|
disabled, while the session is running. Default
|
||||||
|
is "false". Available since version 3.
|
||||||
|
-->
|
||||||
|
<method name="CreateSession">
|
||||||
|
<arg name="properties" type="a{sv}" direction="in" />
|
||||||
|
<arg name="session_path" type="o" direction="out" />
|
||||||
|
</method>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Version:
|
||||||
|
@short_description: API version
|
||||||
|
-->
|
||||||
|
<property name="Version" type="i" access="read" />
|
||||||
|
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
org.gnome.Mutter.ScreenCast.Session:
|
||||||
|
@short_description: Screen cast session
|
||||||
|
-->
|
||||||
|
<interface name="org.gnome.Mutter.ScreenCast.Session">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Start:
|
||||||
|
|
||||||
|
Start the screen cast session
|
||||||
|
-->
|
||||||
|
<method name="Start" />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Stop:
|
||||||
|
|
||||||
|
Stop the screen cast session
|
||||||
|
-->
|
||||||
|
<method name="Stop" />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Closed:
|
||||||
|
|
||||||
|
The session has closed.
|
||||||
|
-->
|
||||||
|
<signal name="Closed" />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
RecordMonitor:
|
||||||
|
@connector: Connector of the monitor to record
|
||||||
|
@properties: Properties
|
||||||
|
@stream_path: Path to the new stream object
|
||||||
|
|
||||||
|
Record a single monitor.
|
||||||
|
|
||||||
|
Available @properties include:
|
||||||
|
|
||||||
|
* "cursor-mode" (u): Cursor mode. Default: 'hidden' (see below)
|
||||||
|
Available since API version 2.
|
||||||
|
* "is-recording" (b): Whether this is a screen recording. May be
|
||||||
|
be used for choosing panel icon.
|
||||||
|
Default: false. Available since API version 4.
|
||||||
|
|
||||||
|
Available cursor mode values:
|
||||||
|
|
||||||
|
0: hidden - cursor is not included in the stream
|
||||||
|
1: embedded - cursor is included in the framebuffer
|
||||||
|
2: metadata - cursor is included as metadata in the PipeWire stream
|
||||||
|
-->
|
||||||
|
<method name="RecordMonitor">
|
||||||
|
<arg name="connector" type="s" direction="in" />
|
||||||
|
<arg name="properties" type="a{sv}" direction="in" />
|
||||||
|
<arg name="stream_path" type="o" direction="out" />
|
||||||
|
</method>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
RecordWindow:
|
||||||
|
@properties: Properties used determining what window to select
|
||||||
|
@stream_path: Path to the new stream object
|
||||||
|
|
||||||
|
Supported since API version 2.
|
||||||
|
|
||||||
|
Record a single window. The cursor will not be included.
|
||||||
|
|
||||||
|
Available @properties include:
|
||||||
|
|
||||||
|
* "window-id" (t): Id of the window to record.
|
||||||
|
* "cursor-mode" (u): Cursor mode. Default: 'hidden' (see RecordMonitor).
|
||||||
|
* "is-recording" (b): Whether this is a screen recording. May be
|
||||||
|
be used for choosing panel icon.
|
||||||
|
Default: false. Available since API version 4.
|
||||||
|
|
||||||
|
-->
|
||||||
|
<method name="RecordWindow">
|
||||||
|
<arg name="properties" type="a{sv}" direction="in" />
|
||||||
|
<arg name="stream_path" type="o" direction="out" />
|
||||||
|
</method>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
RecordArea:
|
||||||
|
@x: X position of the recorded area
|
||||||
|
@y: Y position of the recorded area
|
||||||
|
@width: width of the recorded area
|
||||||
|
@height: height of the recorded area
|
||||||
|
@properties: Properties
|
||||||
|
@stream_path: Path to the new stream object
|
||||||
|
|
||||||
|
Record an area of the stage. The coordinates are in stage coordinates.
|
||||||
|
The size of the stream does not necessarily match the size of the
|
||||||
|
recorded area, and will depend on DPI scale of the affected monitors.
|
||||||
|
|
||||||
|
Available @properties include:
|
||||||
|
|
||||||
|
* "cursor-mode" (u): Cursor mode. Default: 'hidden' (see below)
|
||||||
|
Available since API version 2.
|
||||||
|
* "is-recording" (b): Whether this is a screen recording. May be
|
||||||
|
be used for choosing panel icon.
|
||||||
|
Default: false. Available since API version 4.
|
||||||
|
|
||||||
|
Available cursor mode values:
|
||||||
|
|
||||||
|
0: hidden - cursor is not included in the stream
|
||||||
|
1: embedded - cursor is included in the framebuffer
|
||||||
|
2: metadata - cursor is included as metadata in the PipeWire stream
|
||||||
|
-->
|
||||||
|
<method name="RecordArea">
|
||||||
|
<arg name="x" type="i" direction="in" />
|
||||||
|
<arg name="y" type="i" direction="in" />
|
||||||
|
<arg name="width" type="i" direction="in" />
|
||||||
|
<arg name="height" type="i" direction="in" />
|
||||||
|
<arg name="properties" type="a{sv}" direction="in" />
|
||||||
|
<arg name="stream_path" type="o" direction="out" />
|
||||||
|
</method>
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
org.gnome.Mutter.ScreenCast.Stream:
|
||||||
|
@short_description: Screen cast stream
|
||||||
|
-->
|
||||||
|
<interface name="org.gnome.Mutter.ScreenCast.Stream">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
PipeWireStreamAdded:
|
||||||
|
@short_description: Pipewire stream added
|
||||||
|
|
||||||
|
A signal emitted when PipeWire stream for the screen cast stream has
|
||||||
|
been created. The @node_id corresponds to the PipeWire stream node.
|
||||||
|
-->
|
||||||
|
<signal name="PipeWireStreamAdded">
|
||||||
|
<annotation name="org.gtk.GDBus.C.Name" value="pipewire-stream-added"/>
|
||||||
|
<arg name="node_id" type="u" direction="out" />
|
||||||
|
</signal>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Parameters:
|
||||||
|
@short_description: Optional stream parameters
|
||||||
|
|
||||||
|
Available parameters include:
|
||||||
|
|
||||||
|
* "position" (ii): Position of the source of the stream in the
|
||||||
|
compositor coordinate space.
|
||||||
|
* "size" (ii): Size of the source of the stream in the compositor
|
||||||
|
coordinate space.
|
||||||
|
-->
|
||||||
|
<property name="Parameters" type="a{sv}" access="read" />
|
||||||
|
|
||||||
|
</interface>
|
||||||
|
|
||||||
|
</node>
|
19
data/dbus-interfaces/org.gnome.Shell.CalendarServer.xml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<node>
|
||||||
|
<interface name="org.gnome.Shell.CalendarServer">
|
||||||
|
<method name="SetTimeRange">
|
||||||
|
<arg type="x" name="since" direction="in"/>
|
||||||
|
<arg type="x" name="until" direction="in"/>
|
||||||
|
<arg type="b" name="force_reload" direction="in"/>
|
||||||
|
</method>
|
||||||
|
<signal name="EventsAddedOrUpdated">
|
||||||
|
<arg type="a(ssbxxa{sv})" name="events" direction="out"/>
|
||||||
|
</signal>
|
||||||
|
<signal name="EventsRemoved">
|
||||||
|
<arg type="as" name="ids" direction="out"/>
|
||||||
|
</signal>
|
||||||
|
<signal name="ClientDisappeared">
|
||||||
|
<arg type="s" name="source_uid" direction="out"/>
|
||||||
|
</signal>
|
||||||
|
<property name="HasCalendars" type="b" access="read" />
|
||||||
|
</interface>
|
||||||
|
</node>
|
15
data/dbus-interfaces/org.gnome.Shell.ClocksIntegration.xml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<node>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
org.gnome.Shell.ClocksIntegration:
|
||||||
|
@short_description: Clocks integration interface
|
||||||
|
|
||||||
|
The interface used for exporting location settings to GNOME Shell's
|
||||||
|
world clocks integration.
|
||||||
|
-->
|
||||||
|
<interface name="org.gnome.Shell.ClocksIntegration">
|
||||||
|
|
||||||
|
<property name="Locations" type="av" access="read"/>
|
||||||
|
|
||||||
|
</interface>
|
||||||
|
</node>
|
@ -174,21 +174,77 @@
|
|||||||
</method>
|
</method>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
LaunchExtensionPrefs:
|
EnableExtension:
|
||||||
@uuid: The UUID of the extension
|
@uuid: The UUID of the extension
|
||||||
|
@success: Whether the operation was successful
|
||||||
|
|
||||||
Launch preferences of an extension.
|
Enable an extension.
|
||||||
|
-->
|
||||||
|
<method name="EnableExtension"> \
|
||||||
|
<arg type="s" direction="in" name="uuid"/> \
|
||||||
|
<arg type="b" direction="out" name="success"/> \
|
||||||
|
</method> \
|
||||||
|
|
||||||
|
<!--
|
||||||
|
DisableExtension:
|
||||||
|
@uuid: The UUID of the extension
|
||||||
|
@success: Whether the operation was successful
|
||||||
|
|
||||||
|
Disable an extension.
|
||||||
|
-->
|
||||||
|
<method name="DisableExtension"> \
|
||||||
|
<arg type="s" direction="in" name="uuid"/> \
|
||||||
|
<arg type="b" direction="out" name="success"/> \
|
||||||
|
</method> \
|
||||||
|
|
||||||
|
<!--
|
||||||
|
LaunchExtensionPrefs:
|
||||||
|
Deprecated for OpenExtensionPrefs
|
||||||
-->
|
-->
|
||||||
<method name="LaunchExtensionPrefs">
|
<method name="LaunchExtensionPrefs">
|
||||||
<arg type="s" direction="in" name="uuid"/>
|
<arg type="s" direction="in" name="uuid"/>
|
||||||
</method>
|
</method>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
OpenExtensionPrefs:
|
||||||
|
@uuid: The UUID of the extension
|
||||||
|
@parent_window: Identifier for the application window
|
||||||
|
@options: Vardict with further options
|
||||||
|
|
||||||
|
Opens the prefs dialog of extension @uuid.
|
||||||
|
|
||||||
|
The following @options are recognized:
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term>modal b</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Whether the prefs window should be modal, default: false</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
-->
|
||||||
|
<method name="OpenExtensionPrefs">
|
||||||
|
<arg type="s" direction="in" name="uuid"/>
|
||||||
|
<arg type="s" direction="in" name="parent_window"/>
|
||||||
|
<arg type="a{sv}" direction="in" name="options"/>
|
||||||
|
</method>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
CheckForUpdates:
|
CheckForUpdates:
|
||||||
Update all extensions for which updates are available
|
Update all extensions for which updates are available
|
||||||
-->
|
-->
|
||||||
<method name="CheckForUpdates"/>
|
<method name="CheckForUpdates"/>
|
||||||
|
|
||||||
|
<signal name="ExtensionStateChanged">
|
||||||
|
<arg type="s" name="uuid"/>
|
||||||
|
<arg type="a{sv}" name="state"/>
|
||||||
|
</signal>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
ExtensionStatusChanged:
|
||||||
|
Deprecated for ExtensionStateChanged
|
||||||
|
-->
|
||||||
<signal name="ExtensionStatusChanged">
|
<signal name="ExtensionStatusChanged">
|
||||||
<arg type="s" name="uuid"/>
|
<arg type="s" name="uuid"/>
|
||||||
<arg type="i" name="state"/>
|
<arg type="i" name="state"/>
|
||||||
@ -201,5 +257,11 @@
|
|||||||
-->
|
-->
|
||||||
<property name="ShellVersion" type="s" access="read"/>
|
<property name="ShellVersion" type="s" access="read"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
UserExtensionsEnabled:
|
||||||
|
Whether user extensions are enabled
|
||||||
|
-->
|
||||||
|
<property name="UserExtensionsEnabled" type="b" access="readwrite"/>
|
||||||
|
|
||||||
</interface>
|
</interface>
|
||||||
</node>
|
</node>
|
||||||
|
83
data/dbus-interfaces/org.gnome.Shell.Introspect.xml
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
<!DOCTYPE node PUBLIC
|
||||||
|
'-//freedesktop//DTD D-BUS Object Introspection 1.0//EN'
|
||||||
|
'http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd'>
|
||||||
|
<node>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
org.gnome.Shell.Introspect:
|
||||||
|
@short_description: Introspection interface
|
||||||
|
|
||||||
|
The interface used to introspect the state of Shell, such as running
|
||||||
|
applications, currently active application, etc.
|
||||||
|
-->
|
||||||
|
<interface name="org.gnome.Shell.Introspect">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
RunningApplicationsChanged:
|
||||||
|
@short_description: Notifies when the running applications changes
|
||||||
|
-->
|
||||||
|
<signal name="RunningApplicationsChanged" />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
GetRunningApplications:
|
||||||
|
@short_description: Retrieves the description of all running applications
|
||||||
|
|
||||||
|
Each application is associated by an application ID. The details of
|
||||||
|
each application consists of a varlist of keys and values. Available
|
||||||
|
keys are listed below.
|
||||||
|
|
||||||
|
'active-on-seats' - (as) list of seats the application is active on
|
||||||
|
(a seat only has at most one active
|
||||||
|
application)
|
||||||
|
-->
|
||||||
|
<method name="GetRunningApplications">
|
||||||
|
<arg name="apps" direction="out" type="a{sa{sv}}" />
|
||||||
|
</method>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
GetWindows:
|
||||||
|
@short_description: Retrieves the current list of windows and their properties
|
||||||
|
|
||||||
|
A window is exposed as:
|
||||||
|
* t ID: unique ID of the window
|
||||||
|
* a{sv} properties: high-level properties
|
||||||
|
|
||||||
|
Known properties:
|
||||||
|
|
||||||
|
- "title" (s): (readonly) title of the window
|
||||||
|
- "app-id" (s): (readonly) application ID of the window
|
||||||
|
- "wm-class" (s): (readonly) class of the window
|
||||||
|
- "client-type" (u): (readonly) 0 for Wayland, 1 for X11
|
||||||
|
- "is-hidden" (b): (readonly) if the window is currently hidden
|
||||||
|
- "has-focus" (b): (readonly) if the window currently have
|
||||||
|
keyboard focus
|
||||||
|
- "width" (u): (readonly) width of the window
|
||||||
|
- "height" (u): (readonly) height of the window
|
||||||
|
-->
|
||||||
|
<method name="GetWindows">
|
||||||
|
<arg name="windows" direction="out" type="a{ta{sv}}" />
|
||||||
|
</method>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
AnimationsEnabled:
|
||||||
|
@short_description: Whether the shell animations are enabled
|
||||||
|
|
||||||
|
By default determined by the org.gnome.desktop.interface enable-animations
|
||||||
|
gsetting, but may be overridden, e.g. if there is an active screen cast or
|
||||||
|
remote desktop session that asked for animations to be disabled.
|
||||||
|
|
||||||
|
Since: 2
|
||||||
|
-->
|
||||||
|
<property name="AnimationsEnabled" type="b" access="read"/>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
ScreenSize:
|
||||||
|
@short_description: The size of the screen
|
||||||
|
|
||||||
|
Since: 3
|
||||||
|
-->
|
||||||
|
<property name="ScreenSize" type="(ii)" access="read"/>
|
||||||
|
|
||||||
|
<property name="version" type="u" access="read"/>
|
||||||
|
</interface>
|
||||||
|
</node>
|
16
data/dbus-interfaces/org.gnome.Shell.WeatherIntegration.xml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<node>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
org.gnome.Shell.WeatherIntegration:
|
||||||
|
@short_description: Weather integration interface
|
||||||
|
|
||||||
|
The interface used for exporting location settings to GNOME Shell's
|
||||||
|
weather integration.
|
||||||
|
-->
|
||||||
|
<interface name="org.gnome.Shell.WeatherIntegration">
|
||||||
|
|
||||||
|
<property name="AutomaticLocation" type="b" access="read"/>
|
||||||
|
<property name="Locations" type="av" access="read"/>
|
||||||
|
|
||||||
|
</interface>
|
||||||
|
</node>
|
@ -10,9 +10,6 @@
|
|||||||
<arg type="a{sv}" direction="in" name="params"/>
|
<arg type="a{sv}" direction="in" name="params"/>
|
||||||
</method>
|
</method>
|
||||||
<method name="ShowMonitorLabels">
|
<method name="ShowMonitorLabels">
|
||||||
<arg type="a{uv}" direction="in" name="params"/>
|
|
||||||
</method>
|
|
||||||
<method name="ShowMonitorLabels2">
|
|
||||||
<arg type="a{sv}" direction="in" name="params"/>
|
<arg type="a{sv}" direction="in" name="params"/>
|
||||||
</method>
|
</method>
|
||||||
<method name="HideMonitorLabels"/>
|
<method name="HideMonitorLabels"/>
|
||||||
@ -22,17 +19,22 @@
|
|||||||
<method name="ShowApplications"/>
|
<method name="ShowApplications"/>
|
||||||
<method name="GrabAccelerator">
|
<method name="GrabAccelerator">
|
||||||
<arg type="s" direction="in" name="accelerator"/>
|
<arg type="s" direction="in" name="accelerator"/>
|
||||||
<arg type="u" direction="in" name="flags"/>
|
<arg type="u" direction="in" name="modeFlags"/>
|
||||||
|
<arg type="u" direction="in" name="grabFlags"/>
|
||||||
<arg type="u" direction="out" name="action"/>
|
<arg type="u" direction="out" name="action"/>
|
||||||
</method>
|
</method>
|
||||||
<method name="GrabAccelerators">
|
<method name="GrabAccelerators">
|
||||||
<arg type="a(su)" direction="in" name="accelerators"/>
|
<arg type="a(suu)" direction="in" name="accelerators"/>
|
||||||
<arg type="au" direction="out" name="actions"/>
|
<arg type="au" direction="out" name="actions"/>
|
||||||
</method>
|
</method>
|
||||||
<method name="UngrabAccelerator">
|
<method name="UngrabAccelerator">
|
||||||
<arg type="u" direction="in" name="action"/>
|
<arg type="u" direction="in" name="action"/>
|
||||||
<arg type="b" direction="out" name="success"/>
|
<arg type="b" direction="out" name="success"/>
|
||||||
</method>
|
</method>
|
||||||
|
<method name="UngrabAccelerators">
|
||||||
|
<arg type="au" direction="in" name="action"/>
|
||||||
|
<arg type="b" direction="out" name="success"/>
|
||||||
|
</method>
|
||||||
<signal name="AcceleratorActivated">
|
<signal name="AcceleratorActivated">
|
||||||
<arg name="action" type="u"/>
|
<arg name="action" type="u"/>
|
||||||
<arg name="parameters" type="a{sv}"/>
|
<arg name="parameters" type="a{sv}"/>
|
||||||
|
15740
data/emoji.json
Normal file
@ -2,7 +2,6 @@
|
|||||||
<gresources>
|
<gresources>
|
||||||
<gresource prefix="/org/gnome/shell/dbus-interfaces">
|
<gresource prefix="/org/gnome/shell/dbus-interfaces">
|
||||||
<file preprocess="xml-stripblanks">net.hadess.SensorProxy.xml</file>
|
<file preprocess="xml-stripblanks">net.hadess.SensorProxy.xml</file>
|
||||||
<file preprocess="xml-stripblanks">net.hadess.SwitcherooControl.xml</file>
|
|
||||||
<file preprocess="xml-stripblanks">org.freedesktop.Application.xml</file>
|
<file preprocess="xml-stripblanks">org.freedesktop.Application.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Device.xml</file>
|
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Device.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Manager.xml</file>
|
<file preprocess="xml-stripblanks">org.freedesktop.bolt1.Manager.xml</file>
|
||||||
@ -29,6 +28,7 @@
|
|||||||
<file preprocess="xml-stripblanks">org.freedesktop.UPower.xml</file>
|
<file preprocess="xml-stripblanks">org.freedesktop.UPower.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.gnome.Magnifier.xml</file>
|
<file preprocess="xml-stripblanks">org.gnome.Magnifier.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.gnome.Magnifier.ZoomRegion.xml</file>
|
<file preprocess="xml-stripblanks">org.gnome.Magnifier.ZoomRegion.xml</file>
|
||||||
|
<file preprocess="xml-stripblanks">org.gnome.Mutter.ScreenCast.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.gnome.ScreenSaver.xml</file>
|
<file preprocess="xml-stripblanks">org.gnome.ScreenSaver.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.gnome.SessionManager.EndSessionDialog.xml</file>
|
<file preprocess="xml-stripblanks">org.gnome.SessionManager.EndSessionDialog.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.gnome.SessionManager.Inhibitor.xml</file>
|
<file preprocess="xml-stripblanks">org.gnome.SessionManager.Inhibitor.xml</file>
|
||||||
@ -39,13 +39,17 @@
|
|||||||
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Rfkill.xml</file>
|
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Rfkill.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Wacom.xml</file>
|
<file preprocess="xml-stripblanks">org.gnome.SettingsDaemon.Wacom.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.gnome.Shell.AudioDeviceSelection.xml</file>
|
<file preprocess="xml-stripblanks">org.gnome.Shell.AudioDeviceSelection.xml</file>
|
||||||
|
<file preprocess="xml-stripblanks">org.gnome.Shell.CalendarServer.xml</file>
|
||||||
|
<file preprocess="xml-stripblanks">org.gnome.Shell.ClocksIntegration.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.gnome.Shell.Extensions.xml</file>
|
<file preprocess="xml-stripblanks">org.gnome.Shell.Extensions.xml</file>
|
||||||
|
<file preprocess="xml-stripblanks">org.gnome.Shell.Introspect.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.gnome.Shell.HotplugSniffer.xml</file>
|
<file preprocess="xml-stripblanks">org.gnome.Shell.HotplugSniffer.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.gnome.Shell.PerfHelper.xml</file>
|
<file preprocess="xml-stripblanks">org.gnome.Shell.PerfHelper.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.gnome.Shell.PortalHelper.xml</file>
|
<file preprocess="xml-stripblanks">org.gnome.Shell.PortalHelper.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.gnome.Shell.Screencast.xml</file>
|
<file preprocess="xml-stripblanks">org.gnome.Shell.Screencast.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.gnome.Shell.Screenshot.xml</file>
|
<file preprocess="xml-stripblanks">org.gnome.Shell.Screenshot.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.gnome.Shell.Wacom.PadOsd.xml</file>
|
<file preprocess="xml-stripblanks">org.gnome.Shell.Wacom.PadOsd.xml</file>
|
||||||
|
<file preprocess="xml-stripblanks">org.gnome.Shell.WeatherIntegration.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.gnome.Shell.xml</file>
|
<file preprocess="xml-stripblanks">org.gnome.Shell.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.Gtk.MountOperationHandler.xml</file>
|
<file preprocess="xml-stripblanks">org.Gtk.MountOperationHandler.xml</file>
|
||||||
<file preprocess="xml-stripblanks">org.gtk.Notifications.xml</file>
|
<file preprocess="xml-stripblanks">org.gtk.Notifications.xml</file>
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Type=Application
|
|
||||||
Name=Shell Extensions
|
|
||||||
Comment=Configure GNOME Shell Extensions
|
|
||||||
Exec=@bindir@/gnome-shell-extension-prefs %u
|
|
||||||
X-GNOME-Bugzilla-Bugzilla=GNOME
|
|
||||||
X-GNOME-Bugzilla-Product=gnome-shell
|
|
||||||
X-GNOME-Bugzilla-Component=extensions
|
|
||||||
X-GNOME-Bugzilla-Version=@VERSION@
|
|
||||||
Categories=GNOME;GTK;
|
|
||||||
OnlyShowIn=GNOME;
|
|
||||||
NoDisplay=true
|
|
@ -6,6 +6,7 @@
|
|||||||
<file>be.json</file>
|
<file>be.json</file>
|
||||||
<file>bg.json</file>
|
<file>bg.json</file>
|
||||||
<file>by.json</file>
|
<file>by.json</file>
|
||||||
|
<file>ca.json</file>
|
||||||
<file>cz.json</file>
|
<file>cz.json</file>
|
||||||
<file>de.json</file>
|
<file>de.json</file>
|
||||||
<file>dk.json</file>
|
<file>dk.json</file>
|
||||||
@ -54,5 +55,6 @@
|
|||||||
<file>us.json</file>
|
<file>us.json</file>
|
||||||
<file>vn.json</file>
|
<file>vn.json</file>
|
||||||
<file>za.json</file>
|
<file>za.json</file>
|
||||||
|
<file>emoji.json</file>
|
||||||
</gresource>
|
</gresource>
|
||||||
</gresources>
|
</gresources>
|
||||||
|
@ -1,42 +1,36 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<gresources>
|
<gresources>
|
||||||
<gresource prefix="/org/gnome/shell/theme">
|
<gresource prefix="/org/gnome/shell/theme">
|
||||||
<file>calendar-arrow-left.svg</file>
|
|
||||||
<file>calendar-arrow-right.svg</file>
|
|
||||||
<file>calendar-today.svg</file>
|
<file>calendar-today.svg</file>
|
||||||
<file>checkbox-focused.svg</file>
|
<file>checkbox-focused.svg</file>
|
||||||
<file>checkbox-off-focused.svg</file>
|
<file>checkbox-off-focused.svg</file>
|
||||||
<file>checkbox-off.svg</file>
|
<file>checkbox-off.svg</file>
|
||||||
<file>checkbox.svg</file>
|
<file>checkbox.svg</file>
|
||||||
<file>close-window.svg</file>
|
<file alias="icons/scalable/actions/color-pick.svg">color-pick.svg</file>
|
||||||
<file>close-window-active.svg</file>
|
|
||||||
<file>close-window-hover.svg</file>
|
|
||||||
<file>corner-ripple-ltr.png</file>
|
|
||||||
<file>corner-ripple-rtl.png</file>
|
|
||||||
<file>dash-placeholder.svg</file>
|
<file>dash-placeholder.svg</file>
|
||||||
<file>gnome-shell.css</file>
|
<file>gnome-shell.css</file>
|
||||||
<file>gnome-shell-high-contrast.css</file>
|
<file>gnome-shell-high-contrast.css</file>
|
||||||
<file>key-enter.svg</file>
|
<file alias="icons/scalable/status/message-indicator-symbolic.svg">message-indicator-symbolic.svg</file>
|
||||||
<file>key-hide.svg</file>
|
|
||||||
<file>key-layout.svg</file>
|
|
||||||
<file>key-shift.svg</file>
|
|
||||||
<file>key-shift-uppercase.svg</file>
|
|
||||||
<file>key-shift-latched-uppercase.svg</file>
|
|
||||||
<file alias="icons/message-indicator-symbolic.svg">message-indicator-symbolic.svg</file>
|
|
||||||
<file>no-events.svg</file>
|
<file>no-events.svg</file>
|
||||||
<file>no-notifications.svg</file>
|
<file>no-notifications.svg</file>
|
||||||
<file>noise-texture.png</file>
|
|
||||||
<file>pad-osd.css</file>
|
<file>pad-osd.css</file>
|
||||||
<file>page-indicator-active.svg</file>
|
<file alias="icons/scalable/status/eye-open-negative-filled-symbolic.svg">eye-open-negative-filled-symbolic.svg</file>
|
||||||
<file>page-indicator-inactive.svg</file>
|
<file alias="icons/scalable/status/eye-not-looking-symbolic.svg">eye-not-looking-symbolic.svg</file>
|
||||||
<file>page-indicator-checked.svg</file>
|
<file alias="icons/scalable/actions/pointer-double-click-symbolic.svg">pointer-double-click-symbolic.svg</file>
|
||||||
<file>page-indicator-hover.svg</file>
|
<file alias="icons/scalable/actions/pointer-drag-symbolic.svg">pointer-drag-symbolic.svg</file>
|
||||||
|
<file alias="icons/scalable/actions/pointer-primary-click-symbolic.svg">pointer-primary-click-symbolic.svg</file>
|
||||||
|
<file alias="icons/scalable/actions/pointer-secondary-click-symbolic.svg">pointer-secondary-click-symbolic.svg</file>
|
||||||
|
<file alias="icons/scalable/status/keyboard-caps-lock-filled-symbolic.svg">keyboard-caps-lock-filled-symbolic.svg</file>
|
||||||
|
<file alias="icons/scalable/status/keyboard-enter-symbolic.svg">keyboard-enter-symbolic.svg</file>
|
||||||
|
<file alias="icons/scalable/status/keyboard-hide-symbolic.svg">keyboard-hide-symbolic.svg</file>
|
||||||
|
<file alias="icons/scalable/status/keyboard-layout-filled-symbolic.svg">keyboard-layout-filled-symbolic.svg</file>
|
||||||
|
<file alias="icons/scalable/status/keyboard-shift-filled-symbolic.svg">keyboard-shift-filled-symbolic.svg</file>
|
||||||
<file>process-working.svg</file>
|
<file>process-working.svg</file>
|
||||||
<file>toggle-off-us.svg</file>
|
<file>toggle-off.svg</file>
|
||||||
<file>toggle-off-intl.svg</file>
|
<file>toggle-off-dark.svg</file>
|
||||||
<file>toggle-off-hc.svg</file>
|
<file>toggle-off-hc.svg</file>
|
||||||
<file>toggle-on-us.svg</file>
|
<file>toggle-on.svg</file>
|
||||||
<file>toggle-on-intl.svg</file>
|
<file>toggle-on-dark.svg</file>
|
||||||
<file>toggle-on-hc.svg</file>
|
<file>toggle-on-hc.svg</file>
|
||||||
</gresource>
|
</gresource>
|
||||||
</gresources>
|
</gresources>
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=GNOME Shell (wayland sync point)
|
|
||||||
After=gnome-shell.service
|
|
||||||
BindsTo=gnome-shell.service
|
|
||||||
Conflicts=gnome-shell-x11.target
|
|
@ -1,5 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=GNOME Shell (x11 sync point)
|
|
||||||
After=gnome-shell.service
|
|
||||||
BindsTo=gnome-shell.service
|
|
||||||
Conflicts=gnome-shell-wayland.target
|
|
@ -1,11 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=GNOME Shell
|
|
||||||
Wants=gnome-session.service
|
|
||||||
After=graphical-session-pre.target gnome-session-bus.target
|
|
||||||
PartOf=graphical-session.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=dbus
|
|
||||||
ExecStart=@bindir@/gnome-shell
|
|
||||||
Restart=on-failure
|
|
||||||
BusName=org.gnome.Shell
|
|
After Width: | Height: | Size: 6.1 KiB |
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M6.5 1.031c-.371 0-.742-.035-1.11.016-.367.05-.73.203-.972.476-.125.141-.215.309-.266.485-.047.18-.054.367-.02.55.032.184.102.356.192.516.09.164.203.309.317.457L5 4H2a1.8 1.8 0 00-.41.035.791.791 0 00-.36.195.791.791 0 00-.195.36C1 4.723 1 4.863 1 5v2.75l.77-.344c.265-.117.542-.23.832-.242.289-.016.586.074.812.254.227.18.383.441.465.723.082.277.101.57.121.859.02.316.04.637-.016.95-.058.312-.199.616-.43.831a1.264 1.264 0 01-.874.32c-.317-.007-.618-.128-.91-.257L1 10.5V14c0 .137.004.277.035.41a.791.791 0 00.195.36c.098.097.227.16.36.195.133.035.273.035.41.035h3l-.328-.68c-.14-.293-.274-.597-.29-.922-.015-.32.095-.652.31-.894.214-.242.523-.39.84-.453.316-.067.644-.059.968-.059.324 0 .652-.008.969.059.316.062.625.21.84.453.214.242.324.574.308.894-.015.325-.148.63-.289.922L8 15h3a1.8 1.8 0 00.41-.035.791.791 0 00.36-.195.791.791 0 00.195-.36C12 14.277 12 14.137 12 14v-3.563l.703.297c.29.125.59.239.902.246.313.004.63-.101.864-.308.238-.203.386-.496.46-.8C15 9.565 15 9.25 15 8.937c0-.313 0-.63-.07-.934-.075-.305-.223-.598-.461-.8a1.288 1.288 0 00-.864-.31c-.312.008-.613.122-.902.247L12 7.437V5a1.8 1.8 0 00-.035-.41.791.791 0 00-.195-.36.791.791 0 00-.36-.195C11.277 4 11.137 4 11 4H8l.36-.469c.113-.148.226-.293.316-.457.09-.16.16-.332.191-.515a1.248 1.248 0 00-.02-.551 1.256 1.256 0 00-.265-.485c-.242-.273-.605-.425-.973-.476-.367-.05-.738-.016-1.109-.016zm0 0" fill="#474747"/></svg>
|
After Width: | Height: | Size: 1.4 KiB |
1
data/icons/meson.build
Normal file
@ -0,0 +1 @@
|
|||||||
|
install_subdir('hicolor', install_dir: icondir)
|
@ -1,6 +1,6 @@
|
|||||||
desktop_files = [
|
desktop_files = [
|
||||||
'org.gnome.Shell.desktop',
|
'org.gnome.Shell.desktop',
|
||||||
'gnome-shell-extension-prefs.desktop'
|
'org.gnome.Shell.Extensions.desktop',
|
||||||
]
|
]
|
||||||
service_files = []
|
service_files = []
|
||||||
|
|
||||||
@ -13,7 +13,8 @@ desktopconf = configuration_data()
|
|||||||
# We substitute in bindir so it works as an autostart
|
# We substitute in bindir so it works as an autostart
|
||||||
# file when built in a non-system prefix
|
# file when built in a non-system prefix
|
||||||
desktopconf.set('bindir', bindir)
|
desktopconf.set('bindir', bindir)
|
||||||
desktopconf.set('VERSION', meson.project_version())
|
desktopconf.set('systemd_hidden', have_systemd ? 'true' : 'false')
|
||||||
|
|
||||||
foreach desktop_file : desktop_files
|
foreach desktop_file : desktop_files
|
||||||
i18n.merge_file('desktop',
|
i18n.merge_file('desktop',
|
||||||
input: configure_file(
|
input: configure_file(
|
||||||
@ -22,7 +23,7 @@ foreach desktop_file : desktop_files
|
|||||||
configuration: desktopconf
|
configuration: desktopconf
|
||||||
),
|
),
|
||||||
output: desktop_file,
|
output: desktop_file,
|
||||||
po_dir: '../po',
|
po_dir: po_dir,
|
||||||
install: true,
|
install: true,
|
||||||
install_dir: desktopdir,
|
install_dir: desktopdir,
|
||||||
type: 'desktop'
|
type: 'desktop'
|
||||||
@ -42,6 +43,7 @@ endforeach
|
|||||||
|
|
||||||
|
|
||||||
subdir('dbus-interfaces')
|
subdir('dbus-interfaces')
|
||||||
|
subdir('icons')
|
||||||
subdir('theme')
|
subdir('theme')
|
||||||
|
|
||||||
data_resources = [
|
data_resources = [
|
||||||
@ -98,15 +100,22 @@ if have_systemd
|
|||||||
unitconf = configuration_data()
|
unitconf = configuration_data()
|
||||||
unitconf.set('bindir', bindir)
|
unitconf.set('bindir', bindir)
|
||||||
|
|
||||||
unit = configure_file(
|
configure_file(
|
||||||
input: 'gnome-shell.service.in',
|
input: 'org.gnome.Shell@x11.service.in',
|
||||||
output: 'gnome-shell.service',
|
output: 'org.gnome.Shell@x11.service',
|
||||||
configuration: unitconf,
|
configuration: unitconf,
|
||||||
install_dir: systemduserunitdir
|
install_dir: systemduserunitdir
|
||||||
)
|
)
|
||||||
|
|
||||||
units = files('gnome-shell-wayland.target',
|
configure_file(
|
||||||
'gnome-shell-x11.target')
|
input: 'org.gnome.Shell@wayland.service.in',
|
||||||
|
output: 'org.gnome.Shell@wayland.service',
|
||||||
|
configuration: unitconf,
|
||||||
|
install_dir: systemduserunitdir
|
||||||
|
)
|
||||||
|
|
||||||
|
units = files('org.gnome.Shell.target',
|
||||||
|
'org.gnome.Shell-disable-extensions.service')
|
||||||
|
|
||||||
install_data(units, install_dir: systemduserunitdir)
|
install_data(units, install_dir: systemduserunitdir)
|
||||||
endif
|
endif
|
||||||
|
15
data/org.gnome.Shell-disable-extensions.service
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Disable GNOME Shell extensions after failure
|
||||||
|
# Note that this unit must not conflict with anything, and must
|
||||||
|
# be able to run in parallel with the gnome-session-shutdown.target.
|
||||||
|
DefaultDependencies=no
|
||||||
|
|
||||||
|
# We want to disable extensions only if gnome-shell has flagged the extensions
|
||||||
|
# to be a likely cause of trouble.
|
||||||
|
ConditionPathExists=%t/gnome-shell-disable-extensions
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
# Disable extensions
|
||||||
|
ExecStart=gsettings set org.gnome.shell disable-user-extensions true
|
||||||
|
Restart=no
|
10
data/org.gnome.Shell.Extensions.desktop.in.in
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
# Keep in sync with subprojects/extensions-app
|
||||||
|
Name=Extensions
|
||||||
|
# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
||||||
|
Icon=org.gnome.Shell.Extensions
|
||||||
|
# Never launch this, just provide name+icon to portal dialog
|
||||||
|
Exec=false
|
||||||
|
OnlyShowIn=GNOME;
|
||||||
|
NoDisplay=true
|
@ -3,10 +3,6 @@ Type=Application
|
|||||||
Name=GNOME Shell
|
Name=GNOME Shell
|
||||||
Comment=Window management and application launching
|
Comment=Window management and application launching
|
||||||
Exec=@bindir@/gnome-shell
|
Exec=@bindir@/gnome-shell
|
||||||
X-GNOME-Bugzilla-Bugzilla=GNOME
|
|
||||||
X-GNOME-Bugzilla-Product=gnome-shell
|
|
||||||
X-GNOME-Bugzilla-Component=general
|
|
||||||
X-GNOME-Bugzilla-Version=@VERSION@
|
|
||||||
Categories=GNOME;GTK;Core;
|
Categories=GNOME;GTK;Core;
|
||||||
OnlyShowIn=GNOME;
|
OnlyShowIn=GNOME;
|
||||||
NoDisplay=true
|
NoDisplay=true
|
||||||
@ -14,3 +10,4 @@ X-GNOME-Autostart-Phase=DisplayServer
|
|||||||
X-GNOME-Provides=panel;windowmanager;
|
X-GNOME-Provides=panel;windowmanager;
|
||||||
X-GNOME-Autostart-Notify=true
|
X-GNOME-Autostart-Notify=true
|
||||||
X-GNOME-AutoRestart=false
|
X-GNOME-AutoRestart=false
|
||||||
|
X-GNOME-HiddenUnderSystemd=@systemd_hidden@
|
||||||
|
10
data/org.gnome.Shell.target
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=GNOME Shell on Wayland
|
||||||
|
DefaultDependencies=no
|
||||||
|
|
||||||
|
Requisite=gnome-session-initialized.target
|
||||||
|
PartOf=gnome-session-initialized.target
|
||||||
|
Before=gnome-session-initialized.target
|
||||||
|
|
||||||
|
Wants=org.gnome.Shell@wayland.service
|
||||||
|
Wants=org.gnome.Shell@x11.service
|
34
data/org.gnome.Shell@wayland.service.in
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=GNOME Shell on Wayland
|
||||||
|
# On wayland, force a session shutdown
|
||||||
|
OnFailure=org.gnome.Shell-disable-extensions.service gnome-session-shutdown.target
|
||||||
|
OnFailureJobMode=replace-irreversibly
|
||||||
|
CollectMode=inactive-or-failed
|
||||||
|
RefuseManualStart=on
|
||||||
|
RefuseManualStop=on
|
||||||
|
|
||||||
|
After=gnome-session-manager.target
|
||||||
|
|
||||||
|
Requisite=gnome-session-initialized.target
|
||||||
|
PartOf=gnome-session-initialized.target
|
||||||
|
Before=gnome-session-initialized.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Slice=session.slice
|
||||||
|
Type=notify
|
||||||
|
# NOTE: This can be replaced with ConditionEnvironment=XDG_SESSION_TYPE=%I
|
||||||
|
# with systemd >= 245. Also, the current solution is kind of painful
|
||||||
|
# as systemd had a bug where it retries the condition.
|
||||||
|
# Only start if the template instance matches the session type.
|
||||||
|
ExecCondition=/bin/sh -c 'test "$XDG_SESSION_TYPE" = "%I" || exit 2'
|
||||||
|
ExecStart=@bindir@/gnome-shell
|
||||||
|
# Exit code 1 means we are probably *not* dealing with an extension failure
|
||||||
|
SuccessExitStatus=1
|
||||||
|
|
||||||
|
# unset some environment variables that were set by the shell and won't work now that the shell is gone
|
||||||
|
ExecStopPost=-systemctl --user unset-environment GNOME_SETUP_DISPLAY WAYLAND_DISPLAY DISPLAY XAUTHORITY
|
||||||
|
|
||||||
|
# On wayland we cannot restart
|
||||||
|
Restart=no
|
||||||
|
# Kill any stubborn child processes after this long
|
||||||
|
TimeoutStopSec=5
|
39
data/org.gnome.Shell@x11.service.in
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=GNOME Shell on X11
|
||||||
|
# On X11, try to show the GNOME Session Failed screen
|
||||||
|
OnFailure=org.gnome.Shell-disable-extensions.service gnome-session-failed.target
|
||||||
|
OnFailureJobMode=replace
|
||||||
|
CollectMode=inactive-or-failed
|
||||||
|
RefuseManualStart=on
|
||||||
|
RefuseManualStop=on
|
||||||
|
|
||||||
|
After=gnome-session-manager.target
|
||||||
|
|
||||||
|
Requisite=gnome-session-initialized.target
|
||||||
|
PartOf=gnome-session-initialized.target
|
||||||
|
Before=gnome-session-initialized.target
|
||||||
|
|
||||||
|
# Limit startup frequency more than the default
|
||||||
|
StartLimitIntervalSec=15s
|
||||||
|
StartLimitBurst=3
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Slice=session.slice
|
||||||
|
Type=notify
|
||||||
|
# NOTE: This can be replaced with ConditionEnvironment=XDG_SESSION_TYPE=%I
|
||||||
|
# with systemd >= 245. Also, the current solution is kind of painful
|
||||||
|
# as systemd had a bug where it retries the condition.
|
||||||
|
# Only start if the template instance matches the session type.
|
||||||
|
ExecCondition=/bin/sh -c 'test "$XDG_SESSION_TYPE" = "%I" || exit 2'
|
||||||
|
ExecStart=@bindir@/gnome-shell
|
||||||
|
# Exit code 1 means we are probably *not* dealing with an extension failure
|
||||||
|
SuccessExitStatus=1
|
||||||
|
|
||||||
|
# On X11 we do not need to unset any variables
|
||||||
|
|
||||||
|
# On X11 we want to restart on-success (Alt+F2 + r) and on-failure.
|
||||||
|
Restart=always
|
||||||
|
# Do not wait before restarting the shell
|
||||||
|
RestartSec=0ms
|
||||||
|
# Kill any stubborn child processes after this long
|
||||||
|
TimeoutStopSec=5
|
@ -21,6 +21,17 @@
|
|||||||
EnableExtension and DisableExtension D-Bus methods on org.gnome.Shell.
|
EnableExtension and DisableExtension D-Bus methods on org.gnome.Shell.
|
||||||
</description>
|
</description>
|
||||||
</key>
|
</key>
|
||||||
|
<key name="disabled-extensions" type="as">
|
||||||
|
<default>[]</default>
|
||||||
|
<summary>UUIDs of extensions to force disabling</summary>
|
||||||
|
<description>
|
||||||
|
GNOME Shell extensions have a UUID property; this key lists extensions
|
||||||
|
which should be disabled, even if loaded as part of the current mode.
|
||||||
|
You can also manipulate this list with the EnableExtension and
|
||||||
|
DisableExtension D-Bus methods on org.gnome.Shell.
|
||||||
|
This key takes precedence over the “enabled-extensions” setting.
|
||||||
|
</description>
|
||||||
|
</key>
|
||||||
<key name="disable-user-extensions" type="b">
|
<key name="disable-user-extensions" type="b">
|
||||||
<default>false</default>
|
<default>false</default>
|
||||||
<summary>Disable user extensions</summary>
|
<summary>Disable user extensions</summary>
|
||||||
@ -39,7 +50,7 @@
|
|||||||
</description>
|
</description>
|
||||||
</key>
|
</key>
|
||||||
<key name="favorite-apps" type="as">
|
<key name="favorite-apps" type="as">
|
||||||
<default>[ 'epiphany.desktop', 'evolution.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ]</default>
|
<default>[ 'org.gnome.Epiphany.desktop', 'org.gnome.Geary.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ]</default>
|
||||||
<summary>List of desktop file IDs for favorite applications</summary>
|
<summary>List of desktop file IDs for favorite applications</summary>
|
||||||
<description>
|
<description>
|
||||||
The applications corresponding to these identifiers
|
The applications corresponding to these identifiers
|
||||||
@ -90,8 +101,26 @@
|
|||||||
adapter is ever seen not to have devices associated to it.
|
adapter is ever seen not to have devices associated to it.
|
||||||
</description>
|
</description>
|
||||||
</key>
|
</key>
|
||||||
|
<key name="introspect" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
<summary>Enable introspection API</summary>
|
||||||
|
<description>
|
||||||
|
Enables a D-Bus API that allows to introspect the application state of
|
||||||
|
the shell.
|
||||||
|
</description>
|
||||||
|
</key>
|
||||||
|
<key name="app-picker-layout" type="aa{sv}">
|
||||||
|
<default>[]</default>
|
||||||
|
<summary>Layout of the app picker</summary>
|
||||||
|
<description>
|
||||||
|
Layout of the app picker. Each entry in the array is a page. Pages are
|
||||||
|
stored in the order they appear in GNOME Shell. Each page contains an
|
||||||
|
“application id” → 'data' pair. Currently, the following values are
|
||||||
|
stored as 'data':
|
||||||
|
• “position”: the position of the application icon in the page
|
||||||
|
</description>
|
||||||
|
</key>
|
||||||
<child name="keybindings" schema="org.gnome.shell.keybindings"/>
|
<child name="keybindings" schema="org.gnome.shell.keybindings"/>
|
||||||
<child name="keyboard" schema="org.gnome.shell.keyboard"/>
|
|
||||||
</schema>
|
</schema>
|
||||||
|
|
||||||
<schema id="org.gnome.shell.keybindings" path="/org/gnome/shell/keybindings/"
|
<schema id="org.gnome.shell.keybindings" path="/org/gnome/shell/keybindings/"
|
||||||
@ -132,21 +161,41 @@
|
|||||||
Keybinding to focus the active notification.
|
Keybinding to focus the active notification.
|
||||||
</description>
|
</description>
|
||||||
</key>
|
</key>
|
||||||
<key name="pause-resume-tweens" type="as">
|
<key name="switch-to-application-1" type="as">
|
||||||
<default>[]</default>
|
<default>["<Super>1"]</default>
|
||||||
<summary>Keybinding that pauses and resumes all running tweens, for debugging purposes</summary>
|
<summary>Switch to application 1</summary>
|
||||||
<description></description>
|
|
||||||
</key>
|
</key>
|
||||||
</schema>
|
<key name="switch-to-application-2" type="as">
|
||||||
|
<default>["<Super>2"]</default>
|
||||||
<schema id="org.gnome.shell.keyboard" path="/org/gnome/shell/keyboard/"
|
<summary>Switch to application 2</summary>
|
||||||
gettext-domain="@GETTEXT_PACKAGE@">
|
</key>
|
||||||
<key name="keyboard-type" type="s">
|
<key name="switch-to-application-3" type="as">
|
||||||
<default>'touch'</default>
|
<default>["<Super>3"]</default>
|
||||||
<summary>Which keyboard to use</summary>
|
<summary>Switch to application 3</summary>
|
||||||
<description>
|
</key>
|
||||||
The type of keyboard to use.
|
<key name="switch-to-application-4" type="as">
|
||||||
</description>
|
<default>["<Super>4"]</default>
|
||||||
|
<summary>Switch to application 4</summary>
|
||||||
|
</key>
|
||||||
|
<key name="switch-to-application-5" type="as">
|
||||||
|
<default>["<Super>5"]</default>
|
||||||
|
<summary>Switch to application 5</summary>
|
||||||
|
</key>
|
||||||
|
<key name="switch-to-application-6" type="as">
|
||||||
|
<default>["<Super>6"]</default>
|
||||||
|
<summary>Switch to application 6</summary>
|
||||||
|
</key>
|
||||||
|
<key name="switch-to-application-7" type="as">
|
||||||
|
<default>["<Super>7"]</default>
|
||||||
|
<summary>Switch to application 7</summary>
|
||||||
|
</key>
|
||||||
|
<key name="switch-to-application-8" type="as">
|
||||||
|
<default>["<Super>8"]</default>
|
||||||
|
<summary>Switch to application 8</summary>
|
||||||
|
</key>
|
||||||
|
<key name="switch-to-application-9" type="as">
|
||||||
|
<default>["<Super>9"]</default>
|
||||||
|
<summary>Switch to application 9</summary>
|
||||||
</key>
|
</key>
|
||||||
</schema>
|
</schema>
|
||||||
|
|
||||||
@ -190,6 +239,36 @@
|
|||||||
</key>
|
</key>
|
||||||
</schema>
|
</schema>
|
||||||
|
|
||||||
|
<schema id="org.gnome.shell.world-clocks" path="/org/gnome/shell/world-clocks/"
|
||||||
|
gettext-domain="@GETTEXT_PACKAGE@">
|
||||||
|
<key name="locations" type="av">
|
||||||
|
<summary>Locations</summary>
|
||||||
|
<description>
|
||||||
|
The locations to show in world clocks
|
||||||
|
</description>
|
||||||
|
<default>[]</default>
|
||||||
|
</key>
|
||||||
|
</schema>
|
||||||
|
|
||||||
|
<schema id="org.gnome.shell.weather" path="/org/gnome/shell/weather/"
|
||||||
|
gettext-domain="@GETTEXT_PACKAGE@">
|
||||||
|
<key name="automatic-location" type="b">
|
||||||
|
<summary>Automatic location</summary>
|
||||||
|
<description>
|
||||||
|
Whether to fetch the current location or not
|
||||||
|
</description>
|
||||||
|
<default>false</default>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="locations" type="av">
|
||||||
|
<summary>Location</summary>
|
||||||
|
<description>
|
||||||
|
The location for which to show a forecast
|
||||||
|
</description>
|
||||||
|
<default>[]</default>
|
||||||
|
</key>
|
||||||
|
</schema>
|
||||||
|
|
||||||
<!-- unused, change 00_org.gnome.shell.gschema.override instead -->
|
<!-- unused, change 00_org.gnome.shell.gschema.override instead -->
|
||||||
<schema id="org.gnome.shell.overrides" path="/org/gnome/shell/overrides/"
|
<schema id="org.gnome.shell.overrides" path="/org/gnome/shell/overrides/"
|
||||||
gettext-domain="@GETTEXT_PACKAGE@">
|
gettext-domain="@GETTEXT_PACKAGE@">
|
||||||
|
599
data/osk-layouts/ca.json
Normal file
@ -0,0 +1,599 @@
|
|||||||
|
{
|
||||||
|
"levels": [
|
||||||
|
{
|
||||||
|
"level": "",
|
||||||
|
"mode": "default",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"w"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"e",
|
||||||
|
"é",
|
||||||
|
"è",
|
||||||
|
"ê",
|
||||||
|
"ë",
|
||||||
|
"%",
|
||||||
|
"ę",
|
||||||
|
"ė",
|
||||||
|
"ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"r"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"t"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"y",
|
||||||
|
"%",
|
||||||
|
"ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"u",
|
||||||
|
"ù",
|
||||||
|
"û",
|
||||||
|
"%",
|
||||||
|
"ü",
|
||||||
|
"ú",
|
||||||
|
"ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"i",
|
||||||
|
"î",
|
||||||
|
"%",
|
||||||
|
"ï",
|
||||||
|
"ì",
|
||||||
|
"í",
|
||||||
|
"į",
|
||||||
|
"ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"o",
|
||||||
|
"ô",
|
||||||
|
"œ",
|
||||||
|
"%",
|
||||||
|
"ö",
|
||||||
|
"ò",
|
||||||
|
"ó",
|
||||||
|
"õ",
|
||||||
|
"ø",
|
||||||
|
"ō",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"p"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"a",
|
||||||
|
"à",
|
||||||
|
"â",
|
||||||
|
"%",
|
||||||
|
"æ",
|
||||||
|
"á",
|
||||||
|
"ä",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ā",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"s"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"d"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"f"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"g"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"h"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"j"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"k"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"l"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"x"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"c",
|
||||||
|
"ç",
|
||||||
|
"ć",
|
||||||
|
"č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"v"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"b"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"n"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "shift",
|
||||||
|
"mode": "latched",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Q"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"W"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"E",
|
||||||
|
"É",
|
||||||
|
"È",
|
||||||
|
"Ê",
|
||||||
|
"Ë",
|
||||||
|
"%",
|
||||||
|
"Ę",
|
||||||
|
"Ė",
|
||||||
|
"Ē"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"R"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"T"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Y",
|
||||||
|
"%",
|
||||||
|
"Ÿ"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"U",
|
||||||
|
"Ù",
|
||||||
|
"Û",
|
||||||
|
"%",
|
||||||
|
"Ü",
|
||||||
|
"Ú",
|
||||||
|
"Ū"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"I",
|
||||||
|
"Î",
|
||||||
|
"%",
|
||||||
|
"Ï",
|
||||||
|
"Ì",
|
||||||
|
"Í",
|
||||||
|
"Į",
|
||||||
|
"Ī"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"O",
|
||||||
|
"Ô",
|
||||||
|
"Œ",
|
||||||
|
"%",
|
||||||
|
"Ö",
|
||||||
|
"Ò",
|
||||||
|
"Ó",
|
||||||
|
"Õ",
|
||||||
|
"Ø",
|
||||||
|
"Ō",
|
||||||
|
"º"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"P"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"A",
|
||||||
|
"À",
|
||||||
|
"Â",
|
||||||
|
"%",
|
||||||
|
"Æ",
|
||||||
|
"Á",
|
||||||
|
"Ä",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ā",
|
||||||
|
"ª"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"S"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"D"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"F"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"G"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"H"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"J"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"K"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"L"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"Z"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"X"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"C",
|
||||||
|
"Ç",
|
||||||
|
"Ć",
|
||||||
|
"Č"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"V"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"B"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"N"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"#",
|
||||||
|
"!",
|
||||||
|
",",
|
||||||
|
"?",
|
||||||
|
"-",
|
||||||
|
":",
|
||||||
|
"'",
|
||||||
|
"@"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"1",
|
||||||
|
"¹",
|
||||||
|
"½",
|
||||||
|
"⅓",
|
||||||
|
"¼",
|
||||||
|
"⅛"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"2",
|
||||||
|
"²",
|
||||||
|
"⅔"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"3",
|
||||||
|
"³",
|
||||||
|
"¾",
|
||||||
|
"⅜"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"4",
|
||||||
|
"⁴"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"5",
|
||||||
|
"⅝"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"6"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"7",
|
||||||
|
"⅞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"8"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"9"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"0",
|
||||||
|
"ⁿ",
|
||||||
|
"∅"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"@"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"#"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
|
"¢",
|
||||||
|
"£",
|
||||||
|
"€",
|
||||||
|
"¥",
|
||||||
|
"₱"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"%",
|
||||||
|
"‰"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"&"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"-",
|
||||||
|
"_",
|
||||||
|
"–",
|
||||||
|
"—",
|
||||||
|
"·"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"+",
|
||||||
|
"±"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
"<",
|
||||||
|
"{",
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
")",
|
||||||
|
">",
|
||||||
|
"}",
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"*",
|
||||||
|
"†",
|
||||||
|
"‡",
|
||||||
|
"★"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"“",
|
||||||
|
"”",
|
||||||
|
"«",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
":"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
";"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"!",
|
||||||
|
"¡"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"?",
|
||||||
|
"¿"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"_"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"/"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"level": "opt+shift",
|
||||||
|
"mode": "locked",
|
||||||
|
"rows": [
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"~"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"|"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"•",
|
||||||
|
"♪",
|
||||||
|
"♥",
|
||||||
|
"♠",
|
||||||
|
"♦",
|
||||||
|
"♣"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"√"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Π",
|
||||||
|
"π"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"÷"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"×"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¶",
|
||||||
|
"§"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"∆"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"£"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¢"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"€"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"^",
|
||||||
|
"↑",
|
||||||
|
"↓",
|
||||||
|
"←",
|
||||||
|
"→"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"°",
|
||||||
|
"′",
|
||||||
|
"″"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"=",
|
||||||
|
"≠",
|
||||||
|
"≈",
|
||||||
|
"∞"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"}"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"\\"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"©"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"®"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"™"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"℅"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"["
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"]"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
"‹",
|
||||||
|
"≤",
|
||||||
|
"«"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
">",
|
||||||
|
"›",
|
||||||
|
"≥",
|
||||||
|
"»"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
" "
|
||||||
|
],
|
||||||
|
[
|
||||||
|
","
|
||||||
|
],
|
||||||
|
[
|
||||||
|
".",
|
||||||
|
"…"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"locale": "fr-CA",
|
||||||
|
"name": "French Canada"
|
||||||
|
}
|
@ -6,10 +6,20 @@
|
|||||||
"rows": [
|
"rows": [
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
"q"
|
"a",
|
||||||
|
"à",
|
||||||
|
"â",
|
||||||
|
"%",
|
||||||
|
"æ",
|
||||||
|
"á",
|
||||||
|
"ä",
|
||||||
|
"ã",
|
||||||
|
"å",
|
||||||
|
"ā",
|
||||||
|
"ª"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"w"
|
"z"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"e",
|
"e",
|
||||||
@ -71,17 +81,7 @@
|
|||||||
],
|
],
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
"a",
|
"q"
|
||||||
"à",
|
|
||||||
"â",
|
|
||||||
"%",
|
|
||||||
"æ",
|
|
||||||
"á",
|
|
||||||
"ä",
|
|
||||||
"ã",
|
|
||||||
"å",
|
|
||||||
"ā",
|
|
||||||
"ª"
|
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"s"
|
"s"
|
||||||
@ -106,11 +106,14 @@
|
|||||||
],
|
],
|
||||||
[
|
[
|
||||||
"l"
|
"l"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"m"
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
"z"
|
"w"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"x"
|
"x"
|
||||||
@ -131,7 +134,11 @@
|
|||||||
"n"
|
"n"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"m"
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
@ -161,10 +168,20 @@
|
|||||||
"rows": [
|
"rows": [
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
"Q"
|
"A",
|
||||||
|
"À",
|
||||||
|
"Â",
|
||||||
|
"%",
|
||||||
|
"Æ",
|
||||||
|
"Á",
|
||||||
|
"Ä",
|
||||||
|
"Ã",
|
||||||
|
"Å",
|
||||||
|
"Ā",
|
||||||
|
"ª"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"W"
|
"Z"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"E",
|
"E",
|
||||||
@ -226,17 +243,7 @@
|
|||||||
],
|
],
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
"A",
|
"Q"
|
||||||
"À",
|
|
||||||
"Â",
|
|
||||||
"%",
|
|
||||||
"Æ",
|
|
||||||
"Á",
|
|
||||||
"Ä",
|
|
||||||
"Ã",
|
|
||||||
"Å",
|
|
||||||
"Ā",
|
|
||||||
"ª"
|
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"S"
|
"S"
|
||||||
@ -261,11 +268,14 @@
|
|||||||
],
|
],
|
||||||
[
|
[
|
||||||
"L"
|
"L"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"M"
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
"Z"
|
"W"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"X"
|
"X"
|
||||||
@ -286,7 +296,11 @@
|
|||||||
"N"
|
"N"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"M"
|
"'",
|
||||||
|
"‘",
|
||||||
|
"’",
|
||||||
|
"‹",
|
||||||
|
"›"
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
@ -369,10 +383,10 @@
|
|||||||
"#"
|
"#"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"$",
|
"€",
|
||||||
"¢",
|
"¢",
|
||||||
"£",
|
"£",
|
||||||
"€",
|
"$",
|
||||||
"¥",
|
"¥",
|
||||||
"₱"
|
"₱"
|
||||||
],
|
],
|
||||||
@ -511,13 +525,14 @@
|
|||||||
"£"
|
"£"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
"¢"
|
"¢"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"€"
|
"¢"
|
||||||
],
|
|
||||||
[
|
|
||||||
"¥"
|
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"^",
|
"^",
|
||||||
@ -594,6 +609,6 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"locale": "fr-CA",
|
"locale": "fr",
|
||||||
"name": "French Canada"
|
"name": "French"
|
||||||
}
|
}
|
@ -12,7 +12,9 @@
|
|||||||
"w"
|
"w"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"e"
|
"e",
|
||||||
|
"é",
|
||||||
|
"ë"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"r"
|
"r"
|
||||||
@ -21,30 +23,58 @@
|
|||||||
"t"
|
"t"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"y"
|
"y",
|
||||||
|
"ý",
|
||||||
|
"ÿ"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"u"
|
"u",
|
||||||
|
"ú",
|
||||||
|
"ü",
|
||||||
|
"û",
|
||||||
|
"ù",
|
||||||
|
"ū"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"i"
|
"i",
|
||||||
|
"í",
|
||||||
|
"ï"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"o"
|
"o",
|
||||||
|
"ó",
|
||||||
|
"ô",
|
||||||
|
"ò",
|
||||||
|
"õ",
|
||||||
|
"œ",
|
||||||
|
"ō"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"p"
|
"p"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"å"
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
"a"
|
"a",
|
||||||
|
"á",
|
||||||
|
"ä",
|
||||||
|
"à",
|
||||||
|
"â",
|
||||||
|
"ã",
|
||||||
|
"ā"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"s"
|
"s",
|
||||||
|
"ß",
|
||||||
|
"ś",
|
||||||
|
"š"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"d"
|
"d",
|
||||||
|
"ð"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"f"
|
"f"
|
||||||
@ -62,7 +92,16 @@
|
|||||||
"k"
|
"k"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"l"
|
"l",
|
||||||
|
"ł"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"ø",
|
||||||
|
"ö"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"æ",
|
||||||
|
"ä"
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
@ -82,7 +121,9 @@
|
|||||||
"b"
|
"b"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"n"
|
"n",
|
||||||
|
"ñ",
|
||||||
|
"ń"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"m"
|
"m"
|
||||||
@ -121,7 +162,9 @@
|
|||||||
"W"
|
"W"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"E"
|
"E",
|
||||||
|
"É",
|
||||||
|
"Ë"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"R"
|
"R"
|
||||||
@ -130,30 +173,58 @@
|
|||||||
"T"
|
"T"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"Y"
|
"Y",
|
||||||
|
"Ý",
|
||||||
|
"Ÿ"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"U"
|
"U",
|
||||||
|
"Ú",
|
||||||
|
"Ü",
|
||||||
|
"Û",
|
||||||
|
"Ù",
|
||||||
|
"Ū"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"I"
|
"I",
|
||||||
|
"Í",
|
||||||
|
"Ï"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"O"
|
"O",
|
||||||
|
"Ó",
|
||||||
|
"Ô",
|
||||||
|
"Ò",
|
||||||
|
"Õ",
|
||||||
|
"Œ",
|
||||||
|
"Ō"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"P"
|
"P"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Å"
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
[
|
[
|
||||||
"A"
|
"A",
|
||||||
|
"Á",
|
||||||
|
"Ä",
|
||||||
|
"À",
|
||||||
|
"Â",
|
||||||
|
"Ã",
|
||||||
|
"Ā"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"S"
|
"S",
|
||||||
|
"SS",
|
||||||
|
"Ś",
|
||||||
|
"Š"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"D"
|
"D",
|
||||||
|
"Ð"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"F"
|
"F"
|
||||||
@ -171,7 +242,16 @@
|
|||||||
"K"
|
"K"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"L"
|
"L",
|
||||||
|
"Ł"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Ø",
|
||||||
|
"Ö"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"Æ",
|
||||||
|
"Ä"
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
@ -191,7 +271,9 @@
|
|||||||
"B"
|
"B"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"N"
|
"N",
|
||||||
|
"Ñ",
|
||||||
|
"Ń"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"M"
|
"M"
|
||||||
@ -277,10 +359,10 @@
|
|||||||
"#"
|
"#"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"$",
|
"€",
|
||||||
"¢",
|
"¢",
|
||||||
"£",
|
"£",
|
||||||
"€",
|
"$",
|
||||||
"¥",
|
"¥",
|
||||||
"₱"
|
"₱"
|
||||||
],
|
],
|
||||||
@ -419,13 +501,14 @@
|
|||||||
"£"
|
"£"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
"¥"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"$",
|
||||||
"¢"
|
"¢"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"€"
|
"¢"
|
||||||
],
|
|
||||||
[
|
|
||||||
"¥"
|
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"^",
|
"^",
|
||||||
|
@ -1,82 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="16"
|
|
||||||
height="16"
|
|
||||||
id="svg2"
|
|
||||||
version="1.1"
|
|
||||||
inkscape:version="0.48+devel r9942 custom"
|
|
||||||
sodipodi:docname="New document 4">
|
|
||||||
<defs
|
|
||||||
id="defs4" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="1"
|
|
||||||
inkscape:cx="8.984481"
|
|
||||||
inkscape:cy="5.6224906"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
borderlayer="true"
|
|
||||||
inkscape:showpageshadow="false"
|
|
||||||
inkscape:window-width="930"
|
|
||||||
inkscape:window-height="681"
|
|
||||||
inkscape:window-x="1892"
|
|
||||||
inkscape:window-y="272"
|
|
||||||
inkscape:window-maximized="0">
|
|
||||||
<inkscape:grid
|
|
||||||
type="xygrid"
|
|
||||||
id="grid17403"
|
|
||||||
empspacing="5"
|
|
||||||
visible="true"
|
|
||||||
enabled="true"
|
|
||||||
snapvisiblegridlinesonly="true" />
|
|
||||||
</sodipodi:namedview>
|
|
||||||
<metadata
|
|
||||||
id="metadata7">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title></dc:title>
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(0,-1036.3622)">
|
|
||||||
<path
|
|
||||||
sodipodi:type="star"
|
|
||||||
style="fill:#5f5f5f;fill-opacity:1;stroke:#5f5f5f;stroke-width:0.43015847;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
|
||||||
id="path18028"
|
|
||||||
sodipodi:sides="3"
|
|
||||||
sodipodi:cx="84.5"
|
|
||||||
sodipodi:cy="337.5"
|
|
||||||
sodipodi:r1="5"
|
|
||||||
sodipodi:r2="2.5"
|
|
||||||
sodipodi:arg1="0.52359878"
|
|
||||||
sodipodi:arg2="1.5707963"
|
|
||||||
inkscape:flatsided="true"
|
|
||||||
inkscape:rounded="0"
|
|
||||||
inkscape:randomized="0"
|
|
||||||
d="M 88.830127,340 80.169873,340 84.5,332.5 z"
|
|
||||||
transform="matrix(0,1.3621708,0.99186247,0,-325.48222,929.32667)" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.5 KiB |
@ -1,82 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="16"
|
|
||||||
height="16"
|
|
||||||
id="svg2"
|
|
||||||
version="1.1"
|
|
||||||
inkscape:version="0.48+devel r9942 custom"
|
|
||||||
sodipodi:docname="arrow-left.svg">
|
|
||||||
<defs
|
|
||||||
id="defs4" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="1"
|
|
||||||
inkscape:cx="7.7366092"
|
|
||||||
inkscape:cy="6.4536271"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
borderlayer="true"
|
|
||||||
inkscape:showpageshadow="false"
|
|
||||||
inkscape:window-width="930"
|
|
||||||
inkscape:window-height="681"
|
|
||||||
inkscape:window-x="1892"
|
|
||||||
inkscape:window-y="272"
|
|
||||||
inkscape:window-maximized="0">
|
|
||||||
<inkscape:grid
|
|
||||||
type="xygrid"
|
|
||||||
id="grid17403"
|
|
||||||
empspacing="5"
|
|
||||||
visible="true"
|
|
||||||
enabled="true"
|
|
||||||
snapvisiblegridlinesonly="true" />
|
|
||||||
</sodipodi:namedview>
|
|
||||||
<metadata
|
|
||||||
id="metadata7">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title></dc:title>
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(0,-1036.3622)">
|
|
||||||
<path
|
|
||||||
sodipodi:type="star"
|
|
||||||
style="fill:#5f5f5f;fill-opacity:1;stroke:#5f5f5f;stroke-width:0.43015847;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
|
||||||
id="path18028"
|
|
||||||
sodipodi:sides="3"
|
|
||||||
sodipodi:cx="84.5"
|
|
||||||
sodipodi:cy="337.5"
|
|
||||||
sodipodi:r1="5"
|
|
||||||
sodipodi:r2="2.5"
|
|
||||||
sodipodi:arg1="0.52359878"
|
|
||||||
sodipodi:arg2="1.5707963"
|
|
||||||
inkscape:flatsided="true"
|
|
||||||
inkscape:rounded="0"
|
|
||||||
inkscape:randomized="0"
|
|
||||||
d="M 88.830127,340 80.169873,340 84.5,332.5 z"
|
|
||||||
transform="matrix(0,1.3621708,-0.99186247,0,342.48324,929.32667)" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.5 KiB |
@ -1,81 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
version="1.0"
|
|
||||||
id="Foreground"
|
|
||||||
x="0px"
|
|
||||||
y="0px"
|
|
||||||
width="32"
|
|
||||||
height="32"
|
|
||||||
viewBox="0 0 32 32"
|
|
||||||
enable-background="new 0 0 16 16"
|
|
||||||
xml:space="preserve"
|
|
||||||
sodipodi:version="0.32"
|
|
||||||
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
|
|
||||||
sodipodi:docname="close-window-active.svg"
|
|
||||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
|
|
||||||
id="metadata2399"><rdf:RDF><cc:Work
|
|
||||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
|
||||||
id="defs2397"><linearGradient
|
|
||||||
id="linearGradient3173"><stop
|
|
||||||
style="stop-color:#c4c4c4;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop3175" /><stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="1"
|
|
||||||
id="stop3177" /></linearGradient><inkscape:perspective
|
|
||||||
sodipodi:type="inkscape:persp3d"
|
|
||||||
inkscape:vp_x="0 : 11 : 1"
|
|
||||||
inkscape:vp_y="0 : 1375 : 0"
|
|
||||||
inkscape:vp_z="22 : 11 : 1"
|
|
||||||
inkscape:persp3d-origin="11 : 7.3333334 : 1"
|
|
||||||
id="perspective2401" /></defs><sodipodi:namedview
|
|
||||||
inkscape:window-height="1106"
|
|
||||||
inkscape:window-width="1700"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:pageopacity="0"
|
|
||||||
guidetolerance="10.0"
|
|
||||||
gridtolerance="10.0"
|
|
||||||
objecttolerance="10.0"
|
|
||||||
borderopacity="1.0"
|
|
||||||
bordercolor="#666666"
|
|
||||||
pagecolor="#797979"
|
|
||||||
id="base"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:zoom="4"
|
|
||||||
inkscape:cx="28.483745"
|
|
||||||
inkscape:cy="67.714004"
|
|
||||||
inkscape:window-x="1427"
|
|
||||||
inkscape:window-y="127"
|
|
||||||
inkscape:current-layer="Foreground"
|
|
||||||
showguides="true"
|
|
||||||
inkscape:guide-bbox="true"
|
|
||||||
borderlayer="true"
|
|
||||||
inkscape:showpageshadow="false"
|
|
||||||
inkscape:window-maximized="0"
|
|
||||||
inkscape:document-rotation="0"><inkscape:grid
|
|
||||||
type="xygrid"
|
|
||||||
id="grid11246"
|
|
||||||
empspacing="32"
|
|
||||||
visible="true"
|
|
||||||
enabled="true"
|
|
||||||
snapvisiblegridlinesonly="true" /></sodipodi:namedview><path
|
|
||||||
d="m 4.4362021,16 c 0,-6.410121 5.1728276,-11.60728 11.5529359,-11.60728 6.380109,0 11.552937,5.197159 11.552937,11.60728 0,6.410122 -5.172828,11.607281 -11.552937,11.607281 C 9.6090297,27.607281 4.4362021,22.410122 4.4362021,16 Z"
|
|
||||||
id="path883"
|
|
||||||
style="color:#000000;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;fill:#a5c8ec;fill-opacity:1;fill-rule:nonzero;stroke:#2975c4;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
|
||||||
sodipodi:nodetypes="csssc"
|
|
||||||
inkscape:connector-curvature="0" /><path
|
|
||||||
d="m 11.718386,11.764547 h 1.055207 c 0.01091,-1.26e-4 0.02193,-4.86e-4 0.03298,0 0.269026,0.01183 0.538019,0.135679 0.725455,0.329752 l 2.407192,2.407192 2.440166,-2.407192 c 0.28029,-0.243226 0.471333,-0.322366 0.725455,-0.329752 h 1.055207 v 1.055208 c 0,0.302285 -0.03623,0.581049 -0.263801,0.791405 l -2.407191,2.407191 2.374217,2.374216 c 0.198577,0.198559 0.296768,0.478484 0.296775,0.758432 v 1.055206 h -1.055211 c -0.279947,-10e-6 -0.559877,-0.09824 -0.75843,-0.296777 l -2.407192,-2.407192 -2.407192,2.407192 c -0.198551,0.198579 -0.478493,0.296777 -0.758429,0.296777 H 11.71839 v -1.055206 c -3e-6,-0.279936 0.0982,-0.559873 0.296777,-0.758432 L 14.422359,16.018351 12.015167,13.61116 C 11.79279,13.405784 11.69527,13.116003 11.71839,12.819755 Z"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path887"
|
|
||||||
style="color:#bebebe;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:'Andale Mono';-inkscape-font-specification:'Andale Mono';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#4a90d9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.87958801;marker:none;enable-background:new"
|
|
||||||
sodipodi:nodetypes="ccsccccccccccccccccccccccc" /></svg>
|
|
Before Width: | Height: | Size: 4.6 KiB |
@ -1,81 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
version="1.0"
|
|
||||||
id="Foreground"
|
|
||||||
x="0px"
|
|
||||||
y="0px"
|
|
||||||
width="32"
|
|
||||||
height="32"
|
|
||||||
viewBox="0 0 32 32"
|
|
||||||
enable-background="new 0 0 16 16"
|
|
||||||
xml:space="preserve"
|
|
||||||
sodipodi:version="0.32"
|
|
||||||
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
|
|
||||||
sodipodi:docname="close-window-hover.svg"
|
|
||||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
|
|
||||||
id="metadata2399"><rdf:RDF><cc:Work
|
|
||||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
|
||||||
id="defs2397"><linearGradient
|
|
||||||
id="linearGradient3173"><stop
|
|
||||||
style="stop-color:#c4c4c4;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop3175" /><stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="1"
|
|
||||||
id="stop3177" /></linearGradient><inkscape:perspective
|
|
||||||
sodipodi:type="inkscape:persp3d"
|
|
||||||
inkscape:vp_x="0 : 11 : 1"
|
|
||||||
inkscape:vp_y="0 : 1375 : 0"
|
|
||||||
inkscape:vp_z="22 : 11 : 1"
|
|
||||||
inkscape:persp3d-origin="11 : 7.3333334 : 1"
|
|
||||||
id="perspective2401" /></defs><sodipodi:namedview
|
|
||||||
inkscape:window-height="1106"
|
|
||||||
inkscape:window-width="1700"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:pageopacity="0"
|
|
||||||
guidetolerance="10.0"
|
|
||||||
gridtolerance="10.0"
|
|
||||||
objecttolerance="10.0"
|
|
||||||
borderopacity="1.0"
|
|
||||||
bordercolor="#666666"
|
|
||||||
pagecolor="#797979"
|
|
||||||
id="base"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:zoom="4"
|
|
||||||
inkscape:cx="28.483745"
|
|
||||||
inkscape:cy="67.714004"
|
|
||||||
inkscape:window-x="1427"
|
|
||||||
inkscape:window-y="127"
|
|
||||||
inkscape:current-layer="Foreground"
|
|
||||||
showguides="true"
|
|
||||||
inkscape:guide-bbox="true"
|
|
||||||
borderlayer="true"
|
|
||||||
inkscape:showpageshadow="false"
|
|
||||||
inkscape:window-maximized="0"
|
|
||||||
inkscape:document-rotation="0"><inkscape:grid
|
|
||||||
type="xygrid"
|
|
||||||
id="grid11246"
|
|
||||||
empspacing="32"
|
|
||||||
visible="true"
|
|
||||||
enabled="true"
|
|
||||||
snapvisiblegridlinesonly="true" /></sodipodi:namedview><path
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="csssc"
|
|
||||||
style="color:#000000;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;fill:#2975c4;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
|
||||||
id="path822"
|
|
||||||
d="m 4.4362021,16 c 0,-6.410121 5.1728276,-11.60728 11.5529359,-11.60728 6.380109,0 11.552937,5.197159 11.552937,11.60728 0,6.410122 -5.172828,11.607281 -11.552937,11.607281 C 9.6090297,27.607281 4.4362021,22.410122 4.4362021,16 Z" /><path
|
|
||||||
sodipodi:nodetypes="ccsccccccccccccccccccccccc"
|
|
||||||
style="color:#bebebe;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:'Andale Mono';-inkscape-font-specification:'Andale Mono';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.87958801;marker:none;enable-background:new"
|
|
||||||
id="path826"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
d="m 11.718386,11.764547 h 1.055207 c 0.01091,-1.26e-4 0.02193,-4.86e-4 0.03298,0 0.269026,0.01183 0.538019,0.135679 0.725455,0.329752 l 2.407192,2.407192 2.440166,-2.407192 c 0.28029,-0.243226 0.471333,-0.322366 0.725455,-0.329752 h 1.055207 v 1.055208 c 0,0.302285 -0.03623,0.581049 -0.263801,0.791405 l -2.407191,2.407191 2.374217,2.374216 c 0.198577,0.198559 0.296768,0.478484 0.296775,0.758432 v 1.055206 h -1.055211 c -0.279947,-10e-6 -0.559877,-0.09824 -0.75843,-0.296777 l -2.407192,-2.407192 -2.407192,2.407192 c -0.198551,0.198579 -0.478493,0.296777 -0.758429,0.296777 H 11.71839 v -1.055206 c -3e-6,-0.279936 0.0982,-0.559873 0.296777,-0.758432 L 14.422359,16.018351 12.015167,13.61116 C 11.79279,13.405784 11.69527,13.116003 11.71839,12.819755 Z" /></svg>
|
|
Before Width: | Height: | Size: 4.6 KiB |
@ -1,85 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
version="1.0"
|
|
||||||
id="Foreground"
|
|
||||||
x="0px"
|
|
||||||
y="0px"
|
|
||||||
width="32"
|
|
||||||
height="32"
|
|
||||||
viewBox="0 0 32 32"
|
|
||||||
enable-background="new 0 0 16 16"
|
|
||||||
xml:space="preserve"
|
|
||||||
sodipodi:version="0.32"
|
|
||||||
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
|
|
||||||
sodipodi:docname="close-window.svg"
|
|
||||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
|
|
||||||
id="metadata2399"><rdf:RDF><cc:Work
|
|
||||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
|
||||||
id="defs2397"><linearGradient
|
|
||||||
id="linearGradient3173"><stop
|
|
||||||
style="stop-color:#c4c4c4;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop3175" /><stop
|
|
||||||
style="stop-color:#ffffff;stop-opacity:1;"
|
|
||||||
offset="1"
|
|
||||||
id="stop3177" /></linearGradient><inkscape:perspective
|
|
||||||
sodipodi:type="inkscape:persp3d"
|
|
||||||
inkscape:vp_x="0 : 11 : 1"
|
|
||||||
inkscape:vp_y="0 : 1375 : 0"
|
|
||||||
inkscape:vp_z="22 : 11 : 1"
|
|
||||||
inkscape:persp3d-origin="11 : 7.3333334 : 1"
|
|
||||||
id="perspective2401" /></defs><sodipodi:namedview
|
|
||||||
inkscape:window-height="1106"
|
|
||||||
inkscape:window-width="1700"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:pageopacity="0"
|
|
||||||
guidetolerance="10.0"
|
|
||||||
gridtolerance="10.0"
|
|
||||||
objecttolerance="10.0"
|
|
||||||
borderopacity="1.0"
|
|
||||||
bordercolor="#666666"
|
|
||||||
pagecolor="#797979"
|
|
||||||
id="base"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:zoom="4"
|
|
||||||
inkscape:cx="28.483745"
|
|
||||||
inkscape:cy="67.714004"
|
|
||||||
inkscape:window-x="1427"
|
|
||||||
inkscape:window-y="127"
|
|
||||||
inkscape:current-layer="Foreground"
|
|
||||||
showguides="true"
|
|
||||||
inkscape:guide-bbox="true"
|
|
||||||
borderlayer="true"
|
|
||||||
inkscape:showpageshadow="false"
|
|
||||||
inkscape:window-maximized="0"
|
|
||||||
inkscape:document-rotation="0"><inkscape:grid
|
|
||||||
type="xygrid"
|
|
||||||
id="grid11246"
|
|
||||||
empspacing="32"
|
|
||||||
visible="true"
|
|
||||||
enabled="true"
|
|
||||||
snapvisiblegridlinesonly="true" /></sodipodi:namedview><path
|
|
||||||
d="m 4.4362021,15.860384 c 0,-6.410121 5.1728276,-11.60728 11.5529359,-11.60728 6.380109,0 11.552937,5.197159 11.552937,11.60728 0,6.410122 -5.172828,11.607281 -11.552937,11.607281 -6.3801083,0 -11.5529359,-5.197159 -11.5529359,-11.607281 z"
|
|
||||||
id="path2394-32"
|
|
||||||
style="color:#000000;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#2975c4;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
|
||||||
sodipodi:nodetypes="csssc"
|
|
||||||
inkscape:connector-curvature="0" /><path
|
|
||||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.49900004;fill:#4a90d9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.74932218;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
|
||||||
d="m 6.4654832,15.001321 c -0.025906,0.288419 -0.044417,0.579469 -0.044417,0.874662 0,5.313347 4.2883848,9.621271 9.5768588,9.621271 5.288466,0 9.575143,-4.307924 9.575143,-9.621271 0,-0.295193 -0.01852,-0.586243 -0.04441,-0.874662 -0.440376,4.903023 -4.536071,8.746611 -9.53073,8.746611 -4.994659,0 -9.0920617,-3.843588 -9.5324391,-8.746611 z"
|
|
||||||
id="path2561"
|
|
||||||
inkscape:connector-curvature="0" /><path
|
|
||||||
d="m 11.718386,11.639547 h 1.055207 c 0.01091,-1.26e-4 0.02193,-4.86e-4 0.03298,0 0.269026,0.01183 0.538019,0.135679 0.725455,0.329752 l 2.407192,2.407192 2.440166,-2.407192 c 0.28029,-0.243226 0.471333,-0.322366 0.725455,-0.329752 h 1.055207 v 1.055208 c 0,0.302285 -0.03623,0.581049 -0.263801,0.791405 l -2.407191,2.407191 2.374217,2.374216 c 0.198577,0.198559 0.296768,0.478484 0.296775,0.758432 v 1.055206 h -1.055211 c -0.279947,-10e-6 -0.559877,-0.09824 -0.75843,-0.296777 l -2.407192,-2.407192 -2.407192,2.407192 c -0.198551,0.198579 -0.478493,0.296777 -0.758429,0.296777 H 11.71839 v -1.055206 c -3e-6,-0.279936 0.0982,-0.559873 0.296777,-0.758432 L 14.422359,15.893351 12.015167,13.48616 C 11.79279,13.280784 11.69527,12.991003 11.71839,12.694755 Z"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path27279-0-5"
|
|
||||||
style="color:#bebebe;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:'Andale Mono';-inkscape-font-specification:'Andale Mono';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#4a90d9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.87958801;marker:none;enable-background:new"
|
|
||||||
sodipodi:nodetypes="ccsccccccccccccccccccccccc" /></svg>
|
|
Before Width: | Height: | Size: 5.3 KiB |
94
data/theme/color-pick.svg
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="5.4116011mm"
|
||||||
|
height="5.1374583mm"
|
||||||
|
viewBox="0 0 5.4116011 5.1374583"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5595"
|
||||||
|
inkscape:version="0.92.4 (unknown)"
|
||||||
|
sodipodi:docname="color-pick.svg">
|
||||||
|
<defs
|
||||||
|
id="defs5589">
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
x="-0.10291173"
|
||||||
|
width="1.2058235"
|
||||||
|
y="-0.065432459"
|
||||||
|
height="1.1308649"
|
||||||
|
id="filter5601"
|
||||||
|
style="color-interpolation-filters:sRGB">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.610872"
|
||||||
|
id="feGaussianBlur5603" />
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="15.839192"
|
||||||
|
inkscape:cx="39.387731"
|
||||||
|
inkscape:cy="12.554326"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1016"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="27"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0" />
|
||||||
|
<metadata
|
||||||
|
id="metadata5592">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-103.12753,-146.26461)">
|
||||||
|
<circle
|
||||||
|
r="8.4810486"
|
||||||
|
cy="9.82623"
|
||||||
|
cx="10.226647"
|
||||||
|
id="circle7584"
|
||||||
|
style="color:#000000;display:inline;overflow:visible;opacity:0.6;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;filter:url(#filter5601)"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,103.12753,146.26461)" />
|
||||||
|
<path
|
||||||
|
style="color:#000000;display:inline;overflow:visible;opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:0.26399338;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
|
||||||
|
d="m 108.07728,148.64122 c 0,1.2393 -1.00465,2.24394 -2.24395,2.24394 -1.23929,0 -2.24716,-1.00465 -2.25221,-2.24394 l -0.009,-2.24458 2.26136,6.4e-4 c 1.2393,3.4e-4 2.24395,1.00464 2.24395,2.24394 z"
|
||||||
|
id="path7523-7"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ssscss" />
|
||||||
|
<circle
|
||||||
|
style="color:#000000;display:inline;overflow:visible;opacity:1;vector-effect:none;fill:#50dbb5;fill-opacity:1;stroke:none;stroke-width:0.36885914;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
|
||||||
|
id="path7482-1"
|
||||||
|
cx="105.83707"
|
||||||
|
cy="148.64352"
|
||||||
|
r="1.844296" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.3 KiB |
4
data/theme/eye-not-looking-symbolic.svg
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16">
|
||||||
|
<path d="M13.98 1.99a1 1 0 0 0-.687.303l-.984.984A8 8 0 0 0 8 2 8 8 0 0 0 .262 8.01a8 8 0 0 0 2.943 4.37l-.912.913a1 1 0 1 0 1.414 1.414l11-11a1 1 0 0 0-.727-1.717zM8 4a4 4 0 0 1 2.611.974l-1.42 1.42A2 2 0 0 0 8 6a2 2 0 0 0-2 2 2 2 0 0 0 .396 1.19l-1.42 1.42A4 4 0 0 1 4 8a4 4 0 0 1 4-4zm7.03 2.209l-3.344 3.343a4 4 0 0 1-2.127 2.127l-2.28 2.28a8 8 0 0 0 .721.04 8 8 0 0 0 7.738-6.01 8 8 0 0 0-.709-1.78zm-7.53.79a.5.5 0 0 1 .5.5.5.5 0 0 1-.5.5.5.5 0 0 1-.5-.5.5.5 0 0 1 .5-.5z" fill="#2e3436"/>
|
||||||
|
</svg>
|
||||||
|
|
After Width: | Height: | Size: 572 B |
27
data/theme/eye-open-negative-filled-symbolic.svg
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" width="16" viewBox="0 0 16 16" version="1.1" id="svg7384" height="16">
|
||||||
|
<metadata id="metadata90">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||||
|
<dc:title>Gnome Symbolic Icon Theme</dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<title id="title9167">Gnome Symbolic Icon Theme</title>
|
||||||
|
<defs id="defs7386">
|
||||||
|
<linearGradient osb:paint="solid" id="linearGradient7212">
|
||||||
|
<stop style="stop-color:#000000;stop-opacity:1;" offset="0" id="stop7214"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g transform="translate(-341.0002,-13.000323)" style="display:inline" id="layer9"/>
|
||||||
|
<g transform="translate(-100,-380.00032)" id="layer1"/>
|
||||||
|
<g transform="translate(-100,-380.00032)" style="display:inline" id="layer10">
|
||||||
|
<path d="m 108,382 a 8,8 0 0 0 -7.73828,6.00977 A 8,8 0 0 0 108,394 8,8 0 0 0 115.73828,387.99023 8,8 0 0 0 108,382 Z m 0,2 a 4,4 0 0 1 4,4 4,4 0 0 1 -4,4 4,4 0 0 1 -4,-4 4,4 0 0 1 4,-4 z" id="path2314" style="opacity:1;vector-effect:none;fill:#2e3436;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"/>
|
||||||
|
<path id="path2318" d="m 110,388.00003 a 2,2 0 0 1 -2,2 2,2 0 0 1 -2,-2 2,2 0 0 1 2,-2 2,2 0 0 1 2,2 z" style="vector-effect:none;fill:#2e3436;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/>
|
||||||
|
</g>
|
||||||
|
<g transform="translate(-100,-380.00032)" id="g6387"/>
|
||||||
|
<g transform="translate(-100,-380.00032)" id="layer11"/>
|
||||||
|
</svg>
|
||||||
|
|
After Width: | Height: | Size: 2.1 KiB |
@ -1,14 +1,17 @@
|
|||||||
|
$variant: 'dark';
|
||||||
|
|
||||||
@import "gnome-shell-sass/_high-contrast-colors"; //use gtk colors
|
@import "gnome-shell-sass/_high-contrast-colors"; //use gtk colors
|
||||||
@import "gnome-shell-sass/_drawing";
|
@import "gnome-shell-sass/_drawing";
|
||||||
@import "gnome-shell-sass/_common";
|
@import "gnome-shell-sass/_common";
|
||||||
|
@import "gnome-shell-sass/_widgets";
|
||||||
|
|
||||||
//force symbolic icons
|
//force symbolic icons
|
||||||
stage {
|
stage {
|
||||||
-st-icon-style: symbolic;
|
-st-icon-style: symbolic;
|
||||||
}
|
}
|
||||||
|
|
||||||
.toggle-switch { width: 48px; }
|
.toggle-switch { width: 48px; }
|
||||||
.toggle-switch-us, .toggle-switch-intl {
|
.toggle-switch-us, .toggle-switch-intl {
|
||||||
background-image: url("resource:///org/gnome/shell/theme/toggle-off-hc.svg");
|
background-image: url("resource:///org/gnome/shell/theme/toggle-off-hc.svg");
|
||||||
&:checked { background-image: url("resource:///org/gnome/shell/theme/toggle-on-hc.svg"); }
|
&:checked { background-image: url("resource:///org/gnome/shell/theme/toggle-on-hc.svg"); }
|
||||||
}
|
}
|
||||||
|
@ -1,39 +1,38 @@
|
|||||||
// When color definition differs for dark and light variant,
|
// When color definition differs for dark and light variant,
|
||||||
// it gets @if ed depending on $variant
|
// it gets @if ed depending on $variant
|
||||||
|
|
||||||
|
$base_color: if($variant == 'light', #fff, lighten(desaturate(#241f31, 20%), 2%));
|
||||||
|
$bg_color: if($variant == 'light', #f6f5f4, darken(desaturate(#3d3846, 100%), 4%));
|
||||||
|
$fg_color: if($variant == 'light', #2e3436, #eeeeec);
|
||||||
|
|
||||||
$base_color: if($variant =='light', #ffffff, #292929);
|
$selected_fg_color: #fff;
|
||||||
$bg_color: if($variant =='light', #ededed, #393f3f);
|
$selected_bg_color: if($variant == 'light', #3584e4, darken(#3584e4, 10%));
|
||||||
$fg_color: if($variant =='light', #2e3436, #eeeeec);
|
$selected_borders_color: if($variant== 'light', darken($selected_bg_color, 15%), darken($selected_bg_color, 30%));
|
||||||
|
$borders_color: if($variant == 'light', darken($bg_color, 18%), darken($bg_color, 8%));
|
||||||
$selected_fg_color: #ffffff;
|
$borders_edge: if($variant == 'light', rgba(255,255,255,0.8), transparentize($fg_color, 0.93));
|
||||||
$selected_bg_color: if($variant == 'light', #4a90d9, darken(#4a90d9,20%));
|
$link_color: if($variant == 'light', darken($selected_bg_color, 10%), lighten($selected_bg_color, 20%));
|
||||||
$selected_borders_color: if($variant=='light', darken($selected_bg_color, 30%),
|
$link_visited_color: if($variant == 'light', darken($selected_bg_color, 20%), lighten($selected_bg_color, 10%));
|
||||||
darken($selected_bg_color, 20%));
|
|
||||||
$borders_color: if($variant =='light', darken($bg_color,30%), darken($bg_color,12%));
|
|
||||||
$borders_edge: if($variant =='light', white, transparentize($fg_color, 0.9));
|
|
||||||
$link_color: if($variant == 'light', darken($selected_bg_color,10%),
|
|
||||||
lighten($selected_bg_color,20%));
|
|
||||||
$link_visited_color: if($variant == 'light', darken($selected_bg_color,20%),
|
|
||||||
lighten($selected_bg_color,10%));
|
|
||||||
$top_hilight: $borders_edge;
|
$top_hilight: $borders_edge;
|
||||||
|
|
||||||
$warning_color: #f57900;
|
$warning_color: #f57900;
|
||||||
$error_color: #cc0000;
|
$error_color: #ff8080;
|
||||||
$success_color: if($variant =='light', #73d216, darken(#73d216,10%));
|
$success_color: if($variant == 'light', #33d17a, darken(#33d17a, 10%));
|
||||||
$destructive_color: if($variant =='light', #ef2929, darken(#ef2929,10%));
|
$destructive_color: if($variant == 'light', #e01b24, darken(#e01b24, 10%));
|
||||||
|
|
||||||
$osd_fg_color: #eeeeec;
|
$osd_fg_color: #eeeeec;
|
||||||
$osd_bg_color: #2e3436;
|
$osd_text_color: white;
|
||||||
|
$osd_bg_color: transparentize(darken(desaturate(#3d3846, 100%), 12%),0.04);
|
||||||
|
$osd_insensitive_bg_color: transparentize(mix($osd_fg_color, opacify($osd_bg_color, 1), 10%), 0.5);
|
||||||
|
$osd_insensitive_fg_color: mix($osd_fg_color, opacify($osd_bg_color, 1), 50%);
|
||||||
$osd_borders_color: transparentize(black, 0.3);
|
$osd_borders_color: transparentize(black, 0.3);
|
||||||
$osd_outer_borders_color: transparentize(white, 0.9);
|
$osd_outer_borders_color: transparentize(white, 0.84);
|
||||||
|
|
||||||
$tooltip_borders_color: $osd_outer_borders_color;
|
$shadow_color: if($variant == 'light', rgba(0,0,0,0.1), rgba(0,0,0,0.2));
|
||||||
|
|
||||||
//insensitive state derived colors
|
//insensitive state derived colors
|
||||||
$insensitive_fg_color: mix($fg_color, $bg_color, 50%);
|
$insensitive_fg_color: mix($fg_color, $bg_color, 50%);
|
||||||
$insensitive_bg_color: mix($bg_color, $base_color, 60%);
|
$insensitive_bg_color: mix($bg_color, $base_color, 60%);
|
||||||
$insensitive_borders_color: $borders_color;
|
$insensitive_borders_color: mix($borders_color, $base_color, 60%);
|
||||||
|
|
||||||
//colors for the backdrop state, derived from the main colors.
|
//colors for the backdrop state, derived from the main colors.
|
||||||
$backdrop_base_color: if($variant =='light', darken($base_color,1%), lighten($base_color,1%));
|
$backdrop_base_color: if($variant =='light', darken($base_color,1%), lighten($base_color,1%));
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
// generic drawing of more complex things
|
// generic drawing of more complex things
|
||||||
|
|
||||||
@function _widget_edge($c:$borders_edge) {
|
@function draw_widget_edge($c:$borders_edge) {
|
||||||
// outer highlight "used" on most widgets
|
// outer highlight "used" on most widgets
|
||||||
@return 0 1px $c;
|
@return 0 1px $c;
|
||||||
}
|
}
|
||||||
@ -13,7 +13,7 @@
|
|||||||
//font-size: ($size / $base) * 1rem;
|
//font-size: ($size / $base) * 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin _shadows($shadow1, $shadow2:none, $shadow3:none, $shadow4:none) {
|
@mixin draw_shadows($shadow1, $shadow2:none, $shadow3:none, $shadow4:none) {
|
||||||
//
|
//
|
||||||
// Helper function to stack up to 4 box-shadows;
|
// Helper function to stack up to 4 box-shadows;
|
||||||
//
|
//
|
||||||
@ -31,25 +31,22 @@
|
|||||||
//
|
//
|
||||||
// $t: entry type
|
// $t: entry type
|
||||||
// $fc: focus color
|
// $fc: focus color
|
||||||
// $edge: set to none to not draw the bottom edge or specify a color to not
|
// $edge: set to none to not draw the bottom edge or specify a color to not use the default one
|
||||||
// use the default one
|
|
||||||
//
|
//
|
||||||
// possible $t values:
|
// possible $t values:
|
||||||
// normal, focus, insensitive
|
// normal, focus, insensitive
|
||||||
//
|
//
|
||||||
$_inner_shadows: inset 0 2px 4px transparentize(black, 0.6);
|
|
||||||
|
|
||||||
@if $t==normal {
|
@if $t==normal {
|
||||||
background-color: $base_color;
|
background-color: $base_color;
|
||||||
border-color: $borders_color;
|
border-color: $borders_color;
|
||||||
@include _shadows($_inner_shadows);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@if $t==focus {
|
@if $t==focus {
|
||||||
@include _shadows($_inner_shadows);
|
|
||||||
border-color: if($fc==$selected_bg_color,
|
border-color: if($fc==$selected_bg_color,
|
||||||
$selected_borders_color,
|
$selected_borders_color,
|
||||||
darken($fc,35%));
|
darken($fc,35%));
|
||||||
|
box-shadow: inset 0 0 0 1px $fc;
|
||||||
}
|
}
|
||||||
@if $t==hover { }
|
@if $t==hover { }
|
||||||
@if $t==insensitive {
|
@if $t==insensitive {
|
||||||
@ -61,36 +58,39 @@
|
|||||||
|
|
||||||
// buttons
|
// buttons
|
||||||
|
|
||||||
@function _border_color ($c) { @return darken($c,25%); } // colored buttons want
|
@function draw_border_color ($c) {
|
||||||
// the border form the
|
//
|
||||||
// base color
|
// colored buttons want the border form the base color
|
||||||
|
//
|
||||||
|
@return if($variant == 'light', darken($c, 18%), darken($c, 4%));
|
||||||
|
}
|
||||||
|
|
||||||
@function _text_shadow_color ($tc:$fg_color, $bg:$bg_color) {
|
@function draw_text_shadow_color ($tc:$fg_color, $bg:$bg_color) {
|
||||||
//
|
//
|
||||||
// calculate the color of text shadows
|
// calculate the color of text shadows
|
||||||
//
|
//
|
||||||
// $tc is the text color
|
// $tc is the text color
|
||||||
// $bg is the background color
|
// $bg is the background color
|
||||||
//
|
//
|
||||||
$_lbg: lightness($bg)/100%;
|
$lbg: lightness($bg)/100%;
|
||||||
@if lightness($tc)<50% { @return transparentize(white,1-$_lbg/($_lbg*1.3)); }
|
@if lightness($tc)<50% { @return rgba(255,255,255,$lbg/($lbg*1.3)); }
|
||||||
@else { @return transparentize(black,$_lbg*0.8); }
|
@else { @return rgba(0,0,0,1-$lbg*0.8); }
|
||||||
}
|
}
|
||||||
|
|
||||||
@function _button_hilight_color($c) {
|
@function draw_button_hilight_color($c) {
|
||||||
//
|
//
|
||||||
// calculate the right top hilight color for buttons
|
// calculate the right top hilight color for buttons
|
||||||
//
|
//
|
||||||
// $c: base color;
|
// $c: base color;
|
||||||
//
|
//
|
||||||
@if lightness($c)>90% { @return white; }
|
@if lightness($c)>90% { @return white; }
|
||||||
@else if lightness($c)>80% { @return transparentize(white, 0.3); }
|
@else if lightness($c)>80% { @return rgba(255,255,255, 0.7); }
|
||||||
@else if lightness($c)>50% { @return transparentize(white, 0.5); }
|
@else if lightness($c)>50% { @return rgba(255,255,255, 0.5); }
|
||||||
@else if lightness($c)>40% { @return transparentize(white, 0.7); }
|
@else if lightness($c)>40% { @return rgba(255,255,255, 0.3); }
|
||||||
@else { @return transparentize(white, 0.9); }
|
@else { @return rgba(255,255,255, 0.1); }
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin _button_text_shadow ($tc:$fg_color, $bg:$bg_color) {
|
@mixin draw_button_text_shadow ($tc:$fg_color, $bg:$bg_color) {
|
||||||
//
|
//
|
||||||
// helper function for the text emboss effect
|
// helper function for the text emboss effect
|
||||||
//
|
//
|
||||||
@ -99,19 +99,19 @@
|
|||||||
// TODO: this functions needs a way to deal with special cases
|
// TODO: this functions needs a way to deal with special cases
|
||||||
//
|
//
|
||||||
|
|
||||||
$_shadow: _text_shadow_color($tc, $bg);
|
$shadow: draw_text_shadow_color($tc, $bg);
|
||||||
|
|
||||||
@if lightness($tc)<50% {
|
@if lightness($tc)<50% {
|
||||||
text-shadow: 0 1px $_shadow;
|
text-shadow: 0 1px $shadow;
|
||||||
icon-shadow: 0 1px $_shadow;
|
icon-shadow: 0 1px $shadow;
|
||||||
}
|
}
|
||||||
@else {
|
@else {
|
||||||
text-shadow: 0 -1px $_shadow;
|
text-shadow: 0 -1px $shadow;
|
||||||
icon-shadow: 0 -1px $_shadow;
|
icon-shadow: 0 -1px $shadow;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@mixin button($t, $c:$osd_bg_color, $tc:$fg_color, $edge: $borders_edge) {
|
@mixin button($t, $c:$bg_color, $tc:$fg_color, $edge: $borders_edge, $shadow: $shadow_color) {
|
||||||
//
|
//
|
||||||
// Button drawing function
|
// Button drawing function
|
||||||
//
|
//
|
||||||
@ -120,6 +120,8 @@
|
|||||||
// $tc: optional text color for colored* types
|
// $tc: optional text color for colored* types
|
||||||
// $edge: set to none to not draw the bottom edge or specify a color to not
|
// $edge: set to none to not draw the bottom edge or specify a color to not
|
||||||
// use the default one
|
// use the default one
|
||||||
|
// $shadow: set to none to not draw the drop shadow or specify a color to not
|
||||||
|
// use the default one
|
||||||
//
|
//
|
||||||
// possible $t values:
|
// possible $t values:
|
||||||
// normal, hover, active, insensitive, insensitive-active,
|
// normal, hover, active, insensitive, insensitive-active,
|
||||||
@ -127,95 +129,103 @@
|
|||||||
// osd, osd-hover, osd-active, osd-insensitive, osd-backdrop, undecorated
|
// osd, osd-hover, osd-active, osd-insensitive, osd-backdrop, undecorated
|
||||||
//
|
//
|
||||||
|
|
||||||
$_hilight_color: _button_hilight_color($c);
|
$hilight_color: draw_button_hilight_color($c);
|
||||||
$_button_edge: if($edge == none, none, _widget_edge($edge));
|
$button_edge: if($edge == none, none, draw_widget_edge($edge));
|
||||||
$_blank_edge: if($edge == none, none, _widget_edge(transparentize($edge,1)));
|
$blank_edge: if($edge == none, none, draw_widget_edge(transparentize($edge,1)));
|
||||||
|
$button_shadow: if($shadow == none, none, 0 1px 1px 0 $shadow);
|
||||||
|
|
||||||
|
|
||||||
@if $t==normal {
|
|
||||||
//
|
|
||||||
// normal button
|
// normal button
|
||||||
//
|
@if $t==normal {
|
||||||
$_bg: if($c!=$osd_bg_color, transparentize($c, 0.5),
|
color: $tc;
|
||||||
$osd_bg_color);
|
background-color: lighten($c, 3%);
|
||||||
|
border-color: draw_border_color($c);
|
||||||
color: $osd_fg_color;
|
@include draw_shadows($button_shadow);
|
||||||
background-color: $_bg;
|
// box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1);
|
||||||
border-color: $osd_borders_color;
|
text-shadow: 0 1px $text_shadow_color;
|
||||||
box-shadow: inset 0 1px lighten($osd_bg_color,10%);
|
icon-shadow: 0 1px $text_shadow_color;
|
||||||
text-shadow: 0 1px black;
|
|
||||||
icon-shadow: 0 1px black;
|
|
||||||
}
|
}
|
||||||
@if $t==focus {
|
|
||||||
//
|
|
||||||
// focused button
|
// focused button
|
||||||
//
|
@if $t==focus {
|
||||||
$_bg: if($c!=$osd_bg_color, transparentize($c, 0.3),
|
color: $tc;
|
||||||
lighten($osd_bg_color,3%));
|
text-shadow: 0 1px $text_shadow_color;
|
||||||
|
icon-shadow: 0 1px $text_shadow_color;
|
||||||
color: $osd_fg_color;
|
box-shadow: inset 0 0 0 2px transparentize($selected_bg_color, 0.4);
|
||||||
text-shadow: 0 1px black;
|
//border-color: $selected_bg_color;
|
||||||
icon-shadow: 0 1px black;
|
|
||||||
box-shadow: inset 0px 0px 0px 1px $selected_bg_color;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// hover button
|
||||||
@else if $t==hover {
|
@else if $t==hover {
|
||||||
//
|
color: $tc;
|
||||||
// active osd button
|
background-color: lighten($c, if($variant == 'light', 8%, 5%));
|
||||||
//
|
border-color: if($variant == 'light', draw_border_color(lighten($c, 7%)), draw_border_color($c));
|
||||||
$_bg: if($c!=$osd_bg_color, transparentize($c, 0.3),
|
@include draw_shadows($button_shadow);
|
||||||
lighten($osd_bg_color,3%));
|
text-shadow: 0 1px $text_shadow_color;
|
||||||
|
icon-shadow: 0 1px $text_shadow_color;
|
||||||
color: white;
|
|
||||||
border-color: $osd_borders_color;
|
|
||||||
background-color: $_bg;
|
|
||||||
box-shadow: inset 0 1px lighten($osd_bg_color,20%);
|
|
||||||
text-shadow: 0 1px black;
|
|
||||||
icon-shadow: 0 1px black;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@else if $t==active {
|
|
||||||
//
|
|
||||||
// active osd button
|
|
||||||
//
|
|
||||||
$_bg: if($c!=$bg_color, $c, $osd_borders_color);
|
|
||||||
|
|
||||||
color: white;
|
// active button
|
||||||
border-color: $osd_borders_color;
|
@else if $t==active {
|
||||||
background-color: $selected_bg_color;
|
color: $tc;
|
||||||
// This should be none, but it's creating some issues with borders, so to
|
background-color: darken($c,3%);
|
||||||
// workaround it for now, use inset wich goes through a different code path.
|
border-color: draw_border_color(if($variant == 'light', $c, darken($c,7%)));
|
||||||
// see https://bugzilla.gnome.org/show_bug.cgi?id=752934
|
|
||||||
box-shadow: inset 0 0 black;
|
|
||||||
text-shadow: none;
|
text-shadow: none;
|
||||||
icon-shadow: none;
|
icon-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
@else if $t==insensitive {
|
|
||||||
//
|
|
||||||
// insensitive osd button
|
|
||||||
//
|
|
||||||
$_bg: transparentize(mix($insensitive_fg_color,$osd_bg_color,20%),0.3);
|
|
||||||
|
|
||||||
|
// insensitive button
|
||||||
|
@else if $t==insensitive {
|
||||||
color: $insensitive_fg_color;
|
color: $insensitive_fg_color;
|
||||||
border-color: $osd_borders_color;
|
border-color: $insensitive_borders_color;
|
||||||
background-color: $_bg;
|
background-color: $insensitive_bg_color;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
text-shadow: none;
|
text-shadow: none;
|
||||||
icon-shadow: none;
|
icon-shadow: none;
|
||||||
}
|
}
|
||||||
@else if $t==undecorated {
|
|
||||||
//
|
|
||||||
// reset
|
// reset
|
||||||
//
|
@else if $t==undecorated {
|
||||||
border-color: transparent;
|
border-color: transparent;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
background-image: none;
|
background-image: none;
|
||||||
|
@include draw_shadows(inset 0 1px rgba(255,255,255,0),$blank_edge);
|
||||||
@include _shadows(inset 0 1px transparentize(white,1),
|
|
||||||
$_blank_edge);
|
|
||||||
|
|
||||||
text-shadow: none;
|
text-shadow: none;
|
||||||
icon-shadow: none;
|
icon-shadow: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// overview icons
|
||||||
|
@mixin overview-icon($color) {
|
||||||
|
.overview-icon {
|
||||||
|
@extend %icon_tile;
|
||||||
|
color: $color;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:selected {
|
||||||
|
.overview-icon {
|
||||||
|
background-color: transparentize($color, .9);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:focus {
|
||||||
|
.overview-icon {
|
||||||
|
background-color: transparentize($color, .7);
|
||||||
|
// border-color: $selected_bg_color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:drop {
|
||||||
|
.overview-icon {
|
||||||
|
background-color: transparentize($selected_bg_color, .15);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active,
|
||||||
|
&:checked {
|
||||||
|
.overview-icon {
|
||||||
|
background-color: transparentize(darken($osd_bg_color, 10%), .5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -22,10 +22,10 @@ $destructive_color: darken(#ef2929,10%);
|
|||||||
|
|
||||||
$osd_fg_color: #eeeeec;
|
$osd_fg_color: #eeeeec;
|
||||||
$osd_bg_color: #2e3436;
|
$osd_bg_color: #2e3436;
|
||||||
$osd_borders_color: transparentize(black, 0.3);
|
$osd_borders_color: rgba(0,0,0, 0.7);
|
||||||
$osd_outer_borders_color: transparentize(white, 0.9);
|
$osd_outer_borders_color: rgba(255,255,255, 0.1);
|
||||||
|
|
||||||
$tooltip_borders_color: $osd_outer_borders_color;
|
$shadow_color: rgba(0,0,0, 0.1);
|
||||||
|
|
||||||
//insensitive state derived colors
|
//insensitive state derived colors
|
||||||
$insensitive_fg_color: mix($fg_color, $bg_color, 50%);
|
$insensitive_fg_color: mix($fg_color, $bg_color, 50%);
|
||||||
|
51
data/theme/gnome-shell-sass/_widgets.scss
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
//
|
||||||
|
// Shell widgets stylesheets are placed in separate .scss files
|
||||||
|
// in 'widgets' and imported into the main stylesheet in this file.
|
||||||
|
// To create or update a widget for the shell modify the list below.
|
||||||
|
//
|
||||||
|
|
||||||
|
/* WIDGETS */
|
||||||
|
|
||||||
|
// Primary widgets
|
||||||
|
@import 'widgets/base';
|
||||||
|
@import 'widgets/entries';
|
||||||
|
@import 'widgets/buttons';
|
||||||
|
@import 'widgets/check-box';
|
||||||
|
@import 'widgets/switches';
|
||||||
|
@import 'widgets/slider';
|
||||||
|
@import 'widgets/scrollbars';
|
||||||
|
// Popovers
|
||||||
|
@import 'widgets/popovers';
|
||||||
|
@import 'widgets/calendar';
|
||||||
|
@import 'widgets/message-list';
|
||||||
|
@import 'widgets/ibus-popup';
|
||||||
|
// Notifications
|
||||||
|
@import 'widgets/notifications';
|
||||||
|
@import 'widgets/hotplug';
|
||||||
|
// Dialogs
|
||||||
|
@import 'widgets/dialogs';
|
||||||
|
@import 'widgets/network-dialog';
|
||||||
|
// OSDs
|
||||||
|
@import 'widgets/osd';
|
||||||
|
@import 'widgets/switcher-popup';
|
||||||
|
@import 'widgets/workspace-switcher';
|
||||||
|
// Panel
|
||||||
|
@import 'widgets/panel';
|
||||||
|
@import 'widgets/corner-ripple';
|
||||||
|
// Overview
|
||||||
|
@import 'widgets/overview';
|
||||||
|
@import 'widgets/window-picker';
|
||||||
|
@import 'widgets/search-entry';
|
||||||
|
@import 'widgets/search-results';
|
||||||
|
@import 'widgets/app-grid';
|
||||||
|
@import 'widgets/dash';
|
||||||
|
@import 'widgets/workspace-thumbnails';
|
||||||
|
// A11y / misc
|
||||||
|
@import 'widgets/a11y';
|
||||||
|
@import 'widgets/misc';
|
||||||
|
@import 'widgets/tiled-previews';
|
||||||
|
@import 'widgets/keyboard';
|
||||||
|
@import 'widgets/looking-glass';
|
||||||
|
// Lock / login screens
|
||||||
|
@import 'widgets/login-dialog';
|
||||||
|
@import 'widgets/screen-shield';
|
24
data/theme/gnome-shell-sass/widgets/_a11y.scss
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
// Pointer location
|
||||||
|
.ripple-pointer-location {
|
||||||
|
width: $ripple_size;
|
||||||
|
height: $ripple_size;
|
||||||
|
border-radius: $ripple_size * 0.5; // radius equals the size of the box to give us the curve
|
||||||
|
background-color: lighten(transparentize($selected_bg_color, 0.7), 30%);
|
||||||
|
box-shadow: 0 0 2px 2px lighten($selected_bg_color, 20%);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pointer accessibility notifications
|
||||||
|
.pie-timer {
|
||||||
|
width: 60px;
|
||||||
|
height: 60px;
|
||||||
|
-pie-border-width: 3px;
|
||||||
|
-pie-border-color: $selected_bg_color;
|
||||||
|
-pie-background-color: lighten(transparentize($selected_bg_color, 0.7), 40%);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Screen zoom/Magnifier
|
||||||
|
.magnifier-zoom-region {
|
||||||
|
border: 2px solid $selected_bg_color;
|
||||||
|
|
||||||
|
&.full-screen { border-width: 0; }
|
||||||
|
}
|
144
data/theme/gnome-shell-sass/widgets/_app-grid.scss
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
/* App Grid */
|
||||||
|
|
||||||
|
$app_icon_size: 96px;
|
||||||
|
|
||||||
|
// app icons
|
||||||
|
.icon-grid {
|
||||||
|
row-spacing: $base_spacing * 6;
|
||||||
|
column-spacing: $base_spacing * 6;
|
||||||
|
max-row-spacing: $base_spacing * 12;
|
||||||
|
max-column-spacing: $base_spacing * 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* App Icons */
|
||||||
|
|
||||||
|
$app_grid_fg_color: #fff;
|
||||||
|
|
||||||
|
// Icon tiles in the app grid
|
||||||
|
.app-well-app,
|
||||||
|
%app-well-app {
|
||||||
|
@include overview-icon($app_grid_fg_color);
|
||||||
|
|
||||||
|
.overview-icon.overview-icon-with-label {
|
||||||
|
padding: 10px 8px 5px 8px;
|
||||||
|
|
||||||
|
> StBoxLayout {
|
||||||
|
spacing: $base_spacing;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* App Folders */
|
||||||
|
.app-well-app.app-folder {
|
||||||
|
background-color: transparentize($osd_bg_color, 0.8);
|
||||||
|
border-radius: $base_border_radius + 4px; // same as %icon_tile
|
||||||
|
}
|
||||||
|
|
||||||
|
// expanded folder
|
||||||
|
.app-folder-dialog {
|
||||||
|
border-radius: $modal_radius * 1.5;
|
||||||
|
border: 1px solid $osd_outer_borders_color;
|
||||||
|
background-color: transparentize(darken($osd_bg_color,10%), 0.05);
|
||||||
|
padding: 12px;
|
||||||
|
|
||||||
|
& .folder-name-container {
|
||||||
|
padding: 24px 36px 0;
|
||||||
|
spacing: 12px;
|
||||||
|
|
||||||
|
& .folder-name-label,
|
||||||
|
& .folder-name-entry {
|
||||||
|
font-size: 18pt;
|
||||||
|
font-weight: 800;
|
||||||
|
}
|
||||||
|
|
||||||
|
& .folder-name-entry { width: 300px }
|
||||||
|
|
||||||
|
/* FIXME: this is to keep the label in sync with the entry */
|
||||||
|
& .folder-name-label { padding: 5px 7px; color: $osd_fg_color; }
|
||||||
|
|
||||||
|
& .edit-folder-button {
|
||||||
|
@extend %button;
|
||||||
|
|
||||||
|
padding: 0;
|
||||||
|
width: 36px;
|
||||||
|
height: 36px;
|
||||||
|
border-radius: 18px;
|
||||||
|
|
||||||
|
& > StIcon { icon-size: 16px }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
& .icon-grid {
|
||||||
|
row-spacing: $base_spacing * 2;
|
||||||
|
column-spacing: $base_spacing * 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
& .page-indicators {
|
||||||
|
margin-bottom: 18px;
|
||||||
|
|
||||||
|
.page-indicator {
|
||||||
|
padding: 15px 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.app-folder-dialog-container {
|
||||||
|
padding: 12px;
|
||||||
|
width: 620px;
|
||||||
|
height: 620px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-folder-icon {
|
||||||
|
padding: $base_padding;
|
||||||
|
spacing-rows: $base_spacing;
|
||||||
|
spacing-columns: $base_spacing;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Running app indicator (also shown in dash)
|
||||||
|
.app-well-app-running-dot {
|
||||||
|
height: 5px;
|
||||||
|
width: 5px;
|
||||||
|
border-radius:5px;
|
||||||
|
background-color: $osd_fg_color;
|
||||||
|
margin-bottom: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rename popup for app folders
|
||||||
|
.rename-folder-popup {
|
||||||
|
.rename-folder-popup-item {
|
||||||
|
spacing: $base_spacing;
|
||||||
|
&:ltr, &:rtl { padding: 0 $base_padding * 2; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// right-click app menu
|
||||||
|
.app-menu,
|
||||||
|
.app-well-menu {
|
||||||
|
max-width: 27.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
// App Grid pagination indicators
|
||||||
|
.page-indicator {
|
||||||
|
padding: 15px 20px;
|
||||||
|
|
||||||
|
.page-indicator-icon {
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
border-radius: 10px; // the same as height&width
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Some hacks I don't even know
|
||||||
|
.all-apps {
|
||||||
|
// horizontal padding to make sure scrollbars or dash don't overlap content
|
||||||
|
padding: 0px 88px 10px 88px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// shutdown and other actions in the grid
|
||||||
|
.system-action-icon {
|
||||||
|
background-color: rgba(0,0,0,0.8);
|
||||||
|
color: #fff;
|
||||||
|
border-radius: 99px;
|
||||||
|
icon-size: $app_icon_size * 0.5;
|
||||||
|
}
|
18
data/theme/gnome-shell-sass/widgets/_base.scss
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
// Links
|
||||||
|
.shell-link {
|
||||||
|
color: $link_color;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: lighten($link_color, 10%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Outline for low res icons
|
||||||
|
.lowres-icon {
|
||||||
|
icon-shadow: 0 1px 2px rgba(black, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dropshadow for large icons
|
||||||
|
.icon-dropshadow {
|
||||||
|
icon-shadow: 0 1px 2px rgba(black, 0.4);
|
||||||
|
}
|
5
data/theme/gnome-shell-sass/widgets/_buttons.scss
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
/* Buttons */
|
||||||
|
|
||||||
|
.button {
|
||||||
|
@extend %button; // that's it
|
||||||
|
}
|
292
data/theme/gnome-shell-sass/widgets/_calendar.scss
Normal file
@ -0,0 +1,292 @@
|
|||||||
|
/* Date/Time Menu */
|
||||||
|
|
||||||
|
.clock-display-box {
|
||||||
|
spacing: $base_spacing / 2;
|
||||||
|
|
||||||
|
.clock {
|
||||||
|
padding-left: $base_padding;
|
||||||
|
padding-right: $base_padding;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// overall menu
|
||||||
|
#calendarArea {
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calendar menu side column
|
||||||
|
.datemenu-calendar-column {
|
||||||
|
spacing: $base_spacing;
|
||||||
|
border: 0 solid $bubble_borders_color;
|
||||||
|
padding: 0 $base_padding * 2;
|
||||||
|
|
||||||
|
&:ltr {margin-right: $base_margin * 2; border-left-width: 1px; }
|
||||||
|
&:rtl {margin-left: $base_margin * 2; border-right-width: 1px; }
|
||||||
|
|
||||||
|
.datemenu-displays-section {
|
||||||
|
}
|
||||||
|
|
||||||
|
.datemenu-displays-box {
|
||||||
|
spacing: $base_spacing;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.events-section-title {
|
||||||
|
@include notification_bubble($flat: true);
|
||||||
|
color: desaturate(darken($fg_color,40%), 10%);
|
||||||
|
font-weight: bold;
|
||||||
|
padding: .4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* today button (the date) */
|
||||||
|
.datemenu-today-button {
|
||||||
|
@include notification_bubble($flat: true);
|
||||||
|
padding: $base_padding * 1.5;
|
||||||
|
|
||||||
|
// weekday label
|
||||||
|
.day-label {
|
||||||
|
@include fontsize($base_font_size+1);
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
// date label
|
||||||
|
.date-label {
|
||||||
|
@include fontsize($base_font_size+7);
|
||||||
|
font-weight: 1000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Calendar */
|
||||||
|
.calendar {
|
||||||
|
@include notification_bubble;
|
||||||
|
padding: $base_padding;
|
||||||
|
|
||||||
|
// month
|
||||||
|
.calendar-month-label {
|
||||||
|
color: lighten($fg_color,5%);
|
||||||
|
font-weight: bold;
|
||||||
|
padding: 8px 0;
|
||||||
|
&:focus {}
|
||||||
|
}
|
||||||
|
|
||||||
|
// prev/next month icons
|
||||||
|
.calendar-change-month-back StIcon,
|
||||||
|
.calendar-change-month-forward StIcon {
|
||||||
|
icon-size: $base_icon_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pager-button {
|
||||||
|
background-color: transparent;
|
||||||
|
height: 32px;
|
||||||
|
width: 32px;
|
||||||
|
border-radius: $base_border_radius;
|
||||||
|
&:hover, &:focus { background-color: lighten($hover_bg_color, 5%); }
|
||||||
|
&:active { background-color: $active_bg_color; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$calendar_day_size: 32px;
|
||||||
|
|
||||||
|
.calendar-day-base {
|
||||||
|
@include fontsize($base_font_size - 3);
|
||||||
|
text-align: center;
|
||||||
|
width: $calendar_day_size;
|
||||||
|
height: $calendar_day_size;
|
||||||
|
padding: 0;
|
||||||
|
margin: 2px;
|
||||||
|
border-radius: $calendar_day_size * 0.5 + 2px;
|
||||||
|
border: 1px solid transparent; //avoid jumparound due to today
|
||||||
|
font-feature-settings: "tnum";
|
||||||
|
&:hover, &:focus { background-color: $hover_bg_color; }
|
||||||
|
&:active,&:selected {
|
||||||
|
color: lighten($fg_color,10%);
|
||||||
|
background-color: darken($bg_color,5%);
|
||||||
|
}
|
||||||
|
|
||||||
|
// day of week heading
|
||||||
|
&.calendar-day-heading {
|
||||||
|
color: lighten($fg_color,10%);
|
||||||
|
margin-top: 1em;
|
||||||
|
@include fontsize($base_font_size - 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-day { //border collapse hack - see calendar.js
|
||||||
|
border-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-day-top {
|
||||||
|
border-top-width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-day-left {
|
||||||
|
border-left-width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-work-day {}
|
||||||
|
|
||||||
|
.calendar-nonwork-day {
|
||||||
|
color: $insensitive_fg_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Today
|
||||||
|
.calendar-today {
|
||||||
|
font-weight: bold;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
background-color: $selected_bg_color;
|
||||||
|
color: $selected_fg_color;
|
||||||
|
|
||||||
|
&:hover,&:focus {
|
||||||
|
background-color:lighten($selected_bg_color, 3%);
|
||||||
|
color: $selected_fg_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active,&:selected {
|
||||||
|
background-color: $selected_bg_color;
|
||||||
|
color: $selected_fg_color;
|
||||||
|
|
||||||
|
&:hover,&:focus {
|
||||||
|
background-color:lighten($selected_bg_color, 3%);
|
||||||
|
color: $selected_fg_color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-day-with-events {
|
||||||
|
background-image: url("resource:///org/gnome/shell/theme/calendar-today.svg");
|
||||||
|
&.calendar-work-day {
|
||||||
|
color: lighten($fg_color,10%);
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-other-month-day {
|
||||||
|
color: transparentize($fg_color ,0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-week-number {
|
||||||
|
@include fontsize($base_font_size - 4);
|
||||||
|
font-weight: bold;
|
||||||
|
height: 1.8em;
|
||||||
|
width: 2.3em;
|
||||||
|
border-radius: 2px;
|
||||||
|
padding: 0.5em 0 0;
|
||||||
|
margin: 6px;
|
||||||
|
background-color: darken($bg_color, 2%);
|
||||||
|
color: lighten($fg_color, 5%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Events */
|
||||||
|
.events-button {
|
||||||
|
@include notification_bubble;
|
||||||
|
padding: $base_padding * 2;
|
||||||
|
|
||||||
|
.events-box {
|
||||||
|
spacing: $base_spacing;
|
||||||
|
}
|
||||||
|
|
||||||
|
.events-list {
|
||||||
|
spacing: 2 * $base_spacing;
|
||||||
|
}
|
||||||
|
|
||||||
|
.events-title {
|
||||||
|
color: desaturate(darken($fg_color,40%), 10%);
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: $base_margin;
|
||||||
|
}
|
||||||
|
|
||||||
|
.event-time {
|
||||||
|
color: darken($fg_color,20%);
|
||||||
|
font-feature-settings: "tnum";
|
||||||
|
@include fontsize($base_font_size - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* World clocks */
|
||||||
|
.world-clocks-button {
|
||||||
|
@include notification_bubble;
|
||||||
|
padding: $base_padding * 2;
|
||||||
|
|
||||||
|
.world-clocks-grid {
|
||||||
|
spacing-rows: $base_spacing;
|
||||||
|
spacing-columns: $base_spacing * 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// title
|
||||||
|
.world-clocks-header {
|
||||||
|
color: desaturate(darken($fg_color,40%), 10%);
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
// city label
|
||||||
|
.world-clocks-city {
|
||||||
|
color: $fg_color;
|
||||||
|
@include fontsize($base_font_size);
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
// timezone time
|
||||||
|
.world-clocks-time {
|
||||||
|
font-weight: bold;
|
||||||
|
color: $fg_color;
|
||||||
|
font-feature-settings: "tnum";
|
||||||
|
@include fontsize($base_font_size);
|
||||||
|
|
||||||
|
&:ltr { text-align: right; }
|
||||||
|
&:rtl { text-align: left; }
|
||||||
|
}
|
||||||
|
|
||||||
|
// timezone offset label
|
||||||
|
.world-clocks-timezone {
|
||||||
|
color: darken($fg_color,20%);
|
||||||
|
font-feature-settings: "tnum";
|
||||||
|
@include fontsize($base_font_size - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Weather */
|
||||||
|
.weather-button {
|
||||||
|
@include notification_bubble;
|
||||||
|
padding: $base_padding * 2;
|
||||||
|
|
||||||
|
.weather-box {
|
||||||
|
spacing: $base_spacing + $base_margin;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weather-header-box {
|
||||||
|
spacing: $base_spacing;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weather-header {
|
||||||
|
color: desaturate(darken($fg_color,40%), 10%);
|
||||||
|
font-weight: bold;
|
||||||
|
|
||||||
|
&.location {
|
||||||
|
font-weight: normal;
|
||||||
|
@include fontsize($base_font_size - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.weather-grid {
|
||||||
|
spacing-rows: $base_spacing;
|
||||||
|
spacing-columns: $base_spacing * 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weather-forecast-time {
|
||||||
|
color: darken($fg_color,30%);
|
||||||
|
font-feature-settings: "tnum";
|
||||||
|
@include fontsize($base_font_size - 2);
|
||||||
|
font-weight: normal;
|
||||||
|
padding-top: 0.2em;
|
||||||
|
padding-bottom: 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weather-forecast-icon {
|
||||||
|
icon-size: $base_icon_size * 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weather-forecast-temp {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
}
|
18
data/theme/gnome-shell-sass/widgets/_check-box.scss
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/* Check Boxes */
|
||||||
|
|
||||||
|
// these are equal to the size of the SVG assets
|
||||||
|
$check_height: 22px;
|
||||||
|
$check_width: 24px;
|
||||||
|
|
||||||
|
|
||||||
|
.check-box {
|
||||||
|
StBoxLayout { spacing: .8em; }
|
||||||
|
StBin {
|
||||||
|
width: $check_width;
|
||||||
|
height: $check_height;
|
||||||
|
background-image: url("resource:///org/gnome/shell/theme/checkbox-off.svg");
|
||||||
|
}
|
||||||
|
&:focus StBin { background-image: url("resource:///org/gnome/shell/theme/checkbox-off-focused.svg"); }
|
||||||
|
&:checked StBin { background-image: url("resource:///org/gnome/shell/theme/checkbox.svg"); }
|
||||||
|
&:focus:checked StBin { background-image: url("resource:///org/gnome/shell/theme/checkbox-focused.svg"); }
|
||||||
|
}
|
15
data/theme/gnome-shell-sass/widgets/_corner-ripple.scss
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
/* Activities Ripple */
|
||||||
|
|
||||||
|
$ripple_size: 50px;
|
||||||
|
|
||||||
|
.ripple-box {
|
||||||
|
background-color: lighten(transparentize($selected_bg_color, 0.7), 40%);
|
||||||
|
box-shadow: 0 0 2px 2px lighten($selected_bg_color, 20%);
|
||||||
|
// plus + 2px for the border (box-shadow)
|
||||||
|
width: $ripple_size + 2px;
|
||||||
|
height: $ripple_size + 2px;
|
||||||
|
border-radius: 0 0 $ripple_size + 2px 0; // radius equals the size of the box to give us the curve
|
||||||
|
|
||||||
|
// just a simple change to the border radius position
|
||||||
|
&:rtl { border-radius: 0 0 0 $ripple_size + 2px; }
|
||||||
|
}
|
61
data/theme/gnome-shell-sass/widgets/_dash.scss
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
/* Dash */
|
||||||
|
|
||||||
|
$dash_placeholder_size: 32px;
|
||||||
|
$dash_spacing: $base_padding + 4px;
|
||||||
|
$dash_border_radius: $modal_radius * 1.5;
|
||||||
|
|
||||||
|
#dash {
|
||||||
|
@extend %overview_panel;
|
||||||
|
@include fontsize($base_font_size - 2);
|
||||||
|
padding: ($dash_spacing / 2) 0;
|
||||||
|
|
||||||
|
border-radius: 0 $dash_border_radius $dash_border_radius 0;
|
||||||
|
border-left-width: 0;
|
||||||
|
&:rtl {
|
||||||
|
border-radius: $dash_border_radius 0 0 $dash_border_radius;
|
||||||
|
border-right-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.placeholder {
|
||||||
|
// background-image: url("resource:///org/gnome/shell/theme/dash-placeholder.svg");
|
||||||
|
background-image:none;
|
||||||
|
background-size: contain;
|
||||||
|
height: $dash_placeholder_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
.empty-dash-drop-target {
|
||||||
|
width: $dash_placeholder_size;
|
||||||
|
height: $dash_placeholder_size;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dash Items
|
||||||
|
.dash-item-container > StWidget {
|
||||||
|
padding: ($dash_spacing / 2) $dash_spacing;
|
||||||
|
}
|
||||||
|
|
||||||
|
// OSD Tooltip
|
||||||
|
.dash-label {
|
||||||
|
background-color: transparentize($osd_bg_color,0.05);
|
||||||
|
border-radius: $base_border_radius + 2px;
|
||||||
|
border:none;
|
||||||
|
box-shadow:0 0 0 1px $osd_outer_borders_color;
|
||||||
|
color: $osd_fg_color;
|
||||||
|
padding: $base_padding $base_padding + 2px;
|
||||||
|
text-align: center;
|
||||||
|
-x-offset: $base_margin * 2; // distance from the dash edge
|
||||||
|
}
|
||||||
|
|
||||||
|
// Show apps button
|
||||||
|
.show-apps {
|
||||||
|
@include overview-icon($osd_fg_color);
|
||||||
|
|
||||||
|
&:focus,
|
||||||
|
&:checked {
|
||||||
|
.overview-icon {
|
||||||
|
background-color: darken($osd_bg_color,10%);
|
||||||
|
color: $fg_color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
168
data/theme/gnome-shell-sass/widgets/_dialogs.scss
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
/* Modal Dialogs */
|
||||||
|
|
||||||
|
.headline {
|
||||||
|
@include fontsize($base_font_size + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-dialog {
|
||||||
|
border-radius: $modal_radius;
|
||||||
|
@extend %bubble_panel;
|
||||||
|
|
||||||
|
.modal-dialog-content-box {
|
||||||
|
margin: 32px 40px;
|
||||||
|
spacing: 32px;
|
||||||
|
max-width: 28em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-dialog-linked-button {
|
||||||
|
@extend %bubble_button;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End Session Dialog */
|
||||||
|
.end-session-dialog {
|
||||||
|
width: 30em;
|
||||||
|
|
||||||
|
.end-session-dialog-battery-warning,
|
||||||
|
.dialog-list-title {
|
||||||
|
color: $warning_color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Message Dialog */
|
||||||
|
.message-dialog-content {
|
||||||
|
spacing: 18px;
|
||||||
|
|
||||||
|
.message-dialog-title {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 18pt;
|
||||||
|
font-weight: 800;
|
||||||
|
|
||||||
|
&.leightweight {
|
||||||
|
font-size: 13pt;
|
||||||
|
font-weight: 800;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.message-dialog-description { text-align: center; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Dialog List */
|
||||||
|
.dialog-list {
|
||||||
|
spacing: 18px;
|
||||||
|
|
||||||
|
.dialog-list-title {
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dialog-list-scrollview { max-height: 200px; }
|
||||||
|
.dialog-list-box {
|
||||||
|
spacing: 1em;
|
||||||
|
|
||||||
|
.dialog-list-item {
|
||||||
|
spacing: 1em;
|
||||||
|
|
||||||
|
.dialog-list-item-title { font-weight: bold; }
|
||||||
|
.dialog-list-item-description {
|
||||||
|
color: darken($fg_color,5%);
|
||||||
|
@include fontsize($base_font_size - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Run Dialog */
|
||||||
|
.run-dialog {
|
||||||
|
.modal-dialog-content-box {
|
||||||
|
margin-top: 24px;
|
||||||
|
margin-bottom: 14px;
|
||||||
|
}
|
||||||
|
.run-dialog-entry { width: 20em; }
|
||||||
|
.run-dialog-description {
|
||||||
|
@include fontsize($base_font_size - 1);
|
||||||
|
text-align: center;
|
||||||
|
color: darken($fg_color, 20%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Password or Authentication Dialog */
|
||||||
|
|
||||||
|
.prompt-dialog {
|
||||||
|
width: 28em;
|
||||||
|
|
||||||
|
.modal-dialog-content-box {
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.prompt-dialog-password-grid {
|
||||||
|
spacing-rows: 8px;
|
||||||
|
spacing-columns: 4px;
|
||||||
|
|
||||||
|
.prompt-dialog-password-entry {
|
||||||
|
width: auto;
|
||||||
|
|
||||||
|
// 4px (spacing) + 16px (spinner-width)
|
||||||
|
&:ltr { margin-left: 20px; }
|
||||||
|
&:rtl { margin-right: 20px; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.prompt-dialog-password-layout {
|
||||||
|
spacing: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prompt-dialog-password-entry {
|
||||||
|
width: 20em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prompt-dialog-error-label,
|
||||||
|
.prompt-dialog-info-label,
|
||||||
|
.prompt-dialog-null-label {
|
||||||
|
text-align: center;
|
||||||
|
@include fontsize($base_font_size - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.prompt-dialog-error-label {
|
||||||
|
color: $warning_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Polkit Dialog */
|
||||||
|
|
||||||
|
.polkit-dialog-user-layout {
|
||||||
|
text-align: center;
|
||||||
|
spacing: 8px;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
|
||||||
|
.polkit-dialog-user-icon {
|
||||||
|
border-radius: 99px;
|
||||||
|
background-size: contain;
|
||||||
|
}
|
||||||
|
.polkit-dialog-user-root-label { color: $warning_color; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Audio selection dialog */
|
||||||
|
.audio-device-selection-dialog {
|
||||||
|
.modal-dialog-content-box { margin-bottom: 28px; }
|
||||||
|
.audio-selection-box { spacing: 20px; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.audio-selection-device {
|
||||||
|
border: 1px solid $bubble_borders_color;
|
||||||
|
border-radius: 12px;
|
||||||
|
&:hover,&:focus { background-color: $hover_bg_color; }
|
||||||
|
&:active {
|
||||||
|
background-color: $selected_bg_color;
|
||||||
|
color: $selected_fg_color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.audio-selection-device-box {
|
||||||
|
padding: 20px;
|
||||||
|
spacing: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.audio-selection-device-icon {
|
||||||
|
icon-size: $base_icon_size * 4;
|
||||||
|
}
|
27
data/theme/gnome-shell-sass/widgets/_entries.scss
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/* Entries */
|
||||||
|
|
||||||
|
StEntry {
|
||||||
|
border-radius: $base_border_radius;
|
||||||
|
padding: 8px;
|
||||||
|
border-width: 1px;
|
||||||
|
color: $fg_color;
|
||||||
|
@include entry(normal);
|
||||||
|
//&:hover { @include entry(hover);}
|
||||||
|
&:focus { @include entry(focus);}
|
||||||
|
&:insensitive { @include entry(insensitive);}
|
||||||
|
selection-background-color: $selected_bg_color;
|
||||||
|
selected-color: $selected_fg_color;
|
||||||
|
StIcon.capslock-warning {
|
||||||
|
icon-size: 16px;
|
||||||
|
warning-color: $warning_color;
|
||||||
|
padding: 0 4px;
|
||||||
|
}
|
||||||
|
StIcon.peek-password {
|
||||||
|
icon-size: $base_icon_size;
|
||||||
|
padding: 0 4px;
|
||||||
|
}
|
||||||
|
StLabel.hint-text {
|
||||||
|
margin-left: 2px;
|
||||||
|
color: transparentize($fg_color, 0.3);
|
||||||
|
}
|
||||||
|
}
|
10
data/theme/gnome-shell-sass/widgets/_hotplug.scss
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// hotplug
|
||||||
|
|
||||||
|
.hotplug-notification-item {
|
||||||
|
@extend %bubble_button;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hotplug-notification-item-icon {
|
||||||
|
icon-size: 24px;
|
||||||
|
padding: 0 4px;
|
||||||
|
}
|
35
data/theme/gnome-shell-sass/widgets/_ibus-popup.scss
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
// IBus Candidate Popup
|
||||||
|
|
||||||
|
.candidate-popup-boxpointer {
|
||||||
|
@extend .popup-menu-boxpointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.candidate-popup-content {
|
||||||
|
padding: 0.5em;
|
||||||
|
spacing: 0.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.candidate-index {
|
||||||
|
padding: 0 0.5em 0 0;
|
||||||
|
color: darken($fg_color,10%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.candidate-box {
|
||||||
|
padding: 0.3em 0.5em 0.3em 0.5em;
|
||||||
|
border-radius: $base_border_radius;
|
||||||
|
&:selected,&:hover { background-color: $selected_bg_color; color: $selected_fg_color; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.candidate-page-button-box {
|
||||||
|
height: 2em;
|
||||||
|
.vertical & { padding-top: 0.5em; }
|
||||||
|
.horizontal & { padding-left: 0.5em; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.candidate-page-button {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.candidate-page-button-previous { border-radius: $base_border_radius 0px 0px $base_border_radius; border-right-width: 0; }
|
||||||
|
.candidate-page-button-next { border-radius: 0px $base_border_radius $base_border_radius 0px; }
|
||||||
|
.candidate-page-button-icon { icon-size: 1em; }
|
115
data/theme/gnome-shell-sass/widgets/_keyboard.scss
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
/* On-screen Keyboard */
|
||||||
|
|
||||||
|
$key_size: 1.2em;
|
||||||
|
$key_border_radius: $base_border_radius + 3px;
|
||||||
|
$key_bg_color: $bg_color;
|
||||||
|
// $default_key_bg_color: darken($key_bg_color, 4%);
|
||||||
|
$default_key_bg_color: if($variant=='light', darken($osd_bg_color, 11%), lighten($osd_bg_color, 2%));
|
||||||
|
|
||||||
|
|
||||||
|
// draw keys using button function
|
||||||
|
#keyboard {
|
||||||
|
background-color: transparentize(if($variant=='light', darken($bg_color, 5%), darken($bg_color, 8%)), 0.1);
|
||||||
|
box-shadow: inset 0 1px 0 0 $osd_outer_borders_color;
|
||||||
|
|
||||||
|
.page-indicator {
|
||||||
|
padding: $base_padding;
|
||||||
|
|
||||||
|
.page-indicator-icon {
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// the container for individual keys
|
||||||
|
.key-container {
|
||||||
|
padding: $base_margin;
|
||||||
|
spacing: $base_margin;
|
||||||
|
}
|
||||||
|
|
||||||
|
// the keys
|
||||||
|
.keyboard-key {
|
||||||
|
|
||||||
|
@include button(normal, $c:$key_bg_color);
|
||||||
|
|
||||||
|
&:focus { @include button(focus);}
|
||||||
|
&:hover, &:checked { @include button(hover, $c: $key_bg_color);}
|
||||||
|
&:active { @include button(active, $c: $key_bg_color); }
|
||||||
|
|
||||||
|
@include fontsize($base_font_size + 5);
|
||||||
|
min-height: $key_size;
|
||||||
|
min-width: $key_size;
|
||||||
|
border-width: 1px;
|
||||||
|
border-style: solid;
|
||||||
|
border-radius: $key_border_radius;
|
||||||
|
|
||||||
|
&:grayed { //FIXMEy
|
||||||
|
background-color: darken($bg_color, 3%);
|
||||||
|
color: $osd_fg_color;
|
||||||
|
border-color: $osd_borders_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
// non-character keys
|
||||||
|
&.default-key {
|
||||||
|
@include button(normal, $c:$default_key_bg_color);
|
||||||
|
&:hover, &:checked {@include button(hover, $c: $default_key_bg_color);}
|
||||||
|
&:active { @include button(active, $c: $default_key_bg_color);}
|
||||||
|
}
|
||||||
|
|
||||||
|
// enter key is suggested-action
|
||||||
|
&.enter-key {
|
||||||
|
@include button(normal, $c:$selected_bg_color, $tc:$selected_fg_color);
|
||||||
|
&:hover, &:checked { @include button(hover, $c: lighten($selected_bg_color, 3%));}
|
||||||
|
&:active {@include button(active, $c: darken($selected_bg_color, 2%));}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.shift-key-uppercase { color: $selected_bg_color }
|
||||||
|
|
||||||
|
StIcon { icon-size: 1.125em; }
|
||||||
|
}
|
||||||
|
|
||||||
|
// long press on a key popup
|
||||||
|
.keyboard-subkeys {
|
||||||
|
color: $osd_fg_color;
|
||||||
|
-arrow-border-radius: $modal_radius;
|
||||||
|
-arrow-background-color: $osd_bg_color;
|
||||||
|
-arrow-border-width: 1px;
|
||||||
|
-arrow-border-color: lighten($osd_bg_color, 9%);
|
||||||
|
-arrow-base: 20px;
|
||||||
|
-arrow-rise: 10px;
|
||||||
|
-boxpointer-gap: $base_spacing;
|
||||||
|
|
||||||
|
.keyboard-key {
|
||||||
|
@include button(normal, $c:$key_bg_color);
|
||||||
|
|
||||||
|
&:focus { @include button(focus);}
|
||||||
|
&:hover, &:checked { @include button(hover, $c: $key_bg_color);}
|
||||||
|
&:active { @include button(active, $c: $key_bg_color); }
|
||||||
|
|
||||||
|
border-radius:$base_border_radius;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// emoji
|
||||||
|
.emoji-page {
|
||||||
|
.keyboard-key {
|
||||||
|
background-color: transparent;
|
||||||
|
border: none;
|
||||||
|
color: initial;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.emoji-panel {
|
||||||
|
.keyboard-key:latched {
|
||||||
|
border-color: lighten($selected_bg_color, 5%);
|
||||||
|
background-color: $selected_bg_color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// suggestions
|
||||||
|
.word-suggestions {
|
||||||
|
@include fontsize($base_font_size + 3);
|
||||||
|
spacing: 12px;
|
||||||
|
min-height: 20pt;
|
||||||
|
}
|
169
data/theme/gnome-shell-sass/widgets/_login-dialog.scss
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
/* Login Dialog */
|
||||||
|
|
||||||
|
.login-dialog-banner-view {
|
||||||
|
padding-top: 24px;
|
||||||
|
max-width: 23em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-dialog {
|
||||||
|
//reset
|
||||||
|
border: none;
|
||||||
|
background-color: transparent;
|
||||||
|
|
||||||
|
$_gdm_bg: lighten(#2e3436, 19%);
|
||||||
|
|
||||||
|
StEntry {
|
||||||
|
@if $variant=='dark' {
|
||||||
|
$_gdm_entry_bg: transparentize(lighten(desaturate(#241f31, 20%), 2%), 0.5);
|
||||||
|
background-color: $_gdm_entry_bg;
|
||||||
|
color: $osd_fg_color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-dialog-button-box { spacing: 3px; }
|
||||||
|
.modal-dialog-button {
|
||||||
|
padding: 4px 18px;
|
||||||
|
box-shadow: 0 1px 3px rgba(0,0,0,0.2);
|
||||||
|
background-color: $_gdm_bg;
|
||||||
|
border-color: $_gdm_bg;
|
||||||
|
color: $fg_color;
|
||||||
|
|
||||||
|
$_hover_c: lighten($_gdm_bg, 5%);
|
||||||
|
&:hover, &:focus {
|
||||||
|
background-color: $_hover_c;
|
||||||
|
border-color: $_hover_c;
|
||||||
|
}
|
||||||
|
&:active {
|
||||||
|
$_active_c: darken($_gdm_bg, 5%);
|
||||||
|
box-shadow: none;
|
||||||
|
background-color: $_active_c;
|
||||||
|
border-color: $_active_c;
|
||||||
|
}
|
||||||
|
&:insensitive {
|
||||||
|
@include button(insensitive);
|
||||||
|
border-color: darken($_gdm_bg, 5%);
|
||||||
|
background-color: darken($_gdm_bg, 5%);
|
||||||
|
color: transparentize($fg_color, 0.3);
|
||||||
|
}
|
||||||
|
&:default {
|
||||||
|
@include button(normal, $c:$selected_bg_color, $tc:$selected_fg_color);
|
||||||
|
border-color: $selected_bg_color;
|
||||||
|
&:hover, &:focus {
|
||||||
|
@include button(hover,$c:$selected_bg_color, $tc:$selected_fg_color);
|
||||||
|
$_def_hover_c: lighten($selected_bg_color, 5%);
|
||||||
|
background-color: $_def_hover_c;
|
||||||
|
border-color: $_def_hover_c;
|
||||||
|
}
|
||||||
|
&:active {
|
||||||
|
@include button(active,$c:$selected_bg_color, $tc:$selected_fg_color);
|
||||||
|
$_def_active_c: darken($selected_bg_color, 5%);
|
||||||
|
background-color: $_def_active_c;
|
||||||
|
border-color: $_def_active_c;
|
||||||
|
}
|
||||||
|
&:insensitive {
|
||||||
|
@include button(insensitive);
|
||||||
|
border-color: darken($selected_bg_color, 10%);
|
||||||
|
background-color: darken($selected_bg_color, 10%);
|
||||||
|
color: transparentize($selected_fg_color, 0.3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.cancel-button,
|
||||||
|
.switch-user-button,
|
||||||
|
.login-dialog-session-list-button {
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 99px;
|
||||||
|
width: $base_icon_size * 2;
|
||||||
|
height: $base_icon_size * 2;
|
||||||
|
border-color: transparentize($bg_color,0.7);
|
||||||
|
background-color: transparentize($bg_color,0.7);
|
||||||
|
|
||||||
|
StIcon { icon-size: $base_icon_size; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.caps-lock-warning-label,
|
||||||
|
.login-dialog-message-warning {
|
||||||
|
color: $osd_fg_color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-dialog-logo-bin { padding: 24px 0px; }
|
||||||
|
.login-dialog-banner { color: darken($osd_fg_color,10%); }
|
||||||
|
.login-dialog-button-box { width: 23em; spacing: 5px; }
|
||||||
|
.login-dialog-message { text-align: center; }
|
||||||
|
.login-dialog-message-hint { padding-top: 0; padding-bottom: 20px; }
|
||||||
|
.login-dialog-user-selection-box { padding: 100px 0px; }
|
||||||
|
.login-dialog-not-listed-label {
|
||||||
|
padding-left: 2px;
|
||||||
|
.login-dialog-not-listed-button:focus &,
|
||||||
|
.login-dialog-not-listed-button:hover & {
|
||||||
|
color: $osd_fg_color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-dialog-not-listed-label {
|
||||||
|
@include fontsize($base_font_size - 1);
|
||||||
|
font-weight: bold;
|
||||||
|
color: darken($osd_fg_color,30%);
|
||||||
|
padding-top: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-dialog-user-list-view { -st-vfade-offset: 1em; }
|
||||||
|
.login-dialog-user-list {
|
||||||
|
spacing: 12px;
|
||||||
|
width: 23em;
|
||||||
|
&:expanded .login-dialog-user-list-item:selected { background-color: $selected_bg_color; color: $selected_fg_color; }
|
||||||
|
&:expanded .login-dialog-user-list-item:logged-in { border-right: 2px solid $selected_bg_color; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-dialog-user-list-item {
|
||||||
|
border-radius: $base_border_radius + 4px;
|
||||||
|
padding: 6px;
|
||||||
|
color: darken($osd_fg_color,30%);
|
||||||
|
&:ltr .user-widget { padding-right: 1em; }
|
||||||
|
&:rtl .user-widget { padding-left: 1em; }
|
||||||
|
.login-dialog-timed-login-indicator {
|
||||||
|
height: 2px;
|
||||||
|
margin-top: 6px;
|
||||||
|
background-color: $osd_fg_color;
|
||||||
|
}
|
||||||
|
&:focus .login-dialog-timed-login-indicator { background-color: $selected_fg_color; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-widget-label {
|
||||||
|
color: $osd_fg_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-widget.horizontal .user-widget-label {
|
||||||
|
@include fontsize($base_font_size + 2);
|
||||||
|
font-weight: bold;
|
||||||
|
padding-left: 15px;
|
||||||
|
|
||||||
|
&:ltr { padding-left: 14px; text-align: left; }
|
||||||
|
&:rtl { padding-right: 14px; text-align: right; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-widget.vertical .user-widget-label {
|
||||||
|
@include fontsize($base_font_size + 5);
|
||||||
|
text-align: center;
|
||||||
|
font-weight: normal;
|
||||||
|
padding-top: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-dialog-prompt-layout {
|
||||||
|
padding-top: 24px;
|
||||||
|
padding-bottom: 12px;
|
||||||
|
spacing: $base_spacing * 2;
|
||||||
|
width: 23em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-dialog-prompt-entry {
|
||||||
|
height: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-dialog-prompt-label {
|
||||||
|
color: darken($osd_fg_color, 20%);
|
||||||
|
@include fontsize($base_font_size + 1);
|
||||||
|
padding-top: 1em;
|
||||||
|
}
|
109
data/theme/gnome-shell-sass/widgets/_looking-glass.scss
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
/* Looking Glass */
|
||||||
|
|
||||||
|
$text_fg_color: #ccc;
|
||||||
|
|
||||||
|
// Dialog
|
||||||
|
#LookingGlassDialog {
|
||||||
|
background-color: $osd_bg_color;
|
||||||
|
spacing: $base_spacing;
|
||||||
|
padding: 4px;
|
||||||
|
border: 1px solid transparentize($osd_fg_color, 0.8);
|
||||||
|
border-radius: $base_border_radius;
|
||||||
|
color: $osd_fg_color;
|
||||||
|
|
||||||
|
& > #Toolbar {
|
||||||
|
border: none;
|
||||||
|
border-radius: $base_border_radius;
|
||||||
|
background-color: $osd_bg_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.labels { spacing: $base_spacing; }
|
||||||
|
.notebook-tab {
|
||||||
|
-natural-hpadding: $base_padding * 2;
|
||||||
|
-minimum-hpadding: 6px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: darken($osd_fg_color, 15%);
|
||||||
|
transition-duration: 100ms;
|
||||||
|
padding-left: .3em;
|
||||||
|
padding-right: .3em;
|
||||||
|
border-bottom-width: 2px;
|
||||||
|
&:hover {
|
||||||
|
color: $osd_fg_color;
|
||||||
|
}
|
||||||
|
&:selected {
|
||||||
|
border-bottom-width: 2px;
|
||||||
|
box-shadow: inset 0 -2px 0 0 lighten($selected_bg_color, 5%);
|
||||||
|
color: $osd_fg_color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
StBoxLayout#EvalBox { padding: 4px; spacing: $base_spacing; }
|
||||||
|
StBoxLayout#ResultsArea { spacing: $base_spacing; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.lg-dialog {
|
||||||
|
StEntry {
|
||||||
|
background-color: transparentize(lighten($osd_bg_color, 5%), 0.4);
|
||||||
|
color: $osd_fg_color;
|
||||||
|
border-color: transparentize($osd_fg_color, 0.8);
|
||||||
|
min-height: 22px;
|
||||||
|
selection-background-color: $selected_bg_color;
|
||||||
|
selected-color: $selected_fg_color;
|
||||||
|
}
|
||||||
|
.shell-link {
|
||||||
|
color: $link_color;
|
||||||
|
&:hover { color: lighten($link_color, 10%); }
|
||||||
|
&:active { color: darken($link_color, 10%); }
|
||||||
|
}
|
||||||
|
.actor-link {
|
||||||
|
color: $text_fg_color;
|
||||||
|
&:hover { color: lighten($text_fg_color, 20%); }
|
||||||
|
&:active { color: darken($text_fg_color, 20%); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lg-completions-text {
|
||||||
|
font-size: .9em;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lg-obj-inspector-title {
|
||||||
|
spacing: $base_spacing;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lg-obj-inspector-button {
|
||||||
|
border: 1px solid $osd_borders_color;
|
||||||
|
padding: 4px;
|
||||||
|
border-radius: $base_border_radius;
|
||||||
|
&:hover { border: 1px solid #ffffff; }
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extensions
|
||||||
|
#lookingGlassExtensions { padding: 4px; }
|
||||||
|
|
||||||
|
.lg-extensions-list {
|
||||||
|
padding: 4px;
|
||||||
|
spacing: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lg-extension {
|
||||||
|
border: 1px solid lighten($osd_borders_color, 5%);
|
||||||
|
background-color: lighten($osd_bg_color, 5%);
|
||||||
|
border-radius: $base_border_radius;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lg-extension-name {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lg-extension-meta {
|
||||||
|
spacing: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Inspector
|
||||||
|
#LookingGlassPropertyInspector {
|
||||||
|
background: $osd_bg_color;
|
||||||
|
border: 1px solid $osd_borders_color;
|
||||||
|
border-radius: $base_border_radius;
|
||||||
|
padding: 6px;
|
||||||
|
}
|
136
data/theme/gnome-shell-sass/widgets/_message-list.scss
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
/* Message List */
|
||||||
|
// a.k.a. notifications in the menu
|
||||||
|
|
||||||
|
// main list
|
||||||
|
.message-list {
|
||||||
|
width: 31.5em;
|
||||||
|
padding: 0 $base_padding * 2;
|
||||||
|
|
||||||
|
.message-list-placeholder { spacing: 12px; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.message-list-sections {
|
||||||
|
spacing: $base_spacing;
|
||||||
|
margin: 0 $base_margin * 4; // to account for scrollbar
|
||||||
|
}
|
||||||
|
|
||||||
|
.message-list-section,
|
||||||
|
.message-list-section-list {
|
||||||
|
spacing: $base_spacing;
|
||||||
|
}
|
||||||
|
|
||||||
|
// do-not-disturb + clear button
|
||||||
|
.message-list-controls {
|
||||||
|
margin: ($base_margin * 2) ($base_margin * 4) 0;
|
||||||
|
// NOTE: remove the padding if notification_bubble could remove margin for drop shadow
|
||||||
|
padding: $base_margin;
|
||||||
|
spacing: $base_spacing * 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// message bubbles
|
||||||
|
.message {
|
||||||
|
@include notification_bubble;
|
||||||
|
|
||||||
|
// icon container
|
||||||
|
.message-icon-bin {
|
||||||
|
padding: ($base_padding * 3) 0 ($base_padding * 3) ($base_padding * 2);
|
||||||
|
|
||||||
|
&:rtl {
|
||||||
|
padding: ($base_padding * 3) ($base_padding * 2) ($base_padding * 3) 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// icon size and color
|
||||||
|
> StIcon {
|
||||||
|
icon-size: $base_icon_size*2; // 32px
|
||||||
|
-st-icon-style: symbolic;
|
||||||
|
}
|
||||||
|
|
||||||
|
// fallback
|
||||||
|
> .fallback-app-icon {
|
||||||
|
width: $base_icon_size;
|
||||||
|
height: $base_icon_size;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// content
|
||||||
|
.message-content {
|
||||||
|
padding: $base_padding + $base_margin * 2;
|
||||||
|
spacing: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// title
|
||||||
|
.message-title {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
// secondary container in title box
|
||||||
|
.message-secondary-bin {
|
||||||
|
padding: 0 $base_margin * 2;
|
||||||
|
|
||||||
|
// notification time stamp
|
||||||
|
> .event-time {
|
||||||
|
color: transparentize($fg_color, 0.5);
|
||||||
|
@include fontsize($base_font_size - 2);
|
||||||
|
/* HACK: the label should be baseline-aligned with a 1em label, fake this with some bottom padding */
|
||||||
|
padding-bottom: 0.13em;
|
||||||
|
|
||||||
|
&:ltr { text-align: right };
|
||||||
|
&:rtl { text-align: left };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// close button
|
||||||
|
.message-close-button {
|
||||||
|
color: lighten($fg_color, 15%);
|
||||||
|
&:hover { color: if($variant=='light', lighten($fg_color, 30%), darken($fg_color, 10%)); }
|
||||||
|
&:active { color: if($variant=='light', lighten($fg_color, 40%), darken($fg_color, 20%)); }
|
||||||
|
}
|
||||||
|
|
||||||
|
// body
|
||||||
|
.message-body {
|
||||||
|
color: darken($fg_color, 10%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// URLs in messages
|
||||||
|
.url-highlighter {
|
||||||
|
link-color: $link_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Media Controls */
|
||||||
|
.message-media-control {
|
||||||
|
padding: $base_padding * 2 $base_padding * 4;
|
||||||
|
color: darken($fg_color, 15%);
|
||||||
|
|
||||||
|
// uses $hover_bg_color since the media controls are in a notification_bubble
|
||||||
|
&:hover {
|
||||||
|
background-color: lighten($hover_bg_color, 5%);
|
||||||
|
color: $fg_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
background-color: darken($hover_bg_color, 2%);
|
||||||
|
color: $fg_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:insensitive { color: darken($fg_color,40%); }
|
||||||
|
|
||||||
|
// fix border-radius for last button
|
||||||
|
&:last-child:ltr { border-radius: 0 $base_border_radius+2 $base_border_radius+2 0; }
|
||||||
|
&:last-child:rtl { border-radius: $base_border_radius+2 0 0 $base_border_radius+2; }
|
||||||
|
}
|
||||||
|
|
||||||
|
// album-art
|
||||||
|
.media-message-cover-icon {
|
||||||
|
icon-size: $base_icon_size*2 !important; // 48px
|
||||||
|
border-radius: $base_border_radius;
|
||||||
|
|
||||||
|
// when there is no artwork
|
||||||
|
&.fallback {
|
||||||
|
color: darken($fg_color, 17%);
|
||||||
|
background-color: $bg_color;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: $base_border_radius;
|
||||||
|
icon-size: $base_icon_size * 2 !important;
|
||||||
|
}
|
||||||
|
}
|
55
data/theme/gnome-shell-sass/widgets/_misc.scss
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
// Rubberband for select-area screenshots
|
||||||
|
.select-area-rubberband {
|
||||||
|
background-color: transparentize($selected_bg_color,0.7);
|
||||||
|
border: 1px solid $selected_bg_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
// User icon
|
||||||
|
.user-icon {
|
||||||
|
background-size: contain;
|
||||||
|
color: $osd_fg_color;
|
||||||
|
border-radius: 99px;
|
||||||
|
&:hover {
|
||||||
|
color: lighten($osd_fg_color,30%);
|
||||||
|
}
|
||||||
|
|
||||||
|
& StIcon {
|
||||||
|
background-color: transparentize($osd_fg_color,0.95);
|
||||||
|
border-radius: 99px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-widget.vertical .user-icon {
|
||||||
|
icon-size: $base_icon_size * 6; // 128px
|
||||||
|
|
||||||
|
& StIcon {
|
||||||
|
padding: $base_padding * 3 + 2px; // 20px
|
||||||
|
padding-top: $base_padding * 3; // 18 px
|
||||||
|
padding-bottom: $base_padding * 3 + 4px; // 22px
|
||||||
|
width: $base_icon_size * 5.5; height: $base_icon_size * 5.5; // 88px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-widget.horizontal .user-icon {
|
||||||
|
icon-size: $base_icon_size * 4; // 64px
|
||||||
|
|
||||||
|
& StIcon {
|
||||||
|
padding: $base_padding * 2 ; // 12px
|
||||||
|
width: $base_icon_size * 2.5; height: $base_icon_size * 2.5; // 40px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox { background-color: black; }
|
||||||
|
.flashspot { background-color: white; }
|
||||||
|
|
||||||
|
|
||||||
|
// Hidden
|
||||||
|
.hidden { color: rgba(0,0,0,0);}
|
||||||
|
|
||||||
|
// Caps-lock warning
|
||||||
|
.caps-lock-warning-label {
|
||||||
|
text-align: center;
|
||||||
|
padding-bottom: 8px;
|
||||||
|
@include fontsize($base_font_size - 1);
|
||||||
|
color: $warning_color;
|
||||||
|
}
|
56
data/theme/gnome-shell-sass/widgets/_network-dialog.scss
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
/* Network Dialogs */
|
||||||
|
.nm-dialog {
|
||||||
|
max-height: 34em;
|
||||||
|
min-height: 31em;
|
||||||
|
min-width: 32em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nm-dialog-content {
|
||||||
|
spacing: 20px;
|
||||||
|
padding: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nm-dialog-airplane-box { spacing: 12px; }
|
||||||
|
|
||||||
|
.nm-dialog-airplane-headline {
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nm-dialog-airplane-text { color: $fg_color; }
|
||||||
|
|
||||||
|
// header
|
||||||
|
.nm-dialog-header {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.nm-dialog-header-icon {
|
||||||
|
icon-size: $base_icon_size * 2;
|
||||||
|
}
|
||||||
|
.nm-dialog-header-hbox { spacing: 10px; }
|
||||||
|
|
||||||
|
// list of networks
|
||||||
|
.nm-dialog-scroll-view {
|
||||||
|
border: 1px solid $borders_color;
|
||||||
|
padding:0;
|
||||||
|
background-color: darken($bg_color, 3%);
|
||||||
|
}
|
||||||
|
|
||||||
|
// list item
|
||||||
|
.nm-dialog-item {
|
||||||
|
@include fontsize($base_font_size);
|
||||||
|
border-bottom: 1px solid $borders_color;
|
||||||
|
padding: $base_padding * 2;
|
||||||
|
spacing: 0px;
|
||||||
|
&:selected {
|
||||||
|
background-color: $selected_bg_color;
|
||||||
|
color: $selected_fg_color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// icons in list
|
||||||
|
.nm-dialog-icon { icon-size: $base_icon_size; }
|
||||||
|
.nm-dialog-icons { spacing: $base_spacing * 2; }
|
||||||
|
|
||||||
|
// no networks
|
||||||
|
.no-networks-label { color: $insensitive_fg_color; }
|
||||||
|
.no-networks-box { spacing: $base_padding; }
|