Compare commits
498 Commits
3.5.3
...
wip/is-swi
Author | SHA1 | Date | |
---|---|---|---|
![]() |
2467439d94 | ||
![]() |
0e83b748d5 | ||
![]() |
bda4af5504 | ||
![]() |
f97d8dfb6c | ||
![]() |
46f0cffa53 | ||
![]() |
b6203192b5 | ||
![]() |
992a15e640 | ||
![]() |
f1620abfad | ||
![]() |
591523e473 | ||
![]() |
72769e113a | ||
![]() |
387cb83c8a | ||
![]() |
577e5e2e1a | ||
![]() |
47cf63bebe | ||
![]() |
0e58906194 | ||
![]() |
13c7020b80 | ||
![]() |
5ed6e37e3c | ||
![]() |
9ed3a77102 | ||
![]() |
acd99927f9 | ||
![]() |
13c92f63bb | ||
![]() |
12400caef8 | ||
![]() |
a1b3fdfbd6 | ||
![]() |
4b47c59a04 | ||
![]() |
5d223c189c | ||
![]() |
c5d0923453 | ||
![]() |
41f8fccf6b | ||
![]() |
e02ad64fef | ||
![]() |
8db53af1f8 | ||
![]() |
defaa5876c | ||
![]() |
e7870cb665 | ||
![]() |
64eb42023c | ||
![]() |
e7faef860b | ||
![]() |
4dfbe9a493 | ||
![]() |
6a17bb4cf5 | ||
![]() |
58496de595 | ||
![]() |
f80a15f312 | ||
![]() |
9df2d83aa0 | ||
![]() |
1582448553 | ||
![]() |
eefa62bcd4 | ||
![]() |
e216b6ca0f | ||
![]() |
8a33880c00 | ||
![]() |
7a8c45dda8 | ||
![]() |
af01ddaf5d | ||
![]() |
5ceffe86ee | ||
![]() |
49df033b4e | ||
![]() |
ac3465ffbb | ||
![]() |
884ab602cb | ||
![]() |
d944bda7b9 | ||
![]() |
11f7cfb27b | ||
![]() |
64358d9901 | ||
![]() |
2efed44257 | ||
![]() |
69c72ebb26 | ||
![]() |
00a842f41b | ||
![]() |
460dc9f2ef | ||
![]() |
be46869782 | ||
![]() |
2863eba2e7 | ||
![]() |
e0b698d365 | ||
![]() |
edeac1de09 | ||
![]() |
9281a1c191 | ||
![]() |
a3826987e6 | ||
![]() |
e46c7fd27b | ||
![]() |
0bb8d29be4 | ||
![]() |
1f905bd0e2 | ||
![]() |
cce5ad7cc0 | ||
![]() |
97a4cc8c9b | ||
![]() |
592374bc62 | ||
![]() |
2e0f979613 | ||
![]() |
6d365a700c | ||
![]() |
72a9eb6a3e | ||
![]() |
ae3cfe6c01 | ||
![]() |
da557cb712 | ||
![]() |
c1e41d558f | ||
![]() |
889844b004 | ||
![]() |
6311a3ebc1 | ||
![]() |
0f6c1db2ba | ||
![]() |
e6ec1abbfa | ||
![]() |
42621c960e | ||
![]() |
8e9ae2eb50 | ||
![]() |
ca7843372c | ||
![]() |
1202714428 | ||
![]() |
45addabe5d | ||
![]() |
31abad0ea5 | ||
![]() |
c169d29836 | ||
![]() |
df8ad83cec | ||
![]() |
381a9c2650 | ||
![]() |
dc3529d98a | ||
![]() |
e15bc37225 | ||
![]() |
160150d127 | ||
![]() |
6e02fb80c4 | ||
![]() |
98b0a37442 | ||
![]() |
4d437e32e0 | ||
![]() |
7db236b2a4 | ||
![]() |
377e2ed8a5 | ||
![]() |
99cfbac473 | ||
![]() |
34f06ee9e5 | ||
![]() |
f212723e71 | ||
![]() |
660eceb61a | ||
![]() |
d395d75e26 | ||
![]() |
2aea49a8d0 | ||
![]() |
c996dde5cb | ||
![]() |
4bdd985faf | ||
![]() |
6e831c88a6 | ||
![]() |
0e3d164117 | ||
![]() |
ec6460382c | ||
![]() |
436d3ff8a9 | ||
![]() |
e4269002ce | ||
![]() |
4f2bb583bf | ||
![]() |
702f3fc691 | ||
![]() |
4cad9513b4 | ||
![]() |
24974816a6 | ||
![]() |
773ae8dc65 | ||
![]() |
7f14298126 | ||
![]() |
a39cabfadb | ||
![]() |
4df3e987c6 | ||
![]() |
64c523c534 | ||
![]() |
fba2c49aae | ||
![]() |
e623406c99 | ||
![]() |
de36d51b91 | ||
![]() |
e6d5e98c9d | ||
![]() |
832b7f9431 | ||
![]() |
171a273d11 | ||
![]() |
45b0765f2f | ||
![]() |
2a773e0c85 | ||
![]() |
b5152c3327 | ||
![]() |
d4f8c29221 | ||
![]() |
1b83e8a64c | ||
![]() |
36eb5c305d | ||
![]() |
c72dbeb611 | ||
![]() |
63aec4566d | ||
![]() |
2cafb8be2d | ||
![]() |
64544fa0ed | ||
![]() |
51ccaaaff0 | ||
![]() |
b09f47d17f | ||
![]() |
1dbefc4e36 | ||
![]() |
7f6a77232f | ||
![]() |
580feb0c85 | ||
![]() |
842bc4421c | ||
![]() |
aba87407e9 | ||
![]() |
112ef93e19 | ||
![]() |
c4efd1c789 | ||
![]() |
7e61ef0936 | ||
![]() |
e9709b7ff9 | ||
![]() |
027593faa5 | ||
![]() |
491c5b622e | ||
![]() |
5e9621ed80 | ||
![]() |
f5de1c78af | ||
![]() |
b0774d795c | ||
![]() |
034ab77c30 | ||
![]() |
a6a9d3f448 | ||
![]() |
a215852d3c | ||
![]() |
264a0bbd15 | ||
![]() |
55a4d0e0cb | ||
![]() |
d900d83522 | ||
![]() |
e8b0c11703 | ||
![]() |
3d337a98d9 | ||
![]() |
3e38a48c40 | ||
![]() |
5876f2e3e5 | ||
![]() |
aeb589c176 | ||
![]() |
14dd766e11 | ||
![]() |
24ff4b5622 | ||
![]() |
7f3362bdce | ||
![]() |
6b5cf2eb61 | ||
![]() |
fb0cd80332 | ||
![]() |
579bf2105e | ||
![]() |
995e8040dd | ||
![]() |
0503f6bb9a | ||
![]() |
87fe9685b5 | ||
![]() |
2d9b8bb2d0 | ||
![]() |
74b1a9e2b9 | ||
![]() |
fcc178ee8c | ||
![]() |
d8696c17be | ||
![]() |
b07aea467e | ||
![]() |
04ef448927 | ||
![]() |
790bfcad9a | ||
![]() |
fbfab93c63 | ||
![]() |
70c0d39fa7 | ||
![]() |
7d43bde019 | ||
![]() |
7743c70d47 | ||
![]() |
c9343e3ee3 | ||
![]() |
3abaf506a6 | ||
![]() |
9de142db09 | ||
![]() |
2942b22ccf | ||
![]() |
94e6e55ef7 | ||
![]() |
34fc234fd7 | ||
![]() |
c3ffd28bb6 | ||
![]() |
1c680be11a | ||
![]() |
a362c08f4e | ||
![]() |
380154af0a | ||
![]() |
d482590c84 | ||
![]() |
b3c572b8e3 | ||
![]() |
c64eb94724 | ||
![]() |
d8f569eaf5 | ||
![]() |
57c31a56f4 | ||
![]() |
8b21df92f0 | ||
![]() |
e914595062 | ||
![]() |
a2a3188331 | ||
![]() |
453020c315 | ||
![]() |
d794db876a | ||
![]() |
b33b4a8e2c | ||
![]() |
6f74a63bbd | ||
![]() |
5298d1c8d0 | ||
![]() |
493f619adc | ||
![]() |
a613a55658 | ||
![]() |
3fe5a676c2 | ||
![]() |
19420f147f | ||
![]() |
32b7743735 | ||
![]() |
093e101252 | ||
![]() |
6f873be7fa | ||
![]() |
f37dd25e92 | ||
![]() |
d48df249c9 | ||
![]() |
e48c3dac87 | ||
![]() |
3516902fae | ||
![]() |
66185a468c | ||
![]() |
84930f1d78 | ||
![]() |
07273a075d | ||
![]() |
3900aa10f8 | ||
![]() |
d8058138ab | ||
![]() |
ac49259fc7 | ||
![]() |
12dbb90a5a | ||
![]() |
90f2a3ae4c | ||
![]() |
867e10dbcc | ||
![]() |
9a57626556 | ||
![]() |
b9e21b76ae | ||
![]() |
2ecc50af53 | ||
![]() |
1cebe19bbe | ||
![]() |
71055556ee | ||
![]() |
4d9d66da65 | ||
![]() |
30bdadb519 | ||
![]() |
c388ccf477 | ||
![]() |
a2d54bb2ab | ||
![]() |
cefadb55b1 | ||
![]() |
06e31e4c03 | ||
![]() |
869a137c2f | ||
![]() |
f4e4a05a9e | ||
![]() |
df15843407 | ||
![]() |
d8eb47e2b7 | ||
![]() |
e28a36affd | ||
![]() |
53534b4ded | ||
![]() |
079dd60e3d | ||
![]() |
5d12f00b3b | ||
![]() |
95f3bb3b81 | ||
![]() |
2bfe6d2da5 | ||
![]() |
27e0e44d8b | ||
![]() |
7e5fb3e1a0 | ||
![]() |
2ac17cc7ba | ||
![]() |
7b32b7fcd1 | ||
![]() |
2fcd75eadd | ||
![]() |
8094c0ab23 | ||
![]() |
831cf9a83a | ||
![]() |
47be4fdf07 | ||
![]() |
9b34545bd5 | ||
![]() |
e5317cc7a0 | ||
![]() |
b8887a6c3a | ||
![]() |
a6c51addac | ||
![]() |
54a3847a5e | ||
![]() |
5a8473e226 | ||
![]() |
5c33b0d768 | ||
![]() |
22a3126a2b | ||
![]() |
9596c24f83 | ||
![]() |
86d6baf30f | ||
![]() |
3a3be74e37 | ||
![]() |
f57d64337b | ||
![]() |
e69fcc860c | ||
![]() |
afbca61524 | ||
![]() |
66d37e06ba | ||
![]() |
7e2d6cb6ec | ||
![]() |
b9f775fe02 | ||
![]() |
90cf43da9f | ||
![]() |
bab51cbbe4 | ||
![]() |
e782426736 | ||
![]() |
1071e9970f | ||
![]() |
5d64bdf3d9 | ||
![]() |
8012a315e3 | ||
![]() |
acd6df34da | ||
![]() |
6431abbc85 | ||
![]() |
57ff0f7071 | ||
![]() |
2a2ac52726 | ||
![]() |
a91eeb24d4 | ||
![]() |
581960abc8 | ||
![]() |
3a307b5d24 | ||
![]() |
4e21d5d610 | ||
![]() |
02c2cf1960 | ||
![]() |
748064678f | ||
![]() |
982d554450 | ||
![]() |
0e5f8997cf | ||
![]() |
6111d3ee4a | ||
![]() |
3876a1a192 | ||
![]() |
6f3ae06362 | ||
![]() |
7d7b859b40 | ||
![]() |
d78de379cc | ||
![]() |
576384a73b | ||
![]() |
2fcbc467e8 | ||
![]() |
6139bc77ec | ||
![]() |
c1ac9d1dff | ||
![]() |
945c530354 | ||
![]() |
774ceec243 | ||
![]() |
7c20621112 | ||
![]() |
afcdfd158f | ||
![]() |
8fb9e0072c | ||
![]() |
c1b8e0ac8f | ||
![]() |
c90765370d | ||
![]() |
8931b8026e | ||
![]() |
55251aa986 | ||
![]() |
946a42f13e | ||
![]() |
0fd4059927 | ||
![]() |
1d827049d6 | ||
![]() |
881d256ce0 | ||
![]() |
6b31bd402a | ||
![]() |
129c729c50 | ||
![]() |
8bf8f3ea55 | ||
![]() |
f0c1e39fb7 | ||
![]() |
dd4e655e2b | ||
![]() |
b3073bc3bc | ||
![]() |
54603f4d95 | ||
![]() |
aab65a768e | ||
![]() |
37c037278c | ||
![]() |
9d904f9a85 | ||
![]() |
8830814d70 | ||
![]() |
c0958090b4 | ||
![]() |
7f9e4e47c5 | ||
![]() |
2282326f30 | ||
![]() |
8703daccbe | ||
![]() |
3797ecaa65 | ||
![]() |
c6fcc79e6a | ||
![]() |
d588de635a | ||
![]() |
e5b46747d6 | ||
![]() |
62d85f2e41 | ||
![]() |
5ea6bf3b46 | ||
![]() |
90d0bb96b4 | ||
![]() |
ff64cba616 | ||
![]() |
30387df454 | ||
![]() |
38484bf967 | ||
![]() |
e73946f0bf | ||
![]() |
6004197064 | ||
![]() |
aa43e715c0 | ||
![]() |
424fc5245a | ||
![]() |
90952ac5c8 | ||
![]() |
395fbefd3c | ||
![]() |
bdf47aeac4 | ||
![]() |
daac778f16 | ||
![]() |
93a16f6d43 | ||
![]() |
e46cf80fdd | ||
![]() |
c37c741592 | ||
![]() |
4cf461fffa | ||
![]() |
859ea1457d | ||
![]() |
188d532438 | ||
![]() |
f258556cec | ||
![]() |
62dbaa89ca | ||
![]() |
b56396eca5 | ||
![]() |
0fdc36cac4 | ||
![]() |
2cc0d31b17 | ||
![]() |
e2bf91cd61 | ||
![]() |
294311b2d1 | ||
![]() |
db6d89b742 | ||
![]() |
2717a02a8d | ||
![]() |
4344c9e192 | ||
![]() |
53e2d34628 | ||
![]() |
c602d53649 | ||
![]() |
43a121c8d9 | ||
![]() |
a8c5100fbb | ||
![]() |
5034bd8a7e | ||
![]() |
07d8b9ce19 | ||
![]() |
9c5ac65311 | ||
![]() |
ce8d36a5db | ||
![]() |
27b00d6f63 | ||
![]() |
c441364bd3 | ||
![]() |
1a521e10c3 | ||
![]() |
e22d941f06 | ||
![]() |
787d22dcd0 | ||
![]() |
22d9182322 | ||
![]() |
38295e8202 | ||
![]() |
fe57f7572d | ||
![]() |
aade16a9eb | ||
![]() |
e31a97759e | ||
![]() |
472662d099 | ||
![]() |
027f16b096 | ||
![]() |
5c7fdd67e8 | ||
![]() |
4a0b6793bf | ||
![]() |
228d1bf9aa | ||
![]() |
85bcb9c121 | ||
![]() |
989a38767e | ||
![]() |
78e72f0a47 | ||
![]() |
0faa623043 | ||
![]() |
ecd7e662ff | ||
![]() |
7d9925ba2e | ||
![]() |
95c6547631 | ||
![]() |
b5235d5a46 | ||
![]() |
f3b1e8b3bd | ||
![]() |
59bc5b7975 | ||
![]() |
99cbe762d7 | ||
![]() |
7a2c019514 | ||
![]() |
c02e1b6f56 | ||
![]() |
7938458eb8 | ||
![]() |
165e117028 | ||
![]() |
32cb4a178e | ||
![]() |
7b69780d9a | ||
![]() |
be500e33f9 | ||
![]() |
427c5cc42b | ||
![]() |
3f444cb2fe | ||
![]() |
02bc4b54eb | ||
![]() |
85c46be205 | ||
![]() |
f97db0215b | ||
![]() |
dc79d8aa3d | ||
![]() |
00fecb6cea | ||
![]() |
f0e97b540f | ||
![]() |
37266aabfe | ||
![]() |
6cc423cca6 | ||
![]() |
ce820702e3 | ||
![]() |
5eb72743dd | ||
![]() |
ae1be578ba | ||
![]() |
7e1e9320bc | ||
![]() |
18a1ed6ec5 | ||
![]() |
09713c5fd4 | ||
![]() |
909cd82bea | ||
![]() |
0593df8fe0 | ||
![]() |
29b3e69dfa | ||
![]() |
639d5e4710 | ||
![]() |
8c36cf5939 | ||
![]() |
cc107c0eda | ||
![]() |
c7f70d71f7 | ||
![]() |
9c6ccf96a5 | ||
![]() |
11262b76df | ||
![]() |
8fcc0db0c1 | ||
![]() |
7c999a9d13 | ||
![]() |
efc55347e0 | ||
![]() |
5f11158721 | ||
![]() |
88ee5a68d9 | ||
![]() |
e1870a41b1 | ||
![]() |
bb74499188 | ||
![]() |
079822c3f4 | ||
![]() |
bfacd9d420 | ||
![]() |
36361b86d4 | ||
![]() |
7c9c232d14 | ||
![]() |
14c460c7fd | ||
![]() |
0371194191 | ||
![]() |
3b0c7c568d | ||
![]() |
08893400a0 | ||
![]() |
03cde43646 | ||
![]() |
8617efb544 | ||
![]() |
db4298502e | ||
![]() |
9f90f25e80 | ||
![]() |
1fdde85f53 | ||
![]() |
0e529fba00 | ||
![]() |
6a32fa9452 | ||
![]() |
b422b6f06e | ||
![]() |
bc96a14185 | ||
![]() |
fbcddbcf3e | ||
![]() |
dfe8979a90 | ||
![]() |
c3a6de749b | ||
![]() |
935e820a1d | ||
![]() |
f4125b95ca | ||
![]() |
d8bc7f7aa1 | ||
![]() |
6d67ee3965 | ||
![]() |
991ea50038 | ||
![]() |
885a6afdcd | ||
![]() |
0106f8bab1 | ||
![]() |
d27bccd0ba | ||
![]() |
c66488210c | ||
![]() |
6c3985220e | ||
![]() |
802c1ac427 | ||
![]() |
7a2a6e2675 | ||
![]() |
c27b4b7cfc | ||
![]() |
0ab572d511 | ||
![]() |
1c8d45e89c | ||
![]() |
4e2c2cb1ab | ||
![]() |
07dd4d3f93 | ||
![]() |
22370bef09 | ||
![]() |
f8d443b5b8 | ||
![]() |
f22ecd1c57 | ||
![]() |
b85be9312b | ||
![]() |
cd0870730f | ||
![]() |
d6be75ae99 | ||
![]() |
c1be7f1a60 | ||
![]() |
fccd5fd4ca | ||
![]() |
1e5ef70fe3 | ||
![]() |
1347a06e38 | ||
![]() |
b5d5934e5a | ||
![]() |
64b1c0f953 | ||
![]() |
10d53fc7d2 | ||
![]() |
eb1292ea99 | ||
![]() |
e257580b94 | ||
![]() |
42261156ec | ||
![]() |
89e31f0d9d | ||
![]() |
c805e397fd | ||
![]() |
760a36aeee | ||
![]() |
5d57a2594d | ||
![]() |
1a5132d391 | ||
![]() |
0fe0534c85 | ||
![]() |
fe942049da | ||
![]() |
e6ed29f0e2 | ||
![]() |
15f11f879d | ||
![]() |
f517eaf81e | ||
![]() |
255347f876 | ||
![]() |
e4ae7d7b1b | ||
![]() |
2be943d1d9 | ||
![]() |
0a50488bef | ||
![]() |
78c966321a | ||
![]() |
f65b7c59d3 | ||
![]() |
e31f55e146 |
19
.gitignore
vendored
19
.gitignore
vendored
@@ -19,6 +19,8 @@ libtool
|
|||||||
ltmain.sh
|
ltmain.sh
|
||||||
missing
|
missing
|
||||||
.deps
|
.deps
|
||||||
|
src/50-mutter-navigation.xml
|
||||||
|
src/50-mutter-system.xml
|
||||||
src/50-mutter-windows.xml
|
src/50-mutter-windows.xml
|
||||||
src/mutter-wm.desktop
|
src/mutter-wm.desktop
|
||||||
src/mutter.desktop
|
src/mutter.desktop
|
||||||
@@ -73,3 +75,20 @@ src/stamp-mutter-enum-types.h
|
|||||||
src/mutter-marshal.[ch]
|
src/mutter-marshal.[ch]
|
||||||
src/stamp-mutter-marshal.h
|
src/stamp-mutter-marshal.h
|
||||||
src/mutter-plugins.pc
|
src/mutter-plugins.pc
|
||||||
|
doc/reference/*.args
|
||||||
|
doc/reference/*.bak
|
||||||
|
doc/reference/*.hierarchy
|
||||||
|
doc/reference/*.interfaces
|
||||||
|
doc/reference/*.prerequisites
|
||||||
|
doc/reference/*.signals
|
||||||
|
doc/reference/*.stamp
|
||||||
|
doc/reference/html/
|
||||||
|
doc/reference/xml/
|
||||||
|
doc/reference/meta-decl-list.txt
|
||||||
|
doc/reference/meta-decl.txt
|
||||||
|
doc/reference/meta-overrides.txt
|
||||||
|
doc/reference/meta-undeclared.txt
|
||||||
|
doc/reference/meta-undocumented.txt
|
||||||
|
doc/reference/meta-unused.txt
|
||||||
|
doc/reference/meta-docs.sgml
|
||||||
|
doc/reference/meta.types
|
||||||
|
@@ -4,3 +4,5 @@ SUBDIRS=src po doc
|
|||||||
EXTRA_DIST = HACKING MAINTAINERS rationales.txt
|
EXTRA_DIST = HACKING MAINTAINERS rationales.txt
|
||||||
|
|
||||||
DISTCLEANFILES = intltool-extract intltool-merge intltool-update po/stamp-it po/.intltool-merge-cache
|
DISTCLEANFILES = intltool-extract intltool-merge intltool-update po/stamp-it po/.intltool-merge-cache
|
||||||
|
|
||||||
|
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
|
||||||
|
282
NEWS
282
NEWS
@@ -1,3 +1,285 @@
|
|||||||
|
3.8.0
|
||||||
|
=====
|
||||||
|
* Address major memory leak when changing backgrounds [Ray; #696157]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Ray Strode
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Sandeep Sheshrao Shedmake [mr], Victor Ibragimov [tg], Gabor Kelemen [hu],
|
||||||
|
Ville-Pekka Vainio [fi], Rajesh Ranjan [hi], Dr.T.Vasudevan [ta],
|
||||||
|
ManojKumar Giri [or], Yuri Myasoedov [ru], Petr Kovar [cs],
|
||||||
|
Jiro Matsuzawa [ja], Krishnababu Krothapalli [te], Ani Peter [ml],
|
||||||
|
Inaki Larranaga Murgoitio [eu]
|
||||||
|
|
||||||
|
3.7.92
|
||||||
|
======
|
||||||
|
* Build and improve reference docs [Tomeu; #676856, #695641, #695935]
|
||||||
|
* Add tracking of whether there are fullscreen windows [Owen; 649748]
|
||||||
|
* Misc bug fixes and cleanups [Adel, Giovanni, Owen, Jasper, Florian; #695269,
|
||||||
|
#695711, #694046, #695813, #695881, #676856, #696053, #682779, #696089,
|
||||||
|
#696091, #696087]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Giovanni Campagna, Adel Gadllah, Florian Müllner, Jasper St. Pierre,
|
||||||
|
Tomeu Vizoso, Owen W. Taylor
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Chao-Hsiung Liao [zh_HK, zh_TW], Rafael Ferreira [pt_BR],
|
||||||
|
Ihar Hrachyshka [be], Nilamdyuti Goswami [as], Matej Urbančič [sl],
|
||||||
|
Dimitris Spingos [el], Jan Kyselica [sk], Khaled Hosny [ar],
|
||||||
|
Мирослав Николић [sr, sr@latin], Duarte Loreto [pt], Sweta Kothari [gu],
|
||||||
|
Milo Casagrande [it], Changwoo Ryu [ko], Gil Forcada [ca],
|
||||||
|
Carles Ferrando [ca@valencia], Mattias Põldaru [et], Alexandre Franke [fr],
|
||||||
|
Ask H. Larsen [da], Rūdolfs Mazurs [lv], Nguyễn Thái Ngọc Duy [vi]
|
||||||
|
|
||||||
|
3.7.91
|
||||||
|
======
|
||||||
|
* Fix windows being treated as remote after hostname changes [Ray; #688716]
|
||||||
|
* Add meta_window_get_all_monitors() method [Adel; #646861]
|
||||||
|
* Add grab API for externally defined accelerators [Florian; #643111]
|
||||||
|
* Make session registration an explicit step [Ray; #694876]
|
||||||
|
* Avoid unnecessary stage redraws [Adel; #694988, #695006]
|
||||||
|
* Misc fixes [Giovanni, Ray, Jasper, Rui, Pavel, Owen; #694801, #694725,
|
||||||
|
#694641, #694393, #678917, #695093, #694837, #695135, #694771, #694321]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Giovanni Campagna, Adel Gadllah, Rui Matos, Florian Müllner,
|
||||||
|
Jasper St. Pierre, Ray Strode, Owen Taylor, Pavel Vasin
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Daniel Mustieles [es], Yaron Shahrabani [he], A S Alam [pa], Piotr Drąg [pl],
|
||||||
|
Gheyret Kenji [ug], Alexandre Franke [fr], Milo Casagrande [it],
|
||||||
|
Fran Diéguez [gl], Dimitris Spingos [el], Мирослав Николић [sr, sr@latin],
|
||||||
|
Chao-Hsiung Liao [zh_HK, zh_TW], Nguyễn Thái Ngọc Duy [vi],
|
||||||
|
Aurimas Černius [lt], Mario Blättermann [de], Kjartan Maraas [nb]
|
||||||
|
|
||||||
|
3.7.90
|
||||||
|
======
|
||||||
|
* Support _NET_WM_OPAQUE_REGION [Jasper, Adel; #679901]
|
||||||
|
* Add wrapper for XI2.3 pointer barriers [Jasper; #677215]
|
||||||
|
* Update style of resize popups [Cosimo; #692741]
|
||||||
|
* Implement compositor <-> application frame synchronization [Owen; #685463]
|
||||||
|
* Handle animated backgrounds [Ray; #682427]
|
||||||
|
* Add a new window group for override-redirect windows [Gayan; #633620]
|
||||||
|
* Pass on pointer events on guard window to Clutter [Jasper; #681540]
|
||||||
|
* Show correct shortcut in window menus [Giovanni; #694045]
|
||||||
|
* Don't put minimized windows at the back of alt-tab [Jasper; #693991]
|
||||||
|
* Misc bug fixes and cleanups [Jasper, Rico, Adel, Florian, Rui, Giovanni,
|
||||||
|
Owen; #692679, #693354, #690581, #693439, #692718, #693475, #693482, #693540,
|
||||||
|
#690580, #680990, #693833, #693922, #693854, #694224]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Giovanni Campagna, Cosimo Cecchi, Adel Gadllah, Rui Matos, Florian Müllner,
|
||||||
|
Gayan Perera, Jasper St. Pierre, Ray Strode, Owen Taylor, Rico Tzschichholz
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Fran Diéguez [gl], A S Alam [pa], Alexandre Franke [fr], Aurimas Černius [lt],
|
||||||
|
Мирослав Николић [sr, sr@latin], Fran Diéguez [gl], Piotr Drąg [pl],
|
||||||
|
Luca Ferretti [it], Daniel Mustieles [es]
|
||||||
|
|
||||||
|
3.7.5
|
||||||
|
=====
|
||||||
|
* Don't allow multiline window titles [Jon; #683056]
|
||||||
|
* Make meta_window_located_on_workspace() public [Jasper; #691744]
|
||||||
|
* Request XI2.3 [Colin; #692877]
|
||||||
|
* Add meta_window_set_icon_geometry() method [Florian; #692997]
|
||||||
|
* Require XFixes 5.0 [Jasper; #677215]
|
||||||
|
* Change unredirection hints to match spec changes [Adel; #693064]
|
||||||
|
* Improve unredict heuristicts [Adel; #683786]
|
||||||
|
* Misc bug fixes and cleanups [Florian, Jasper, Adel; #691874, #679901,
|
||||||
|
#692952, #693042]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Adel Gadllah, William Jon McCann, Florian Müllner, Jasper St. Pierre,
|
||||||
|
Colin Walters
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Daniel Mustieles [es], Ihar Hrachyshka [be], Nilamdyuti Goswami [as],
|
||||||
|
Gheyret Kenji [ug], Kjartan Maraas [nb], Yaron Shahrabani [he],
|
||||||
|
Piotr Drąg [pl], Chao-Hsiung Liao [zh_HK,zh_TW], Milo Casagrande [it]
|
||||||
|
|
||||||
|
3.7.4
|
||||||
|
=====
|
||||||
|
* Add support for bypass compositor hints [Adel; #683020]
|
||||||
|
* Make automaximization optional [Adel; #680990]
|
||||||
|
* Add method for checking if the application is responding [Giovanni; #684340]
|
||||||
|
* Expose the xinput opcode [Jasper; #690590]
|
||||||
|
* Rebrand "minimize" as "hide" [Florian; #682887]
|
||||||
|
* Misc bug fixes and cleanups [Giovanni, Ray, Jasper, Matthias, Debarshi,
|
||||||
|
Florian, Rui; #690454, #690573, #690593, #690956, #691363, #690609, #690317,
|
||||||
|
#689263]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Giovanni Campagna, Matthias Clasen, Adel Gadllah, Rui Matos, Florian Müllner,
|
||||||
|
Debarshi Ray, Jasper St. Pierre, Ray Strode
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Mattias Põldaru [et], Yaron Shahrabani [he], Daniel Mustieles [es],
|
||||||
|
Khaled Hosny [ar], Fran Diéguez [gl], A S Alam [pa], Piotr Drąg [pl],
|
||||||
|
Rafael Ferreira [pt_BR], Nilamdyuti Goswami [as], Alexander Shopov [bg],
|
||||||
|
Matej Urbančič [sl]
|
||||||
|
|
||||||
|
3.7.3
|
||||||
|
=====
|
||||||
|
* Fix maximized windows jumping to other monitors [Alban; #556696]
|
||||||
|
* Add 'switch-applications' keybinding [Florian; #688913]
|
||||||
|
* Add a convenience method to focus the default window [Jasper; #689652]
|
||||||
|
* Increase typical icon size to 96 [Jasper; #689651]
|
||||||
|
* Port to XInput2 [Jasper; #688779]
|
||||||
|
* Give dynamic keybindings a keybinding action [Florian; #682315]
|
||||||
|
* Misc. fixes and cleanups [Jasper, Rui; #688777]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Alban Crequy, Rui Matos, Florian Müllner, Jasper St. Pierre
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Nilamdyuti Goswami [as], Piotr Drąg [pl], Yaron Shahrabani [he],
|
||||||
|
Dr.T.Vasudevan [ta], ManojKumar Giri [or], Shankar Prasad [kn]
|
||||||
|
|
||||||
|
3.7.2
|
||||||
|
=====
|
||||||
|
* Fix spurious focus changes when showing desktop [Florian; #686928]
|
||||||
|
* MetaPluginManager: don't send events to Clutter twice [Owen; #686406]
|
||||||
|
* Add the ability to add shader hooks to MetaBackgroundActor [Giovanni; #669798]
|
||||||
|
* Only process keyboard mapping events for the core X keyboard [Rui; #674859]
|
||||||
|
* Import keybinding files from Metacity [Florian; #687672]
|
||||||
|
* Add compositor hook to process keybindings selectively [Florian; #688202]
|
||||||
|
* MetaBackgroundActor: add a setter for GLSL uniforms [Giovanni; #682536]
|
||||||
|
* Misc. fixes and cleanups [Jasper, Rui, Florian, Rico; #688182]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Giovanni Campagna, Rui Matos, Florian Müllner, Jasper St. Pierre,
|
||||||
|
Owen Taylor, Rico Tzschichholz
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Rafael Ferreira [pt_BR], Tobias Endrigkeit [de], Yaron Shahrabani [he]
|
||||||
|
|
||||||
|
3.7.1
|
||||||
|
=====
|
||||||
|
* screen: Ignore num-workspaces when using dynamic workspaces [Florian; #685439]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Florian Müllner
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Mattias Põldaru [et], Kjartan Maraas [nb], Мирослав Николић [sr, sr@latin],
|
||||||
|
Marek Černocký [cs], Andika Triwidada [id], Daniel Mustieles [es],
|
||||||
|
Fran Diéguez [gl], Matej Urbančič [sl]
|
||||||
|
|
||||||
|
3.6.1
|
||||||
|
=====
|
||||||
|
* Fix crash when opening large popup menus [Jasper; #681676]
|
||||||
|
* window: Don't move the desktop window after monitor hotplug [Jasper; #681159]
|
||||||
|
* Expose MetaPlugin to introspection [Evan; #671098]
|
||||||
|
* Optionally delay focus changes in focus-follows-mouse mode [Florian; #678169]
|
||||||
|
* Resize the guard window when the X screen is resized [Benjamin; #670396]
|
||||||
|
* display: Only manage the default X screen [Jürg; #648156]
|
||||||
|
* Misc cleanups: [Owen; #587255]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Benjamin Berg, Jürg Billeter, Evan Broder, Florian Müllner, Jasper St. Pierre,
|
||||||
|
Owen Taylor
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Alexandre Franke [fr], Theppitak Karoonboonyanan [th], Sayak Sarkar [bn_IN],
|
||||||
|
Sandeep Sheshrao Shedmake [mr], Ask H. Larsen [da], Shankar Prasad [kn],
|
||||||
|
Alexander Shopov [bg], Aurimas Černius [lt], Ihar Hrachyshka [be],
|
||||||
|
Kjartan Maraas [nb], Daniel Mustieles [es], Changwoo Ryu [ko],
|
||||||
|
Yuri Myasoedov [ru], Tom Tryfonidis [el], Rūdolfs Mazurs [lv],
|
||||||
|
Chris Leonard [en_GB], Piotr Drąg [pl], Fran Diéguez [gl], Gil Forcada [ca],
|
||||||
|
Matej Urbančič [sl], Andika Triwidada [id], Carles Ferrando [ca]
|
||||||
|
|
||||||
|
3.6.0
|
||||||
|
=====
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Alexander Shopov [bg], Daniel Korostil [uk], Rajesh Ranjan [hi],
|
||||||
|
Krishnababu Krothapalli [te], Ani Peter [ml], Rūdolfs Mazurs [lv],
|
||||||
|
Sweta Kothari [gu], Ihar Hrachyshka [be], Noriko Mizumoto [ja],
|
||||||
|
Timo Jyrinki [fi], Mattias Põldaru [et]
|
||||||
|
|
||||||
|
3.5.92
|
||||||
|
======
|
||||||
|
* screen: Allow NULL out arguments in meta_screen_get_size [Tomeu]
|
||||||
|
* display: Add API to set wm_name / wm_keybindings [Florian; #671010]
|
||||||
|
* Improve the not responding dialog [Jon, Florian; #684306]
|
||||||
|
* Misc. bugfixes [Jasper]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
William Jon McCann, Florian Müllner, Jasper St. Pierre, Tomeu Vizoso
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Gabor Kelemen [hu], Piotr Drąg [pl], Dr.T.Vasudevan [ta], Bruce Cowan [en_GB],
|
||||||
|
Alexandre Franke [fr], Theppitak Karoonboonyanan [th], Gil Forcada [ca],
|
||||||
|
Carles Ferrando [ca@valencia], Tobias Endrigkeit [de], Tom Tryfonidis [el],
|
||||||
|
Nguyễn Thái Ngọc Duy [vi], Changwoo Ryu [ko], Ask H. Larsen [da],
|
||||||
|
Rafael Ferreira [pt_BR], Marek Černocký [cs]
|
||||||
|
|
||||||
|
3.5.91
|
||||||
|
======
|
||||||
|
* Do not include markup in app not responding dialog [Alex]
|
||||||
|
* Fix subtracting unredirected windows from visible region [Jasper; #677116]
|
||||||
|
* Minor improvements and bugfixes [Jasper, Florian; #682648, #682993]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Alexander Larsson, Florian Müllner, Jasper St. Pierre
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Dirgita [id], Piotr Drąg [pl], A S Alam [pa], Yuri Myasoedov [ru],
|
||||||
|
Milo Casagrande [it], Nilamdyuti Goswami [as], Tom Tryfonidis [el],
|
||||||
|
Duarte Loreto [pt], Fran Diéguez [gl], Nguyễn Thái Ngọc Duy [vi],
|
||||||
|
Aurimas Černius [lt], Daniel Nylander [sv]
|
||||||
|
|
||||||
|
3.5.90
|
||||||
|
======
|
||||||
|
* Fix logic for handling translations of the windows group [Owen; #681221]
|
||||||
|
* Handle painting inside a Clutter clone [Owen; #681953]
|
||||||
|
* Update overlay-key on settings changes [Florian; #681906]
|
||||||
|
* Add keybinding for overlay-key [Florian; #665547]
|
||||||
|
* Minor fixes and improvements [Javier, Florian]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Javier Jardón, Florian Müllner, Owen Taylor
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Sweta Kothari [gu], Muhammet Kara [tr], Khaled Hosny [ar],
|
||||||
|
Sandeep Sheshrao Shedmake [mr]
|
||||||
|
|
||||||
|
3.5.5
|
||||||
|
=====
|
||||||
|
* Fix flickering around windows when using window group [Tom; #681221]
|
||||||
|
|
||||||
|
Contributor(s):
|
||||||
|
Tom Beckmann
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Chao-Hsiung Liao [zh_HK, zh_TW], Matej Urbančič [sl], Fran Diéguez [gl],
|
||||||
|
Мирослав Николић [sr, sr@latin], Yaron Shahrabani [he], Kjartan Maraas [nb]
|
||||||
|
|
||||||
|
3.5.4
|
||||||
|
=====
|
||||||
|
* Make it possible to reimplement move-to-workspace keybindings from plugins
|
||||||
|
[Giovanni; #674104]
|
||||||
|
* Add a preference to ignore hide-titlebar-when-maximized hint [Rico; #678947]
|
||||||
|
* window: Also use hide-titlebar-when-maximized when tiled [Florian; #679290]
|
||||||
|
* Center modal dialogs on their parent instead [Florian; #674499]
|
||||||
|
* Reduce amount of markup in translated messages [Matthias; #679660]
|
||||||
|
* Fix focus problem after closing a window with focus-follows-mouse
|
||||||
|
[Jasper; #675982]
|
||||||
|
* Handle changes of the attach-modal-dialogs preference [Florian; #679904]
|
||||||
|
* Do not restore tiling on unmaximize [Florian; #677565]
|
||||||
|
* Misc. fixes and cleanups [Jasper Adriaanse, Jasper, Debarshi, Pavel;
|
||||||
|
#679153, 673824]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Jasper Lievisse Adriaanse, Giovanni Campagna, Matthias Clasen, Florian Müllner,
|
||||||
|
Debarshi Ray, Jasper St. Pierre, Rico Tzschichholz, Pavel Vasin
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Alexander Shopov [bg], Kjartan Maraas [nb], Yaron Shahrabani [he],
|
||||||
|
Nilamdyuti Goswami [as], Ihar Hrachyshka [be], Daniel Mustieles [es]
|
||||||
|
|
||||||
3.5.3
|
3.5.3
|
||||||
=====
|
=====
|
||||||
* Simplify plugin system [Jasper; #676855]
|
* Simplify plugin system [Jasper; #676855]
|
||||||
|
18
README
18
README
@@ -1,16 +1,10 @@
|
|||||||
Metacity is not a meta-City as in an urban center, but rather
|
The original codebase named "Metacity" is not a meta-City as in an
|
||||||
Meta-ness as in the state of being meta. i.e. metacity : meta as
|
urban center, but rather Meta-ness as in the state of being
|
||||||
opacity : opaque. Also it may have something to do with the Meta key
|
meta. i.e. metacity : meta as opacity : opaque. Also it may have
|
||||||
on UNIX keyboards.
|
something to do with the Meta key on UNIX keyboards.
|
||||||
|
|
||||||
The first release of Metacity was version 2.3. Metacity has no need for
|
Since then, it has been renamed mutter after a rebase on top of
|
||||||
your petty hangups about version numbers.
|
clutter as a compositing manager.
|
||||||
|
|
||||||
The stable releases so far are 2.4.x, 2.6.x, 2.8.[01], 2.8.1.x, 2.8.5-,
|
|
||||||
2.10.x, 2.12.x, 2.14.x, 2.16.x.
|
|
||||||
|
|
||||||
Unstable branches are 2.3.x, 2.5.x, 2.8.2-4, 2.9.x, 2.11.x, 2.13.x,
|
|
||||||
2.15.x, 2.17.x.
|
|
||||||
|
|
||||||
COMPILING MUTTER
|
COMPILING MUTTER
|
||||||
===
|
===
|
||||||
|
@@ -7,7 +7,7 @@ test -z "$srcdir" && srcdir=.
|
|||||||
PKG_NAME="mutter"
|
PKG_NAME="mutter"
|
||||||
REQUIRED_AUTOMAKE_VERSION=1.10
|
REQUIRED_AUTOMAKE_VERSION=1.10
|
||||||
|
|
||||||
(test -f $srcdir/configure.in \
|
(test -f $srcdir/configure.ac \
|
||||||
&& test -d $srcdir/src) || {
|
&& test -d $srcdir/src) || {
|
||||||
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
|
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
|
||||||
echo " top-level metacity directory"
|
echo " top-level metacity directory"
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
AC_PREREQ(2.50)
|
AC_PREREQ(2.50)
|
||||||
|
|
||||||
m4_define([mutter_major_version], [3])
|
m4_define([mutter_major_version], [3])
|
||||||
m4_define([mutter_minor_version], [5])
|
m4_define([mutter_minor_version], [8])
|
||||||
m4_define([mutter_micro_version], [3])
|
m4_define([mutter_micro_version], [0])
|
||||||
|
|
||||||
m4_define([mutter_version],
|
m4_define([mutter_version],
|
||||||
[mutter_major_version.mutter_minor_version.mutter_micro_version])
|
[mutter_major_version.mutter_minor_version.mutter_micro_version])
|
||||||
@@ -71,10 +71,10 @@ MUTTER_PC_MODULES="
|
|||||||
gio-2.0 >= 2.25.10
|
gio-2.0 >= 2.25.10
|
||||||
pango >= 1.2.0
|
pango >= 1.2.0
|
||||||
cairo >= 1.10.0
|
cairo >= 1.10.0
|
||||||
gsettings-desktop-schemas >= 3.3.0
|
gsettings-desktop-schemas >= 3.7.3
|
||||||
xcomposite >= 0.2 xfixes xrender xdamage
|
xcomposite >= 0.2 xfixes xrender xdamage xi >= 1.6.0
|
||||||
$CLUTTER_PACKAGE >= 1.9.10
|
$CLUTTER_PACKAGE >= 1.13.5
|
||||||
cogl-1.0 >= 1.9.6
|
cogl-1.0 >= 1.13.3
|
||||||
"
|
"
|
||||||
|
|
||||||
GLIB_GSETTINGS
|
GLIB_GSETTINGS
|
||||||
@@ -201,6 +201,9 @@ fi
|
|||||||
|
|
||||||
PKG_CHECK_MODULES(MUTTER, $MUTTER_PC_MODULES)
|
PKG_CHECK_MODULES(MUTTER, $MUTTER_PC_MODULES)
|
||||||
|
|
||||||
|
PKG_CHECK_EXISTS([xi >= 1.6.99.1],
|
||||||
|
AC_DEFINE([HAVE_XI23],[1],[Define if you have support for XInput 2.3 or greater]))
|
||||||
|
|
||||||
# This is used for plugins
|
# This is used for plugins
|
||||||
AC_SUBST(CLUTTER_PACKAGE)
|
AC_SUBST(CLUTTER_PACKAGE)
|
||||||
PKG_CHECK_MODULES(CLUTTER, $CLUTTER_PACKAGE)
|
PKG_CHECK_MODULES(CLUTTER, $CLUTTER_PACKAGE)
|
||||||
@@ -361,11 +364,7 @@ if test "x$enable_debug" = "xyes"; then
|
|||||||
CFLAGS="$CFLAGS -g -O"
|
CFLAGS="$CFLAGS -g -O"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# For fix-meta-rectangle.py
|
GTK_DOC_CHECK([1.15], [--flavour no-tmpl])
|
||||||
AM_PATH_PYTHON([2.5])
|
|
||||||
|
|
||||||
# Use gnome-doc-utils:
|
|
||||||
GNOME_DOC_INIT([0.8.0])
|
|
||||||
|
|
||||||
#### Warnings (last since -Werror can disturb other tests)
|
#### Warnings (last since -Werror can disturb other tests)
|
||||||
|
|
||||||
@@ -437,6 +436,8 @@ AC_CONFIG_FILES([
|
|||||||
Makefile
|
Makefile
|
||||||
doc/Makefile
|
doc/Makefile
|
||||||
doc/man/Makefile
|
doc/man/Makefile
|
||||||
|
doc/reference/Makefile
|
||||||
|
doc/reference/meta-docs.sgml
|
||||||
src/Makefile
|
src/Makefile
|
||||||
src/wm-tester/Makefile
|
src/wm-tester/Makefile
|
||||||
src/libmutter.pc
|
src/libmutter.pc
|
@@ -1,4 +1,4 @@
|
|||||||
SUBDIRS = man
|
SUBDIRS = man reference
|
||||||
|
|
||||||
EXTRA_DIST=theme-format.txt dialogs.txt code-overview.txt \
|
EXTRA_DIST=theme-format.txt dialogs.txt code-overview.txt \
|
||||||
how-to-get-focus-right.txt
|
how-to-get-focus-right.txt
|
||||||
|
166
doc/reference/Makefile.am
Normal file
166
doc/reference/Makefile.am
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
# We require automake 1.6 at least.
|
||||||
|
AUTOMAKE_OPTIONS = 1.6
|
||||||
|
|
||||||
|
# This is a blank Makefile.am for using gtk-doc.
|
||||||
|
# Copy this to your project's API docs directory and modify the variables to
|
||||||
|
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
|
||||||
|
# of using the various options.
|
||||||
|
|
||||||
|
# The name of the module, e.g. 'glib'.
|
||||||
|
DOC_MODULE=meta
|
||||||
|
|
||||||
|
# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
|
||||||
|
#DOC_MODULE_VERSION=2
|
||||||
|
|
||||||
|
|
||||||
|
# The top-level SGML file. You can change this if you want to.
|
||||||
|
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
|
||||||
|
|
||||||
|
# Directories containing the source code, relative to $(srcdir).
|
||||||
|
# gtk-doc will search all .c and .h files beneath these paths
|
||||||
|
# for inline comments documenting functions and macros.
|
||||||
|
# e.g. DOC_SOURCE_DIR=../../../gtk ../../../gdk
|
||||||
|
DOC_SOURCE_DIR=../../src/
|
||||||
|
|
||||||
|
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
|
||||||
|
SCANGOBJ_OPTIONS=
|
||||||
|
|
||||||
|
# Extra options to supply to gtkdoc-scan.
|
||||||
|
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
|
||||||
|
SCAN_OPTIONS=--rebuild-types
|
||||||
|
|
||||||
|
# Extra options to supply to gtkdoc-mkdb.
|
||||||
|
# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml
|
||||||
|
MKDB_OPTIONS=--xml-mode --output-format=xml
|
||||||
|
|
||||||
|
# Extra options to supply to gtkdoc-mktmpl
|
||||||
|
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
|
||||||
|
MKTMPL_OPTIONS=
|
||||||
|
|
||||||
|
# Extra options to supply to gtkdoc-mkhtml
|
||||||
|
MKHTML_OPTIONS=
|
||||||
|
|
||||||
|
# Extra options to supply to gtkdoc-fixref. Not normally needed.
|
||||||
|
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
|
||||||
|
FIXXREF_OPTIONS=
|
||||||
|
|
||||||
|
# Used for dependencies. The docs will be rebuilt if any of these change.
|
||||||
|
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
|
||||||
|
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
|
||||||
|
HFILE_GLOB=$(top_srcdir)/src/*.h
|
||||||
|
CFILE_GLOB=$(top_srcdir)/src/*.c
|
||||||
|
|
||||||
|
# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
|
||||||
|
# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
|
||||||
|
EXTRA_HFILES=
|
||||||
|
|
||||||
|
# Header files or dirs to ignore when scanning. Use base file/dir names
|
||||||
|
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
|
||||||
|
IGNORE_HFILES= \
|
||||||
|
async-getprop.h \
|
||||||
|
atoms.h \
|
||||||
|
bell.h \
|
||||||
|
boxes-private.h \
|
||||||
|
clutter-utils.h \
|
||||||
|
cogl-utils.h \
|
||||||
|
compositor-private.h \
|
||||||
|
constraints.h \
|
||||||
|
core.h \
|
||||||
|
display-private.h \
|
||||||
|
draw-workspace.h \
|
||||||
|
edge-resistance.h \
|
||||||
|
eventqueue.h \
|
||||||
|
frame.h \
|
||||||
|
frames.h \
|
||||||
|
group-private.h \
|
||||||
|
group-props.h \
|
||||||
|
iconcache.h \
|
||||||
|
inlinepixbufs.h \
|
||||||
|
keybindings-private.h \
|
||||||
|
menu.h \
|
||||||
|
metaaccellabel.h \
|
||||||
|
meta-background-actor-private.h \
|
||||||
|
meta-background-group-private.h \
|
||||||
|
meta-module.h \
|
||||||
|
meta-plugin-manager.h \
|
||||||
|
meta-shadow-factory-private.h \
|
||||||
|
meta-texture-rectangle.h \
|
||||||
|
meta-texture-tower.h \
|
||||||
|
meta-window-actor-private.h \
|
||||||
|
meta-window-group.h \
|
||||||
|
meta-window-shape.h \
|
||||||
|
mutter-enum-types.h \
|
||||||
|
mutter-Xatomtype.h \
|
||||||
|
place.h \
|
||||||
|
preview-widget.h \
|
||||||
|
region-utils.h \
|
||||||
|
resizepopup.h \
|
||||||
|
screen-private.h \
|
||||||
|
session.h \
|
||||||
|
stack.h \
|
||||||
|
stack-tracker.h \
|
||||||
|
stamp-mutter-enum-types.h \
|
||||||
|
tabpopup.h \
|
||||||
|
theme.h \
|
||||||
|
theme-private.h \
|
||||||
|
tile-preview.h \
|
||||||
|
ui.h \
|
||||||
|
window-private.h \
|
||||||
|
window-props.h \
|
||||||
|
workspace-private.h \
|
||||||
|
xprops.h \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
MKDB_OPTIONS+=--ignore-files="$(IGNORE_HFILES)"
|
||||||
|
|
||||||
|
# Images to copy into HTML directory.
|
||||||
|
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
|
||||||
|
HTML_IMAGES=
|
||||||
|
|
||||||
|
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
|
||||||
|
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
|
||||||
|
content_files= \
|
||||||
|
mutter-overview.xml \
|
||||||
|
running-mutter.xml \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
|
||||||
|
# These files must be listed here *and* in content_files
|
||||||
|
# e.g. expand_content_files=running.sgml
|
||||||
|
expand_content_files= \
|
||||||
|
mutter-overview.xml \
|
||||||
|
running-mutter.xml \
|
||||||
|
$(NULL)
|
||||||
|
|
||||||
|
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
|
||||||
|
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
|
||||||
|
# signals and properties.
|
||||||
|
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
|
||||||
|
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
|
||||||
|
GTKDOC_CFLAGS=$(MUTTER_CFLAGS)
|
||||||
|
GTKDOC_LIBS=$(MUTTER_LIBS) $(top_builddir)/src/libmutter.la
|
||||||
|
|
||||||
|
# This includes the standard gtk-doc make rules, copied by gtkdocize.
|
||||||
|
include $(top_srcdir)/gtk-doc.make
|
||||||
|
|
||||||
|
# Other files to distribute
|
||||||
|
# e.g. EXTRA_DIST += version.xml.in
|
||||||
|
EXTRA_DIST +=
|
||||||
|
|
||||||
|
# Files not to distribute
|
||||||
|
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
|
||||||
|
# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
|
||||||
|
DISTCLEANFILES = $(DOC_MODULES).types
|
||||||
|
|
||||||
|
# Comment this out if you want 'make check' to test you doc status
|
||||||
|
# and run some sanity checks
|
||||||
|
if ENABLE_GTK_DOC
|
||||||
|
TESTS_ENVIRONMENT = cd $(srcdir) && \
|
||||||
|
DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
|
||||||
|
SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
|
||||||
|
#TESTS = $(GTKDOC_CHECK)
|
||||||
|
endif
|
||||||
|
|
||||||
|
-include $(top_srcdir)/git.mk
|
59
doc/reference/meta-docs.sgml.in
Normal file
59
doc/reference/meta-docs.sgml.in
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||||
|
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
|
||||||
|
[
|
||||||
|
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
|
||||||
|
<!ENTITY version "@VERSION@">
|
||||||
|
]>
|
||||||
|
<book id="index">
|
||||||
|
<bookinfo>
|
||||||
|
<title>Mutter Reference Manual</title>
|
||||||
|
<releaseinfo>
|
||||||
|
This document is for Mutter &version;.
|
||||||
|
The latest version of this documentation can be found on-line at
|
||||||
|
<ulink role="online-location" url="http://developer.gnome.org/meta/">http://developer.gnome.org/meta/</ulink>.
|
||||||
|
</releaseinfo>
|
||||||
|
</bookinfo>
|
||||||
|
|
||||||
|
<xi:include href="xml/mutter-overview.xml"/>
|
||||||
|
<xi:include href="xml/running-mutter.xml"/>
|
||||||
|
|
||||||
|
<part id="core-reference">
|
||||||
|
<title>Mutter Core Reference</title>
|
||||||
|
<xi:include href="xml/main.xml"/>
|
||||||
|
<xi:include href="xml/common.xml"/>
|
||||||
|
<xi:include href="xml/gradient.xml"/>
|
||||||
|
<xi:include href="xml/prefs.xml"/>
|
||||||
|
<xi:include href="xml/util.xml"/>
|
||||||
|
<xi:include href="xml/errors.xml"/>
|
||||||
|
<xi:include href="xml/meta-plugin.xml"/>
|
||||||
|
<xi:include href="xml/barrier.xml"/>
|
||||||
|
<xi:include href="xml/boxes.xml"/>
|
||||||
|
<xi:include href="xml/compositor.xml"/>
|
||||||
|
<xi:include href="xml/display.xml"/>
|
||||||
|
<xi:include href="xml/group.xml"/>
|
||||||
|
<xi:include href="xml/keybindings.xml"/>
|
||||||
|
<xi:include href="xml/meta-background-actor.xml"/>
|
||||||
|
<xi:include href="xml/meta-shadow-factory.xml"/>
|
||||||
|
<xi:include href="xml/meta-shaped-texture.xml"/>
|
||||||
|
<xi:include href="xml/meta-window-actor.xml"/>
|
||||||
|
<xi:include href="xml/screen.xml"/>
|
||||||
|
<xi:include href="xml/window.xml"/>
|
||||||
|
<xi:include href="xml/workspace.xml"/>
|
||||||
|
</part>
|
||||||
|
|
||||||
|
<chapter id="object-tree">
|
||||||
|
<title>Object Hierarchy</title>
|
||||||
|
<xi:include href="xml/tree_index.sgml"/>
|
||||||
|
</chapter>
|
||||||
|
<index id="api-index-full">
|
||||||
|
<title>API Index</title>
|
||||||
|
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
|
||||||
|
</index>
|
||||||
|
<index id="deprecated-api-index" role="deprecated">
|
||||||
|
<title>Index of deprecated API</title>
|
||||||
|
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
|
||||||
|
</index>
|
||||||
|
|
||||||
|
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
||||||
|
</book>
|
667
doc/reference/meta-sections.txt
Normal file
667
doc/reference/meta-sections.txt
Normal file
@@ -0,0 +1,667 @@
|
|||||||
|
<SECTION>
|
||||||
|
<FILE>barrier</FILE>
|
||||||
|
<TITLE>MetaBarrier</TITLE>
|
||||||
|
MetaBarrier
|
||||||
|
MetaBarrierClass
|
||||||
|
meta_barrier_is_active
|
||||||
|
meta_barrier_destroy
|
||||||
|
meta_barrier_release
|
||||||
|
MetaBarrierDirection
|
||||||
|
MetaBarrierEvent
|
||||||
|
<SUBSECTION Standard>
|
||||||
|
META_BARRIER
|
||||||
|
META_BARRIER_CLASS
|
||||||
|
META_BARRIER_GET_CLASS
|
||||||
|
META_IS_BARRIER
|
||||||
|
META_IS_BARRIER_CLASS
|
||||||
|
META_TYPE_BARRIER
|
||||||
|
META_TYPE_BARRIER_EVENT
|
||||||
|
MetaBarrierPrivate
|
||||||
|
meta_barrier_event_get_type
|
||||||
|
meta_barrier_get_type
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>boxes</FILE>
|
||||||
|
MetaRectangle
|
||||||
|
MetaStrut
|
||||||
|
MetaEdgeType
|
||||||
|
MetaEdge
|
||||||
|
meta_rectangle_copy
|
||||||
|
meta_rectangle_free
|
||||||
|
meta_rect
|
||||||
|
meta_rectangle_area
|
||||||
|
meta_rectangle_intersect
|
||||||
|
meta_rectangle_equal
|
||||||
|
meta_rectangle_union
|
||||||
|
meta_rectangle_overlap
|
||||||
|
meta_rectangle_vert_overlap
|
||||||
|
meta_rectangle_horiz_overlap
|
||||||
|
meta_rectangle_could_fit_rect
|
||||||
|
meta_rectangle_contains_rect
|
||||||
|
<SUBSECTION Standard>
|
||||||
|
META_TYPE_RECTANGLE
|
||||||
|
meta_rectangle_get_type
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>common</FILE>
|
||||||
|
META_VIRTUAL_CORE_POINTER_ID
|
||||||
|
META_VIRTUAL_CORE_KEYBOARD_ID
|
||||||
|
MetaFrameFlags
|
||||||
|
MetaMenuOp
|
||||||
|
MetaWindowMenuFunc
|
||||||
|
MetaGrabOp
|
||||||
|
MetaCursor
|
||||||
|
MetaFrameType
|
||||||
|
MetaVirtualModifier
|
||||||
|
MetaDirection
|
||||||
|
MetaMotionDirection
|
||||||
|
MetaSide
|
||||||
|
MetaButtonFunction
|
||||||
|
MAX_BUTTONS_PER_CORNER
|
||||||
|
MetaButtonLayout
|
||||||
|
MetaFrameBorders
|
||||||
|
meta_frame_borders_clear
|
||||||
|
META_ICON_WIDTH
|
||||||
|
META_ICON_HEIGHT
|
||||||
|
META_MINI_ICON_WIDTH
|
||||||
|
META_MINI_ICON_HEIGHT
|
||||||
|
META_DEFAULT_ICON_NAME
|
||||||
|
META_PRIORITY_RESIZE
|
||||||
|
META_PRIORITY_BEFORE_REDRAW
|
||||||
|
META_PRIORITY_REDRAW
|
||||||
|
META_PRIORITY_PREFS_NOTIFY
|
||||||
|
POINT_IN_RECT
|
||||||
|
MetaStackLayer
|
||||||
|
MetaWindowMenu
|
||||||
|
MetaResizePopup
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>compositor</FILE>
|
||||||
|
MetaCompEffect
|
||||||
|
MetaCompositor
|
||||||
|
meta_compositor_new
|
||||||
|
meta_compositor_destroy
|
||||||
|
meta_compositor_manage_screen
|
||||||
|
meta_compositor_unmanage_screen
|
||||||
|
meta_compositor_window_shape_changed
|
||||||
|
meta_compositor_process_event
|
||||||
|
meta_compositor_filter_keybinding
|
||||||
|
meta_compositor_add_window
|
||||||
|
meta_compositor_remove_window
|
||||||
|
meta_compositor_show_window
|
||||||
|
meta_compositor_hide_window
|
||||||
|
meta_compositor_switch_workspace
|
||||||
|
meta_compositor_maximize_window
|
||||||
|
meta_compositor_unmaximize_window
|
||||||
|
meta_compositor_window_mapped
|
||||||
|
meta_compositor_window_unmapped
|
||||||
|
meta_compositor_sync_window_geometry
|
||||||
|
meta_compositor_set_updates_frozen
|
||||||
|
meta_compositor_queue_frame_drawn
|
||||||
|
meta_compositor_sync_stack
|
||||||
|
meta_compositor_sync_screen_size
|
||||||
|
meta_compositor_flash_screen
|
||||||
|
meta_get_stage_for_screen
|
||||||
|
meta_get_overlay_group_for_screen
|
||||||
|
meta_get_overlay_window
|
||||||
|
meta_get_window_actors
|
||||||
|
meta_get_window_group_for_screen
|
||||||
|
meta_get_top_window_group_for_screen
|
||||||
|
meta_disable_unredirect_for_screen
|
||||||
|
meta_enable_unredirect_for_screen
|
||||||
|
meta_set_stage_input_region
|
||||||
|
meta_empty_stage_input_region
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>display</FILE>
|
||||||
|
MetaTabList
|
||||||
|
MetaTabShowType
|
||||||
|
meta_XFree
|
||||||
|
meta_display_get_compositor_version
|
||||||
|
meta_display_get_xinput_opcode
|
||||||
|
meta_display_supports_extended_barriers
|
||||||
|
meta_display_get_xdisplay
|
||||||
|
meta_display_get_compositor
|
||||||
|
meta_display_get_screens
|
||||||
|
meta_display_has_shape
|
||||||
|
meta_display_screen_for_root
|
||||||
|
meta_display_get_focus_window
|
||||||
|
meta_display_xwindow_is_a_no_focus_window
|
||||||
|
meta_display_get_damage_event_base
|
||||||
|
meta_display_get_shape_event_base
|
||||||
|
meta_display_xserver_time_is_before
|
||||||
|
meta_display_get_last_user_time
|
||||||
|
meta_display_get_current_time
|
||||||
|
meta_display_get_current_time_roundtrip
|
||||||
|
meta_display_get_ignored_modifier_mask
|
||||||
|
meta_display_get_tab_list
|
||||||
|
meta_display_get_tab_next
|
||||||
|
meta_display_get_tab_current
|
||||||
|
meta_display_begin_grab_op
|
||||||
|
meta_display_end_grab_op
|
||||||
|
meta_display_get_grab_op
|
||||||
|
meta_display_add_keybinding
|
||||||
|
meta_display_remove_keybinding
|
||||||
|
meta_display_get_keybinding_action
|
||||||
|
meta_display_set_input_focus_window
|
||||||
|
meta_display_focus_the_no_focus_window
|
||||||
|
meta_display_sort_windows_by_stacking
|
||||||
|
meta_display_get_leader_window
|
||||||
|
meta_display_add_ignored_crossing_serial
|
||||||
|
meta_display_unmanage_screen
|
||||||
|
meta_display_clear_mouse_mode
|
||||||
|
MetaDisplay
|
||||||
|
MetaDisplayClass
|
||||||
|
<SUBSECTION Standard>
|
||||||
|
META_DISPLAY
|
||||||
|
META_DISPLAY_CLASS
|
||||||
|
META_DISPLAY_GET_CLASS
|
||||||
|
META_IS_DISPLAY
|
||||||
|
META_IS_DISPLAY_CLASS
|
||||||
|
META_TYPE_DISPLAY
|
||||||
|
meta_display_get_type
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>errors</FILE>
|
||||||
|
meta_error_trap_push
|
||||||
|
meta_error_trap_pop
|
||||||
|
meta_error_trap_push_with_return
|
||||||
|
meta_error_trap_pop_with_return
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>gradient</FILE>
|
||||||
|
MetaGradientType
|
||||||
|
meta_gradient_create_simple
|
||||||
|
meta_gradient_create_multi
|
||||||
|
meta_gradient_create_interwoven
|
||||||
|
meta_gradient_add_alpha
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>group</FILE>
|
||||||
|
MetaGroup
|
||||||
|
meta_window_get_group
|
||||||
|
meta_window_compute_group
|
||||||
|
meta_window_shutdown_group
|
||||||
|
meta_window_group_leader_changed
|
||||||
|
meta_display_lookup_group
|
||||||
|
meta_group_list_windows
|
||||||
|
meta_group_update_layers
|
||||||
|
meta_group_get_startup_id
|
||||||
|
meta_group_get_size
|
||||||
|
meta_group_property_notify
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>keybindings</FILE>
|
||||||
|
MetaKeyBinding
|
||||||
|
META_TYPE_KEY_BINDING
|
||||||
|
meta_key_binding_get_name
|
||||||
|
meta_key_binding_get_modifiers
|
||||||
|
meta_key_binding_get_mask
|
||||||
|
meta_key_binding_is_builtin
|
||||||
|
meta_keybindings_set_custom_handler
|
||||||
|
meta_keybindings_switch_window
|
||||||
|
meta_screen_ungrab_all_keys
|
||||||
|
meta_screen_grab_all_keys
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>main</FILE>
|
||||||
|
meta_get_option_context
|
||||||
|
meta_init
|
||||||
|
meta_run
|
||||||
|
meta_get_replace_current_wm
|
||||||
|
meta_set_wm_name
|
||||||
|
meta_set_gnome_wm_keybindings
|
||||||
|
MetaExitCode
|
||||||
|
meta_exit
|
||||||
|
meta_quit
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>meta-background</FILE>
|
||||||
|
<TITLE>MetaBackground</TITLE>
|
||||||
|
MetaBackgroundEffects
|
||||||
|
MetaBackground
|
||||||
|
MetaBackgroundClass
|
||||||
|
meta_background_new
|
||||||
|
meta_background_copy
|
||||||
|
meta_background_load_gradient
|
||||||
|
meta_background_load_color
|
||||||
|
meta_background_load_still_frame
|
||||||
|
meta_background_load_file_async
|
||||||
|
meta_background_load_file_finish
|
||||||
|
meta_background_get_filename
|
||||||
|
meta_background_get_style
|
||||||
|
meta_background_get_shading
|
||||||
|
meta_background_get_color
|
||||||
|
meta_background_get_second_color
|
||||||
|
<SUBSECTION Standard>
|
||||||
|
META_BACKGROUND
|
||||||
|
META_BACKGROUND_CLASS
|
||||||
|
META_BACKGROUND_GET_CLASS
|
||||||
|
META_IS_BACKGROUND
|
||||||
|
META_IS_BACKGROUND_CLASS
|
||||||
|
META_TYPE_BACKGROUND
|
||||||
|
MetaBackgroundPrivate
|
||||||
|
meta_background_get_type
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>meta-background-actor</FILE>
|
||||||
|
<TITLE>MetaBackgroundActor</TITLE>
|
||||||
|
MetaBackgroundActor
|
||||||
|
MetaBackgroundActorClass
|
||||||
|
meta_background_actor_new_for_screen
|
||||||
|
MetaSnippetHook
|
||||||
|
meta_background_actor_add_glsl_snippet
|
||||||
|
meta_background_actor_set_uniform_float
|
||||||
|
<SUBSECTION Standard>
|
||||||
|
META_BACKGROUND_ACTOR
|
||||||
|
META_BACKGROUND_ACTOR_CLASS
|
||||||
|
META_BACKGROUND_ACTOR_GET_CLASS
|
||||||
|
META_IS_BACKGROUND_ACTOR
|
||||||
|
META_IS_BACKGROUND_ACTOR_CLASS
|
||||||
|
META_TYPE_BACKGROUND_ACTOR
|
||||||
|
MetaBackgroundActorPrivate
|
||||||
|
meta_background_actor_get_type
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>meta-background-group</FILE>
|
||||||
|
<TITLE>MetaBackgroundGroup</TITLE>
|
||||||
|
MetaBackgroundGroupClass
|
||||||
|
meta_background_group_new
|
||||||
|
<SUBSECTION Standard>
|
||||||
|
META_BACKGROUND_GROUP
|
||||||
|
META_BACKGROUND_GROUP_CLASS
|
||||||
|
META_BACKGROUND_GROUP_GET_CLASS
|
||||||
|
META_IS_BACKGROUND_GROUP
|
||||||
|
META_IS_BACKGROUND_GROUP_CLASS
|
||||||
|
META_TYPE_BACKGROUND_GROUP
|
||||||
|
MetaBackgroundGroupPrivate
|
||||||
|
meta_background_group_get_type
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>meta-plugin</FILE>
|
||||||
|
<TITLE>MetaPlugin</TITLE>
|
||||||
|
MetaPlugin
|
||||||
|
MetaPluginClass
|
||||||
|
MetaPluginInfo
|
||||||
|
meta_plugin_running
|
||||||
|
meta_plugin_debug_mode
|
||||||
|
meta_plugin_get_info
|
||||||
|
MetaPluginVersion
|
||||||
|
META_PLUGIN_DECLARE
|
||||||
|
meta_plugin_switch_workspace_completed
|
||||||
|
meta_plugin_minimize_completed
|
||||||
|
meta_plugin_maximize_completed
|
||||||
|
meta_plugin_unmaximize_completed
|
||||||
|
meta_plugin_map_completed
|
||||||
|
meta_plugin_destroy_completed
|
||||||
|
MetaModalOptions
|
||||||
|
meta_plugin_begin_modal
|
||||||
|
meta_plugin_end_modal
|
||||||
|
meta_plugin_get_screen
|
||||||
|
meta_plugin_manager_set_plugin_type
|
||||||
|
<SUBSECTION Standard>
|
||||||
|
META_IS_PLUGIN
|
||||||
|
META_IS_PLUGIN_CLASS
|
||||||
|
META_PLUGIN
|
||||||
|
META_PLUGIN_CLASS
|
||||||
|
META_PLUGIN_GET_CLASS
|
||||||
|
META_TYPE_PLUGIN
|
||||||
|
MetaPluginPrivate
|
||||||
|
meta_plugin_get_type
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>meta-shadow-factory</FILE>
|
||||||
|
MetaShadowParams
|
||||||
|
meta_shadow_factory_get_default
|
||||||
|
meta_shadow_factory_set_params
|
||||||
|
meta_shadow_factory_get_params
|
||||||
|
MetaShadowFactory
|
||||||
|
MetaShadowFactoryClass
|
||||||
|
<SUBSECTION Standard>
|
||||||
|
META_IS_SHADOW_FACTORY
|
||||||
|
META_IS_SHADOW_FACTORY_CLASS
|
||||||
|
META_SHADOW_FACTORY
|
||||||
|
META_SHADOW_FACTORY_CLASS
|
||||||
|
META_SHADOW_FACTORY_GET_CLASS
|
||||||
|
META_TYPE_SHADOW_FACTORY
|
||||||
|
meta_shadow_factory_get_type
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>meta-shaped-texture</FILE>
|
||||||
|
<TITLE>MetaShapedTexture</TITLE>
|
||||||
|
MetaShapedTexture
|
||||||
|
MetaShapedTextureClass
|
||||||
|
meta_shaped_texture_new
|
||||||
|
meta_shaped_texture_set_create_mipmaps
|
||||||
|
meta_shaped_texture_update_area
|
||||||
|
meta_shaped_texture_set_pixmap
|
||||||
|
meta_shaped_texture_get_texture
|
||||||
|
meta_shaped_texture_set_mask_texture
|
||||||
|
meta_shaped_texture_set_clip_region
|
||||||
|
meta_shaped_texture_get_image
|
||||||
|
<SUBSECTION Standard>
|
||||||
|
META_IS_SHAPED_TEXTURE
|
||||||
|
META_IS_SHAPED_TEXTURE_CLASS
|
||||||
|
META_SHAPED_TEXTURE
|
||||||
|
META_SHAPED_TEXTURE_CLASS
|
||||||
|
META_SHAPED_TEXTURE_GET_CLASS
|
||||||
|
META_TYPE_SHAPED_TEXTURE
|
||||||
|
MetaShapedTexturePrivate
|
||||||
|
meta_shaped_texture_get_type
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>meta-window-actor</FILE>
|
||||||
|
<TITLE>MetaWindowActor</TITLE>
|
||||||
|
MetaWindowActor
|
||||||
|
MetaWindowActorClass
|
||||||
|
meta_window_actor_get_x_window
|
||||||
|
meta_window_actor_get_workspace
|
||||||
|
meta_window_actor_get_meta_window
|
||||||
|
meta_window_actor_get_texture
|
||||||
|
meta_window_actor_is_override_redirect
|
||||||
|
meta_window_actor_get_description
|
||||||
|
meta_window_actor_showing_on_its_workspace
|
||||||
|
meta_window_actor_is_destroyed
|
||||||
|
<SUBSECTION Standard>
|
||||||
|
META_IS_WINDOW_ACTOR
|
||||||
|
META_IS_WINDOW_ACTOR_CLASS
|
||||||
|
META_TYPE_WINDOW_ACTOR
|
||||||
|
META_WINDOW_ACTOR
|
||||||
|
META_WINDOW_ACTOR_CLASS
|
||||||
|
META_WINDOW_ACTOR_GET_CLASS
|
||||||
|
MetaWindowActorPrivate
|
||||||
|
meta_window_actor_get_type
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>prefs</FILE>
|
||||||
|
MetaPreference
|
||||||
|
MetaPrefsChangedFunc
|
||||||
|
meta_prefs_add_listener
|
||||||
|
meta_prefs_remove_listener
|
||||||
|
meta_prefs_init
|
||||||
|
meta_prefs_override_preference_schema
|
||||||
|
meta_preference_to_string
|
||||||
|
meta_prefs_get_mouse_button_mods
|
||||||
|
meta_prefs_get_mouse_button_resize
|
||||||
|
meta_prefs_get_mouse_button_menu
|
||||||
|
meta_prefs_get_focus_mode
|
||||||
|
meta_prefs_get_focus_new_windows
|
||||||
|
meta_prefs_get_attach_modal_dialogs
|
||||||
|
meta_prefs_get_raise_on_click
|
||||||
|
meta_prefs_get_theme
|
||||||
|
meta_prefs_get_titlebar_font
|
||||||
|
meta_prefs_get_num_workspaces
|
||||||
|
meta_prefs_get_dynamic_workspaces
|
||||||
|
meta_prefs_get_application_based
|
||||||
|
meta_prefs_get_disable_workarounds
|
||||||
|
meta_prefs_get_auto_raise
|
||||||
|
meta_prefs_get_auto_raise_delay
|
||||||
|
meta_prefs_get_focus_change_on_pointer_rest
|
||||||
|
meta_prefs_get_gnome_accessibility
|
||||||
|
meta_prefs_get_gnome_animations
|
||||||
|
meta_prefs_get_edge_tiling
|
||||||
|
meta_prefs_get_auto_maximize
|
||||||
|
meta_prefs_get_button_layout
|
||||||
|
meta_prefs_get_action_double_click_titlebar
|
||||||
|
meta_prefs_get_action_middle_click_titlebar
|
||||||
|
meta_prefs_get_action_right_click_titlebar
|
||||||
|
meta_prefs_set_num_workspaces
|
||||||
|
meta_prefs_get_workspace_name
|
||||||
|
meta_prefs_change_workspace_name
|
||||||
|
meta_prefs_get_cursor_theme
|
||||||
|
meta_prefs_get_cursor_size
|
||||||
|
meta_prefs_get_compositing_manager
|
||||||
|
meta_prefs_get_force_fullscreen
|
||||||
|
meta_prefs_set_force_fullscreen
|
||||||
|
meta_prefs_get_workspaces_only_on_primary
|
||||||
|
meta_prefs_get_no_tab_popup
|
||||||
|
meta_prefs_set_no_tab_popup
|
||||||
|
meta_prefs_get_draggable_border_width
|
||||||
|
meta_prefs_get_ignore_request_hide_titlebar
|
||||||
|
meta_prefs_set_ignore_request_hide_titlebar
|
||||||
|
MetaKeyBindingAction
|
||||||
|
MetaKeyBindingFlags
|
||||||
|
MetaKeyCombo
|
||||||
|
MetaKeyHandlerFunc
|
||||||
|
meta_prefs_get_keybindings
|
||||||
|
meta_prefs_get_keybinding_action
|
||||||
|
meta_prefs_get_window_binding
|
||||||
|
meta_prefs_get_overlay_binding
|
||||||
|
meta_prefs_get_visual_bell
|
||||||
|
meta_prefs_bell_is_audible
|
||||||
|
meta_prefs_get_visual_bell_type
|
||||||
|
MetaKeyHandler
|
||||||
|
<SUBSECTION Standard>
|
||||||
|
meta_key_binding_get_type
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>screen</FILE>
|
||||||
|
MetaScreen
|
||||||
|
MetaScreenClass
|
||||||
|
meta_screen_get_screen_number
|
||||||
|
meta_screen_get_display
|
||||||
|
meta_screen_get_xroot
|
||||||
|
meta_screen_get_size
|
||||||
|
meta_screen_get_compositor_data
|
||||||
|
meta_screen_set_compositor_data
|
||||||
|
meta_screen_for_x_screen
|
||||||
|
meta_screen_set_cm_selection
|
||||||
|
meta_screen_unset_cm_selection
|
||||||
|
meta_screen_get_startup_sequences
|
||||||
|
meta_screen_get_workspaces
|
||||||
|
meta_screen_get_n_workspaces
|
||||||
|
meta_screen_get_workspace_by_index
|
||||||
|
meta_screen_remove_workspace
|
||||||
|
meta_screen_append_new_workspace
|
||||||
|
meta_screen_get_active_workspace_index
|
||||||
|
meta_screen_get_active_workspace
|
||||||
|
meta_screen_get_n_monitors
|
||||||
|
meta_screen_get_primary_monitor
|
||||||
|
meta_screen_get_current_monitor
|
||||||
|
meta_screen_get_monitor_geometry
|
||||||
|
meta_screen_get_monitor_index_for_rect
|
||||||
|
meta_screen_focus_default_window
|
||||||
|
MetaScreenCorner
|
||||||
|
meta_screen_override_workspace_layout
|
||||||
|
<SUBSECTION Standard>
|
||||||
|
META_IS_SCREEN
|
||||||
|
META_IS_SCREEN_CLASS
|
||||||
|
META_SCREEN
|
||||||
|
META_SCREEN_CLASS
|
||||||
|
META_SCREEN_GET_CLASS
|
||||||
|
META_TYPE_SCREEN
|
||||||
|
meta_screen_get_type
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>util</FILE>
|
||||||
|
meta_is_verbose
|
||||||
|
meta_set_verbose
|
||||||
|
meta_is_debugging
|
||||||
|
meta_set_debugging
|
||||||
|
meta_is_syncing
|
||||||
|
meta_set_syncing
|
||||||
|
meta_set_replace_current_wm
|
||||||
|
meta_debug_spew_real
|
||||||
|
meta_verbose_real
|
||||||
|
meta_bug
|
||||||
|
meta_warning
|
||||||
|
meta_fatal
|
||||||
|
MetaDebugTopic
|
||||||
|
meta_topic_real
|
||||||
|
meta_add_verbose_topic
|
||||||
|
meta_remove_verbose_topic
|
||||||
|
meta_push_no_msg_prefix
|
||||||
|
meta_pop_no_msg_prefix
|
||||||
|
meta_unsigned_long_equal
|
||||||
|
meta_unsigned_long_hash
|
||||||
|
meta_frame_type_to_string
|
||||||
|
meta_gravity_to_string
|
||||||
|
_
|
||||||
|
N_
|
||||||
|
meta_g_utf8_strndup
|
||||||
|
meta_free_gslist_and_elements
|
||||||
|
meta_show_dialog
|
||||||
|
meta_debug_spew
|
||||||
|
meta_verbose
|
||||||
|
meta_topic
|
||||||
|
MetaLaterType
|
||||||
|
meta_later_add
|
||||||
|
meta_later_remove
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>window</FILE>
|
||||||
|
MetaWindow
|
||||||
|
MetaWindowClass
|
||||||
|
MetaWindowType
|
||||||
|
MetaMaximizeFlags
|
||||||
|
meta_window_get_frame
|
||||||
|
meta_window_has_focus
|
||||||
|
meta_window_appears_focused
|
||||||
|
meta_window_is_shaded
|
||||||
|
meta_window_is_monitor_sized
|
||||||
|
meta_window_is_override_redirect
|
||||||
|
meta_window_is_skip_taskbar
|
||||||
|
meta_window_get_rect
|
||||||
|
meta_window_get_input_rect
|
||||||
|
meta_window_get_outer_rect
|
||||||
|
meta_window_get_screen
|
||||||
|
meta_window_get_display
|
||||||
|
meta_window_get_xwindow
|
||||||
|
meta_window_get_window_type
|
||||||
|
meta_window_get_window_type_atom
|
||||||
|
meta_window_get_workspace
|
||||||
|
meta_window_get_monitor
|
||||||
|
meta_window_is_on_all_workspaces
|
||||||
|
meta_window_located_on_workspace
|
||||||
|
meta_window_is_hidden
|
||||||
|
meta_window_activate
|
||||||
|
meta_window_activate_with_workspace
|
||||||
|
meta_window_get_description
|
||||||
|
meta_window_get_wm_class
|
||||||
|
meta_window_get_wm_class_instance
|
||||||
|
meta_window_showing_on_its_workspace
|
||||||
|
meta_window_get_gtk_application_id
|
||||||
|
meta_window_get_gtk_unique_bus_name
|
||||||
|
meta_window_get_gtk_application_object_path
|
||||||
|
meta_window_get_gtk_window_object_path
|
||||||
|
meta_window_get_gtk_app_menu_object_path
|
||||||
|
meta_window_get_gtk_menubar_object_path
|
||||||
|
meta_window_move
|
||||||
|
meta_window_move_frame
|
||||||
|
meta_window_move_resize_frame
|
||||||
|
meta_window_move_to_monitor
|
||||||
|
meta_window_resize
|
||||||
|
meta_window_set_demands_attention
|
||||||
|
meta_window_unset_demands_attention
|
||||||
|
meta_window_get_startup_id
|
||||||
|
meta_window_change_workspace_by_index
|
||||||
|
meta_window_change_workspace
|
||||||
|
meta_window_get_compositor_private
|
||||||
|
meta_window_set_compositor_private
|
||||||
|
meta_window_configure_notify
|
||||||
|
meta_window_get_role
|
||||||
|
meta_window_get_layer
|
||||||
|
meta_window_find_root_ancestor
|
||||||
|
meta_window_is_ancestor_of_transient
|
||||||
|
MetaWindowForeachFunc
|
||||||
|
meta_window_foreach_transient
|
||||||
|
meta_window_foreach_ancestor
|
||||||
|
meta_window_get_maximized
|
||||||
|
meta_window_is_fullscreen
|
||||||
|
meta_window_is_on_primary_monitor
|
||||||
|
meta_window_requested_bypass_compositor
|
||||||
|
meta_window_requested_dont_bypass_compositor
|
||||||
|
meta_window_is_mapped
|
||||||
|
meta_window_toplevel_is_mapped
|
||||||
|
meta_window_get_icon_geometry
|
||||||
|
meta_window_set_icon_geometry
|
||||||
|
meta_window_maximize
|
||||||
|
meta_window_unmaximize
|
||||||
|
meta_window_minimize
|
||||||
|
meta_window_unminimize
|
||||||
|
meta_window_raise
|
||||||
|
meta_window_lower
|
||||||
|
meta_window_get_title
|
||||||
|
meta_window_get_transient_for
|
||||||
|
meta_window_get_transient_for_as_xid
|
||||||
|
meta_window_delete
|
||||||
|
meta_window_get_stable_sequence
|
||||||
|
meta_window_get_user_time
|
||||||
|
meta_window_get_pid
|
||||||
|
meta_window_get_client_machine
|
||||||
|
meta_window_is_remote
|
||||||
|
meta_window_is_modal
|
||||||
|
meta_window_is_attached_dialog
|
||||||
|
meta_window_get_mutter_hints
|
||||||
|
meta_window_get_frame_type
|
||||||
|
meta_window_get_frame_bounds
|
||||||
|
meta_window_get_tile_match
|
||||||
|
meta_window_make_fullscreen
|
||||||
|
meta_window_unmake_fullscreen
|
||||||
|
meta_window_make_above
|
||||||
|
meta_window_unmake_above
|
||||||
|
meta_window_shade
|
||||||
|
meta_window_unshade
|
||||||
|
meta_window_stick
|
||||||
|
meta_window_unstick
|
||||||
|
meta_window_kill
|
||||||
|
meta_window_focus
|
||||||
|
meta_window_check_alive
|
||||||
|
meta_window_get_work_area_current_monitor
|
||||||
|
meta_window_get_work_area_for_monitor
|
||||||
|
meta_window_get_work_area_all_monitors
|
||||||
|
meta_window_begin_grab_op
|
||||||
|
<SUBSECTION Standard>
|
||||||
|
META_IS_WINDOW
|
||||||
|
META_IS_WINDOW_CLASS
|
||||||
|
META_TYPE_WINDOW
|
||||||
|
META_WINDOW
|
||||||
|
META_WINDOW_CLASS
|
||||||
|
META_WINDOW_GET_CLASS
|
||||||
|
meta_window_get_type
|
||||||
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>workspace</FILE>
|
||||||
|
MetaWorkspace
|
||||||
|
MetaWorkspaceClass
|
||||||
|
meta_workspace_index
|
||||||
|
meta_workspace_get_screen
|
||||||
|
meta_workspace_list_windows
|
||||||
|
meta_workspace_get_work_area_for_monitor
|
||||||
|
meta_workspace_get_work_area_all_monitors
|
||||||
|
meta_workspace_activate
|
||||||
|
meta_workspace_activate_with_focus
|
||||||
|
meta_workspace_update_window_hints
|
||||||
|
meta_workspace_set_builtin_struts
|
||||||
|
meta_workspace_get_neighbor
|
||||||
|
<SUBSECTION Standard>
|
||||||
|
META_IS_WORKSPACE
|
||||||
|
META_IS_WORKSPACE_CLASS
|
||||||
|
META_TYPE_WORKSPACE
|
||||||
|
META_WORKSPACE
|
||||||
|
META_WORKSPACE_CLASS
|
||||||
|
META_WORKSPACE_GET_CLASS
|
||||||
|
meta_workspace_get_type
|
||||||
|
</SECTION>
|
||||||
|
|
15
doc/reference/mutter-overview.xml
Normal file
15
doc/reference/mutter-overview.xml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<part id="mutter-overview">
|
||||||
|
|
||||||
|
<title>Overview</title>
|
||||||
|
|
||||||
|
<partintro>
|
||||||
|
|
||||||
|
<para>Mutter is a GObject-based library for creating compositing window managers.</para>
|
||||||
|
|
||||||
|
<para>Compositors that wish to use Mutter must implement a subclass of #MetaPlugin and register it with meta_plugin_manager_set_plugin_type() before calling meta_init() but after g_type_init().</para>
|
||||||
|
|
||||||
|
<para>#MetaPlugin provides virtual functions that allow to override default behavior in the window management code, such as the effect to perform when a window is created or when switching workspaces.</para>
|
||||||
|
|
||||||
|
</partintro>
|
||||||
|
|
||||||
|
</part>
|
100
doc/reference/running-mutter.xml
Normal file
100
doc/reference/running-mutter.xml
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
<part id="running-mutter">
|
||||||
|
|
||||||
|
<title>Running Mutter</title>
|
||||||
|
|
||||||
|
<partintro>
|
||||||
|
|
||||||
|
<section id="environment-variables">
|
||||||
|
<title>Environment Variables</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Mutter automatically checks environment variables during
|
||||||
|
its initialization. These environment variables are meant
|
||||||
|
as debug tools or overrides for default behaviours:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term>MUTTER_VERBOSE</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Enable verbose mode, in which more information is printed to the console. Mutter needs to be built with the --enable-verbose-mode option (enabled by default). For more fine-grained control of the output, see meta_add_verbose_topic().</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>MUTTER_DEBUG</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Traps and prints X errors to the console.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>MUTTER_G_FATAL_WARNINGS</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Causes any logging from the domains Mutter, Gtk, Gdk, Pango or GLib to terminate the process (only when using the log functions in GLib).</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>MUTTER_USE_LOGFILE</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Log all messages to a temporary file.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>MUTTER_DEBUG_XINERAMA</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Log extra information about support of the XINERAMA extension.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>MUTTER_DEBUG_SM</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Log extra information about session management.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>MUTTER_DEBUG_BUTTON_GRABS</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Log extra information about button grabs.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>MUTTER_SYNC</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Call XSync after each X call.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>MUTTER_DISPLAY</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Name of the X11 display to use.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>META_DISABLE_MIPMAPS</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Disable use of mipmaps for the textures that back window pixmaps.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>MUTTER_USE_STATIC_GRAVITY</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Enable support for clients with static bit-gravity.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>MUTTER_WM_CLASS_FILTER</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Comma-separated list of WM_CLASS names to which to restrict Mutter to.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>MUTTER_DISABLE_FALLBACK_COLOR</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Disable fallback for themed colors, for easier detection of typographical errors.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</partintro>
|
||||||
|
</part>
|
@@ -39,4 +39,11 @@ environment.</description>
|
|||||||
<gnome:userid>otaylor</gnome:userid>
|
<gnome:userid>otaylor</gnome:userid>
|
||||||
</foaf:Person>
|
</foaf:Person>
|
||||||
</maintainer>
|
</maintainer>
|
||||||
|
<maintainer>
|
||||||
|
<foaf:Person>
|
||||||
|
<foaf:name>Florian Müllner</foaf:name>
|
||||||
|
<foaf:mbox rdf:resource="mailto:fmuellner@gnome.org" />
|
||||||
|
<gnome:userid>fmuellner</gnome:userid>
|
||||||
|
</foaf:Person>
|
||||||
|
</maintainer>
|
||||||
</Project>
|
</Project>
|
||||||
|
@@ -80,6 +80,7 @@ sr@latin
|
|||||||
sv
|
sv
|
||||||
ta
|
ta
|
||||||
te
|
te
|
||||||
|
tg
|
||||||
th
|
th
|
||||||
tk
|
tk
|
||||||
tr
|
tr
|
||||||
|
@@ -1,7 +1,10 @@
|
|||||||
# List of source files containing translatable strings.
|
# List of source files containing translatable strings.
|
||||||
# Please keep this file sorted alphabetically.
|
# Please keep this file sorted alphabetically.
|
||||||
|
src/50-mutter-navigation.xml.in
|
||||||
|
src/50-mutter-system.xml.in
|
||||||
src/50-mutter-windows.xml.in
|
src/50-mutter-windows.xml.in
|
||||||
src/compositor/compositor.c
|
src/compositor/compositor.c
|
||||||
|
src/compositor/meta-background.c
|
||||||
src/core/bell.c
|
src/core/bell.c
|
||||||
src/core/core.c
|
src/core/core.c
|
||||||
src/core/delete.c
|
src/core/delete.c
|
||||||
|
184
po/ast.po
184
po/ast.po
@@ -37,7 +37,6 @@ msgstr "Petición d'información ventana desconocida: %d"
|
|||||||
#. Translators: %s is a window title
|
#. Translators: %s is a window title
|
||||||
#: ../src/core/delete.c:95
|
#: ../src/core/delete.c:95
|
||||||
#, c-format
|
#, c-format
|
||||||
#, c-format
|
|
||||||
msgid "<tt>%s</tt> is not responding."
|
msgid "<tt>%s</tt> is not responding."
|
||||||
msgstr "<tt>%s</tt> nun ta respondiendo."
|
msgstr "<tt>%s</tt> nun ta respondiendo."
|
||||||
|
|
||||||
@@ -122,7 +121,6 @@ msgstr "Comandu de terminal nun definíu.\n"
|
|||||||
|
|
||||||
#: ../src/core/main.c:130
|
#: ../src/core/main.c:130
|
||||||
#, c-format
|
#, c-format
|
||||||
#, c-format
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"mutter %s\n"
|
"mutter %s\n"
|
||||||
"Copyright (C) 2001-%d Havoc Pennington, Red Hat, Inc., and others\n"
|
"Copyright (C) 2001-%d Havoc Pennington, Red Hat, Inc., and others\n"
|
||||||
@@ -261,7 +259,6 @@ msgstr "Error axustando númberu d'arees de trabayu a %d: %s\n"
|
|||||||
|
|
||||||
#: ../src/core/prefs.c:2028 ../src/core/prefs.c:2531
|
#: ../src/core/prefs.c:2028 ../src/core/prefs.c:2531
|
||||||
#, c-format
|
#, c-format
|
||||||
#, c-format
|
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "Espaciu de Trabayu %d"
|
msgstr "Espaciu de Trabayu %d"
|
||||||
|
|
||||||
@@ -275,7 +272,6 @@ msgstr "\"%s\" atopau na base de datos de configuración nun ye un valor válidu
|
|||||||
|
|
||||||
#: ../src/core/prefs.c:2612
|
#: ../src/core/prefs.c:2612
|
||||||
#, c-format
|
#, c-format
|
||||||
#, c-format
|
|
||||||
msgid "Error setting name for workspace %d to \"%s\": %s\n"
|
msgid "Error setting name for workspace %d to \"%s\": %s\n"
|
||||||
msgstr "Fallu al afitar nome pal espaciu de trabayu %d a \"%s\": %s\n"
|
msgstr "Fallu al afitar nome pal espaciu de trabayu %d a \"%s\": %s\n"
|
||||||
|
|
||||||
@@ -286,19 +282,16 @@ msgstr "Fallu al afitar l'estáu del compositor: %s\n"
|
|||||||
|
|
||||||
#: ../src/core/prefs.c:2845
|
#: ../src/core/prefs.c:2845
|
||||||
#, c-format
|
#, c-format
|
||||||
#, c-format
|
|
||||||
msgid "Error setting clutter plugin list: %s\n"
|
msgid "Error setting clutter plugin list: %s\n"
|
||||||
msgstr "Fallu al afitar la llista desordenada de plugin: %s\n"
|
msgstr "Fallu al afitar la llista desordenada de plugin: %s\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:2889
|
#: ../src/core/prefs.c:2889
|
||||||
#, c-format
|
#, c-format
|
||||||
#, c-format
|
|
||||||
msgid "Error setting live hidden windows status status: %s\n"
|
msgid "Error setting live hidden windows status status: %s\n"
|
||||||
msgstr "Fallu al afitar l'estáu de les ventanes anubríes: %s\n"
|
msgstr "Fallu al afitar l'estáu de les ventanes anubríes: %s\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:2917
|
#: ../src/core/prefs.c:2917
|
||||||
#, c-format
|
#, c-format
|
||||||
#, c-format
|
|
||||||
msgid "Error setting no tab popup status: %s\n"
|
msgid "Error setting no tab popup status: %s\n"
|
||||||
msgstr "Fallu al afitar l'estáu de les llingüetes emerxentes: %s\n"
|
msgstr "Fallu al afitar l'estáu de les llingüetes emerxentes: %s\n"
|
||||||
|
|
||||||
@@ -358,7 +351,6 @@ msgstr "Falló analizar ficheru de sesión guardáu: %s\n"
|
|||||||
|
|
||||||
#: ../src/core/session.c:1198
|
#: ../src/core/session.c:1198
|
||||||
#, c-format
|
#, c-format
|
||||||
#, c-format
|
|
||||||
msgid "<mutter_session> attribute seen but we already have the session ID"
|
msgid "<mutter_session> attribute seen but we already have the session ID"
|
||||||
msgstr "Vióse l'atributu <mutter_session> pero yá tenemos la ID de sesión"
|
msgstr "Vióse l'atributu <mutter_session> pero yá tenemos la ID de sesión"
|
||||||
|
|
||||||
@@ -404,7 +396,6 @@ msgstr "Abiertu archivu log %s\n"
|
|||||||
|
|
||||||
#: ../src/core/util.c:139 ../src/tools/mutter-message.c:176
|
#: ../src/core/util.c:139 ../src/tools/mutter-message.c:176
|
||||||
#, c-format
|
#, c-format
|
||||||
#, c-format
|
|
||||||
msgid "Mutter was compiled without support for verbose mode\n"
|
msgid "Mutter was compiled without support for verbose mode\n"
|
||||||
msgstr "Mutter compilose ensin sofitu pal mou testu\n"
|
msgstr "Mutter compilose ensin sofitu pal mou testu\n"
|
||||||
|
|
||||||
@@ -499,19 +490,19 @@ msgid ""
|
|||||||
msgstr "La propiedá %s del ventanu 0x%lx contien un códigu UTF-8 non válidu pal "
|
msgstr "La propiedá %s del ventanu 0x%lx contien un códigu UTF-8 non válidu pal "
|
||||||
"elementu %d na llista\n"
|
"elementu %d na llista\n"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:88
|
#: ../src/include/all-keybindings.h:88 ../src/50-mutter-navigation.xml.in.h:18
|
||||||
msgid "Switch to workspace 1"
|
msgid "Switch to workspace 1"
|
||||||
msgstr "Cambiar a espaciu de trabayu 1"
|
msgstr "Cambiar a espaciu de trabayu 1"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:90
|
#: ../src/include/all-keybindings.h:90 ../src/50-mutter-navigation.xml.in.h:19
|
||||||
msgid "Switch to workspace 2"
|
msgid "Switch to workspace 2"
|
||||||
msgstr "Cambiar a espaciu de trabayu 2"
|
msgstr "Cambiar a espaciu de trabayu 2"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:92
|
#: ../src/include/all-keybindings.h:92 ../src/50-mutter-navigation.xml.in.h:20
|
||||||
msgid "Switch to workspace 3"
|
msgid "Switch to workspace 3"
|
||||||
msgstr "Cambiar a espaciu de trabayu 3"
|
msgstr "Cambiar a espaciu de trabayu 3"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:94
|
#: ../src/include/all-keybindings.h:94 ../src/50-mutter-navigation.xml.in.h:21
|
||||||
msgid "Switch to workspace 4"
|
msgid "Switch to workspace 4"
|
||||||
msgstr "Cambiar a espaciu de trabayu 4"
|
msgstr "Cambiar a espaciu de trabayu 4"
|
||||||
|
|
||||||
@@ -640,47 +631,57 @@ msgstr "Saca una semeya d'una ventana"
|
|||||||
msgid "Run a terminal"
|
msgid "Run a terminal"
|
||||||
msgstr "Executar una terminal"
|
msgstr "Executar una terminal"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:271
|
#: ../src/include/all-keybindings.h:271 ../src/50-mutter-windows.xml.in.h:1
|
||||||
msgid "Activate the window menu"
|
msgid "Activate the window menu"
|
||||||
msgstr "Activar el menú de la ventana"
|
msgstr "Activar el menú de la ventana"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:274
|
#: ../src/include/all-keybindings.h:274 ../src/50-mutter-windows.xml.in.h:13
|
||||||
|
#, fuzzy
|
||||||
msgid "Toggle fullscreen mode"
|
msgid "Toggle fullscreen mode"
|
||||||
msgstr "Camudar a modu pantalla completa"
|
msgstr ""
|
||||||
|
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
|
||||||
|
"Camudar a modu pantalla completa\n"
|
||||||
|
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
|
||||||
|
"Camudar a mou pantalla completa"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:276
|
#: ../src/include/all-keybindings.h:276 ../src/50-mutter-windows.xml.in.h:14
|
||||||
|
#, fuzzy
|
||||||
msgid "Toggle maximization state"
|
msgid "Toggle maximization state"
|
||||||
msgstr "Camudar a estáu maximizáu"
|
msgstr ""
|
||||||
|
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
|
||||||
|
"Camudar a estáu maximizáu\n"
|
||||||
|
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
|
||||||
|
"Conmutar l'estáu maximizáu"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:278
|
#: ../src/include/all-keybindings.h:278
|
||||||
msgid "Toggle whether a window will always be visible over other windows"
|
msgid "Toggle whether a window will always be visible over other windows"
|
||||||
msgstr "Conmutar si una ventana siempres se verá encima d'otres ventanes"
|
msgstr "Conmutar si una ventana siempres se verá encima d'otres ventanes"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:280
|
#: ../src/include/all-keybindings.h:280 ../src/50-mutter-windows.xml.in.h:4
|
||||||
msgid "Maximize window"
|
msgid "Maximize window"
|
||||||
msgstr "Maximizar ventana"
|
msgstr "Maximizar ventana"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:282
|
#: ../src/include/all-keybindings.h:282 ../src/50-mutter-windows.xml.in.h:12
|
||||||
msgid "Restore window"
|
msgid "Restore window"
|
||||||
msgstr "Restaurar la ventana"
|
msgstr "Restaurar la ventana"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:284
|
#: ../src/include/all-keybindings.h:284 ../src/50-mutter-windows.xml.in.h:15
|
||||||
msgid "Toggle shaded state"
|
msgid "Toggle shaded state"
|
||||||
msgstr "Activa estáu endolcáu"
|
msgstr "Activa estáu endolcáu"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:286
|
#: ../src/include/all-keybindings.h:286 ../src/50-mutter-windows.xml.in.h:7
|
||||||
msgid "Minimize window"
|
msgid "Minimize window"
|
||||||
msgstr "Minimizar ventana"
|
msgstr "Minimizar ventana"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:288
|
#: ../src/include/all-keybindings.h:288 ../src/50-mutter-windows.xml.in.h:2
|
||||||
msgid "Close window"
|
msgid "Close window"
|
||||||
msgstr "Zarrar ventana"
|
msgstr "Zarrar ventana"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:290
|
#: ../src/include/all-keybindings.h:290 ../src/50-mutter-windows.xml.in.h:8
|
||||||
msgid "Move window"
|
msgid "Move window"
|
||||||
msgstr "Mover ventana"
|
msgstr "Mover ventana"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:292
|
#: ../src/include/all-keybindings.h:292 ../src/50-mutter-windows.xml.in.h:11
|
||||||
msgid "Resize window"
|
msgid "Resize window"
|
||||||
msgstr "Cambiar el tamañu la ventana"
|
msgstr "Cambiar el tamañu la ventana"
|
||||||
|
|
||||||
@@ -689,18 +690,22 @@ msgid "Toggle whether window is on all workspaces or just one"
|
|||||||
msgstr "Conmutar si la ventana apaez en toles árees de trabayu o namái nuna"
|
msgstr "Conmutar si la ventana apaez en toles árees de trabayu o namái nuna"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:299
|
#: ../src/include/all-keybindings.h:299
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:10
|
||||||
msgid "Move window to workspace 1"
|
msgid "Move window to workspace 1"
|
||||||
msgstr "Mover ventana al espaciu de trabayu 1"
|
msgstr "Mover ventana al espaciu de trabayu 1"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:302
|
#: ../src/include/all-keybindings.h:302
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:11
|
||||||
msgid "Move window to workspace 2"
|
msgid "Move window to workspace 2"
|
||||||
msgstr "Mover ventana al espaciu de trabayu 2"
|
msgstr "Mover ventana al espaciu de trabayu 2"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:305
|
#: ../src/include/all-keybindings.h:305
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:12
|
||||||
msgid "Move window to workspace 3"
|
msgid "Move window to workspace 3"
|
||||||
msgstr "Mover ventana al espaciu de trabayu 3"
|
msgstr "Mover ventana al espaciu de trabayu 3"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:308
|
#: ../src/include/all-keybindings.h:308
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:13
|
||||||
msgid "Move window to workspace 4"
|
msgid "Move window to workspace 4"
|
||||||
msgstr "Mover ventana al espaciu de trabayu 4"
|
msgstr "Mover ventana al espaciu de trabayu 4"
|
||||||
|
|
||||||
@@ -736,19 +741,24 @@ msgstr "Mover ventana al espaciu de trabayu 11"
|
|||||||
msgid "Move window to workspace 12"
|
msgid "Move window to workspace 12"
|
||||||
msgstr "Mover ventana al espaciu de trabayu 12"
|
msgstr "Mover ventana al espaciu de trabayu 12"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:344
|
#: ../src/include/all-keybindings.h:344 ../src/50-mutter-navigation.xml.in.h:7
|
||||||
msgid "Move window one workspace to the left"
|
msgid "Move window one workspace to the left"
|
||||||
msgstr "Mover ventana un espaciu de trabayu a manzorga"
|
msgstr "Mover ventana un espaciu de trabayu a manzorga"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:347
|
#: ../src/include/all-keybindings.h:347 ../src/50-mutter-navigation.xml.in.h:8
|
||||||
|
#, fuzzy
|
||||||
msgid "Move window one workspace to the right"
|
msgid "Move window one workspace to the right"
|
||||||
msgstr "Mover ventana un espaciu de trabayu a derecha"
|
msgstr ""
|
||||||
|
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
|
||||||
|
"Mover ventana un espaciu de trabayu a derecha\n"
|
||||||
|
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
|
||||||
|
"Mover ventana un espaciu de trabayu a madrecha"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:350
|
#: ../src/include/all-keybindings.h:350 ../src/50-mutter-navigation.xml.in.h:9
|
||||||
msgid "Move window one workspace up"
|
msgid "Move window one workspace up"
|
||||||
msgstr "Mover ventana un espaciu de trabayu p'arriba"
|
msgstr "Mover ventana un espaciu de trabayu p'arriba"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:353
|
#: ../src/include/all-keybindings.h:353 ../src/50-mutter-navigation.xml.in.h:6
|
||||||
msgid "Move window one workspace down"
|
msgid "Move window one workspace down"
|
||||||
msgstr "Mover ventana un espaciu de trabayu p'abaxo"
|
msgstr "Mover ventana un espaciu de trabayu p'abaxo"
|
||||||
|
|
||||||
@@ -757,19 +767,29 @@ msgid "Raise window if it's covered by another window, otherwise lower it"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Llevantar la ventana si ta cubierta por otra ventana, minimizala n'otru casu"
|
"Llevantar la ventana si ta cubierta por otra ventana, minimizala n'otru casu"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:358
|
#: ../src/include/all-keybindings.h:358 ../src/50-mutter-windows.xml.in.h:9
|
||||||
|
#, fuzzy
|
||||||
msgid "Raise window above other windows"
|
msgid "Raise window above other windows"
|
||||||
msgstr "Poner el ventanu en primer planu"
|
msgstr ""
|
||||||
|
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
|
||||||
|
"Poner el ventanu en primer planu\n"
|
||||||
|
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
|
||||||
|
"Poner la ventana en primer planu"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:360
|
#: ../src/include/all-keybindings.h:360 ../src/50-mutter-windows.xml.in.h:3
|
||||||
|
#, fuzzy
|
||||||
msgid "Lower window below other windows"
|
msgid "Lower window below other windows"
|
||||||
msgstr "Ventanu más baxu per debaxo d'otros ventanos"
|
msgstr ""
|
||||||
|
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
|
||||||
|
"Ventanu más baxu per debaxo d'otros ventanos\n"
|
||||||
|
"#-#-#-#-# ast.po (metacity) #-#-#-#-#\n"
|
||||||
|
"Ventana más baxa per debaxo d'otres ventanes"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:364
|
#: ../src/include/all-keybindings.h:364 ../src/50-mutter-windows.xml.in.h:6
|
||||||
msgid "Maximize window vertically"
|
msgid "Maximize window vertically"
|
||||||
msgstr "Maximizar ventana verticalmente"
|
msgstr "Maximizar ventana verticalmente"
|
||||||
|
|
||||||
#: ../src/include/all-keybindings.h:368
|
#: ../src/include/all-keybindings.h:368 ../src/50-mutter-windows.xml.in.h:5
|
||||||
msgid "Maximize window horizontally"
|
msgid "Maximize window horizontally"
|
||||||
msgstr "Maximizar ventana horizontalmente"
|
msgstr "Maximizar ventana horizontalmente"
|
||||||
|
|
||||||
@@ -983,7 +1003,6 @@ msgstr "Espaciu de Trabayu %d%n"
|
|||||||
|
|
||||||
#: ../src/ui/menu.c:213
|
#: ../src/ui/menu.c:213
|
||||||
#, c-format
|
#, c-format
|
||||||
#, c-format
|
|
||||||
msgid "Workspace 1_0"
|
msgid "Workspace 1_0"
|
||||||
msgstr "Espaciu de Trabayu 1_0"
|
msgstr "Espaciu de Trabayu 1_0"
|
||||||
|
|
||||||
@@ -1724,7 +1743,6 @@ msgstr "Nun se permite testu dientro del elementu <%s>"
|
|||||||
#: ../src/ui/theme-parser.c:3748 ../src/ui/theme-parser.c:3760
|
#: ../src/ui/theme-parser.c:3748 ../src/ui/theme-parser.c:3760
|
||||||
#: ../src/ui/theme-parser.c:3772
|
#: ../src/ui/theme-parser.c:3772
|
||||||
#, c-format
|
#, c-format
|
||||||
#, c-format
|
|
||||||
msgid "<%s> specified twice for this theme"
|
msgid "<%s> specified twice for this theme"
|
||||||
msgstr "<%s> especificáu dos vegaes pa esti tema"
|
msgstr "<%s> especificáu dos vegaes pa esti tema"
|
||||||
|
|
||||||
@@ -1936,6 +1954,96 @@ msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
|||||||
msgstr "%d espresiones de coordenaes interpretaes en %g segundos (%g segundos de "
|
msgstr "%d espresiones de coordenaes interpretaes en %g segundos (%g segundos de "
|
||||||
"media)\n"
|
"media)\n"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:1
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Hide all normal windows"
|
||||||
|
msgstr "Anubrir toles ventanes normales"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:2
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move to workspace above"
|
||||||
|
msgstr "Mover al área de trabayu d'arriba"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:3
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move to workspace below"
|
||||||
|
msgstr "Mover al área de trabayu d'abaxo"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:4
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move to workspace left"
|
||||||
|
msgstr "Mover al área de trabayu de la izquierda"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:5
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move to workspace right"
|
||||||
|
msgstr "Mover al área de trabayu de la derecha"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:14
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Navigation"
|
||||||
|
msgstr "Navegación"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:15
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch applications"
|
||||||
|
msgstr "Movese ente aplicaciones"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:16
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch system controls"
|
||||||
|
msgstr "Cambiar ente controles del sistema"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:17
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch system controls directly"
|
||||||
|
msgstr "Movese ente los controles del sistema direutamente"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:22
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch windows directly"
|
||||||
|
msgstr "Cambiar ventanes direutamente"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:23
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch windows of an app directly"
|
||||||
|
msgstr "Movese ente les ventanes d'una aplicación direutamente"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:24
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch windows of an application"
|
||||||
|
msgstr "Movese ente les ventanes d'una aplicación"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-system.xml.in.h:1
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Show the activities overview"
|
||||||
|
msgstr "Amosar el resume d'actividaes"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-system.xml.in.h:2
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Show the run command prompt"
|
||||||
|
msgstr "Amosar l'elementu «executar comando»"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-system.xml.in.h:3
|
||||||
|
#, fuzzy
|
||||||
|
msgid "System"
|
||||||
|
msgstr "Sistema"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:10
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Raise window if covered, otherwise lower it"
|
||||||
|
msgstr "Llevantar la ventana si ta cubierta, minimizala n'otru casu"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:16
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Toggle window on all workspaces or one"
|
||||||
|
msgstr "Conmutar la ventana en toles árees de trabayu o namái nuna"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:17
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Windows"
|
||||||
|
msgstr "Ventanes"
|
||||||
|
|
||||||
#~ msgid "Desktop"
|
#~ msgid "Desktop"
|
||||||
#~ msgstr "Escritoriu"
|
#~ msgstr "Escritoriu"
|
||||||
|
|
||||||
|
2719
po/bn_IN.po
2719
po/bn_IN.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
678
po/en_GB.po
678
po/en_GB.po
File diff suppressed because it is too large
Load Diff
313
po/eo.po
313
po/eo.po
@@ -1493,17 +1493,260 @@ msgstr "Y-valoro estis %d, %d estis atendita"
|
|||||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 1"
|
#: ../src/50-mutter-navigation.xml.in.h:17
|
||||||
#~ msgstr "Ŝalti al laborspaco 1"
|
#, fuzzy
|
||||||
|
msgid "Switch to workspace 1"
|
||||||
|
msgstr "Ŝalti al laborspaco 1"
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 2"
|
#: ../src/50-mutter-navigation.xml.in.h:18
|
||||||
#~ msgstr "Ŝalti al laborspaco 2"
|
#, fuzzy
|
||||||
|
msgid "Switch to workspace 2"
|
||||||
|
msgstr "Ŝalti al laborspaco 2"
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 3"
|
#: ../src/50-mutter-navigation.xml.in.h:19
|
||||||
#~ msgstr "Ŝalti al laborspaco 3"
|
#, fuzzy
|
||||||
|
msgid "Switch to workspace 3"
|
||||||
|
msgstr "Ŝalti al laborspaco 3"
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 4"
|
#: ../src/50-mutter-navigation.xml.in.h:20
|
||||||
#~ msgstr "Ŝalti al laborspaco 4"
|
#, fuzzy
|
||||||
|
msgid "Switch to workspace 4"
|
||||||
|
msgstr "Ŝalti al laborspaco 4"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:2
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Activate the window menu"
|
||||||
|
msgstr "Aktivigi la fenestromenuon"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:3
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Toggle fullscreen mode"
|
||||||
|
msgstr "Baskuligi tutekranan reĝimon"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:5
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Maximize window"
|
||||||
|
msgstr "Maksimumigi la fenestron"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:6
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Restore window"
|
||||||
|
msgstr "Restaŭri fenestron"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:9
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Minimize window"
|
||||||
|
msgstr "Minimumigi fenestron"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:8
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Close window"
|
||||||
|
msgstr "Fermi la fenestron"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:10
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi la fenestron\n"
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi fenestron"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:11
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Resize window"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Ŝanĝi la fenestrograndon\n"
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Ŝanĝi fenestrograndon"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:2
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window to workspace 1"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi la fenestron al laborspaco 1\n"
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi fenestron al laborspaco 1"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:3
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window to workspace 2"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi la fenestron al laborspaco 2\n"
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi fenestron al laborspaco 2"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:4
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window to workspace 3"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi la fenestron al laborspaco 3\n"
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi fenestron al laborspaco 3"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:5
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window to workspace 4"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi la fenestron al laborspaco 4\n"
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi fenestron al laborspaco 4"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:6
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window one workspace to the left"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi la fenestron al la maldekstra laborspaco\n"
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi fenestron al la maldekstra laborspaco"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:7
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window one workspace to the right"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi la fenestron al la dekstra laborspaco\n"
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi fenestron al la dekstra laborspaco"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:8
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window one workspace up"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi la fenestron al la supra laborspaco\n"
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi fenestron al la supra laborspaco"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:9
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window one workspace down"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi la fenestron al la suba laborspaco\n"
|
||||||
|
"#-#-#-#-# eo.po (mutter) #-#-#-#-#\n"
|
||||||
|
"Movi fenestron al la suba laborspaco"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:16
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Maximize window vertically"
|
||||||
|
msgstr "Vertikale maksimumigi la fenestron"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:17
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Maximize window horizontally"
|
||||||
|
msgstr "Horizontale maksimumigi la fenestron"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:1
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Navigation"
|
||||||
|
msgstr "Navigado"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:10
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch applications"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:11
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch windows of an application"
|
||||||
|
msgstr "Ŝalti fenestrojn de aplikaĵo"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:12
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch system controls"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:13
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch windows directly"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:14
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch windows of an app directly"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:15
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch system controls directly"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:16
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Hide all normal windows"
|
||||||
|
msgstr "Kaŝi ĉiujn normalajn fenestrojn"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:21
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move to workspace left"
|
||||||
|
msgstr "Movi al la maldekstra laborspaco"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:22
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move to workspace right"
|
||||||
|
msgstr "Movi al la dekstra laborspaco"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:23
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move to workspace above"
|
||||||
|
msgstr "Movi al la supra laborspaco"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:24
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move to workspace below"
|
||||||
|
msgstr "Movi al la malsupra laborspaco"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-system.xml.in.h:1
|
||||||
|
#, fuzzy
|
||||||
|
msgid "System"
|
||||||
|
msgstr "Sistemo"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-system.xml.in.h:2
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Show the run command prompt"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/50-mutter-system.xml.in.h:3
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Show the activities overview"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:4
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Toggle maximization state"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:7
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Toggle shaded state"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:12
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Toggle window on all workspaces or one"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:13
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Raise window if covered, otherwise lower it"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:14
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Raise window above other windows"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:15
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Lower window below other windows"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 5"
|
#~ msgid "Switch to workspace 5"
|
||||||
#~ msgstr "Ŝalti al laborspaco 5"
|
#~ msgstr "Ŝalti al laborspaco 5"
|
||||||
@@ -1598,42 +1841,6 @@ msgstr ""
|
|||||||
#~ msgid "Run a terminal"
|
#~ msgid "Run a terminal"
|
||||||
#~ msgstr "Ruli terminalon"
|
#~ msgstr "Ruli terminalon"
|
||||||
|
|
||||||
#~ msgid "Activate the window menu"
|
|
||||||
#~ msgstr "Aktivigi la fenestromenuon"
|
|
||||||
|
|
||||||
#~ msgid "Toggle fullscreen mode"
|
|
||||||
#~ msgstr "Baskuligi tutekranan reĝimon"
|
|
||||||
|
|
||||||
#~ msgid "Maximize window"
|
|
||||||
#~ msgstr "Maksimumigi la fenestron"
|
|
||||||
|
|
||||||
#~ msgid "Restore window"
|
|
||||||
#~ msgstr "Restaŭri fenestron"
|
|
||||||
|
|
||||||
#~ msgid "Minimize window"
|
|
||||||
#~ msgstr "Minimumigi fenestron"
|
|
||||||
|
|
||||||
#~ msgid "Close window"
|
|
||||||
#~ msgstr "Fermi la fenestron"
|
|
||||||
|
|
||||||
#~ msgid "Move window"
|
|
||||||
#~ msgstr "Movi la fenestron"
|
|
||||||
|
|
||||||
#~ msgid "Resize window"
|
|
||||||
#~ msgstr "Ŝanĝi la fenestrograndon"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 1"
|
|
||||||
#~ msgstr "Movi la fenestron al laborspaco 1"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 2"
|
|
||||||
#~ msgstr "Movi la fenestron al laborspaco 2"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 3"
|
|
||||||
#~ msgstr "Movi la fenestron al laborspaco 3"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 4"
|
|
||||||
#~ msgstr "Movi la fenestron al laborspaco 4"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 5"
|
#~ msgid "Move window to workspace 5"
|
||||||
#~ msgstr "Movi la fenestron al laborspaco 5"
|
#~ msgstr "Movi la fenestron al laborspaco 5"
|
||||||
|
|
||||||
@@ -1658,24 +1865,6 @@ msgstr ""
|
|||||||
#~ msgid "Move window to workspace 12"
|
#~ msgid "Move window to workspace 12"
|
||||||
#~ msgstr "Movi la fenestron al laborspaco 12"
|
#~ msgstr "Movi la fenestron al laborspaco 12"
|
||||||
|
|
||||||
#~ msgid "Move window one workspace to the left"
|
|
||||||
#~ msgstr "Movi la fenestron al la maldekstra laborspaco"
|
|
||||||
|
|
||||||
#~ msgid "Move window one workspace to the right"
|
|
||||||
#~ msgstr "Movi la fenestron al la dekstra laborspaco"
|
|
||||||
|
|
||||||
#~ msgid "Move window one workspace up"
|
|
||||||
#~ msgstr "Movi la fenestron al la supra laborspaco"
|
|
||||||
|
|
||||||
#~ msgid "Move window one workspace down"
|
|
||||||
#~ msgstr "Movi la fenestron al la suba laborspaco"
|
|
||||||
|
|
||||||
#~ msgid "Maximize window vertically"
|
|
||||||
#~ msgstr "Vertikale maksimumigi la fenestron"
|
|
||||||
|
|
||||||
#~ msgid "Maximize window horizontally"
|
|
||||||
#~ msgstr "Horizontale maksimumigi la fenestron"
|
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "There was an error running <tt>%s</tt>:\n"
|
#~ "There was an error running <tt>%s</tt>:\n"
|
||||||
#~ "\n"
|
#~ "\n"
|
||||||
|
220
po/et.po
220
po/et.po
@@ -7,15 +7,15 @@
|
|||||||
#
|
#
|
||||||
# Tõivo Leedjärv <toivo linux ee>, 2004.
|
# Tõivo Leedjärv <toivo linux ee>, 2004.
|
||||||
# Ivar Smolin <okul linux ee>, 2005, 2006, 2009–2011.
|
# Ivar Smolin <okul linux ee>, 2005, 2006, 2009–2011.
|
||||||
# Mattias Põldaru <mahfiaz@gmail.com>, 2008–2011, 2012.
|
# Mattias Põldaru <mahfiaz@gmail.com>, 2008–2011, 2012, 2013.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: mutter MASTER\n"
|
"Project-Id-Version: mutter MASTER\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
||||||
"product=mutter&keywords=I18N+L10N&component=general\n"
|
"product=mutter&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2012-03-11 22:19+0000\n"
|
"POT-Creation-Date: 2013-03-12 18:53+0000\n"
|
||||||
"PO-Revision-Date: 2012-03-12 00:47+0200\n"
|
"PO-Revision-Date: 2013-03-12 20:55+0300\n"
|
||||||
"Last-Translator: Mattias Põldaru <mahfiaz@gmail.com>\n"
|
"Last-Translator: Mattias Põldaru <mahfiaz@gmail.com>\n"
|
||||||
"Language-Team: Estonian <>\n"
|
"Language-Team: Estonian <>\n"
|
||||||
"Language: et\n"
|
"Language: et\n"
|
||||||
@@ -24,9 +24,141 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
|
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
|
||||||
|
|
||||||
|
msgid "Navigation"
|
||||||
|
msgstr "Navigeerimine"
|
||||||
|
|
||||||
|
msgid "Move window to workspace 1"
|
||||||
|
msgstr "Akna liigutamine 1. tööalale"
|
||||||
|
|
||||||
|
msgid "Move window to workspace 2"
|
||||||
|
msgstr "Akna liigutamine 2. tööalale"
|
||||||
|
|
||||||
|
msgid "Move window to workspace 3"
|
||||||
|
msgstr "Akna liigutamine 3. tööalale"
|
||||||
|
|
||||||
|
msgid "Move window to workspace 4"
|
||||||
|
msgstr "Akna liigutamine 4. tööalale"
|
||||||
|
|
||||||
|
msgid "Move window one workspace to the left"
|
||||||
|
msgstr "Akna tõstmine vasakpoolsele tööalale"
|
||||||
|
|
||||||
|
msgid "Move window one workspace to the right"
|
||||||
|
msgstr "Akna tõstmine parempoolsele tööalale"
|
||||||
|
|
||||||
|
msgid "Move window one workspace up"
|
||||||
|
msgstr "Akna tõstmine ülemisele tööalale"
|
||||||
|
|
||||||
|
msgid "Move window one workspace down"
|
||||||
|
msgstr "Akna tõstmine alumisele tööalale"
|
||||||
|
|
||||||
|
msgid "Switch applications"
|
||||||
|
msgstr "Rakenduste vahetamine"
|
||||||
|
|
||||||
|
msgid "Switch windows"
|
||||||
|
msgstr "Akende vahetamine"
|
||||||
|
|
||||||
|
msgid "Switch windows of an application"
|
||||||
|
msgstr "Rakenduse akende vahetamine"
|
||||||
|
|
||||||
|
msgid "Switch system controls"
|
||||||
|
msgstr "Süsteemi juhtalade vahetamine"
|
||||||
|
|
||||||
|
msgid "Switch windows directly"
|
||||||
|
msgstr "Akende kohene vahetamine"
|
||||||
|
|
||||||
|
msgid "Switch windows of an app directly"
|
||||||
|
msgstr "Rakenduse akende kohene vahetamine"
|
||||||
|
|
||||||
|
msgid "Switch system controls directly"
|
||||||
|
msgstr "Süsteemi juhtalade kohene vahetamine"
|
||||||
|
|
||||||
|
msgid "Hide all normal windows"
|
||||||
|
msgstr "Kõigi tavaliste akende peitmine"
|
||||||
|
|
||||||
|
msgid "Switch to workspace 1"
|
||||||
|
msgstr "1. tööalale liikumine"
|
||||||
|
|
||||||
|
msgid "Switch to workspace 2"
|
||||||
|
msgstr "2. tööalale liikumine"
|
||||||
|
|
||||||
|
msgid "Switch to workspace 3"
|
||||||
|
msgstr "3. tööalale liikumine"
|
||||||
|
|
||||||
|
msgid "Switch to workspace 4"
|
||||||
|
msgstr "4. tööalale liikumine"
|
||||||
|
|
||||||
|
msgid "Move to workspace left"
|
||||||
|
msgstr "Vasakpoolsele tööalale liikumine"
|
||||||
|
|
||||||
|
msgid "Move to workspace right"
|
||||||
|
msgstr "Parempoolsele tööalale liikumine"
|
||||||
|
|
||||||
|
msgid "Move to workspace above"
|
||||||
|
msgstr "Ülemisele tööalale liikumine"
|
||||||
|
|
||||||
|
msgid "Move to workspace below"
|
||||||
|
msgstr "Alumisele tööalale liikumine"
|
||||||
|
|
||||||
|
msgid "System"
|
||||||
|
msgstr "Süsteem"
|
||||||
|
|
||||||
|
msgid "Show the run command prompt"
|
||||||
|
msgstr "Käsuviiba kuvamine"
|
||||||
|
|
||||||
|
msgid "Show the activities overview"
|
||||||
|
msgstr "Tegevuste ülevaate avamine"
|
||||||
|
|
||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "Aknad"
|
msgstr "Aknad"
|
||||||
|
|
||||||
|
msgid "Activate the window menu"
|
||||||
|
msgstr "Aknamenüü avamine"
|
||||||
|
|
||||||
|
msgid "Toggle fullscreen mode"
|
||||||
|
msgstr "Täisekraanoleku vahetamine"
|
||||||
|
|
||||||
|
msgid "Toggle maximization state"
|
||||||
|
msgstr "Maksimeeritud oleku vahetamine"
|
||||||
|
|
||||||
|
msgid "Maximize window"
|
||||||
|
msgstr "Akna maksimeerimine"
|
||||||
|
|
||||||
|
msgid "Restore window"
|
||||||
|
msgstr "Akna taastamine"
|
||||||
|
|
||||||
|
msgid "Toggle shaded state"
|
||||||
|
msgstr "Varjatud oleku vahetamine"
|
||||||
|
|
||||||
|
msgid "Close window"
|
||||||
|
msgstr "Akna sulgemine"
|
||||||
|
|
||||||
|
msgid "Hide window"
|
||||||
|
msgstr "Peida aken"
|
||||||
|
|
||||||
|
msgid "Move window"
|
||||||
|
msgstr "Akna liigutamine"
|
||||||
|
|
||||||
|
msgid "Resize window"
|
||||||
|
msgstr "Akna suuruse muutmine"
|
||||||
|
|
||||||
|
msgid "Toggle window on all workspaces or one"
|
||||||
|
msgstr "Akna kõigil või ühel tööalal olemise vahetamine"
|
||||||
|
|
||||||
|
msgid "Raise window if covered, otherwise lower it"
|
||||||
|
msgstr "Akna tõstmine, kui see on kaetud, muul juhul langetamine"
|
||||||
|
|
||||||
|
msgid "Raise window above other windows"
|
||||||
|
msgstr "Akna tõstmine teiste kohale"
|
||||||
|
|
||||||
|
msgid "Lower window below other windows"
|
||||||
|
msgstr "Akna langetamine teiste taha"
|
||||||
|
|
||||||
|
msgid "Maximize window vertically"
|
||||||
|
msgstr "Akna vertikaalne maksimeerimine"
|
||||||
|
|
||||||
|
msgid "Maximize window horizontally"
|
||||||
|
msgstr "Akna horisontaalne maksimeerimine"
|
||||||
|
|
||||||
msgid "View split on left"
|
msgid "View split on left"
|
||||||
msgstr "Vaade poolitatakse vasakult"
|
msgstr "Vaade poolitatakse vasakult"
|
||||||
|
|
||||||
@@ -41,6 +173,9 @@ msgid ""
|
|||||||
"\"."
|
"\"."
|
||||||
msgstr "Teine komposiithaldur juba töötab ekraani %i kuval \"%s\"."
|
msgstr "Teine komposiithaldur juba töötab ekraani %i kuval \"%s\"."
|
||||||
|
|
||||||
|
msgid "background texture could not be created from file"
|
||||||
|
msgstr "failist polnud võimalik taustatekstuuri luua"
|
||||||
|
|
||||||
msgid "Bell event"
|
msgid "Bell event"
|
||||||
msgstr "Helina sündmus"
|
msgstr "Helina sündmus"
|
||||||
|
|
||||||
@@ -49,8 +184,8 @@ msgid "Unknown window information request: %d"
|
|||||||
msgstr "Tundmatu aknateabe päring: %d"
|
msgstr "Tundmatu aknateabe päring: %d"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "<tt>%s</tt> is not responding."
|
msgid "“%s” is not responding."
|
||||||
msgstr "<tt>%s</tt> ei vasta."
|
msgstr "„%s” ei vasta."
|
||||||
|
|
||||||
msgid "Application is not responding."
|
msgid "Application is not responding."
|
||||||
msgstr "Rakendus ei vasta."
|
msgstr "Rakendus ei vasta."
|
||||||
@@ -82,6 +217,10 @@ msgstr ""
|
|||||||
"Mõni teine programm juba kasutab klahvi %s koos muuteklahvidega %x "
|
"Mõni teine programm juba kasutab klahvi %s koos muuteklahvidega %x "
|
||||||
"kiirklahvina\n"
|
"kiirklahvina\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "\"%s\" is not a valid accelerator\n"
|
||||||
|
msgstr "\"%s\" pole sobiv kiirklahv\n"
|
||||||
|
|
||||||
msgid "Disable connection to session manager"
|
msgid "Disable connection to session manager"
|
||||||
msgstr "Seansihalduriga ühendumise keelamine"
|
msgstr "Seansihalduriga ühendumise keelamine"
|
||||||
|
|
||||||
@@ -128,8 +267,8 @@ msgstr ""
|
|||||||
msgid "Print version"
|
msgid "Print version"
|
||||||
msgstr "Versiooni printimine"
|
msgstr "Versiooni printimine"
|
||||||
|
|
||||||
msgid "Comma-separated list of compositor plugins"
|
msgid "Mutter plugin to use"
|
||||||
msgstr "Komaga eraldatud nimekiri komposiitmontaaži pluginatest"
|
msgstr "Millist Mutteri pluginat kasutada"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Workarounds for broken applications disabled. Some applications may not "
|
"Workarounds for broken applications disabled. Some applications may not "
|
||||||
@@ -353,16 +492,6 @@ msgstr ""
|
|||||||
"Kui märgitud, siis eraldi tiitliribade asemel on moodaalsed dialoogid "
|
"Kui märgitud, siis eraldi tiitliribade asemel on moodaalsed dialoogid "
|
||||||
"emaakna tiitliribade küljes ning liiguvad koos emaaknaga."
|
"emaakna tiitliribade küljes ning liiguvad koos emaaknaga."
|
||||||
|
|
||||||
msgid "Live Hidden Windows"
|
|
||||||
msgstr "Varjatud akende aktiivsus"
|
|
||||||
|
|
||||||
msgid ""
|
|
||||||
"Determines whether hidden windows (i.e., minimized windows and windows on "
|
|
||||||
"other workspaces than the current one) should be kept alive."
|
|
||||||
msgstr ""
|
|
||||||
"Määrab, kas varjatud aknaid (nt minimeeritud ja teistel tööaladel aknad) "
|
|
||||||
"hoitakse elus."
|
|
||||||
|
|
||||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||||
msgstr "Akna ümberpaigutamine selle lohistamisel ekraani serva"
|
msgstr "Akna ümberpaigutamine selle lohistamisel ekraani serva"
|
||||||
|
|
||||||
@@ -406,6 +535,17 @@ msgstr ""
|
|||||||
"Kui märgitud, siis on hüpikaken ja esiletõstmise raam keelatud akende "
|
"Kui märgitud, siis on hüpikaken ja esiletõstmise raam keelatud akende "
|
||||||
"vahetamisel."
|
"vahetamisel."
|
||||||
|
|
||||||
|
msgid "Delay focus changes until the pointer stops moving"
|
||||||
|
msgstr "Fookusemuutused lükatakse edasi kuni kursor peatub"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
|
||||||
|
"the focus will not be changed immediately when entering a window, but only "
|
||||||
|
"after the pointer stops moving."
|
||||||
|
msgstr ""
|
||||||
|
"Kui tõene ning fookusrežiim on kas \"sloppy\" või \"mouse\", siis fookust ei "
|
||||||
|
"vahetata kohe, kui kursor aknale liigub, vaid alles pärast kursori peatumist."
|
||||||
|
|
||||||
msgid "Draggable border width"
|
msgid "Draggable border width"
|
||||||
msgstr "Lohistatava äärise laius."
|
msgstr "Lohistatava äärise laius."
|
||||||
|
|
||||||
@@ -416,6 +556,16 @@ msgstr ""
|
|||||||
"Lohistatava äärise laius. Kui kujunduse nähtavatest ääristest ei piisa, "
|
"Lohistatava äärise laius. Kui kujunduse nähtavatest ääristest ei piisa, "
|
||||||
"lisatakse puuduoleva osa jaoks nähtamatu ääris."
|
"lisatakse puuduoleva osa jaoks nähtamatu ääris."
|
||||||
|
|
||||||
|
msgid "Auto maximize nearly monitor sized windows"
|
||||||
|
msgstr "Peaaegu monitori suurused ekraanid maksimeeritakse automaatselt"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"If enabled, new windows that are initially the size of the monitor "
|
||||||
|
"automatically get maximized."
|
||||||
|
msgstr ""
|
||||||
|
"Kui lubatud, maksimeeritakse automaatselt aknad, mis on avanedes monitori "
|
||||||
|
"suurused."
|
||||||
|
|
||||||
msgid "Select window from tab popup"
|
msgid "Select window from tab popup"
|
||||||
msgstr "Akna valimine tabulaatori hüpikaknalt"
|
msgstr "Akna valimine tabulaatori hüpikaknalt"
|
||||||
|
|
||||||
@@ -426,39 +576,6 @@ msgstr "Tabulaatori hüpikakna katkestamine"
|
|||||||
msgid "Usage: %s\n"
|
msgid "Usage: %s\n"
|
||||||
msgstr "Kasutamine: %s\n"
|
msgstr "Kasutamine: %s\n"
|
||||||
|
|
||||||
msgid "Close Window"
|
|
||||||
msgstr "Sulge aken"
|
|
||||||
|
|
||||||
msgid "Window Menu"
|
|
||||||
msgstr "Aknamenüü"
|
|
||||||
|
|
||||||
msgid "Minimize Window"
|
|
||||||
msgstr "Akna minimeerimine"
|
|
||||||
|
|
||||||
msgid "Maximize Window"
|
|
||||||
msgstr "Akna maksimeerimine"
|
|
||||||
|
|
||||||
msgid "Restore Window"
|
|
||||||
msgstr "Akna taastamine"
|
|
||||||
|
|
||||||
msgid "Roll Up Window"
|
|
||||||
msgstr "Akna kokkukerimine"
|
|
||||||
|
|
||||||
msgid "Unroll Window"
|
|
||||||
msgstr "Akna lahtikerimine"
|
|
||||||
|
|
||||||
msgid "Keep Window On Top"
|
|
||||||
msgstr "Akna kõige pealmiseks määramine"
|
|
||||||
|
|
||||||
msgid "Remove Window From Top"
|
|
||||||
msgstr "Eemalda aken kõige pealmise kohalt"
|
|
||||||
|
|
||||||
msgid "Always On Visible Workspace"
|
|
||||||
msgstr "Alati nähtaval tööalal"
|
|
||||||
|
|
||||||
msgid "Put Window On Only One Workspace"
|
|
||||||
msgstr "Tõsta aken ainult ühele tööalale"
|
|
||||||
|
|
||||||
#. Translators: Translate this string the same way as you do in libwnck!
|
#. Translators: Translate this string the same way as you do in libwnck!
|
||||||
msgid "Mi_nimize"
|
msgid "Mi_nimize"
|
||||||
msgstr "_Minimeeri"
|
msgstr "_Minimeeri"
|
||||||
@@ -1317,3 +1434,6 @@ msgstr "y väärtus oli %d, oodati väärtust %d"
|
|||||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%d koordinaatide avaldis töödeldi %g sekundiga (keskmine %g sekundit)\n"
|
"%d koordinaatide avaldis töödeldi %g sekundiga (keskmine %g sekundit)\n"
|
||||||
|
|
||||||
|
#~ msgid "Minimize window"
|
||||||
|
#~ msgstr "Akna minimeerimine"
|
||||||
|
360
po/fa.po
360
po/fa.po
@@ -20,8 +20,7 @@ msgstr ""
|
|||||||
"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n"
|
"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n"
|
||||||
"X-Poedit-SourceCharset: utf-8\n"
|
"X-Poedit-SourceCharset: utf-8\n"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:1
|
#: ../src/50-mutter-windows.xml.in.h:1 ../src/50-mutter-windows.xml.in.h:17
|
||||||
#| msgid "/_Windows"
|
|
||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "پنجرهها"
|
msgstr "پنجرهها"
|
||||||
|
|
||||||
@@ -1486,6 +1485,291 @@ msgstr "مقدار y %Id بود، %Id انتظار میرفت"
|
|||||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||||
msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (متوسط %Ig ثانیه)\n"
|
msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (متوسط %Ig ثانیه)\n"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:2
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Close window"
|
||||||
|
msgstr "بستن پنجره"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:3
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Lower window below other windows"
|
||||||
|
msgstr "پایین بردن پنجره زیر پنجرههای دیگر"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:4
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Maximize window"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"حداکثر کردن پنجره\n"
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"بیشینه کردن پنجره"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:5
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Maximize window horizontally"
|
||||||
|
msgstr "حداکثر کردن افقی پنجره"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:6
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Maximize window vertically"
|
||||||
|
msgstr "حداکثر کردن عمودی پنجره"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:7
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Minimize window"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"حداقل کردن پنجره\n"
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"کمینه کردن پنجره"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:8
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window"
|
||||||
|
msgstr "جابهجایی پنجره"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:6
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window one workspace down"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"جابهجایی پنجره به فضای کاری پایینی\n"
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"جابهجایی پنجره به فضایکاری پایینی"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:7
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window one workspace to the left"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"جابهجایی پنجره به فضای کاری چپ \n"
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"جابهجایی پنجره به فضایکاری چپ "
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:8
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window one workspace to the right"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"جابهجایی پنجره به فضای کاری راست\n"
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"جابهجایی پنجره به فضایکاری راست"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:9
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window one workspace up"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"جابهجایی پنجره به فضای کاری بالایی\n"
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"جابهجایی پنجره به فضایکاری بالایی"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:10
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window to workspace 1"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"جابهجایی پنجره به فضای کاری ۱\n"
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"جابهجایی پنجره به فضایکاری ۱"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:11
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window to workspace 2"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"جابهجایی پنجره به فضای کاری ۲\n"
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"جابهجایی پنجره به فضایکاری ۲"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:12
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window to workspace 3"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"نقلمکان پنجره به فضای کاری ۳\n"
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"جابهجایی پنجره به فضایکاری ۳"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:13
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window to workspace 4"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"جابهجایی پنجره به فضای کاری ۴\n"
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"جابهجایی پنجره به فضایکاری ۴"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:9
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Raise window above other windows"
|
||||||
|
msgstr "پیش آوردن پنجره روی همهی پنجرهها"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:11
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Resize window"
|
||||||
|
msgstr "تغییر اندازهی پنجره"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:18
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to workspace 1"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"تعویض به فضای کاری ۱\n"
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"رفتن به فضایکاری ۱"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:19
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to workspace 2"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"تعویض به فضای کاری ۲\n"
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"رفتن به فضایکاری ۲"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:20
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to workspace 3"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"تعویض به فضای کاری ۳\n"
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"رفتن به فضایکاری ۳"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:21
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch to workspace 4"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"تعویض به فضای کاری ۴\n"
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"رفتن به فضایکاری ۴"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:13
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Toggle fullscreen mode"
|
||||||
|
msgstr "ضامن حالت تمام صفحه"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:14
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Toggle maximization state"
|
||||||
|
msgstr ""
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"ضامن همیشه در وضیعت حداکثر\n"
|
||||||
|
"#-#-#-#-# fa.po (metacity HEAD) #-#-#-#-#\n"
|
||||||
|
"ضامن همیشه در وضعیت حداکثر"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:15
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Toggle shaded state"
|
||||||
|
msgstr "ضامن وضعیت سایه خورده"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:1
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Hide all normal windows and set focus to the desktop"
|
||||||
|
msgid "Hide all normal windows"
|
||||||
|
msgstr "مخفی کردن همهی پنجرههای معمول"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:2
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Move to Workspace _Left"
|
||||||
|
msgid "Move to workspace above"
|
||||||
|
msgstr "جابهجایی به فضایکاری _چپ"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:3
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Move to Workspace _Down"
|
||||||
|
msgid "Move to workspace below"
|
||||||
|
msgstr "جابهجایی به فضایکاری پایین"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:4
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Move to Workspace _Left"
|
||||||
|
msgid "Move to workspace left"
|
||||||
|
msgstr "جابهجایی به فضایکاری سمت چپ"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:5
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Move to Workspace R_ight"
|
||||||
|
msgid "Move to workspace right"
|
||||||
|
msgstr "جابهجایی به فضایکاری سمت راست"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:14
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Navigation"
|
||||||
|
msgstr "جابهجایی"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:15
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch applications"
|
||||||
|
msgstr "تعویض برنامهها"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:16
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch system controls"
|
||||||
|
msgstr "تعویض کنترلهای سیستم"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:17
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch system controls directly"
|
||||||
|
msgstr "تعویض مستقیمِ کنترلهای سیستم"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:22
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch windows directly"
|
||||||
|
msgstr "تعویض مستیقیم پنجرهها"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:23
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Move between windows of an application immediately"
|
||||||
|
msgid "Switch windows of an app directly"
|
||||||
|
msgstr "تعویض مستقیمِ پنجرههای یک برنامه"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:24
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Move between windows of an application immediately"
|
||||||
|
msgid "Switch windows of an application"
|
||||||
|
msgstr "تعویض پنجرههای یک برنامه"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-system.xml.in.h:1
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Show the activities overview"
|
||||||
|
msgstr "نمایش نمایکلی فعالیتها"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-system.xml.in.h:2
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Show the panel's main menu"
|
||||||
|
msgid "Show the run command prompt"
|
||||||
|
msgstr "نمایش خط فرمان اجرا"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-system.xml.in.h:3
|
||||||
|
#, fuzzy
|
||||||
|
msgid "System"
|
||||||
|
msgstr "سیستم"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:1
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Activate the window menu"
|
||||||
|
msgstr "فعال کردن منوی پنجره"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:10
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Raise window if it's covered by another window, otherwise lower it"
|
||||||
|
msgid "Raise window if covered, otherwise lower it"
|
||||||
|
msgstr "بالا آوردن پنجره در صورتی که پوشیده شده است، در غیر اینصورت پایین برود"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:12
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Restore window"
|
||||||
|
msgstr "بازگرداندن پنجره"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:16
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Toggle whether window is on all workspaces or just one"
|
||||||
|
msgid "Toggle window on all workspaces or one"
|
||||||
|
msgstr "تغییر حالت پنجره در یک یا تمام فضاهایکاری"
|
||||||
|
|
||||||
#~ msgid "Failed to parse message \"%s\" from dialog process\n"
|
#~ msgid "Failed to parse message \"%s\" from dialog process\n"
|
||||||
#~ msgstr "شکست در تجزیه پیغام «%s» از پردازش محاوره\n"
|
#~ msgstr "شکست در تجزیه پیغام «%s» از پردازش محاوره\n"
|
||||||
|
|
||||||
@@ -1622,9 +1906,6 @@ msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (مت
|
|||||||
#~ "(کلیک راست) میشود. تغییردهنده به صورت مثلاً«<Alt>» یا «<Super>» "
|
#~ "(کلیک راست) میشود. تغییردهنده به صورت مثلاً«<Alt>» یا «<Super>» "
|
||||||
#~ "نمایش داده میشود."
|
#~ "نمایش داده میشود."
|
||||||
|
|
||||||
#~ msgid "Close window"
|
|
||||||
#~ msgstr "بستن پنجره"
|
|
||||||
|
|
||||||
#~ msgid "Commands to run in response to keybindings"
|
#~ msgid "Commands to run in response to keybindings"
|
||||||
#~ msgstr "فرمانهایی که در پاسخ به کلیدهای مقید اجرا میشوند"
|
#~ msgstr "فرمانهایی که در پاسخ به کلیدهای مقید اجرا میشوند"
|
||||||
|
|
||||||
@@ -1703,21 +1984,6 @@ msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (مت
|
|||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "اگر درست بود از قابلیت کاربری در قبال استفادهی کمتر از منابع صرف نظر شود"
|
#~ "اگر درست بود از قابلیت کاربری در قبال استفادهی کمتر از منابع صرف نظر شود"
|
||||||
|
|
||||||
#~ msgid "Lower window below other windows"
|
|
||||||
#~ msgstr "پایین بردن پنجره زیر پنجرههای دیگر"
|
|
||||||
|
|
||||||
#~ msgid "Maximize window"
|
|
||||||
#~ msgstr "حداکثر کردن پنجره"
|
|
||||||
|
|
||||||
#~ msgid "Maximize window horizontally"
|
|
||||||
#~ msgstr "حداکثر کردن افقی پنجره"
|
|
||||||
|
|
||||||
#~ msgid "Maximize window vertically"
|
|
||||||
#~ msgstr "حداکثر کردن عمودی پنجره"
|
|
||||||
|
|
||||||
#~ msgid "Minimize window"
|
|
||||||
#~ msgstr "حداقل کردن پنجره"
|
|
||||||
|
|
||||||
#~ msgid "Move backward between panels and the desktop immediately"
|
#~ msgid "Move backward between panels and the desktop immediately"
|
||||||
#~ msgstr "جابهجایی آنی به عقب بین تابلو و رومیزی"
|
#~ msgstr "جابهجایی آنی به عقب بین تابلو و رومیزی"
|
||||||
|
|
||||||
@@ -1739,24 +2005,6 @@ msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (مت
|
|||||||
#~ msgid "Move focus backwards between windows using popup display"
|
#~ msgid "Move focus backwards between windows using popup display"
|
||||||
#~ msgstr "انتقال تمرکز به عقب بین پنجرهها با نمایش واشو"
|
#~ msgstr "انتقال تمرکز به عقب بین پنجرهها با نمایش واشو"
|
||||||
|
|
||||||
#~ msgid "Move window"
|
|
||||||
#~ msgstr "جابهجایی پنجره"
|
|
||||||
|
|
||||||
#~ msgid "Move window one workspace down"
|
|
||||||
#~ msgstr "جابهجایی پنجره به فضای کاری پایینی"
|
|
||||||
|
|
||||||
#~ msgid "Move window one workspace to the left"
|
|
||||||
#~ msgstr "جابهجایی پنجره به فضای کاری چپ "
|
|
||||||
|
|
||||||
#~ msgid "Move window one workspace to the right"
|
|
||||||
#~ msgstr "جابهجایی پنجره به فضای کاری راست"
|
|
||||||
|
|
||||||
#~ msgid "Move window one workspace up"
|
|
||||||
#~ msgstr "جابهجایی پنجره به فضای کاری بالایی"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 1"
|
|
||||||
#~ msgstr "جابهجایی پنجره به فضای کاری ۱"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 10"
|
#~ msgid "Move window to workspace 10"
|
||||||
#~ msgstr "جابهجایی پنجره به فضای کاری ۱۰"
|
#~ msgstr "جابهجایی پنجره به فضای کاری ۱۰"
|
||||||
|
|
||||||
@@ -1766,15 +2014,6 @@ msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (مت
|
|||||||
#~ msgid "Move window to workspace 12"
|
#~ msgid "Move window to workspace 12"
|
||||||
#~ msgstr "جابهجایی پنجره به فضای کاری ۱۲"
|
#~ msgstr "جابهجایی پنجره به فضای کاری ۱۲"
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 2"
|
|
||||||
#~ msgstr "جابهجایی پنجره به فضای کاری ۲"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 3"
|
|
||||||
#~ msgstr "نقلمکان پنجره به فضای کاری ۳"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 4"
|
|
||||||
#~ msgstr "جابهجایی پنجره به فضای کاری ۴"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 5"
|
#~ msgid "Move window to workspace 5"
|
||||||
#~ msgstr "جابهجایی پنجره به فضای کاری ۵"
|
#~ msgstr "جابهجایی پنجره به فضای کاری ۵"
|
||||||
|
|
||||||
@@ -1804,12 +2043,6 @@ msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (مت
|
|||||||
#~ "تعداد فضاهای کاری. باید بیش از صفر باشد و حداکثر مشخصی دارد (برای این که "
|
#~ "تعداد فضاهای کاری. باید بیش از صفر باشد و حداکثر مشخصی دارد (برای این که "
|
||||||
#~ "اتفاقی رومیزیتان را با درخواست ۳۴ میلیون فضای کاری از بین نبرید)."
|
#~ "اتفاقی رومیزیتان را با درخواست ۳۴ میلیون فضای کاری از بین نبرید)."
|
||||||
|
|
||||||
#~ msgid "Raise window above other windows"
|
|
||||||
#~ msgstr "پیش آوردن پنجره روی همهی پنجرهها"
|
|
||||||
|
|
||||||
#~ msgid "Resize window"
|
|
||||||
#~ msgstr "تغییر اندازهی پنجره"
|
|
||||||
|
|
||||||
#~ msgid "Run a defined command"
|
#~ msgid "Run a defined command"
|
||||||
#~ msgstr "اجرای یک فرمان تعریف شده"
|
#~ msgstr "اجرای یک فرمان تعریف شده"
|
||||||
|
|
||||||
@@ -1850,9 +2083,6 @@ msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (مت
|
|||||||
#~ "بعضی از دور زدنها دورزدن کمبودهای خود قواعد جزئی هستند، بنابراین بعضی "
|
#~ "بعضی از دور زدنها دورزدن کمبودهای خود قواعد جزئی هستند، بنابراین بعضی "
|
||||||
#~ "وقتها اشکال در حالت دور زدن بدون دستکاری قواعد قبل رفع نیست."
|
#~ "وقتها اشکال در حالت دور زدن بدون دستکاری قواعد قبل رفع نیست."
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 1"
|
|
||||||
#~ msgstr "تعویض به فضای کاری ۱"
|
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 10"
|
#~ msgid "Switch to workspace 10"
|
||||||
#~ msgstr "تعویض به فضای کاری ۱۰"
|
#~ msgstr "تعویض به فضای کاری ۱۰"
|
||||||
|
|
||||||
@@ -1862,15 +2092,6 @@ msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (مت
|
|||||||
#~ msgid "Switch to workspace 12"
|
#~ msgid "Switch to workspace 12"
|
||||||
#~ msgstr "تعویض به فضای کاری ۱۲"
|
#~ msgstr "تعویض به فضای کاری ۱۲"
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 2"
|
|
||||||
#~ msgstr "تعویض به فضای کاری ۲"
|
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 3"
|
|
||||||
#~ msgstr "تعویض به فضای کاری ۳"
|
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 4"
|
|
||||||
#~ msgstr "تعویض به فضای کاری ۴"
|
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 5"
|
#~ msgid "Switch to workspace 5"
|
||||||
#~ msgstr "تعویض به فضای کاری ۵"
|
#~ msgstr "تعویض به فضای کاری ۵"
|
||||||
|
|
||||||
@@ -2925,15 +3146,6 @@ msgstr "%Id عبارت مختصاتی در %Ig ثانیه تجزیه شد (مت
|
|||||||
#~ msgid "Toggle always on top state"
|
#~ msgid "Toggle always on top state"
|
||||||
#~ msgstr "ضامن همیشه در وضعیت بالایی"
|
#~ msgstr "ضامن همیشه در وضعیت بالایی"
|
||||||
|
|
||||||
#~ msgid "Toggle fullscreen mode"
|
|
||||||
#~ msgstr "ضامن حالت تمام صفحه"
|
|
||||||
|
|
||||||
#~ msgid "Toggle maximization state"
|
|
||||||
#~ msgstr "ضامن همیشه در وضیعت حداکثر"
|
|
||||||
|
|
||||||
#~ msgid "Toggle shaded state"
|
|
||||||
#~ msgstr "ضامن وضعیت سایه خورده"
|
|
||||||
|
|
||||||
#~ msgid "Toggle window on all workspaces"
|
#~ msgid "Toggle window on all workspaces"
|
||||||
#~ msgstr "ضامن پنجره در تمام فضاهای کاری"
|
#~ msgstr "ضامن پنجره در تمام فضاهای کاری"
|
||||||
|
|
||||||
|
287
po/nl.po
287
po/nl.po
@@ -21,7 +21,7 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:1
|
#: ../src/50-mutter-windows.xml.in.h:1 ../src/50-mutter-windows.xml.in.h:17
|
||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "Vensters"
|
msgstr "Vensters"
|
||||||
|
|
||||||
@@ -1589,17 +1589,220 @@ msgstr ""
|
|||||||
"%d coördinatenexpressies verwerkt in %g seconden (gemiddelde van %g "
|
"%d coördinatenexpressies verwerkt in %g seconden (gemiddelde van %g "
|
||||||
"seconden)\n"
|
"seconden)\n"
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 1"
|
#: ../src/50-mutter-navigation.xml.in.h:18
|
||||||
#~ msgstr "Schakelen naar werkblad 1"
|
#, fuzzy
|
||||||
|
msgid "Switch to workspace 1"
|
||||||
|
msgstr "Schakelen naar werkblad 1"
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 2"
|
#: ../src/50-mutter-navigation.xml.in.h:19
|
||||||
#~ msgstr "Schakelen naar werkblad 2"
|
#, fuzzy
|
||||||
|
msgid "Switch to workspace 2"
|
||||||
|
msgstr "Schakelen naar werkblad 2"
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 3"
|
#: ../src/50-mutter-navigation.xml.in.h:20
|
||||||
#~ msgstr "Schakelen naar werkblad 3"
|
#, fuzzy
|
||||||
|
msgid "Switch to workspace 3"
|
||||||
|
msgstr "Schakelen naar werkblad 3"
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 4"
|
#: ../src/50-mutter-navigation.xml.in.h:21
|
||||||
#~ msgstr "Schakelen naar werkblad 4"
|
#, fuzzy
|
||||||
|
msgid "Switch to workspace 4"
|
||||||
|
msgstr "Schakelen naar werkblad 4"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:1
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Activate the window menu"
|
||||||
|
msgstr "Venstermenu activeren"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:13
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Toggle fullscreen mode"
|
||||||
|
msgstr "Volledig scherm-modus omschakelen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:14
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Toggle maximization state"
|
||||||
|
msgstr "Maximalisatie in- of uitschakelen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:4
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Maximize window"
|
||||||
|
msgstr "Venster maximaliseren"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:12
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Restore window"
|
||||||
|
msgstr "Venster herstellen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:15
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Toggle shaded state"
|
||||||
|
msgstr "Oprollen in- of uitschakelen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:7
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Minimize window"
|
||||||
|
msgstr "Venster minimaliseren"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:2
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Close window"
|
||||||
|
msgstr "Venster sluiten"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:8
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window"
|
||||||
|
msgstr "Venster verplaatsen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:11
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Resize window"
|
||||||
|
msgstr "Vensterafmetingen veranderen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:10
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window to workspace 1"
|
||||||
|
msgstr "Venster verplaatsen naar werkblad 1"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:11
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window to workspace 2"
|
||||||
|
msgstr "Venster verplaatsen naar werkblad 2"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:12
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window to workspace 3"
|
||||||
|
msgstr "Venster verplaatsen naar werkblad 3"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:13
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window to workspace 4"
|
||||||
|
msgstr "Venster verplaatsen naar werkblad 4"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:7
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window one workspace to the left"
|
||||||
|
msgstr "Venster één werkblad naar links verplaatsen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:8
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window one workspace to the right"
|
||||||
|
msgstr "Venster één werkblad naar rechts verplaatsen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:9
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window one workspace up"
|
||||||
|
msgstr "Venster één werkblad naar boven verplaatsen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:6
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move window one workspace down"
|
||||||
|
msgstr "Venster één werkblad naar beneden verplaatsen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:9
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Raise window above other windows"
|
||||||
|
msgstr "Venster voor andere vensters brengen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:3
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Lower window below other windows"
|
||||||
|
msgstr "Venster achter andere vensters brengen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:6
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Maximize window vertically"
|
||||||
|
msgstr "Een venster verticaal maximaliseren"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:5
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Maximize window horizontally"
|
||||||
|
msgstr "Een venster horizontaal maximaliseren"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:1
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Hide all normal windows"
|
||||||
|
msgstr "Alle normale vensters verbergen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:2
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move to workspace above"
|
||||||
|
msgstr "Verplaatsen naar werkblad hierboven"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:3
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move to workspace below"
|
||||||
|
msgstr "Verplaatsen naar werkblad hieronder"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:4
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move to workspace left"
|
||||||
|
msgstr "Verplaatsen naar werkblad links"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:5
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Move to workspace right"
|
||||||
|
msgstr "Verplaatsen naar werkblad rechts"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:14
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Navigation"
|
||||||
|
msgstr "Navigatie"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:15
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch applications"
|
||||||
|
msgstr "Tussen toepassingen schakelen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:16
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch system controls"
|
||||||
|
msgstr "Systeemschermen wisselen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:17
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch system controls directly"
|
||||||
|
msgstr "Direct tussen systeemschermen schakelen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:22
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch windows directly"
|
||||||
|
msgstr "Direct tussen vensters schakelen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:23
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch windows of an app directly"
|
||||||
|
msgstr "Direct wisselen van venster binnen een toepassing"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:24
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Switch windows of an application"
|
||||||
|
msgstr "Wisselen van venster binnen een toepassing"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-system.xml.in.h:1
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Show the activities overview"
|
||||||
|
msgstr "Het activiteitenoverzicht tonen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-system.xml.in.h:2
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Show the run command prompt"
|
||||||
|
msgstr "Het opdrachtregelvenster tonen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-system.xml.in.h:3
|
||||||
|
#, fuzzy
|
||||||
|
msgid "System"
|
||||||
|
msgstr "Systeem"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:10
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Raise window if covered, otherwise lower it"
|
||||||
|
msgstr "Deels bedekte vensters naar voren halen of anders naar achter halen"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:16
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Toggle window on all workspaces or one"
|
||||||
|
msgstr "‘Venster is op alle werkbladen zichtbaar’ in- of uitschakelen"
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 5"
|
#~ msgid "Switch to workspace 5"
|
||||||
#~ msgstr "Schakelen naar werkblad 5"
|
#~ msgstr "Schakelen naar werkblad 5"
|
||||||
@@ -1699,54 +1902,12 @@ msgstr ""
|
|||||||
#~ msgid "Run a terminal"
|
#~ msgid "Run a terminal"
|
||||||
#~ msgstr "Een terminal opstarten"
|
#~ msgstr "Een terminal opstarten"
|
||||||
|
|
||||||
#~ msgid "Activate the window menu"
|
|
||||||
#~ msgstr "Venstermenu activeren"
|
|
||||||
|
|
||||||
#~ msgid "Toggle fullscreen mode"
|
|
||||||
#~ msgstr "Volledig scherm-modus omschakelen"
|
|
||||||
|
|
||||||
#~ msgid "Toggle maximization state"
|
|
||||||
#~ msgstr "Maximalisatie in- of uitschakelen"
|
|
||||||
|
|
||||||
#~ msgid "Toggle whether a window will always be visible over other windows"
|
#~ msgid "Toggle whether a window will always be visible over other windows"
|
||||||
#~ msgstr "‘Altijd bovenop’-instelling omschakelen"
|
#~ msgstr "‘Altijd bovenop’-instelling omschakelen"
|
||||||
|
|
||||||
#~ msgid "Maximize window"
|
|
||||||
#~ msgstr "Venster maximaliseren"
|
|
||||||
|
|
||||||
#~ msgid "Restore window"
|
|
||||||
#~ msgstr "Venster herstellen"
|
|
||||||
|
|
||||||
#~ msgid "Toggle shaded state"
|
|
||||||
#~ msgstr "Oprollen in- of uitschakelen"
|
|
||||||
|
|
||||||
#~ msgid "Minimize window"
|
|
||||||
#~ msgstr "Venster minimaliseren"
|
|
||||||
|
|
||||||
#~ msgid "Close window"
|
|
||||||
#~ msgstr "Venster sluiten"
|
|
||||||
|
|
||||||
#~ msgid "Move window"
|
|
||||||
#~ msgstr "Venster verplaatsen"
|
|
||||||
|
|
||||||
#~ msgid "Resize window"
|
|
||||||
#~ msgstr "Vensterafmetingen veranderen"
|
|
||||||
|
|
||||||
#~ msgid "Toggle whether window is on all workspaces or just one"
|
#~ msgid "Toggle whether window is on all workspaces or just one"
|
||||||
#~ msgstr "‘Venster is op alle werkbladen zichtbaar’ omschakelen"
|
#~ msgstr "‘Venster is op alle werkbladen zichtbaar’ omschakelen"
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 1"
|
|
||||||
#~ msgstr "Venster verplaatsen naar werkblad 1"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 2"
|
|
||||||
#~ msgstr "Venster verplaatsen naar werkblad 2"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 3"
|
|
||||||
#~ msgstr "Venster verplaatsen naar werkblad 3"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 4"
|
|
||||||
#~ msgstr "Venster verplaatsen naar werkblad 4"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 5"
|
#~ msgid "Move window to workspace 5"
|
||||||
#~ msgstr "Venster verplaatsen naar werkblad 5"
|
#~ msgstr "Venster verplaatsen naar werkblad 5"
|
||||||
|
|
||||||
@@ -1771,35 +1932,11 @@ msgstr ""
|
|||||||
#~ msgid "Move window to workspace 12"
|
#~ msgid "Move window to workspace 12"
|
||||||
#~ msgstr "Venster verplaatsen naar werkblad 12"
|
#~ msgstr "Venster verplaatsen naar werkblad 12"
|
||||||
|
|
||||||
#~ msgid "Move window one workspace to the left"
|
|
||||||
#~ msgstr "Venster één werkblad naar links verplaatsen"
|
|
||||||
|
|
||||||
#~ msgid "Move window one workspace to the right"
|
|
||||||
#~ msgstr "Venster één werkblad naar rechts verplaatsen"
|
|
||||||
|
|
||||||
#~ msgid "Move window one workspace up"
|
|
||||||
#~ msgstr "Venster één werkblad naar boven verplaatsen"
|
|
||||||
|
|
||||||
#~ msgid "Move window one workspace down"
|
|
||||||
#~ msgstr "Venster één werkblad naar beneden verplaatsen"
|
|
||||||
|
|
||||||
#~ msgid "Raise window if it's covered by another window, otherwise lower it"
|
#~ msgid "Raise window if it's covered by another window, otherwise lower it"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Venster naar boven halen indien overlapt door een ander venster, anders "
|
#~ "Venster naar boven halen indien overlapt door een ander venster, anders "
|
||||||
#~ "naar beneden halen"
|
#~ "naar beneden halen"
|
||||||
|
|
||||||
#~ msgid "Raise window above other windows"
|
|
||||||
#~ msgstr "Venster voor andere vensters brengen"
|
|
||||||
|
|
||||||
#~ msgid "Lower window below other windows"
|
|
||||||
#~ msgstr "Venster achter andere vensters brengen"
|
|
||||||
|
|
||||||
#~ msgid "Maximize window vertically"
|
|
||||||
#~ msgstr "Een venster verticaal maximaliseren"
|
|
||||||
|
|
||||||
#~ msgid "Maximize window horizontally"
|
|
||||||
#~ msgstr "Een venster horizontaal maximaliseren"
|
|
||||||
|
|
||||||
#~ msgid "Move window to north-west (top left) corner"
|
#~ msgid "Move window to north-west (top left) corner"
|
||||||
#~ msgstr "Venster verplaatsen naar de noordwest-hoek (linksboven)"
|
#~ msgstr "Venster verplaatsen naar de noordwest-hoek (linksboven)"
|
||||||
|
|
||||||
|
727
po/pt_BR.po
727
po/pt_BR.po
File diff suppressed because it is too large
Load Diff
27
po/ro.po
27
po/ro.po
@@ -1944,6 +1944,33 @@ msgstr ""
|
|||||||
"Expresiile pentru coordonate %d parsate în %g secunde (o medie de %g "
|
"Expresiile pentru coordonate %d parsate în %g secunde (o medie de %g "
|
||||||
"secunde)\n"
|
"secunde)\n"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-launchers.xml.in.h:1
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Launchers"
|
||||||
|
msgstr "Lansatori"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:1
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Navigation"
|
||||||
|
msgstr "Navigare"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-screenshot.xml.in.h:1
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "Take a screenshot"
|
||||||
|
msgid "Screenshots"
|
||||||
|
msgstr "Capturi de ecran"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-system.xml.in.h:1
|
||||||
|
#, fuzzy
|
||||||
|
msgid "System"
|
||||||
|
msgstr "Sistem"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:1
|
||||||
|
#, fuzzy
|
||||||
|
#| msgid "/_Windows"
|
||||||
|
msgid "Windows"
|
||||||
|
msgstr "Ferestre"
|
||||||
|
|
||||||
#~ msgid "Window Management"
|
#~ msgid "Window Management"
|
||||||
#~ msgstr "Administrare ferestre"
|
#~ msgstr "Administrare ferestre"
|
||||||
|
|
||||||
|
2945
po/sr@latin.po
2945
po/sr@latin.po
File diff suppressed because it is too large
Load Diff
259
po/tr.po
259
po/tr.po
@@ -6,22 +6,22 @@
|
|||||||
# Baris Cicek <baris@teamforce.name.tr>, 2004, 2005, 2008, 2009.
|
# Baris Cicek <baris@teamforce.name.tr>, 2004, 2005, 2008, 2009.
|
||||||
# İlker DAĞLI <ilker@ilkerdagli.info>, 2011.
|
# İlker DAĞLI <ilker@ilkerdagli.info>, 2011.
|
||||||
# Muhammed EKEN <gnome@m-eken.com>, 2011.
|
# Muhammed EKEN <gnome@m-eken.com>, 2011.
|
||||||
# Muhammet Kara <muhammet.k@gmail.com>, 2011, 2012.
|
# Muhammet Kara <muhammetk@acikkaynak.name.tr>, 2011, 2012.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: mutter master\n"
|
"Project-Id-Version: mutter master\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
||||||
"product=mutter&keywords=I18N+L10N&component=general\n"
|
"product=mutter&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2012-03-15 21:29+0000\n"
|
"POT-Creation-Date: 2012-08-06 23:35+0000\n"
|
||||||
"PO-Revision-Date: 2012-03-23 21:56+0000\n"
|
"PO-Revision-Date: 2012-08-09 16:48+0000\n"
|
||||||
"Last-Translator: Muhammet Kara <muhammet.k@gmail.com>\n"
|
"Last-Translator: Muhammet Kara <muhammetk@acikkaynak.name.tr>\n"
|
||||||
"Language-Team: Turkish <gnome-turk@gnome.org>\n"
|
"Language-Team: Turkish <gnome-turk@gnome.org>\n"
|
||||||
|
"Language: tr\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Lokalize 1.2\n"
|
"X-Generator: Lokalize 1.4\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
"Language: tr\n"
|
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:1
|
#: ../src/50-mutter-windows.xml.in.h:1
|
||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
@@ -46,7 +46,7 @@ msgstr ""
|
|||||||
"\"%2$s\" monitöründeki %1$i ekranında zaten başka bir birleştirme yöneticisi "
|
"\"%2$s\" monitöründeki %1$i ekranında zaten başka bir birleştirme yöneticisi "
|
||||||
"çalışıyor."
|
"çalışıyor."
|
||||||
|
|
||||||
#: ../src/core/bell.c:307
|
#: ../src/core/bell.c:320
|
||||||
msgid "Bell event"
|
msgid "Bell event"
|
||||||
msgstr "Etkinlik zili"
|
msgstr "Etkinlik zili"
|
||||||
|
|
||||||
@@ -55,16 +55,17 @@ msgstr "Etkinlik zili"
|
|||||||
msgid "Unknown window information request: %d"
|
msgid "Unknown window information request: %d"
|
||||||
msgstr "Bilinmeyen pencere bilgi isteği: %d"
|
msgstr "Bilinmeyen pencere bilgi isteği: %d"
|
||||||
|
|
||||||
#: ../src/core/delete.c:111
|
|
||||||
#, c-format
|
|
||||||
msgid "<tt>%s</tt> is not responding."
|
|
||||||
msgstr "<tt>%s</tt> cevap vermiyor."
|
|
||||||
|
|
||||||
#: ../src/core/delete.c:114
|
#: ../src/core/delete.c:114
|
||||||
|
#, c-format
|
||||||
|
#| msgid "<tt>%s</tt> is not responding."
|
||||||
|
msgid "%s is not responding."
|
||||||
|
msgstr "%s yanıt vermiyor."
|
||||||
|
|
||||||
|
#: ../src/core/delete.c:118
|
||||||
msgid "Application is not responding."
|
msgid "Application is not responding."
|
||||||
msgstr "Uygulama cevap vermiyor"
|
msgstr "Uygulama cevap vermiyor"
|
||||||
|
|
||||||
#: ../src/core/delete.c:119
|
#: ../src/core/delete.c:123
|
||||||
msgid ""
|
msgid ""
|
||||||
"You may choose to wait a short while for it to continue or force the "
|
"You may choose to wait a short while for it to continue or force the "
|
||||||
"application to quit entirely."
|
"application to quit entirely."
|
||||||
@@ -72,25 +73,25 @@ msgstr ""
|
|||||||
"Uygulamanın devam etmesi için bir müddet bekleyi seçebilirsiniz ya d a "
|
"Uygulamanın devam etmesi için bir müddet bekleyi seçebilirsiniz ya d a "
|
||||||
"uygulamanın tamamen çıkması için onu zorlayabilirsiniz."
|
"uygulamanın tamamen çıkması için onu zorlayabilirsiniz."
|
||||||
|
|
||||||
#: ../src/core/delete.c:126
|
#: ../src/core/delete.c:130
|
||||||
msgid "_Wait"
|
msgid "_Wait"
|
||||||
msgstr "_Bekle"
|
msgstr "_Bekle"
|
||||||
|
|
||||||
#: ../src/core/delete.c:126
|
#: ../src/core/delete.c:130
|
||||||
msgid "_Force Quit"
|
msgid "_Force Quit"
|
||||||
msgstr "_Sonlandır"
|
msgstr "_Sonlandır"
|
||||||
|
|
||||||
#: ../src/core/display.c:387
|
#: ../src/core/display.c:380
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Missing %s extension required for compositing"
|
msgid "Missing %s extension required for compositing"
|
||||||
msgstr "Kompozisyon için gerekli olan %s eklentisi eksik"
|
msgstr "Kompozisyon için gerekli olan %s eklentisi eksik"
|
||||||
|
|
||||||
#: ../src/core/display.c:453
|
#: ../src/core/display.c:446
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open X Window System display '%s'\n"
|
msgid "Failed to open X Window System display '%s'\n"
|
||||||
msgstr "X Pencere Sistemi '%s' ekranı açılamadı\n"
|
msgstr "X Pencere Sistemi '%s' ekranı açılamadı\n"
|
||||||
|
|
||||||
#: ../src/core/keybindings.c:852
|
#: ../src/core/keybindings.c:844
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Some other program is already using the key %s with modifiers %x as a "
|
"Some other program is already using the key %s with modifiers %x as a "
|
||||||
@@ -99,36 +100,36 @@ msgstr ""
|
|||||||
"%s tuşu %x değiştiricileriyle birlikte başka bir uygulama tarafından tuş "
|
"%s tuşu %x değiştiricileriyle birlikte başka bir uygulama tarafından tuş "
|
||||||
"bağıolarak kullanılıyor\n"
|
"bağıolarak kullanılıyor\n"
|
||||||
|
|
||||||
#: ../src/core/main.c:206
|
#: ../src/core/main.c:196
|
||||||
msgid "Disable connection to session manager"
|
msgid "Disable connection to session manager"
|
||||||
msgstr "Ortam yöneticisine olan bağlantıyı kapat"
|
msgstr "Ortam yöneticisine olan bağlantıyı kapat"
|
||||||
|
|
||||||
#: ../src/core/main.c:212
|
#: ../src/core/main.c:202
|
||||||
msgid "Replace the running window manager"
|
msgid "Replace the running window manager"
|
||||||
msgstr "Çalışan pencere yöneticisinin yerini al"
|
msgstr "Çalışan pencere yöneticisinin yerini al"
|
||||||
|
|
||||||
#: ../src/core/main.c:218
|
#: ../src/core/main.c:208
|
||||||
msgid "Specify session management ID"
|
msgid "Specify session management ID"
|
||||||
msgstr "Ortam yönetim ID'sini belirtin"
|
msgstr "Ortam yönetim ID'sini belirtin"
|
||||||
|
|
||||||
#: ../src/core/main.c:223
|
#: ../src/core/main.c:213
|
||||||
msgid "X Display to use"
|
msgid "X Display to use"
|
||||||
msgstr "Kullanılacak X Ekranı"
|
msgstr "Kullanılacak X Ekranı"
|
||||||
|
|
||||||
#: ../src/core/main.c:229
|
#: ../src/core/main.c:219
|
||||||
msgid "Initialize session from savefile"
|
msgid "Initialize session from savefile"
|
||||||
msgstr "Ortamı kayıtlı dosyadan başlat"
|
msgstr "Ortamı kayıtlı dosyadan başlat"
|
||||||
|
|
||||||
#: ../src/core/main.c:235
|
#: ../src/core/main.c:225
|
||||||
msgid "Make X calls synchronous"
|
msgid "Make X calls synchronous"
|
||||||
msgstr "X çağrılarını eşazamanlı yap"
|
msgstr "X çağrılarını eşazamanlı yap"
|
||||||
|
|
||||||
#: ../src/core/main.c:504
|
#: ../src/core/main.c:494
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to scan themes directory: %s\n"
|
msgid "Failed to scan themes directory: %s\n"
|
||||||
msgstr "Tema dizini taranırken hata oluştu: %s\n"
|
msgstr "Tema dizini taranırken hata oluştu: %s\n"
|
||||||
|
|
||||||
#: ../src/core/main.c:520
|
#: ../src/core/main.c:510
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
|
||||||
@@ -155,10 +156,10 @@ msgid "Print version"
|
|||||||
msgstr "Sürümü yazdır"
|
msgstr "Sürümü yazdır"
|
||||||
|
|
||||||
#: ../src/core/mutter.c:60
|
#: ../src/core/mutter.c:60
|
||||||
msgid "Comma-separated list of compositor plugins"
|
msgid "Mutter plugin to use"
|
||||||
msgstr "Kompozisyon eklentilerinin listesi (virgül ile ayrılmış)"
|
msgstr "Kullanılacak Mutter eklentisi"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1077
|
#: ../src/core/prefs.c:1065
|
||||||
msgid ""
|
msgid ""
|
||||||
"Workarounds for broken applications disabled. Some applications may not "
|
"Workarounds for broken applications disabled. Some applications may not "
|
||||||
"behave properly.\n"
|
"behave properly.\n"
|
||||||
@@ -166,13 +167,13 @@ msgstr ""
|
|||||||
"Hatalı uygulamalara yönelik çözümler devre dışı. Bazı uygulamalar düzgün "
|
"Hatalı uygulamalara yönelik çözümler devre dışı. Bazı uygulamalar düzgün "
|
||||||
"işlemeyebilir.\n"
|
"işlemeyebilir.\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1152
|
#: ../src/core/prefs.c:1140
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"\"%s\" yazıtipi tanımlaması, %s GSettings anahtarından ayrıştırılamadı\n"
|
"\"%s\" yazıtipi tanımlaması, %s GSettings anahtarından ayrıştırılamadı\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1218
|
#: ../src/core/prefs.c:1206
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\"%s\" found in configuration database is not a valid value for mouse button "
|
"\"%s\" found in configuration database is not a valid value for mouse button "
|
||||||
@@ -181,7 +182,7 @@ msgstr ""
|
|||||||
"Yapılandırma veritabanında bulunan \"%s\", fare düğme düzenleyicisi olarak "
|
"Yapılandırma veritabanında bulunan \"%s\", fare düğme düzenleyicisi olarak "
|
||||||
"geçerli bir değer değil\n"
|
"geçerli bir değer değil\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1739
|
#: ../src/core/prefs.c:1724
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"\"%s\" found in configuration database is not a valid value for keybinding "
|
"\"%s\" found in configuration database is not a valid value for keybinding "
|
||||||
@@ -190,17 +191,17 @@ msgstr ""
|
|||||||
"Yapılandırma veritabanında bulunan \"%s\", \"%s\" tuş bağı olarak geçerli "
|
"Yapılandırma veritabanında bulunan \"%s\", \"%s\" tuş bağı olarak geçerli "
|
||||||
"bir değer değil\n"
|
"bir değer değil\n"
|
||||||
|
|
||||||
#: ../src/core/prefs.c:1836
|
#: ../src/core/prefs.c:1821
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "Çalışma Alanı %d"
|
msgstr "Çalışma Alanı %d"
|
||||||
|
|
||||||
#: ../src/core/screen.c:730
|
#: ../src/core/screen.c:652
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display '%s' is invalid\n"
|
msgid "Screen %d on display '%s' is invalid\n"
|
||||||
msgstr "'%2$s' X oturumundaki ekran %1$d geçersiz\n"
|
msgstr "'%2$s' X oturumundaki ekran %1$d geçersiz\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:746
|
#: ../src/core/screen.c:668
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
"Screen %d on display \"%s\" already has a window manager; try using the --"
|
||||||
@@ -210,7 +211,7 @@ msgstr ""
|
|||||||
"geçerli pencere yöneticisinin yerine bir başkasını koymak için --replace "
|
"geçerli pencere yöneticisinin yerine bir başkasını koymak için --replace "
|
||||||
"seçeneğini kullanmayı deneyin.\n"
|
"seçeneğini kullanmayı deneyin.\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:773
|
#: ../src/core/screen.c:695
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
"Could not acquire window manager selection on screen %d display \"%s\"\n"
|
||||||
@@ -218,13 +219,13 @@ msgstr ""
|
|||||||
"\"%2$s\" X oturumundaki ekran %1$d hangi pencere yöneticisine "
|
"\"%2$s\" X oturumundaki ekran %1$d hangi pencere yöneticisine "
|
||||||
"sahipöğrenilemedi\n"
|
"sahipöğrenilemedi\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:828
|
#: ../src/core/screen.c:750
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
msgid "Screen %d on display \"%s\" already has a window manager\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"\"%2$s\" X oturumundaki ekran %1$d bir pencere yöneticisine zaten sahip\n"
|
"\"%2$s\" X oturumundaki ekran %1$d bir pencere yöneticisine zaten sahip\n"
|
||||||
|
|
||||||
#: ../src/core/screen.c:1013
|
#: ../src/core/screen.c:935
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not release screen %d on display \"%s\"\n"
|
msgid "Could not release screen %d on display \"%s\"\n"
|
||||||
msgstr "\"%2$s\" X oturumundaki ekran %1$d serberst bırakılamadı\"\n"
|
msgstr "\"%2$s\" X oturumundaki ekran %1$d serberst bırakılamadı\"\n"
|
||||||
@@ -286,44 +287,44 @@ msgstr ""
|
|||||||
"Bu pencereler, "geçerli ayarları kaydet" özelliğini desteklemiyor "
|
"Bu pencereler, "geçerli ayarları kaydet" özelliğini desteklemiyor "
|
||||||
"ve bir dahaki girişinizde elle yeniden başlatmanız gerekecek."
|
"ve bir dahaki girişinizde elle yeniden başlatmanız gerekecek."
|
||||||
|
|
||||||
#: ../src/core/util.c:111
|
#: ../src/core/util.c:80
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to open debug log: %s\n"
|
msgid "Failed to open debug log: %s\n"
|
||||||
msgstr "Hata ayıklama günlüğü açılamadı: %s\n"
|
msgstr "Hata ayıklama günlüğü açılamadı: %s\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:121
|
#: ../src/core/util.c:90
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to fdopen() log file %s: %s\n"
|
msgid "Failed to fdopen() log file %s: %s\n"
|
||||||
msgstr "fdopen() günlük dosyası %s açılamadı: %s\n"
|
msgstr "fdopen() günlük dosyası %s açılamadı: %s\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:127
|
#: ../src/core/util.c:96
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Opened log file %s\n"
|
msgid "Opened log file %s\n"
|
||||||
msgstr "%s günlük dosyası açıldı\n"
|
msgstr "%s günlük dosyası açıldı\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:146 ../src/tools/mutter-message.c:149
|
#: ../src/core/util.c:115 ../src/tools/mutter-message.c:149
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Mutter was compiled without support for verbose mode\n"
|
msgid "Mutter was compiled without support for verbose mode\n"
|
||||||
msgstr "Mutter, ayrıntılı kip desteği olmadan derlenmiş\n"
|
msgstr "Mutter, ayrıntılı kip desteği olmadan derlenmiş\n"
|
||||||
|
|
||||||
#: ../src/core/util.c:290
|
#: ../src/core/util.c:259
|
||||||
msgid "Window manager: "
|
msgid "Window manager: "
|
||||||
msgstr "Pencere yöneticisi: "
|
msgstr "Pencere yöneticisi: "
|
||||||
|
|
||||||
#: ../src/core/util.c:438
|
#: ../src/core/util.c:407
|
||||||
msgid "Bug in window manager: "
|
msgid "Bug in window manager: "
|
||||||
msgstr "Pencere yöneticisinde hata: "
|
msgstr "Pencere yöneticisinde hata: "
|
||||||
|
|
||||||
#: ../src/core/util.c:471
|
#: ../src/core/util.c:438
|
||||||
msgid "Window manager warning: "
|
msgid "Window manager warning: "
|
||||||
msgstr "Pencere yöneticisi uyarısı: "
|
msgstr "Pencere yöneticisi uyarısı: "
|
||||||
|
|
||||||
#: ../src/core/util.c:499
|
#: ../src/core/util.c:466
|
||||||
msgid "Window manager error: "
|
msgid "Window manager error: "
|
||||||
msgstr "Pencere yöneticisi hatası: "
|
msgstr "Pencere yöneticisi hatası: "
|
||||||
|
|
||||||
#. first time through
|
#. first time through
|
||||||
#: ../src/core/window.c:7269
|
#: ../src/core/window.c:7234
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
|
||||||
@@ -339,32 +340,32 @@ msgstr ""
|
|||||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
|
||||||
#. * about these apps but make them work.
|
#. * about these apps but make them work.
|
||||||
#.
|
#.
|
||||||
#: ../src/core/window.c:7932
|
#: ../src/core/window.c:7899
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size %"
|
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
|
||||||
"d x %d and max size %d x %d; this doesn't make much sense.\n"
|
"%d x %d and max size %d x %d; this doesn't make much sense.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%s penceresi bir yandan yeniden boyutlandırılamaz olduğunu gösteren bir MWM "
|
"%s penceresi bir yandan yeniden boyutlandırılamaz olduğunu gösteren bir MWM "
|
||||||
"ipucu verirken anlamsız bir biçimde en küçük (%d x %d) ve en büyük (%d x %d) "
|
"ipucu verirken anlamsız bir biçimde en küçük (%d x %d) ve en büyük (%d x %d) "
|
||||||
"boyut sınırlarını da atıyor.\n"
|
"boyut sınırlarını da atıyor.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:309
|
#: ../src/core/window-props.c:310
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
msgid "Application set a bogus _NET_WM_PID %lu\n"
|
||||||
msgstr "Uygulama geçersiz _NET_WM_PID %lu atadı\n"
|
msgstr "Uygulama geçersiz _NET_WM_PID %lu atadı\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:426
|
#: ../src/core/window-props.c:429
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s (on %s)"
|
msgid "%s (on %s)"
|
||||||
msgstr "%s (%s üzerinde)"
|
msgstr "%s (%s üzerinde)"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1481
|
#: ../src/core/window-props.c:1484
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
|
||||||
msgstr "Geçersiz WM_TRANSIENT_FOR pencere 0x%lx belirtilen %s.\n"
|
msgstr "Geçersiz WM_TRANSIENT_FOR pencere 0x%lx belirtilen %s.\n"
|
||||||
|
|
||||||
#: ../src/core/window-props.c:1492
|
#: ../src/core/window-props.c:1495
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
|
||||||
msgstr "WM_TRANSIENT_FOR penceresi 0x%lx (%s için) döngü oluşturacak.\n"
|
msgstr "WM_TRANSIENT_FOR penceresi 0x%lx (%s için) döngü oluşturacak.\n"
|
||||||
@@ -432,23 +433,11 @@ msgstr ""
|
|||||||
"birlikte hareket eder."
|
"birlikte hareket eder."
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:5
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:5
|
||||||
msgid "Live Hidden Windows"
|
|
||||||
msgstr "Çalışır Durumdaki Gizli Pencereler"
|
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:6
|
|
||||||
msgid ""
|
|
||||||
"Determines whether hidden windows (i.e., minimized windows and windows on "
|
|
||||||
"other workspaces than the current one) should be kept alive."
|
|
||||||
msgstr ""
|
|
||||||
"Gizli pencerelerin (ö.r. küçültülmüş pencereler ve diğer çalışma alanındaki "
|
|
||||||
"pencereler) çalışır bırakılıp bırakılmayacağını belirler."
|
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
|
|
||||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Pencereler ekran kenarlarında bırakıldığında kenar döşemeyi etkinleştir."
|
"Pencereler ekran kenarlarında bırakıldığında kenar döşemeyi etkinleştir."
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:6
|
||||||
msgid ""
|
msgid ""
|
||||||
"If enabled, dropping windows on vertical screen edges maximizes them "
|
"If enabled, dropping windows on vertical screen edges maximizes them "
|
||||||
"vertically and resizes them horizontally to cover half of the available "
|
"vertically and resizes them horizontally to cover half of the available "
|
||||||
@@ -459,26 +448,25 @@ msgstr ""
|
|||||||
"şekilde yeniden boyutlandırılır. Ekranın tepedeki kenarına bırakılan "
|
"şekilde yeniden boyutlandırılır. Ekranın tepedeki kenarına bırakılan "
|
||||||
"pencereler ekranı tamamen kaplar."
|
"pencereler ekranı tamamen kaplar."
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:7
|
||||||
msgid "Workspaces are managed dynamically"
|
msgid "Workspaces are managed dynamically"
|
||||||
msgstr "Çalışma alanları dinamik olarak yönetilir"
|
msgstr "Çalışma alanları dinamik olarak yönetilir"
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:10
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:8
|
||||||
msgid ""
|
msgid ""
|
||||||
"Determines whether workspaces are managed dynamically or whether there's a "
|
"Determines whether workspaces are managed dynamically or whether there's a "
|
||||||
"static number of workspaces (determined by the num-workspaces key in org."
|
"static number of workspaces (determined by the num-workspaces key in org."
|
||||||
"gnome.desktop.wm.preferences)."
|
"gnome.desktop.wm.preferences)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Çalışma alanlarının dinamik olarak mı yönetileceğini yoksa sabit sayıda "
|
"Çalışma alanlarının dinamik olarak mı yönetileceğini yoksa sabit sayıda "
|
||||||
"çalışma alanı mı olacağını "
|
"çalışma alanı mı olacağını belirler (org.gnome.desktop.wm.preferences "
|
||||||
"belirler (org.gnome.desktop.wm.preferences içindeki num-workspaces değişkeni "
|
"içindeki num-workspaces değişkeni tarafından belirlenir)."
|
||||||
"tarafından belirlenir)."
|
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
|
||||||
msgid "Workspaces only on primary"
|
msgid "Workspaces only on primary"
|
||||||
msgstr "Sadece birincil monitördeki çalışma alanları"
|
msgstr "Sadece birincil monitördeki çalışma alanları"
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:10
|
||||||
msgid ""
|
msgid ""
|
||||||
"Determines whether workspace switching should happen for windows on all "
|
"Determines whether workspace switching should happen for windows on all "
|
||||||
"monitors or only for windows on the primary monitor."
|
"monitors or only for windows on the primary monitor."
|
||||||
@@ -486,11 +474,11 @@ msgstr ""
|
|||||||
"Çalışma alanı değiştirilmesinin, tüm monitörlerdeki pencerelerde mi yoksa "
|
"Çalışma alanı değiştirilmesinin, tüm monitörlerdeki pencerelerde mi yoksa "
|
||||||
"sadece birincil monitördekilerde mi gerçekleşeceğini belirler."
|
"sadece birincil monitördekilerde mi gerçekleşeceğini belirler."
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:11
|
||||||
msgid "No tab popup"
|
msgid "No tab popup"
|
||||||
msgstr "Sekme açılır penceresi yok"
|
msgstr "Sekme açılır penceresi yok"
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:12
|
||||||
msgid ""
|
msgid ""
|
||||||
"Determines whether the use of popup and highlight frame should be disabled "
|
"Determines whether the use of popup and highlight frame should be disabled "
|
||||||
"for window cycling."
|
"for window cycling."
|
||||||
@@ -498,11 +486,11 @@ msgstr ""
|
|||||||
"Pencere geçişinde çerçeve vurgulanması ve açılır pencere kullanımının "
|
"Pencere geçişinde çerçeve vurgulanması ve açılır pencere kullanımının "
|
||||||
"kapatılıp kapatılmayacağını belirler."
|
"kapatılıp kapatılmayacağını belirler."
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
|
||||||
msgid "Draggable border width"
|
msgid "Draggable border width"
|
||||||
msgstr "Sürüklenebilir kenarlık genişliği"
|
msgstr "Sürüklenebilir kenarlık genişliği"
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
|
||||||
msgid ""
|
msgid ""
|
||||||
"The amount of total draggable borders. If the theme's visible borders are "
|
"The amount of total draggable borders. If the theme's visible borders are "
|
||||||
"not enough, invisible borders will be added to meet this value."
|
"not enough, invisible borders will be added to meet this value."
|
||||||
@@ -511,11 +499,11 @@ msgstr ""
|
|||||||
"kenarlıkları yetersiz gelirse, bu değere ulaşmak için görünmez kenarlıklar "
|
"kenarlıkları yetersiz gelirse, bu değere ulaşmak için görünmez kenarlıklar "
|
||||||
"eklenir."
|
"eklenir."
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
|
||||||
msgid "Select window from tab popup"
|
msgid "Select window from tab popup"
|
||||||
msgstr "Pencereyi, sekme açılır penceresinden seç"
|
msgstr "Pencereyi, sekme açılır penceresinden seç"
|
||||||
|
|
||||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:18
|
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
|
||||||
msgid "Cancel tab popup"
|
msgid "Cancel tab popup"
|
||||||
msgstr "Sekmeyi yeni pencerede açmayı iptal et"
|
msgstr "Sekmeyi yeni pencerede açmayı iptal et"
|
||||||
|
|
||||||
@@ -723,49 +711,49 @@ msgstr "Mod5"
|
|||||||
msgid "%d x %d"
|
msgid "%d x %d"
|
||||||
msgstr "%d x %d"
|
msgstr "%d x %d"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:253
|
#: ../src/ui/theme.c:234
|
||||||
msgid "top"
|
msgid "top"
|
||||||
msgstr "üst"
|
msgstr "üst"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:255
|
#: ../src/ui/theme.c:236
|
||||||
msgid "bottom"
|
msgid "bottom"
|
||||||
msgstr "alt"
|
msgstr "alt"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:257
|
#: ../src/ui/theme.c:238
|
||||||
msgid "left"
|
msgid "left"
|
||||||
msgstr "sol"
|
msgstr "sol"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:259
|
#: ../src/ui/theme.c:240
|
||||||
msgid "right"
|
msgid "right"
|
||||||
msgstr "sağ"
|
msgstr "sağ"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:286
|
#: ../src/ui/theme.c:268
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify \"%s\" dimension"
|
msgid "frame geometry does not specify \"%s\" dimension"
|
||||||
msgstr "çerçeve geometrisi \"%s\" boyutunu tanımlamıyor"
|
msgstr "çerçeve geometrisi \"%s\" boyutunu tanımlamıyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:305
|
#: ../src/ui/theme.c:287
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
msgid "frame geometry does not specify dimension \"%s\" for border \"%s\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"çerçeve geometrisi \"%s\" boyutunu \"%s\" pencere kenarı için tanımlamıyor"
|
"çerçeve geometrisi \"%s\" boyutunu \"%s\" pencere kenarı için tanımlamıyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:342
|
#: ../src/ui/theme.c:324
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Button aspect ratio %g is not reasonable"
|
msgid "Button aspect ratio %g is not reasonable"
|
||||||
msgstr "%g kabul edilebilir bir düğme en-boy oranı değil"
|
msgstr "%g kabul edilebilir bir düğme en-boy oranı değil"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:354
|
#: ../src/ui/theme.c:336
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Frame geometry does not specify size of buttons"
|
msgid "Frame geometry does not specify size of buttons"
|
||||||
msgstr "Çerçeve geometrisi düğmelerin boyutunu tanımlamıyor"
|
msgstr "Çerçeve geometrisi düğmelerin boyutunu tanımlamıyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1067
|
#: ../src/ui/theme.c:1049
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Gradients should have at least two colors"
|
msgid "Gradients should have at least two colors"
|
||||||
msgstr "Renk geçişlerinde en az iki renk olmalı"
|
msgstr "Renk geçişlerinde en az iki renk olmalı"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1219
|
#: ../src/ui/theme.c:1201
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK custom color specification must have color name and fallback in "
|
"GTK custom color specification must have color name and fallback in "
|
||||||
@@ -774,7 +762,7 @@ msgstr ""
|
|||||||
"GTK özel renk belirtiminde parantez içinde renk adı ve fallback kelimesi yer "
|
"GTK özel renk belirtiminde parantez içinde renk adı ve fallback kelimesi yer "
|
||||||
"almalıdır; örneğin, gtk:custom[foo,bar]; \"%s\" ayrıştırılamadı"
|
"almalıdır; örneğin, gtk:custom[foo,bar]; \"%s\" ayrıştırılamadı"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1235
|
#: ../src/ui/theme.c:1217
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
|
||||||
@@ -783,7 +771,7 @@ msgstr ""
|
|||||||
"gtk:custom color_name parametresinin adında geçersiz karakter '%c'; sadece A-"
|
"gtk:custom color_name parametresinin adında geçersiz karakter '%c'; sadece A-"
|
||||||
"Za-z0-9-_ karakterleri geçerlidir"
|
"Za-z0-9-_ karakterleri geçerlidir"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1249
|
#: ../src/ui/theme.c:1231
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
|
||||||
@@ -792,7 +780,7 @@ msgstr ""
|
|||||||
"Gtk:custom biçimi \"gtk:custom(color_name,fallback)\" şeklindedir; \"%s\" "
|
"Gtk:custom biçimi \"gtk:custom(color_name,fallback)\" şeklindedir; \"%s\" "
|
||||||
"biçime uymuyor"
|
"biçime uymuyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1294
|
#: ../src/ui/theme.c:1276
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
|
||||||
@@ -802,7 +790,7 @@ msgstr ""
|
|||||||
"örneğin, gtk:fg[NORMAL] belirtiminde NORMAL, durumu gösterir; \"%s\" "
|
"örneğin, gtk:fg[NORMAL] belirtiminde NORMAL, durumu gösterir; \"%s\" "
|
||||||
"ayrıştırılamadı"
|
"ayrıştırılamadı"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1308
|
#: ../src/ui/theme.c:1290
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
"GTK color specification must have a close bracket after the state, e.g. gtk:"
|
||||||
@@ -812,17 +800,17 @@ msgstr ""
|
|||||||
"örneğin, gtk:fg[NORMAL] belirtiminde NORMAL, durumu gösterir; \"%s\" "
|
"örneğin, gtk:fg[NORMAL] belirtiminde NORMAL, durumu gösterir; \"%s\" "
|
||||||
"ayrıştırılamadı"
|
"ayrıştırılamadı"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1319
|
#: ../src/ui/theme.c:1301
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand state \"%s\" in color specification"
|
msgid "Did not understand state \"%s\" in color specification"
|
||||||
msgstr "Renk belirtimindeki \"%s\" durumu anlaşılamadı"
|
msgstr "Renk belirtimindeki \"%s\" durumu anlaşılamadı"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1332
|
#: ../src/ui/theme.c:1314
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Did not understand color component \"%s\" in color specification"
|
msgid "Did not understand color component \"%s\" in color specification"
|
||||||
msgstr "Renk belirtimindeki \"%s\" renk bileşeni anlaşılamadı"
|
msgstr "Renk belirtimindeki \"%s\" renk bileşeni anlaşılamadı"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1361
|
#: ../src/ui/theme.c:1343
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
"Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit the "
|
||||||
@@ -831,17 +819,17 @@ msgstr ""
|
|||||||
"Renk karışımının doğru biçimi \"blend/bg_color/fg_color/alpha\"dır; \"%s\" "
|
"Renk karışımının doğru biçimi \"blend/bg_color/fg_color/alpha\"dır; \"%s\" "
|
||||||
"bu biçime uymuyor"
|
"bu biçime uymuyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1372
|
#: ../src/ui/theme.c:1354
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse alpha value \"%s\" in blended color"
|
msgid "Could not parse alpha value \"%s\" in blended color"
|
||||||
msgstr "Renk karışımındaki \"%s\" alfa değeri ayrıştırılamadı"
|
msgstr "Renk karışımındaki \"%s\" alfa değeri ayrıştırılamadı"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1382
|
#: ../src/ui/theme.c:1364
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0"
|
||||||
msgstr "Renk karışımının alfa değeri \"%s\", 0.0 ile 1.0 arasında değil"
|
msgstr "Renk karışımının alfa değeri \"%s\", 0.0 ile 1.0 arasında değil"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1429
|
#: ../src/ui/theme.c:1411
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
"Shade format is \"shade/base_color/factor\", \"%s\" does not fit the format"
|
||||||
@@ -849,27 +837,27 @@ msgstr ""
|
|||||||
"Gölgelendirmenin doğru biçimi \"shade/bas_color/factor\"dır; \"%s\" bu "
|
"Gölgelendirmenin doğru biçimi \"shade/bas_color/factor\"dır; \"%s\" bu "
|
||||||
"biçime uymuyor"
|
"biçime uymuyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1440
|
#: ../src/ui/theme.c:1422
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse shade factor \"%s\" in shaded color"
|
msgid "Could not parse shade factor \"%s\" in shaded color"
|
||||||
msgstr "Gölgeli rengin gölge katsayısı olan \"%s\" ayrıştırılamadı"
|
msgstr "Gölgeli rengin gölge katsayısı olan \"%s\" ayrıştırılamadı"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1450
|
#: ../src/ui/theme.c:1432
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Shade factor \"%s\" in shaded color is negative"
|
msgid "Shade factor \"%s\" in shaded color is negative"
|
||||||
msgstr "Gölgeli rengin gölge katsayısı olan \"%s\", negatif"
|
msgstr "Gölgeli rengin gölge katsayısı olan \"%s\", negatif"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1479
|
#: ../src/ui/theme.c:1461
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Could not parse color \"%s\""
|
msgid "Could not parse color \"%s\""
|
||||||
msgstr "\"%s\" rengi ayrıştırılamadı"
|
msgstr "\"%s\" rengi ayrıştırılamadı"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1790
|
#: ../src/ui/theme.c:1778
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains character '%s' which is not allowed"
|
msgid "Coordinate expression contains character '%s' which is not allowed"
|
||||||
msgstr "Kordinat ifadesi izin verilmeyen '%s' karakterini içeriyor"
|
msgstr "Kordinat ifadesi izin verilmeyen '%s' karakterini içeriyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1817
|
#: ../src/ui/theme.c:1805
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression contains floating point number '%s' which could not be "
|
"Coordinate expression contains floating point number '%s' which could not be "
|
||||||
@@ -877,12 +865,12 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Kordinat ifadesi '%s' gerçel sayısını içeriyor ve bu sayı ayrıştırılamıyor"
|
"Kordinat ifadesi '%s' gerçel sayısını içeriyor ve bu sayı ayrıştırılamıyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1831
|
#: ../src/ui/theme.c:1819
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
msgid "Coordinate expression contains integer '%s' which could not be parsed"
|
||||||
msgstr "Kordinat ifadesi ayrıştırılamayan '%s' tamsayısını içeriyor"
|
msgstr "Kordinat ifadesi ayrıştırılamayan '%s' tamsayısını içeriyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:1953
|
#: ../src/ui/theme.c:1940
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression contained unknown operator at the start of this text: "
|
"Coordinate expression contained unknown operator at the start of this text: "
|
||||||
@@ -890,17 +878,17 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Kordinat ifadesi bu metnin başında bilinmeyen bir işleç içeriyor: \"%s\""
|
"Kordinat ifadesi bu metnin başında bilinmeyen bir işleç içeriyor: \"%s\""
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2010
|
#: ../src/ui/theme.c:1997
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression was empty or not understood"
|
msgid "Coordinate expression was empty or not understood"
|
||||||
msgstr "Kordinat ifadesi boş ya da anlaşılamadı"
|
msgstr "Kordinat ifadesi boş ya da anlaşılamadı"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2121 ../src/ui/theme.c:2131 ../src/ui/theme.c:2165
|
#: ../src/ui/theme.c:2110 ../src/ui/theme.c:2120 ../src/ui/theme.c:2154
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression results in division by zero"
|
msgid "Coordinate expression results in division by zero"
|
||||||
msgstr "Kordinat ifadesi sıfıra bölümle sonuçlanıyor"
|
msgstr "Kordinat ifadesi sıfıra bölümle sonuçlanıyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2173
|
#: ../src/ui/theme.c:2162
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression tries to use mod operator on a floating-point number"
|
"Coordinate expression tries to use mod operator on a floating-point number"
|
||||||
@@ -908,23 +896,23 @@ msgstr ""
|
|||||||
"Kordinat ifadesi bir gerçel sayı üzerinde mod (kalan bulma) işlecini "
|
"Kordinat ifadesi bir gerçel sayı üzerinde mod (kalan bulma) işlecini "
|
||||||
"kullanmaya çalıştı"
|
"kullanmaya çalıştı"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2229
|
#: ../src/ui/theme.c:2218
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
"Coordinate expression has an operator \"%s\" where an operand was expected"
|
||||||
msgstr "Kordinat ifadesi işleneni beklenen \"%s\", işlecini içeriyor"
|
msgstr "Kordinat ifadesi işleneni beklenen \"%s\", işlecini içeriyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2238
|
#: ../src/ui/theme.c:2227
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an operand where an operator was expected"
|
msgid "Coordinate expression had an operand where an operator was expected"
|
||||||
msgstr "Kordinat ifadesi işleci beklenen bir işlenen içeriyor"
|
msgstr "Kordinat ifadesi işleci beklenen bir işlenen içeriyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2246
|
#: ../src/ui/theme.c:2235
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression ended with an operator instead of an operand"
|
msgid "Coordinate expression ended with an operator instead of an operand"
|
||||||
msgstr "Kordinat ifadesi bir işlenen yerine işleçle bitiyor"
|
msgstr "Kordinat ifadesi bir işlenen yerine işleçle bitiyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2256
|
#: ../src/ui/theme.c:2245
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
"Coordinate expression has operator \"%c\" following operator \"%c\" with no "
|
||||||
@@ -933,38 +921,38 @@ msgstr ""
|
|||||||
"Kordinat ifadesi birbirlerinin izleyen ve aralarında işlenen olmayan \"%2$c"
|
"Kordinat ifadesi birbirlerinin izleyen ve aralarında işlenen olmayan \"%2$c"
|
||||||
"\" ve \"%1$c\" işleçlerini içeriyor"
|
"\" ve \"%1$c\" işleçlerini içeriyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2407 ../src/ui/theme.c:2452
|
#: ../src/ui/theme.c:2396 ../src/ui/theme.c:2441
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
msgid "Coordinate expression had unknown variable or constant \"%s\""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Kordinat ifadesi bilinmeyen bir değişken ya da sabit olan \"%s\" içeriyor"
|
"Kordinat ifadesi bilinmeyen bir değişken ya da sabit olan \"%s\" içeriyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2506
|
#: ../src/ui/theme.c:2495
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression parser overflowed its buffer."
|
msgid "Coordinate expression parser overflowed its buffer."
|
||||||
msgstr "Kordinat belirtim ayrıştırıcısı tamponundan taştı."
|
msgstr "Kordinat belirtim ayrıştırıcısı tamponundan taştı."
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2535
|
#: ../src/ui/theme.c:2524
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
|
||||||
msgstr "Kordinat ifadesi sol parantezi olmayan bir sağ parantez içeriyor"
|
msgstr "Kordinat ifadesi sol parantezi olmayan bir sağ parantez içeriyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2599
|
#: ../src/ui/theme.c:2588
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
|
||||||
msgstr "Kordinat ifadesi sağ parantezi olmayan bir sol parantez içeriyor"
|
msgstr "Kordinat ifadesi sağ parantezi olmayan bir sol parantez içeriyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2610
|
#: ../src/ui/theme.c:2599
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
msgid "Coordinate expression doesn't seem to have any operators or operands"
|
||||||
msgstr "Kordinat ifadesi göründüğü kadarıyla ne işleç ne de işlenen içeriyor"
|
msgstr "Kordinat ifadesi göründüğü kadarıyla ne işleç ne de işlenen içeriyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:2822 ../src/ui/theme.c:2842 ../src/ui/theme.c:2862
|
#: ../src/ui/theme.c:2812 ../src/ui/theme.c:2832 ../src/ui/theme.c:2852
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Theme contained an expression that resulted in an error: %s\n"
|
msgid "Theme contained an expression that resulted in an error: %s\n"
|
||||||
msgstr "Tema bir hata ile sonuçlanan ifadeye sahip: %s\n"
|
msgstr "Tema bir hata ile sonuçlanan ifadeye sahip: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:4533
|
#: ../src/ui/theme.c:4498
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
"<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be "
|
||||||
@@ -973,25 +961,25 @@ msgstr ""
|
|||||||
"Bu çerçeve biçeminde <button function=\"%s\" state=\"%s\" draw_ops=\"her "
|
"Bu çerçeve biçeminde <button function=\"%s\" state=\"%s\" draw_ops=\"her "
|
||||||
"neyse\"/> belirtilmek zorunda"
|
"neyse\"/> belirtilmek zorunda"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5066 ../src/ui/theme.c:5091
|
#: ../src/ui/theme.c:5009 ../src/ui/theme.c:5034
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
"Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Eksik <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"her neyse\"/>"
|
"Eksik <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"her neyse\"/>"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5139
|
#: ../src/ui/theme.c:5082
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to load theme \"%s\": %s\n"
|
msgid "Failed to load theme \"%s\": %s\n"
|
||||||
msgstr "\"%s\" teması yüklenemedi: %s\n"
|
msgstr "\"%s\" teması yüklenemedi: %s\n"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5275 ../src/ui/theme.c:5282 ../src/ui/theme.c:5289
|
#: ../src/ui/theme.c:5218 ../src/ui/theme.c:5225 ../src/ui/theme.c:5232
|
||||||
#: ../src/ui/theme.c:5296 ../src/ui/theme.c:5303
|
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "No <%s> set for theme \"%s\""
|
msgid "No <%s> set for theme \"%s\""
|
||||||
msgstr "\"%2$s\" temasında hiç <%1$s> atanmamış"
|
msgstr "\"%2$s\" temasında hiç <%1$s> atanmamış"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5311
|
#: ../src/ui/theme.c:5254
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
"No frame style set for window type \"%s\" in theme \"%s\", add a <window "
|
||||||
@@ -1000,14 +988,14 @@ msgstr ""
|
|||||||
"\"%2$s\" temasında \"%1$s\" pencere türüne çerçeve biçemi atanmamış, bir "
|
"\"%2$s\" temasında \"%1$s\" pencere türüne çerçeve biçemi atanmamış, bir "
|
||||||
"<window type=\"%3$s\" style_set=\"her neyse\"/> öğesi ekleyin"
|
"<window type=\"%3$s\" style_set=\"her neyse\"/> öğesi ekleyin"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5709 ../src/ui/theme.c:5771 ../src/ui/theme.c:5834
|
#: ../src/ui/theme.c:5650 ../src/ui/theme.c:5712 ../src/ui/theme.c:5775
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
"User-defined constants must begin with a capital letter; \"%s\" does not"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Kullanıcı tanımlı sabitler büyük harfle başlamalıdır; \"%s\" buna uymuyor"
|
"Kullanıcı tanımlı sabitler büyük harfle başlamalıdır; \"%s\" buna uymuyor"
|
||||||
|
|
||||||
#: ../src/ui/theme.c:5717 ../src/ui/theme.c:5779 ../src/ui/theme.c:5842
|
#: ../src/ui/theme.c:5658 ../src/ui/theme.c:5720 ../src/ui/theme.c:5783
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Constant \"%s\" has already been defined"
|
msgid "Constant \"%s\" has already been defined"
|
||||||
msgstr "\"%s\" sabit değeri zaten tanımlanmış"
|
msgstr "\"%s\" sabit değeri zaten tanımlanmış"
|
||||||
@@ -1390,7 +1378,7 @@ msgstr "<%s> öğesinin içinde metin bulunmamalıdır"
|
|||||||
msgid "<%s> specified twice for this theme"
|
msgid "<%s> specified twice for this theme"
|
||||||
msgstr "Bu tema için <%s> iki kez belirtilmiş"
|
msgstr "Bu tema için <%s> iki kez belirtilmiş"
|
||||||
|
|
||||||
#: ../src/ui/theme-parser.c:4348
|
#: ../src/ui/theme-parser.c:4334
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to find a valid file for theme %s\n"
|
msgid "Failed to find a valid file for theme %s\n"
|
||||||
msgstr "Tema %s için geçerli bir dosya bulunamadı\n"
|
msgstr "Tema %s için geçerli bir dosya bulunamadı\n"
|
||||||
@@ -1594,6 +1582,19 @@ msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"%d kordinat ifadesi %g saniye içinde ayrıştırıldı (%g saniye ortalama ile)\n"
|
"%d kordinat ifadesi %g saniye içinde ayrıştırıldı (%g saniye ortalama ile)\n"
|
||||||
|
|
||||||
|
#~ msgid "Comma-separated list of compositor plugins"
|
||||||
|
#~ msgstr "Kompozisyon eklentilerinin listesi (virgül ile ayrılmış)"
|
||||||
|
|
||||||
|
#~ msgid "Live Hidden Windows"
|
||||||
|
#~ msgstr "Çalışır Durumdaki Gizli Pencereler"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "Determines whether hidden windows (i.e., minimized windows and windows on "
|
||||||
|
#~ "other workspaces than the current one) should be kept alive."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Gizli pencerelerin (ö.r. küçültülmüş pencereler ve diğer çalışma "
|
||||||
|
#~ "alanındaki pencereler) çalışır bırakılıp bırakılmayacağını belirler."
|
||||||
|
|
||||||
#~ msgid "Close Window"
|
#~ msgid "Close Window"
|
||||||
#~ msgstr "Pencereyi Kapat"
|
#~ msgstr "Pencereyi Kapat"
|
||||||
|
|
||||||
|
244
po/zh_CN.po
244
po/zh_CN.po
@@ -25,7 +25,7 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bits\n"
|
"Content-Transfer-Encoding: 8bits\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
|
||||||
#: ../src/50-mutter-windows.xml.in.h:1
|
#: ../src/50-mutter-windows.xml.in.h:1 ../src/50-mutter-windows.xml.in.h:17
|
||||||
msgid "Windows"
|
msgid "Windows"
|
||||||
msgstr "窗口"
|
msgstr "窗口"
|
||||||
|
|
||||||
@@ -1530,17 +1530,177 @@ msgstr "y 值为 %d,但应该为 %d "
|
|||||||
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
msgid "%d coordinate expressions parsed in %g seconds (%g seconds average)\n"
|
||||||
msgstr "在 %2$g 秒内处理了 %1$d 个坐标表达式(平均 %3$g 秒)\n"
|
msgstr "在 %2$g 秒内处理了 %1$d 个坐标表达式(平均 %3$g 秒)\n"
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 1"
|
#: ../src/50-mutter-navigation.xml.in.h:18
|
||||||
#~ msgstr "切换到工作区 1"
|
msgid "Switch to workspace 1"
|
||||||
|
msgstr "切换到工作区 1"
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 2"
|
#: ../src/50-mutter-navigation.xml.in.h:19
|
||||||
#~ msgstr "切换到工作区 2"
|
msgid "Switch to workspace 2"
|
||||||
|
msgstr "切换到工作区 2"
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 3"
|
#: ../src/50-mutter-navigation.xml.in.h:20
|
||||||
#~ msgstr "切换到工作区 3"
|
msgid "Switch to workspace 3"
|
||||||
|
msgstr "切换到工作区 3"
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 4"
|
#: ../src/50-mutter-navigation.xml.in.h:21
|
||||||
#~ msgstr "切换到工作区 4"
|
msgid "Switch to workspace 4"
|
||||||
|
msgstr "切换到工作区 4"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:1
|
||||||
|
msgid "Activate the window menu"
|
||||||
|
msgstr "激活窗口菜单"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:13
|
||||||
|
msgid "Toggle fullscreen mode"
|
||||||
|
msgstr "切换全屏模式"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:14
|
||||||
|
msgid "Toggle maximization state"
|
||||||
|
msgstr "切换最大化状态"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:4
|
||||||
|
msgid "Maximize window"
|
||||||
|
msgstr "最大化窗口"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:12
|
||||||
|
msgid "Restore window"
|
||||||
|
msgstr "恢复窗口"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:15
|
||||||
|
msgid "Toggle shaded state"
|
||||||
|
msgstr "切换卷起状态"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:7
|
||||||
|
msgid "Minimize window"
|
||||||
|
msgstr "最小化窗口"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:2
|
||||||
|
msgid "Close window"
|
||||||
|
msgstr "关闭窗口"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:8
|
||||||
|
msgid "Move window"
|
||||||
|
msgstr "移动窗口"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:11
|
||||||
|
msgid "Resize window"
|
||||||
|
msgstr "改变窗口大小"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:10
|
||||||
|
msgid "Move window to workspace 1"
|
||||||
|
msgstr "将窗口移到工作区 1"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:11
|
||||||
|
msgid "Move window to workspace 2"
|
||||||
|
msgstr "将窗口移到工作区 2"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:12
|
||||||
|
msgid "Move window to workspace 3"
|
||||||
|
msgstr "将窗口移到工作区 3"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:13
|
||||||
|
msgid "Move window to workspace 4"
|
||||||
|
msgstr "将窗口移到工作区 4"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:7
|
||||||
|
msgid "Move window one workspace to the left"
|
||||||
|
msgstr "将窗口左移一个工作区"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:8
|
||||||
|
msgid "Move window one workspace to the right"
|
||||||
|
msgstr "将窗口右移一个工作区"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:9
|
||||||
|
msgid "Move window one workspace up"
|
||||||
|
msgstr "将窗口上移一个工作区"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:6
|
||||||
|
msgid "Move window one workspace down"
|
||||||
|
msgstr "将窗口下移一个工作区"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:9
|
||||||
|
msgid "Raise window above other windows"
|
||||||
|
msgstr "将窗口提升到其它窗口之上"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:3
|
||||||
|
msgid "Lower window below other windows"
|
||||||
|
msgstr "将窗口降低到其它窗口之下"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:6
|
||||||
|
msgid "Maximize window vertically"
|
||||||
|
msgstr "垂直最大化窗口"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:5
|
||||||
|
msgid "Maximize window horizontally"
|
||||||
|
msgstr "水平最大化窗口"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:1
|
||||||
|
msgid "Hide all normal windows"
|
||||||
|
msgstr "隐藏所有正常窗口"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:2
|
||||||
|
msgid "Move to workspace above"
|
||||||
|
msgstr "移动到上层工作区"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:3
|
||||||
|
msgid "Move to workspace below"
|
||||||
|
msgstr "移动到下层工作区"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:4
|
||||||
|
msgid "Move to workspace left"
|
||||||
|
msgstr "移动到左侧工作区"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:5
|
||||||
|
msgid "Move to workspace right"
|
||||||
|
msgstr "移动到右侧工作区"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:14
|
||||||
|
msgid "Navigation"
|
||||||
|
msgstr "导航"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:15
|
||||||
|
msgid "Switch applications"
|
||||||
|
msgstr "切换应用程序"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:16
|
||||||
|
msgid "Switch system controls"
|
||||||
|
msgstr "切换系统控制"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:17
|
||||||
|
msgid "Switch system controls directly"
|
||||||
|
msgstr "直接切换系统控制"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:22
|
||||||
|
msgid "Switch windows directly"
|
||||||
|
msgstr "直接切换窗口"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:23
|
||||||
|
msgid "Switch windows of an app directly"
|
||||||
|
msgstr "在应用程序窗口间直接移动焦点"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-navigation.xml.in.h:24
|
||||||
|
msgid "Switch windows of an application"
|
||||||
|
msgstr "在应用程序的窗口之间切换窗口"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-system.xml.in.h:1
|
||||||
|
msgid "Show the activities overview"
|
||||||
|
msgstr "显示活动大纲"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-system.xml.in.h:2
|
||||||
|
msgid "Show the run command prompt"
|
||||||
|
msgstr "显示运行命令提示符"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-system.xml.in.h:3
|
||||||
|
msgid "System"
|
||||||
|
msgstr "系统"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:10
|
||||||
|
msgid "Raise window if covered, otherwise lower it"
|
||||||
|
msgstr "如果窗口被其他窗口遮盖,则提升它,否则降低它"
|
||||||
|
|
||||||
|
#: ../src/50-mutter-windows.xml.in.h:16
|
||||||
|
msgid "Toggle window on all workspaces or one"
|
||||||
|
msgstr "在位于所有或仅一个工作区的窗口间切换"
|
||||||
|
|
||||||
#~ msgid "Switch to workspace 5"
|
#~ msgid "Switch to workspace 5"
|
||||||
#~ msgstr "切换到工作区 5"
|
#~ msgstr "切换到工作区 5"
|
||||||
@@ -1636,54 +1796,12 @@ msgstr "在 %2$g 秒内处理了 %1$d 个坐标表达式(平均 %3$g 秒)\n"
|
|||||||
#~ msgid "Run a terminal"
|
#~ msgid "Run a terminal"
|
||||||
#~ msgstr "运行终端"
|
#~ msgstr "运行终端"
|
||||||
|
|
||||||
#~ msgid "Activate the window menu"
|
|
||||||
#~ msgstr "激活窗口菜单"
|
|
||||||
|
|
||||||
#~ msgid "Toggle fullscreen mode"
|
|
||||||
#~ msgstr "切换全屏模式"
|
|
||||||
|
|
||||||
#~ msgid "Toggle maximization state"
|
|
||||||
#~ msgstr "切换最大化状态"
|
|
||||||
|
|
||||||
#~ msgid "Toggle whether a window will always be visible over other windows"
|
#~ msgid "Toggle whether a window will always be visible over other windows"
|
||||||
#~ msgstr "在窗口是否永远可见于其它窗口之上间切换"
|
#~ msgstr "在窗口是否永远可见于其它窗口之上间切换"
|
||||||
|
|
||||||
#~ msgid "Maximize window"
|
|
||||||
#~ msgstr "最大化窗口"
|
|
||||||
|
|
||||||
#~ msgid "Restore window"
|
|
||||||
#~ msgstr "恢复窗口"
|
|
||||||
|
|
||||||
#~ msgid "Toggle shaded state"
|
|
||||||
#~ msgstr "切换卷起状态"
|
|
||||||
|
|
||||||
#~ msgid "Minimize window"
|
|
||||||
#~ msgstr "最小化窗口"
|
|
||||||
|
|
||||||
#~ msgid "Close window"
|
|
||||||
#~ msgstr "关闭窗口"
|
|
||||||
|
|
||||||
#~ msgid "Move window"
|
|
||||||
#~ msgstr "移动窗口"
|
|
||||||
|
|
||||||
#~ msgid "Resize window"
|
|
||||||
#~ msgstr "改变窗口大小"
|
|
||||||
|
|
||||||
#~ msgid "Toggle whether window is on all workspaces or just one"
|
#~ msgid "Toggle whether window is on all workspaces or just one"
|
||||||
#~ msgstr "在窗口位于所有或仅一个工作区间切换"
|
#~ msgstr "在窗口位于所有或仅一个工作区间切换"
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 1"
|
|
||||||
#~ msgstr "将窗口移到工作区 1"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 2"
|
|
||||||
#~ msgstr "将窗口移到工作区 2"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 3"
|
|
||||||
#~ msgstr "将窗口移到工作区 3"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 4"
|
|
||||||
#~ msgstr "将窗口移到工作区 4"
|
|
||||||
|
|
||||||
#~ msgid "Move window to workspace 5"
|
#~ msgid "Move window to workspace 5"
|
||||||
#~ msgstr "将窗口移到工作区 5"
|
#~ msgstr "将窗口移到工作区 5"
|
||||||
|
|
||||||
@@ -1708,33 +1826,9 @@ msgstr "在 %2$g 秒内处理了 %1$d 个坐标表达式(平均 %3$g 秒)\n"
|
|||||||
#~ msgid "Move window to workspace 12"
|
#~ msgid "Move window to workspace 12"
|
||||||
#~ msgstr "将窗口移到工作区 12"
|
#~ msgstr "将窗口移到工作区 12"
|
||||||
|
|
||||||
#~ msgid "Move window one workspace to the left"
|
|
||||||
#~ msgstr "将窗口左移一个工作区"
|
|
||||||
|
|
||||||
#~ msgid "Move window one workspace to the right"
|
|
||||||
#~ msgstr "将窗口右移一个工作区"
|
|
||||||
|
|
||||||
#~ msgid "Move window one workspace up"
|
|
||||||
#~ msgstr "将窗口上移一个工作区"
|
|
||||||
|
|
||||||
#~ msgid "Move window one workspace down"
|
|
||||||
#~ msgstr "将窗口下移一个工作区"
|
|
||||||
|
|
||||||
#~ msgid "Raise window if it's covered by another window, otherwise lower it"
|
#~ msgid "Raise window if it's covered by another window, otherwise lower it"
|
||||||
#~ msgstr "如果窗口被其他窗口遮盖,则提升它,否则降低它"
|
#~ msgstr "如果窗口被其他窗口遮盖,则提升它,否则降低它"
|
||||||
|
|
||||||
#~ msgid "Raise window above other windows"
|
|
||||||
#~ msgstr "将窗口提升到其它窗口之上"
|
|
||||||
|
|
||||||
#~ msgid "Lower window below other windows"
|
|
||||||
#~ msgstr "将窗口降低到其它窗口之下"
|
|
||||||
|
|
||||||
#~ msgid "Maximize window vertically"
|
|
||||||
#~ msgstr "垂直最大化窗口"
|
|
||||||
|
|
||||||
#~ msgid "Maximize window horizontally"
|
|
||||||
#~ msgstr "水平最大化窗口"
|
|
||||||
|
|
||||||
#~ msgid "Move window to north-west (top left) corner"
|
#~ msgid "Move window to north-west (top left) corner"
|
||||||
#~ msgstr "将窗口移到西北(左上)角"
|
#~ msgstr "将窗口移到西北(左上)角"
|
||||||
|
|
||||||
|
596
po/zh_HK.po
596
po/zh_HK.po
File diff suppressed because it is too large
Load Diff
609
po/zh_TW.po
609
po/zh_TW.po
File diff suppressed because it is too large
Load Diff
80
src/50-mutter-navigation.xml.in
Normal file
80
src/50-mutter-navigation.xml.in
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<KeyListEntries schema="org.gnome.desktop.wm.keybindings"
|
||||||
|
group="system"
|
||||||
|
_name="Navigation"
|
||||||
|
wm_name="Mutter"
|
||||||
|
package="mutter">
|
||||||
|
|
||||||
|
<KeyListEntry name="move-to-workspace-1"
|
||||||
|
_description="Move window to workspace 1" />
|
||||||
|
|
||||||
|
<KeyListEntry name="move-to-workspace-2"
|
||||||
|
_description="Move window to workspace 2" />
|
||||||
|
|
||||||
|
<KeyListEntry name="move-to-workspace-3"
|
||||||
|
_description="Move window to workspace 3" />
|
||||||
|
|
||||||
|
<KeyListEntry name="move-to-workspace-4"
|
||||||
|
_description="Move window to workspace 4" />
|
||||||
|
|
||||||
|
<KeyListEntry name="move-to-workspace-left"
|
||||||
|
_description="Move window one workspace to the left" />
|
||||||
|
|
||||||
|
<KeyListEntry name="move-to-workspace-right"
|
||||||
|
_description="Move window one workspace to the right" />
|
||||||
|
|
||||||
|
<KeyListEntry name="move-to-workspace-up"
|
||||||
|
_description="Move window one workspace up" />
|
||||||
|
|
||||||
|
<KeyListEntry name="move-to-workspace-down"
|
||||||
|
_description="Move window one workspace down" />
|
||||||
|
|
||||||
|
<KeyListEntry name="switch-applications"
|
||||||
|
_description="Switch applications"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="switch-windows"
|
||||||
|
_description="Switch windows"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="switch-group"
|
||||||
|
_description="Switch windows of an application"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="switch-panels"
|
||||||
|
_description="Switch system controls"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="cycle-windows"
|
||||||
|
_description="Switch windows directly"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="cycle-group"
|
||||||
|
_description="Switch windows of an app directly"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="cycle-panels"
|
||||||
|
_description="Switch system controls directly"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="show-desktop"
|
||||||
|
_description="Hide all normal windows"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="switch-to-workspace-1"
|
||||||
|
_description="Switch to workspace 1" />
|
||||||
|
|
||||||
|
<KeyListEntry name="switch-to-workspace-2"
|
||||||
|
_description="Switch to workspace 2" />
|
||||||
|
|
||||||
|
<KeyListEntry name="switch-to-workspace-3"
|
||||||
|
_description="Switch to workspace 3" />
|
||||||
|
|
||||||
|
<KeyListEntry name="switch-to-workspace-4"
|
||||||
|
_description="Switch to workspace 4" />
|
||||||
|
|
||||||
|
<KeyListEntry name="switch-to-workspace-left"
|
||||||
|
_description="Move to workspace left" />
|
||||||
|
|
||||||
|
<KeyListEntry name="switch-to-workspace-right"
|
||||||
|
_description="Move to workspace right" />
|
||||||
|
|
||||||
|
<KeyListEntry name="switch-to-workspace-up"
|
||||||
|
_description="Move to workspace above" />
|
||||||
|
|
||||||
|
<KeyListEntry name="switch-to-workspace-down"
|
||||||
|
_description="Move to workspace below" />
|
||||||
|
|
||||||
|
</KeyListEntries>
|
13
src/50-mutter-system.xml.in
Normal file
13
src/50-mutter-system.xml.in
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<KeyListEntries schema="org.gnome.desktop.wm.keybindings"
|
||||||
|
group="system"
|
||||||
|
_name="System"
|
||||||
|
wm_name="Mutter"
|
||||||
|
package="mutter">
|
||||||
|
|
||||||
|
<KeyListEntry name="panel-run-dialog" _description="Show the run command prompt"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="panel-main-menu" _description="Show the activities overview"/>
|
||||||
|
|
||||||
|
</KeyListEntries>
|
||||||
|
|
@@ -1,14 +1,49 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<KeyListEntries schema="org.gnome.mutter.keybindings"
|
<KeyListEntries schema="org.gnome.desktop.wm.keybindings"
|
||||||
group="system"
|
group="system"
|
||||||
_name="Windows"
|
_name="Windows"
|
||||||
wm_name="Mutter"
|
wm_name="Mutter"
|
||||||
package="mutter">
|
package="mutter">
|
||||||
|
|
||||||
|
<KeyListEntry name="activate-window-menu" _description="Activate the window menu"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="toggle-fullscreen" _description="Toggle fullscreen mode"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="toggle-maximized" _description="Toggle maximization state"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="maximize" _description="Maximize window"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="unmaximize" _description="Restore window"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="toggle-shaded" _description="Toggle shaded state"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="close" _description="Close window"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="minimize" _description="Hide window"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="begin-move" _description="Move window"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="begin-resize" _description="Resize window"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="toggle-on-all-workspaces"
|
||||||
|
_description="Toggle window on all workspaces or one"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="raise-or-lower" _description="Raise window if covered, otherwise lower it"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="raise" _description="Raise window above other windows"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="lower" _description="Lower window below other windows"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="maximize-vertically" _description="Maximize window vertically"/>
|
||||||
|
|
||||||
|
<KeyListEntry name="maximize-horizontally" _description="Maximize window horizontally"/>
|
||||||
|
|
||||||
<KeyListEntry name="toggle-tiled-left"
|
<KeyListEntry name="toggle-tiled-left"
|
||||||
|
schema="org.gnome.mutter.keybindings"
|
||||||
_description="View split on left"/>
|
_description="View split on left"/>
|
||||||
|
|
||||||
<KeyListEntry name="toggle-tiled-right"
|
<KeyListEntry name="toggle-tiled-right"
|
||||||
|
schema="org.gnome.mutter.keybindings"
|
||||||
_description="View split on right"/>
|
_description="View split on right"/>
|
||||||
|
|
||||||
</KeyListEntries>
|
</KeyListEntries>
|
||||||
|
@@ -6,6 +6,9 @@ lib_LTLIBRARIES = libmutter.la
|
|||||||
SUBDIRS=wm-tester tools compositor/plugins
|
SUBDIRS=wm-tester tools compositor/plugins
|
||||||
|
|
||||||
INCLUDES= \
|
INCLUDES= \
|
||||||
|
-DCLUTTER_ENABLE_EXPERIMENTAL_API \
|
||||||
|
-DCOGL_ENABLE_EXPERIMENTAL_API \
|
||||||
|
-DCOGL_ENABLE_EXPERIMENTAL_2_0_API \
|
||||||
$(MUTTER_CFLAGS) \
|
$(MUTTER_CFLAGS) \
|
||||||
-I$(srcdir) \
|
-I$(srcdir) \
|
||||||
-I$(srcdir)/core \
|
-I$(srcdir)/core \
|
||||||
@@ -33,17 +36,24 @@ mutter_built_sources = \
|
|||||||
libmutter_la_SOURCES = \
|
libmutter_la_SOURCES = \
|
||||||
core/async-getprop.c \
|
core/async-getprop.c \
|
||||||
core/async-getprop.h \
|
core/async-getprop.h \
|
||||||
|
core/barrier.c \
|
||||||
|
meta/barrier.h \
|
||||||
core/bell.c \
|
core/bell.c \
|
||||||
core/bell.h \
|
core/bell.h \
|
||||||
core/boxes.c \
|
core/boxes.c \
|
||||||
core/boxes-private.h \
|
core/boxes-private.h \
|
||||||
meta/boxes.h \
|
meta/boxes.h \
|
||||||
|
compositor/clutter-utils.c \
|
||||||
|
compositor/clutter-utils.h \
|
||||||
compositor/cogl-utils.c \
|
compositor/cogl-utils.c \
|
||||||
compositor/cogl-utils.h \
|
compositor/cogl-utils.h \
|
||||||
compositor/compositor.c \
|
compositor/compositor.c \
|
||||||
compositor/compositor-private.h \
|
compositor/compositor-private.h \
|
||||||
|
compositor/meta-background.c \
|
||||||
compositor/meta-background-actor.c \
|
compositor/meta-background-actor.c \
|
||||||
compositor/meta-background-actor-private.h \
|
compositor/meta-background-actor-private.h \
|
||||||
|
compositor/meta-background-group.c \
|
||||||
|
compositor/meta-background-group-private.h \
|
||||||
compositor/meta-module.c \
|
compositor/meta-module.c \
|
||||||
compositor/meta-module.h \
|
compositor/meta-module.h \
|
||||||
compositor/meta-plugin.c \
|
compositor/meta-plugin.c \
|
||||||
@@ -65,7 +75,9 @@ libmutter_la_SOURCES = \
|
|||||||
compositor/region-utils.c \
|
compositor/region-utils.c \
|
||||||
compositor/region-utils.h \
|
compositor/region-utils.h \
|
||||||
meta/compositor.h \
|
meta/compositor.h \
|
||||||
|
meta/meta-background.h \
|
||||||
meta/meta-background-actor.h \
|
meta/meta-background-actor.h \
|
||||||
|
meta/meta-background-group.h \
|
||||||
meta/meta-plugin.h \
|
meta/meta-plugin.h \
|
||||||
meta/meta-shadow-factory.h \
|
meta/meta-shadow-factory.h \
|
||||||
meta/meta-window-actor.h \
|
meta/meta-window-actor.h \
|
||||||
@@ -84,8 +96,6 @@ libmutter_la_SOURCES = \
|
|||||||
core/edge-resistance.h \
|
core/edge-resistance.h \
|
||||||
core/errors.c \
|
core/errors.c \
|
||||||
meta/errors.h \
|
meta/errors.h \
|
||||||
core/eventqueue.c \
|
|
||||||
core/eventqueue.h \
|
|
||||||
core/frame.c \
|
core/frame.c \
|
||||||
core/frame.h \
|
core/frame.h \
|
||||||
ui/gradient.c \
|
ui/gradient.c \
|
||||||
@@ -157,6 +167,7 @@ libmutter_la_LIBADD = $(MUTTER_LIBS)
|
|||||||
# Headers installed for plugins; introspected information will
|
# Headers installed for plugins; introspected information will
|
||||||
# be extracted into Mutter-<version>.gir
|
# be extracted into Mutter-<version>.gir
|
||||||
libmutterinclude_base_headers = \
|
libmutterinclude_base_headers = \
|
||||||
|
meta/barrier.h \
|
||||||
meta/boxes.h \
|
meta/boxes.h \
|
||||||
meta/common.h \
|
meta/common.h \
|
||||||
meta/compositor-mutter.h \
|
meta/compositor-mutter.h \
|
||||||
@@ -168,6 +179,8 @@ libmutterinclude_base_headers = \
|
|||||||
meta/keybindings.h \
|
meta/keybindings.h \
|
||||||
meta/main.h \
|
meta/main.h \
|
||||||
meta/meta-background-actor.h \
|
meta/meta-background-actor.h \
|
||||||
|
meta/meta-background-group.h \
|
||||||
|
meta/meta-background.h \
|
||||||
meta/meta-plugin.h \
|
meta/meta-plugin.h \
|
||||||
meta/meta-shaped-texture.h \
|
meta/meta-shaped-texture.h \
|
||||||
meta/meta-shadow-factory.h \
|
meta/meta-shadow-factory.h \
|
||||||
@@ -221,7 +234,7 @@ typelib_DATA = Meta-$(api_version).typelib
|
|||||||
INTROSPECTION_GIRS = Meta-$(api_version).gir
|
INTROSPECTION_GIRS = Meta-$(api_version).gir
|
||||||
|
|
||||||
Meta-$(api_version).gir: libmutter.la
|
Meta-$(api_version).gir: libmutter.la
|
||||||
@META_GIR@_INCLUDES = GObject-2.0 GDesktopEnums-3.0 Gdk-3.0 Gtk-3.0 Clutter-1.0 xlib-2.0 xfixes-4.0
|
@META_GIR@_INCLUDES = GObject-2.0 GDesktopEnums-3.0 Gdk-3.0 Gtk-3.0 Clutter-1.0 xlib-2.0 xfixes-4.0 Cogl-1.0
|
||||||
@META_GIR@_EXPORT_PACKAGES = libmutter
|
@META_GIR@_EXPORT_PACKAGES = libmutter
|
||||||
@META_GIR@_CFLAGS = $(INCLUDES)
|
@META_GIR@_CFLAGS = $(INCLUDES)
|
||||||
@META_GIR@_LIBS = libmutter.la
|
@META_GIR@_LIBS = libmutter.la
|
||||||
@@ -259,6 +272,8 @@ wmproperties_DATA = $(wmproperties_files)
|
|||||||
|
|
||||||
xmldir = @GNOME_KEYBINDINGS_KEYSDIR@
|
xmldir = @GNOME_KEYBINDINGS_KEYSDIR@
|
||||||
xml_in_files = \
|
xml_in_files = \
|
||||||
|
50-mutter-navigation.xml.in \
|
||||||
|
50-mutter-system.xml.in \
|
||||||
50-mutter-windows.xml.in
|
50-mutter-windows.xml.in
|
||||||
xml_DATA = $(xml_in_files:.xml.in=.xml)
|
xml_DATA = $(xml_in_files:.xml.in=.xml)
|
||||||
|
|
||||||
|
120
src/compositor/clutter-utils.c
Normal file
120
src/compositor/clutter-utils.c
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
/*
|
||||||
|
* Utilities for use with Cogl
|
||||||
|
*
|
||||||
|
* Copyright 2010 Red Hat, Inc.
|
||||||
|
* Copyright 2010 Intel Corporation
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License as
|
||||||
|
* published by the Free Software Foundation; either version 2 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
|
||||||
|
* General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||||
|
* 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "clutter-utils.h"
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
/* This file uses pixel-aligned region computation to determine what
|
||||||
|
* can be clipped out. This only really works if everything is aligned
|
||||||
|
* to the pixel grid - not scaled or rotated and at integer offsets.
|
||||||
|
*
|
||||||
|
* (This could be relaxed - if we turned off filtering for unscaled
|
||||||
|
* windows then windows would be, by definition aligned to the pixel
|
||||||
|
* grid. And for rectangular windows without a shape, the outline that
|
||||||
|
* we draw for an unrotated window is always a rectangle because we
|
||||||
|
* don't use antialasing for the window boundary - with or without
|
||||||
|
* filtering, with or without a scale. But figuring out exactly
|
||||||
|
* what pixels will be drawn by the graphics system in these cases
|
||||||
|
* gets tricky, so we just go for the easiest part - no scale,
|
||||||
|
* and at integer offsets.)
|
||||||
|
*
|
||||||
|
* The way we check for pixel-aligned is by looking at the
|
||||||
|
* transformation into screen space of the allocation box of an actor
|
||||||
|
* and and checking if the corners are "close enough" to integral
|
||||||
|
* pixel values.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* The definition of "close enough" to integral pixel values is
|
||||||
|
* equality when we convert to 24.8 fixed-point.
|
||||||
|
*/
|
||||||
|
static inline int
|
||||||
|
round_to_fixed (float x)
|
||||||
|
{
|
||||||
|
return roundf (x * 256);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* This helper function checks if (according to our fixed point precision)
|
||||||
|
* the vertices @verts form a box of width @widthf and height @heightf
|
||||||
|
* located at integral coordinates. These coordinates are returned
|
||||||
|
* in @x_origin and @y_origin.
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
meta_actor_vertices_are_untransformed (ClutterVertex *verts,
|
||||||
|
float widthf,
|
||||||
|
float heightf,
|
||||||
|
int *x_origin,
|
||||||
|
int *y_origin)
|
||||||
|
{
|
||||||
|
int width, height;
|
||||||
|
int v0x, v0y, v1x, v1y, v2x, v2y, v3x, v3y;
|
||||||
|
int x, y;
|
||||||
|
|
||||||
|
width = round_to_fixed (widthf); height = round_to_fixed (heightf);
|
||||||
|
|
||||||
|
v0x = round_to_fixed (verts[0].x); v0y = round_to_fixed (verts[0].y);
|
||||||
|
v1x = round_to_fixed (verts[1].x); v1y = round_to_fixed (verts[1].y);
|
||||||
|
v2x = round_to_fixed (verts[2].x); v2y = round_to_fixed (verts[2].y);
|
||||||
|
v3x = round_to_fixed (verts[3].x); v3y = round_to_fixed (verts[3].y);
|
||||||
|
|
||||||
|
/* Using shifting for converting fixed => int, gets things right for
|
||||||
|
* negative values. / 256. wouldn't do the same
|
||||||
|
*/
|
||||||
|
x = v0x >> 8;
|
||||||
|
y = v0y >> 8;
|
||||||
|
|
||||||
|
/* At integral coordinates? */
|
||||||
|
if (x * 256 != v0x || y * 256 != v0y)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
/* Not scaled? */
|
||||||
|
if (v1x - v0x != width || v2y - v0y != height)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
/* Not rotated/skewed? */
|
||||||
|
if (v0x != v2x || v0y != v1y ||
|
||||||
|
v3x != v1x || v3y != v2y)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
*x_origin = x;
|
||||||
|
*y_origin = y;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check if an actor is "untransformed" - which actually means transformed by
|
||||||
|
* at most a integer-translation. The integer translation, if any, is returned.
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
meta_actor_is_untransformed (ClutterActor *actor,
|
||||||
|
int *x_origin,
|
||||||
|
int *y_origin)
|
||||||
|
{
|
||||||
|
gfloat widthf, heightf;
|
||||||
|
ClutterVertex verts[4];
|
||||||
|
|
||||||
|
clutter_actor_get_size (actor, &widthf, &heightf);
|
||||||
|
clutter_actor_get_abs_allocation_vertices (actor, verts);
|
||||||
|
|
||||||
|
return meta_actor_vertices_are_untransformed (verts, widthf, heightf, x_origin, y_origin);
|
||||||
|
}
|
||||||
|
|
@@ -1,9 +1,8 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
|
||||||
/* Mutter X event source for main loop */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2001 Havoc Pennington
|
* Utilities for use with Clutter
|
||||||
|
*
|
||||||
|
* Copyright 2010 Red Hat, Inc.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License as
|
* modify it under the terms of the GNU General Public License as
|
||||||
@@ -21,20 +20,17 @@
|
|||||||
* 02111-1307, USA.
|
* 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef META_EVENT_QUEUE_H
|
#ifndef __META_CLUTTER_UTILS_H__
|
||||||
#define META_EVENT_QUEUE_H
|
#define __META_CLUTTER_UTILS_H__
|
||||||
|
|
||||||
#include <glib.h>
|
#include <clutter/clutter.h>
|
||||||
#include <X11/Xlib.h>
|
gboolean meta_actor_vertices_are_untransformed (ClutterVertex *verts,
|
||||||
|
float widthf,
|
||||||
|
float heightf,
|
||||||
|
int *x_origin,
|
||||||
|
int *y_origin);
|
||||||
|
gboolean meta_actor_is_untransformed (ClutterActor *actor,
|
||||||
|
int *x_origin,
|
||||||
|
int *y_origin);
|
||||||
|
|
||||||
typedef struct _MetaEventQueue MetaEventQueue;
|
#endif /* __META_CLUTTER_UTILS_H__ */
|
||||||
|
|
||||||
typedef void (* MetaEventQueueFunc) (XEvent *event,
|
|
||||||
gpointer data);
|
|
||||||
|
|
||||||
MetaEventQueue* meta_event_queue_new (Display *display,
|
|
||||||
MetaEventQueueFunc func,
|
|
||||||
gpointer data);
|
|
||||||
void meta_event_queue_free (MetaEventQueue *eq);
|
|
||||||
|
|
||||||
#endif
|
|
@@ -21,14 +21,15 @@
|
|||||||
* 02111-1307, USA.
|
* 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <clutter/clutter.h>
|
||||||
#include "cogl-utils.h"
|
#include "cogl-utils.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* meta_create_color_texture_4ub:
|
* meta_create_color_texture_4ub:
|
||||||
* @red:
|
* @red: red component
|
||||||
* @green:
|
* @green: green component
|
||||||
* @blue:
|
* @blue: blue component
|
||||||
* @alpha:
|
* @alpha: alpha component
|
||||||
* @flags: Optional flags for the texture, or %COGL_TEXTURE_NONE;
|
* @flags: Optional flags for the texture, or %COGL_TEXTURE_NONE;
|
||||||
* %COGL_TEXTURE_NO_SLICING is useful if the texture will be
|
* %COGL_TEXTURE_NO_SLICING is useful if the texture will be
|
||||||
* repeated to create a constant color fill, since hardware
|
* repeated to create a constant color fill, since hardware
|
||||||
@@ -39,7 +40,7 @@
|
|||||||
*
|
*
|
||||||
* Return value: (transfer full): a newly created Cogl texture
|
* Return value: (transfer full): a newly created Cogl texture
|
||||||
*/
|
*/
|
||||||
CoglHandle
|
CoglTexture *
|
||||||
meta_create_color_texture_4ub (guint8 red,
|
meta_create_color_texture_4ub (guint8 red,
|
||||||
guint8 green,
|
guint8 green,
|
||||||
guint8 blue,
|
guint8 blue,
|
||||||
@@ -68,43 +69,45 @@ meta_create_color_texture_4ub (guint8 red,
|
|||||||
/* Based on gnome-shell/src/st/st-private.c:_st_create_texture_material.c */
|
/* Based on gnome-shell/src/st/st-private.c:_st_create_texture_material.c */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* meta_create_texture_material:
|
* meta_create_texture_pipeline:
|
||||||
* @src_texture: (allow-none): texture to use initially for the layer
|
* @src_texture: (allow-none): texture to use initially for the layer
|
||||||
*
|
*
|
||||||
* Creates a material with a single layer. Using a common template
|
* Creates a pipeline with a single layer. Using a common template
|
||||||
* allows sharing a shader for different uses in Mutter. To share the same
|
* allows sharing a shader for different uses in Mutter. To share the same
|
||||||
* shader with all other materials that are just texture plus opacity
|
* shader with all other pipelines that are just texture plus opacity
|
||||||
* would require Cogl fixes.
|
* would require Cogl fixes.
|
||||||
* (See http://bugzilla.clutter-project.org/show_bug.cgi?id=2425)
|
* (See http://bugzilla.clutter-project.org/show_bug.cgi?id=2425)
|
||||||
*
|
*
|
||||||
* Return value: (transfer full): a newly created Cogl material
|
* Return value: (transfer full): a newly created #CoglPipeline
|
||||||
*/
|
*/
|
||||||
CoglHandle
|
CoglPipeline *
|
||||||
meta_create_texture_material (CoglHandle src_texture)
|
meta_create_texture_pipeline (CoglTexture *src_texture)
|
||||||
{
|
{
|
||||||
static CoglHandle texture_material_template = COGL_INVALID_HANDLE;
|
static CoglPipeline *texture_pipeline_template = NULL;
|
||||||
CoglHandle material;
|
CoglPipeline *pipeline;
|
||||||
|
|
||||||
/* We use a material that has a dummy texture as a base for all
|
/* We use a pipeline that has a dummy texture as a base for all
|
||||||
texture materials. The idea is that only the Cogl texture object
|
texture pipelines. The idea is that only the Cogl texture object
|
||||||
would be different in the children so it is likely that Cogl will
|
would be different in the children so it is likely that Cogl will
|
||||||
be able to share GL programs between all the textures. */
|
be able to share GL programs between all the textures. */
|
||||||
if (G_UNLIKELY (texture_material_template == COGL_INVALID_HANDLE))
|
if (G_UNLIKELY (texture_pipeline_template == NULL))
|
||||||
{
|
{
|
||||||
CoglHandle dummy_texture;
|
CoglTexture *dummy_texture;
|
||||||
|
CoglContext *ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
|
||||||
|
|
||||||
dummy_texture = meta_create_color_texture_4ub (0xff, 0xff, 0xff, 0xff,
|
dummy_texture = meta_create_color_texture_4ub (0xff, 0xff, 0xff, 0xff,
|
||||||
COGL_TEXTURE_NONE);
|
COGL_TEXTURE_NONE);
|
||||||
|
|
||||||
texture_material_template = cogl_material_new ();
|
|
||||||
cogl_material_set_layer (texture_material_template, 0, dummy_texture);
|
texture_pipeline_template = cogl_pipeline_new (ctx);
|
||||||
cogl_handle_unref (dummy_texture);
|
cogl_pipeline_set_layer_texture (texture_pipeline_template, 0, dummy_texture);
|
||||||
|
cogl_object_unref (dummy_texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
material = cogl_material_copy (texture_material_template);
|
pipeline = cogl_pipeline_copy (texture_pipeline_template);
|
||||||
|
|
||||||
if (src_texture != COGL_INVALID_HANDLE)
|
if (src_texture != NULL)
|
||||||
cogl_material_set_layer (material, 0, src_texture);
|
cogl_pipeline_set_layer_texture (pipeline, 0, src_texture);
|
||||||
|
|
||||||
return material;
|
return pipeline;
|
||||||
}
|
}
|
||||||
|
@@ -25,11 +25,11 @@
|
|||||||
|
|
||||||
#include <cogl/cogl.h>
|
#include <cogl/cogl.h>
|
||||||
|
|
||||||
CoglHandle meta_create_color_texture_4ub (guint8 red,
|
CoglTexture * meta_create_color_texture_4ub (guint8 red,
|
||||||
guint8 green,
|
guint8 green,
|
||||||
guint8 blue,
|
guint8 blue,
|
||||||
guint8 alpha,
|
guint8 alpha,
|
||||||
CoglTextureFlags flags);
|
CoglTextureFlags flags);
|
||||||
CoglHandle meta_create_texture_material (CoglHandle src_texture);
|
CoglPipeline * meta_create_texture_pipeline (CoglTexture *texture);
|
||||||
|
|
||||||
#endif /* __META_COGL_UTILS_H__ */
|
#endif /* __META_COGL_UTILS_H__ */
|
||||||
|
@@ -18,7 +18,6 @@ struct _MetaCompositor
|
|||||||
MetaDisplay *display;
|
MetaDisplay *display;
|
||||||
|
|
||||||
Atom atom_x_root_pixmap;
|
Atom atom_x_root_pixmap;
|
||||||
Atom atom_x_set_root;
|
|
||||||
Atom atom_net_wm_window_opacity;
|
Atom atom_net_wm_window_opacity;
|
||||||
guint repaint_func_id;
|
guint repaint_func_id;
|
||||||
|
|
||||||
@@ -26,22 +25,28 @@ struct _MetaCompositor
|
|||||||
|
|
||||||
MetaPlugin *modal_plugin;
|
MetaPlugin *modal_plugin;
|
||||||
|
|
||||||
gboolean show_redraw : 1;
|
gint64 server_time_query_time;
|
||||||
gboolean debug : 1;
|
gint64 server_time_offset;
|
||||||
gboolean no_mipmaps : 1;
|
|
||||||
|
guint server_time_is_monotonic_time : 1;
|
||||||
|
guint show_redraw : 1;
|
||||||
|
guint debug : 1;
|
||||||
|
guint no_mipmaps : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _MetaCompScreen
|
struct _MetaCompScreen
|
||||||
{
|
{
|
||||||
MetaScreen *screen;
|
MetaScreen *screen;
|
||||||
|
|
||||||
ClutterActor *stage, *window_group, *overlay_group;
|
ClutterActor *stage, *window_group, *top_window_group, *overlay_group;
|
||||||
ClutterActor *background_actor;
|
ClutterActor *background_actor;
|
||||||
ClutterActor *hidden_group;
|
|
||||||
GList *windows;
|
GList *windows;
|
||||||
GHashTable *windows_by_xid;
|
GHashTable *windows_by_xid;
|
||||||
Window output;
|
Window output;
|
||||||
|
|
||||||
|
CoglOnscreen *onscreen;
|
||||||
|
CoglFrameClosure *frame_closure;
|
||||||
|
|
||||||
/* Used for unredirecting fullscreen windows */
|
/* Used for unredirecting fullscreen windows */
|
||||||
guint disable_unredirect_count;
|
guint disable_unredirect_count;
|
||||||
MetaWindowActor *unredirected_window;
|
MetaWindowActor *unredirected_window;
|
||||||
@@ -54,6 +59,9 @@ struct _MetaCompScreen
|
|||||||
MetaPluginManager *plugin_mgr;
|
MetaPluginManager *plugin_mgr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Wait 2ms after vblank before starting to draw next frame */
|
||||||
|
#define META_SYNC_DELAY 2
|
||||||
|
|
||||||
void meta_switch_workspace_completed (MetaScreen *screen);
|
void meta_switch_workspace_completed (MetaScreen *screen);
|
||||||
|
|
||||||
gboolean meta_begin_modal_for_plugin (MetaScreen *screen,
|
gboolean meta_begin_modal_for_plugin (MetaScreen *screen,
|
||||||
@@ -66,6 +74,9 @@ void meta_end_modal_for_plugin (MetaScreen *screen,
|
|||||||
MetaPlugin *plugin,
|
MetaPlugin *plugin,
|
||||||
guint32 timestamp);
|
guint32 timestamp);
|
||||||
|
|
||||||
|
gint64 meta_compositor_monotonic_time_to_server_time (MetaDisplay *display,
|
||||||
|
gint64 monotonic_time);
|
||||||
|
|
||||||
void meta_check_end_modal (MetaScreen *screen);
|
void meta_check_end_modal (MetaScreen *screen);
|
||||||
|
|
||||||
#endif /* META_COMPOSITOR_PRIVATE_H */
|
#endif /* META_COMPOSITOR_PRIVATE_H */
|
||||||
|
@@ -1,9 +1,76 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SECTION:compositor
|
||||||
|
* @Title: MetaCompositor
|
||||||
|
* @Short_Description: Compositor API
|
||||||
|
*
|
||||||
|
* At a high-level, a window is not-visible or visible. When a
|
||||||
|
* window is added (with meta_compositor_add_window()) it is not visible.
|
||||||
|
* meta_compositor_show_window() indicates a transition from not-visible to
|
||||||
|
* visible. Some of the reasons for this:
|
||||||
|
*
|
||||||
|
* - Window newly created
|
||||||
|
* - Window is unminimized
|
||||||
|
* - Window is moved to the current desktop
|
||||||
|
* - Window was made sticky
|
||||||
|
*
|
||||||
|
* meta_compositor_hide_window() indicates that the window has transitioned from
|
||||||
|
* visible to not-visible. Some reasons include:
|
||||||
|
*
|
||||||
|
* - Window was destroyed
|
||||||
|
* - Window is minimized
|
||||||
|
* - Window is moved to a different desktop
|
||||||
|
* - Window no longer sticky.
|
||||||
|
*
|
||||||
|
* Note that combinations are possible - a window might have first
|
||||||
|
* been minimized and then moved to a different desktop. The 'effect' parameter
|
||||||
|
* to meta_compositor_show_window() and meta_compositor_hide_window() is a hint
|
||||||
|
* as to the appropriate effect to show the user and should not
|
||||||
|
* be considered to be indicative of a state change.
|
||||||
|
*
|
||||||
|
* When the active workspace is changed, meta_compositor_switch_workspace() is
|
||||||
|
* called first, then meta_compositor_show_window() and
|
||||||
|
* meta_compositor_hide_window() are called individually for each window
|
||||||
|
* affected, with an effect of META_COMP_EFFECT_NONE.
|
||||||
|
* If hiding windows will affect the switch workspace animation, the
|
||||||
|
* compositor needs to delay hiding the windows until the switch
|
||||||
|
* workspace animation completes.
|
||||||
|
*
|
||||||
|
* meta_compositor_maximize_window() and meta_compositor_unmaximize_window()
|
||||||
|
* are transitions within the visible state. The window is resized __before__
|
||||||
|
* the call, so it may be necessary to readjust the display based on the
|
||||||
|
* old_rect to start the animation.
|
||||||
|
*
|
||||||
|
* meta_compositor_window_mapped() and meta_compositor_window_unmapped() are
|
||||||
|
* notifications when the toplevel window (frame or client window) is mapped or
|
||||||
|
* unmapped. That is, when the result of meta_window_toplevel_is_mapped()
|
||||||
|
* changes. The main use of this is to drop resources when a window is unmapped.
|
||||||
|
* A window will always be mapped before meta_compositor_show_window()
|
||||||
|
* is called and will not be unmapped until after meta_compositor_hide_window()
|
||||||
|
* is called. If the live_hidden_windows preference is set, windows will never
|
||||||
|
* be unmapped.
|
||||||
|
*
|
||||||
|
* # Containers #
|
||||||
|
*
|
||||||
|
* There's three containers in the stage that can be used to place actors, here
|
||||||
|
* are listed in the order in which they are painted:
|
||||||
|
*
|
||||||
|
* - window group, accessible with meta_get_window_group_for_screen()
|
||||||
|
* - top window group, accessible with meta_get_top_window_group_for_screen()
|
||||||
|
* - overlay group, accessible with meta_get_overlay_group_for_screen()
|
||||||
|
*
|
||||||
|
* Mutter will place actors representing windows in the window group, except for
|
||||||
|
* override-redirect windows (ie. popups and menus) which will be placed in the
|
||||||
|
* top window group. Mutter won't put any actors in the overlay group, but it's
|
||||||
|
* intended for compositors to place there panel, dashes, status bars, etc.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include <clutter/x11/clutter-x11.h>
|
#include <clutter/x11/clutter-x11.h>
|
||||||
|
|
||||||
|
#include "core.h"
|
||||||
#include <meta/screen.h>
|
#include <meta/screen.h>
|
||||||
#include <meta/errors.h>
|
#include <meta/errors.h>
|
||||||
#include <meta/window.h>
|
#include <meta/window.h>
|
||||||
@@ -12,10 +79,11 @@
|
|||||||
#include "xprops.h"
|
#include "xprops.h"
|
||||||
#include <meta/prefs.h>
|
#include <meta/prefs.h>
|
||||||
#include <meta/main.h>
|
#include <meta/main.h>
|
||||||
|
#include <meta/meta-background-actor.h>
|
||||||
|
#include <meta/meta-background-group.h>
|
||||||
#include <meta/meta-shadow-factory.h>
|
#include <meta/meta-shadow-factory.h>
|
||||||
#include "meta-window-actor-private.h"
|
#include "meta-window-actor-private.h"
|
||||||
#include "meta-window-group.h"
|
#include "meta-window-group.h"
|
||||||
#include "meta-background-actor-private.h"
|
|
||||||
#include "window-private.h" /* to check window->hidden */
|
#include "window-private.h" /* to check window->hidden */
|
||||||
#include "display-private.h" /* for meta_display_lookup_x_window() */
|
#include "display-private.h" /* for meta_display_lookup_x_window() */
|
||||||
#include <X11/extensions/shape.h>
|
#include <X11/extensions/shape.h>
|
||||||
@@ -116,21 +184,6 @@ process_property_notify (MetaCompositor *compositor,
|
|||||||
{
|
{
|
||||||
MetaWindowActor *window_actor;
|
MetaWindowActor *window_actor;
|
||||||
|
|
||||||
if (event->atom == compositor->atom_x_root_pixmap)
|
|
||||||
{
|
|
||||||
GSList *l;
|
|
||||||
|
|
||||||
for (l = meta_display_get_screens (compositor->display); l; l = l->next)
|
|
||||||
{
|
|
||||||
MetaScreen *screen = l->data;
|
|
||||||
if (event->window == meta_screen_get_xroot (screen))
|
|
||||||
{
|
|
||||||
meta_background_actor_update (screen);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (window == NULL)
|
if (window == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -157,23 +210,28 @@ get_output_window (MetaScreen *screen)
|
|||||||
Window output, xroot;
|
Window output, xroot;
|
||||||
XWindowAttributes attr;
|
XWindowAttributes attr;
|
||||||
long event_mask;
|
long event_mask;
|
||||||
|
unsigned char mask_bits[XIMaskLen (XI_LASTEVENT)] = { 0 };
|
||||||
|
XIEventMask mask = { XIAllMasterDevices, sizeof (mask_bits), mask_bits };
|
||||||
|
|
||||||
xroot = meta_screen_get_xroot (screen);
|
xroot = meta_screen_get_xroot (screen);
|
||||||
|
|
||||||
event_mask = FocusChangeMask |
|
|
||||||
ExposureMask |
|
|
||||||
EnterWindowMask | LeaveWindowMask |
|
|
||||||
PointerMotionMask |
|
|
||||||
PropertyChangeMask |
|
|
||||||
ButtonPressMask | ButtonReleaseMask |
|
|
||||||
KeyPressMask | KeyReleaseMask;
|
|
||||||
|
|
||||||
output = XCompositeGetOverlayWindow (xdisplay, xroot);
|
output = XCompositeGetOverlayWindow (xdisplay, xroot);
|
||||||
|
|
||||||
|
meta_core_add_old_event_mask (xdisplay, output, &mask);
|
||||||
|
|
||||||
|
XISetMask (mask.mask, XI_KeyPress);
|
||||||
|
XISetMask (mask.mask, XI_KeyRelease);
|
||||||
|
XISetMask (mask.mask, XI_ButtonPress);
|
||||||
|
XISetMask (mask.mask, XI_ButtonRelease);
|
||||||
|
XISetMask (mask.mask, XI_Enter);
|
||||||
|
XISetMask (mask.mask, XI_Leave);
|
||||||
|
XISetMask (mask.mask, XI_FocusIn);
|
||||||
|
XISetMask (mask.mask, XI_FocusOut);
|
||||||
|
XISetMask (mask.mask, XI_Motion);
|
||||||
|
XISelectEvents (xdisplay, output, &mask, 1);
|
||||||
|
|
||||||
|
event_mask = ExposureMask | PropertyChangeMask;
|
||||||
if (XGetWindowAttributes (xdisplay, output, &attr))
|
if (XGetWindowAttributes (xdisplay, output, &attr))
|
||||||
{
|
event_mask |= attr.your_event_mask;
|
||||||
event_mask |= attr.your_event_mask;
|
|
||||||
}
|
|
||||||
|
|
||||||
XSelectInput (xdisplay, output, event_mask);
|
XSelectInput (xdisplay, output, event_mask);
|
||||||
|
|
||||||
@@ -232,24 +290,20 @@ meta_get_window_group_for_screen (MetaScreen *screen)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* meta_get_background_actor_for_screen:
|
* meta_get_top_window_group_for_screen:
|
||||||
* @screen: a #MetaScreen
|
* @screen: a #MetaScreen
|
||||||
*
|
*
|
||||||
* Gets the actor that draws the root window background under the windows.
|
* Returns: (transfer none): The top window group corresponding to @screen
|
||||||
* The root window background automatically tracks the image or color set
|
|
||||||
* by the environment.
|
|
||||||
*
|
|
||||||
* Returns: (transfer none): The background actor corresponding to @screen
|
|
||||||
*/
|
*/
|
||||||
ClutterActor *
|
ClutterActor *
|
||||||
meta_get_background_actor_for_screen (MetaScreen *screen)
|
meta_get_top_window_group_for_screen (MetaScreen *screen)
|
||||||
{
|
{
|
||||||
MetaCompScreen *info = meta_screen_get_compositor_data (screen);
|
MetaCompScreen *info = meta_screen_get_compositor_data (screen);
|
||||||
|
|
||||||
if (!info)
|
if (!info)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return info->background_actor;
|
return info->top_window_group;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -358,14 +412,23 @@ meta_begin_modal_for_plugin (MetaScreen *screen,
|
|||||||
|
|
||||||
if ((options & META_MODAL_POINTER_ALREADY_GRABBED) == 0)
|
if ((options & META_MODAL_POINTER_ALREADY_GRABBED) == 0)
|
||||||
{
|
{
|
||||||
result = XGrabPointer (xdpy, grab_window,
|
unsigned char mask_bits[XIMaskLen (XI_LASTEVENT)] = { 0 };
|
||||||
False, /* owner_events */
|
XIEventMask mask = { XIAllMasterDevices, sizeof (mask_bits), mask_bits };
|
||||||
(ButtonPressMask | ButtonReleaseMask |
|
|
||||||
EnterWindowMask | LeaveWindowMask | PointerMotionMask),
|
XISetMask (mask.mask, XI_ButtonPress);
|
||||||
GrabModeAsync, GrabModeAsync,
|
XISetMask (mask.mask, XI_ButtonRelease);
|
||||||
None, /* confine to */
|
XISetMask (mask.mask, XI_Enter);
|
||||||
|
XISetMask (mask.mask, XI_Leave);
|
||||||
|
XISetMask (mask.mask, XI_Motion);
|
||||||
|
|
||||||
|
result = XIGrabDevice (xdpy,
|
||||||
|
META_VIRTUAL_CORE_POINTER_ID,
|
||||||
|
grab_window,
|
||||||
|
timestamp,
|
||||||
cursor,
|
cursor,
|
||||||
timestamp);
|
XIGrabModeAsync, XIGrabModeAsync,
|
||||||
|
False, /* owner_events */
|
||||||
|
&mask);
|
||||||
if (result != Success)
|
if (result != Success)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
@@ -374,10 +437,20 @@ meta_begin_modal_for_plugin (MetaScreen *screen,
|
|||||||
|
|
||||||
if ((options & META_MODAL_KEYBOARD_ALREADY_GRABBED) == 0)
|
if ((options & META_MODAL_KEYBOARD_ALREADY_GRABBED) == 0)
|
||||||
{
|
{
|
||||||
result = XGrabKeyboard (xdpy, grab_window,
|
unsigned char mask_bits[XIMaskLen (XI_LASTEVENT)] = { 0 };
|
||||||
False, /* owner_events */
|
XIEventMask mask = { XIAllMasterDevices, sizeof (mask_bits), mask_bits };
|
||||||
GrabModeAsync, GrabModeAsync,
|
|
||||||
timestamp);
|
XISetMask (mask.mask, XI_KeyPress);
|
||||||
|
XISetMask (mask.mask, XI_KeyRelease);
|
||||||
|
|
||||||
|
result = XIGrabDevice (xdpy,
|
||||||
|
META_VIRTUAL_CORE_KEYBOARD_ID,
|
||||||
|
grab_window,
|
||||||
|
timestamp,
|
||||||
|
None,
|
||||||
|
XIGrabModeAsync, XIGrabModeAsync,
|
||||||
|
False, /* owner_events */
|
||||||
|
&mask);
|
||||||
|
|
||||||
if (result != Success)
|
if (result != Success)
|
||||||
goto fail;
|
goto fail;
|
||||||
@@ -397,9 +470,9 @@ meta_begin_modal_for_plugin (MetaScreen *screen,
|
|||||||
|
|
||||||
fail:
|
fail:
|
||||||
if (pointer_grabbed)
|
if (pointer_grabbed)
|
||||||
XUngrabPointer (xdpy, timestamp);
|
XIUngrabDevice (xdpy, META_VIRTUAL_CORE_POINTER_ID, timestamp);
|
||||||
if (keyboard_grabbed)
|
if (keyboard_grabbed)
|
||||||
XUngrabKeyboard (xdpy, timestamp);
|
XIUngrabDevice (xdpy, META_VIRTUAL_CORE_KEYBOARD_ID, timestamp);
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@@ -415,8 +488,8 @@ meta_end_modal_for_plugin (MetaScreen *screen,
|
|||||||
|
|
||||||
g_return_if_fail (compositor->modal_plugin == plugin);
|
g_return_if_fail (compositor->modal_plugin == plugin);
|
||||||
|
|
||||||
XUngrabPointer (xdpy, timestamp);
|
XIUngrabDevice (xdpy, META_VIRTUAL_CORE_POINTER_ID, timestamp);
|
||||||
XUngrabKeyboard (xdpy, timestamp);
|
XIUngrabDevice (xdpy, META_VIRTUAL_CORE_KEYBOARD_ID, timestamp);
|
||||||
|
|
||||||
display->grab_op = META_GRAB_OP_NONE;
|
display->grab_op = META_GRAB_OP_NONE;
|
||||||
display->grab_window = NULL;
|
display->grab_window = NULL;
|
||||||
@@ -445,25 +518,28 @@ meta_check_end_modal (MetaScreen *screen)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static gboolean
|
||||||
meta_compositor_manage_screen (MetaCompositor *compositor,
|
after_stage_paint (gpointer data)
|
||||||
MetaScreen *screen)
|
|
||||||
{
|
{
|
||||||
MetaCompScreen *info;
|
MetaCompScreen *info = (MetaCompScreen*) data;
|
||||||
MetaDisplay *display = meta_screen_get_display (screen);
|
GList *l;
|
||||||
Display *xdisplay = meta_display_get_xdisplay (display);
|
|
||||||
int screen_number = meta_screen_get_screen_number (screen);
|
|
||||||
Window xroot = meta_screen_get_xroot (screen);
|
|
||||||
Window xwin;
|
|
||||||
gint width, height;
|
|
||||||
XWindowAttributes attr;
|
|
||||||
long event_mask;
|
|
||||||
guint n_retries;
|
|
||||||
guint max_retries;
|
|
||||||
|
|
||||||
/* Check if the screen is already managed */
|
for (l = info->windows; l; l = l->next)
|
||||||
if (meta_screen_get_compositor_data (screen))
|
meta_window_actor_post_paint (l->data);
|
||||||
return;
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
redirect_windows (MetaCompositor *compositor,
|
||||||
|
MetaScreen *screen)
|
||||||
|
{
|
||||||
|
MetaDisplay *display = meta_screen_get_display (screen);
|
||||||
|
Display *xdisplay = meta_display_get_xdisplay (display);
|
||||||
|
Window xroot = meta_screen_get_xroot (screen);
|
||||||
|
int screen_number = meta_screen_get_screen_number (screen);
|
||||||
|
guint n_retries;
|
||||||
|
guint max_retries;
|
||||||
|
|
||||||
if (meta_get_replace_current_wm ())
|
if (meta_get_replace_current_wm ())
|
||||||
max_retries = 5;
|
max_retries = 5;
|
||||||
@@ -496,6 +572,21 @@ meta_compositor_manage_screen (MetaCompositor *compositor,
|
|||||||
n_retries++;
|
n_retries++;
|
||||||
g_usleep (G_USEC_PER_SEC);
|
g_usleep (G_USEC_PER_SEC);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_compositor_manage_screen (MetaCompositor *compositor,
|
||||||
|
MetaScreen *screen)
|
||||||
|
{
|
||||||
|
MetaCompScreen *info;
|
||||||
|
MetaDisplay *display = meta_screen_get_display (screen);
|
||||||
|
Display *xdisplay = meta_display_get_xdisplay (display);
|
||||||
|
Window xwin;
|
||||||
|
gint width, height;
|
||||||
|
|
||||||
|
/* Check if the screen is already managed */
|
||||||
|
if (meta_screen_get_compositor_data (screen))
|
||||||
|
return;
|
||||||
|
|
||||||
info = g_new0 (MetaCompScreen, 1);
|
info = g_new0 (MetaCompScreen, 1);
|
||||||
/*
|
/*
|
||||||
@@ -517,6 +608,12 @@ meta_compositor_manage_screen (MetaCompositor *compositor,
|
|||||||
|
|
||||||
info->stage = clutter_stage_new ();
|
info->stage = clutter_stage_new ();
|
||||||
|
|
||||||
|
clutter_threads_add_repaint_func_full (CLUTTER_REPAINT_FLAGS_POST_PAINT,
|
||||||
|
after_stage_paint,
|
||||||
|
info, NULL);
|
||||||
|
|
||||||
|
clutter_stage_set_sync_delay (CLUTTER_STAGE (info->stage), META_SYNC_DELAY);
|
||||||
|
|
||||||
meta_screen_get_size (screen, &width, &height);
|
meta_screen_get_size (screen, &width, &height);
|
||||||
clutter_actor_realize (info->stage);
|
clutter_actor_realize (info->stage);
|
||||||
|
|
||||||
@@ -524,38 +621,39 @@ meta_compositor_manage_screen (MetaCompositor *compositor,
|
|||||||
|
|
||||||
XResizeWindow (xdisplay, xwin, width, height);
|
XResizeWindow (xdisplay, xwin, width, height);
|
||||||
|
|
||||||
event_mask = FocusChangeMask |
|
{
|
||||||
ExposureMask |
|
long event_mask;
|
||||||
EnterWindowMask | LeaveWindowMask |
|
unsigned char mask_bits[XIMaskLen (XI_LASTEVENT)] = { 0 };
|
||||||
PointerMotionMask |
|
XIEventMask mask = { XIAllMasterDevices, sizeof (mask_bits), mask_bits };
|
||||||
PropertyChangeMask |
|
XWindowAttributes attr;
|
||||||
ButtonPressMask | ButtonReleaseMask |
|
|
||||||
KeyPressMask | KeyReleaseMask |
|
|
||||||
StructureNotifyMask;
|
|
||||||
|
|
||||||
if (XGetWindowAttributes (xdisplay, xwin, &attr))
|
meta_core_add_old_event_mask (xdisplay, xwin, &mask);
|
||||||
{
|
|
||||||
event_mask |= attr.your_event_mask;
|
|
||||||
}
|
|
||||||
|
|
||||||
XSelectInput (xdisplay, xwin, event_mask);
|
XISetMask (mask.mask, XI_KeyPress);
|
||||||
|
XISetMask (mask.mask, XI_KeyRelease);
|
||||||
|
XISetMask (mask.mask, XI_ButtonPress);
|
||||||
|
XISetMask (mask.mask, XI_ButtonRelease);
|
||||||
|
XISetMask (mask.mask, XI_Enter);
|
||||||
|
XISetMask (mask.mask, XI_Leave);
|
||||||
|
XISetMask (mask.mask, XI_FocusIn);
|
||||||
|
XISetMask (mask.mask, XI_FocusOut);
|
||||||
|
XISetMask (mask.mask, XI_Motion);
|
||||||
|
XISelectEvents (xdisplay, xwin, &mask, 1);
|
||||||
|
|
||||||
|
event_mask = ExposureMask | PropertyChangeMask | StructureNotifyMask;
|
||||||
|
if (XGetWindowAttributes (xdisplay, xwin, &attr))
|
||||||
|
event_mask |= attr.your_event_mask;
|
||||||
|
|
||||||
|
XSelectInput (xdisplay, xwin, event_mask);
|
||||||
|
}
|
||||||
|
|
||||||
info->window_group = meta_window_group_new (screen);
|
info->window_group = meta_window_group_new (screen);
|
||||||
info->background_actor = meta_background_actor_new_for_screen (screen);
|
info->top_window_group = meta_window_group_new (screen);
|
||||||
info->overlay_group = clutter_group_new ();
|
info->overlay_group = clutter_actor_new ();
|
||||||
info->hidden_group = clutter_group_new ();
|
|
||||||
|
|
||||||
clutter_container_add (CLUTTER_CONTAINER (info->window_group),
|
clutter_actor_add_child (info->stage, info->window_group);
|
||||||
info->background_actor,
|
clutter_actor_add_child (info->stage, info->top_window_group);
|
||||||
NULL);
|
clutter_actor_add_child (info->stage, info->overlay_group);
|
||||||
|
|
||||||
clutter_container_add (CLUTTER_CONTAINER (info->stage),
|
|
||||||
info->window_group,
|
|
||||||
info->overlay_group,
|
|
||||||
info->hidden_group,
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
clutter_actor_hide (info->hidden_group);
|
|
||||||
|
|
||||||
info->plugin_mgr = meta_plugin_manager_new (screen);
|
info->plugin_mgr = meta_plugin_manager_new (screen);
|
||||||
|
|
||||||
@@ -587,7 +685,13 @@ meta_compositor_manage_screen (MetaCompositor *compositor,
|
|||||||
}
|
}
|
||||||
|
|
||||||
clutter_actor_show (info->overlay_group);
|
clutter_actor_show (info->overlay_group);
|
||||||
clutter_actor_show (info->stage);
|
|
||||||
|
/* Map overlay window before redirecting windows offscreen so we catch their
|
||||||
|
* contents until we show the stage.
|
||||||
|
*/
|
||||||
|
XMapWindow (xdisplay, info->output);
|
||||||
|
|
||||||
|
redirect_windows (compositor, screen);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -688,25 +792,53 @@ meta_compositor_remove_window (MetaCompositor *compositor,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_compositor_set_updates (MetaCompositor *compositor,
|
meta_compositor_set_updates_frozen (MetaCompositor *compositor,
|
||||||
MetaWindow *window,
|
MetaWindow *window,
|
||||||
gboolean updates)
|
gboolean updates_frozen)
|
||||||
{
|
{
|
||||||
|
MetaWindowActor *window_actor;
|
||||||
|
|
||||||
|
DEBUG_TRACE ("meta_compositor_set_updates_frozen\n");
|
||||||
|
window_actor = META_WINDOW_ACTOR (meta_window_get_compositor_private (window));
|
||||||
|
if (!window_actor)
|
||||||
|
return;
|
||||||
|
|
||||||
|
meta_window_actor_set_updates_frozen (window_actor, updates_frozen);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_compositor_queue_frame_drawn (MetaCompositor *compositor,
|
||||||
|
MetaWindow *window,
|
||||||
|
gboolean no_delay_frame)
|
||||||
|
{
|
||||||
|
MetaWindowActor *window_actor;
|
||||||
|
|
||||||
|
DEBUG_TRACE ("meta_compositor_queue_frame_drawn\n");
|
||||||
|
window_actor = META_WINDOW_ACTOR (meta_window_get_compositor_private (window));
|
||||||
|
if (!window_actor)
|
||||||
|
return;
|
||||||
|
|
||||||
|
meta_window_actor_queue_frame_drawn (window_actor, no_delay_frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
is_grabbed_event (XEvent *event)
|
is_grabbed_event (MetaDisplay *display,
|
||||||
|
XEvent *event)
|
||||||
{
|
{
|
||||||
switch (event->xany.type)
|
if (event->type == GenericEvent &&
|
||||||
|
event->xcookie.extension == display->xinput_opcode)
|
||||||
{
|
{
|
||||||
case ButtonPress:
|
XIEvent *xev = (XIEvent *) event->xcookie.data;
|
||||||
case ButtonRelease:
|
|
||||||
case EnterNotify:
|
switch (xev->evtype)
|
||||||
case LeaveNotify:
|
{
|
||||||
case MotionNotify:
|
case XI_Motion:
|
||||||
case KeyPress:
|
case XI_ButtonPress:
|
||||||
case KeyRelease:
|
case XI_ButtonRelease:
|
||||||
return TRUE;
|
case XI_KeyPress:
|
||||||
|
case XI_KeyRelease:
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -718,11 +850,63 @@ meta_compositor_window_shape_changed (MetaCompositor *compositor,
|
|||||||
{
|
{
|
||||||
MetaWindowActor *window_actor;
|
MetaWindowActor *window_actor;
|
||||||
window_actor = META_WINDOW_ACTOR (meta_window_get_compositor_private (window));
|
window_actor = META_WINDOW_ACTOR (meta_window_get_compositor_private (window));
|
||||||
|
if (!window_actor)
|
||||||
|
return;
|
||||||
|
|
||||||
meta_window_actor_update_shape (window_actor);
|
meta_window_actor_update_shape (window_actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Clutter makes the assumption that there is only one X window
|
||||||
|
* per stage, which is a valid assumption to make for a generic
|
||||||
|
* application toolkit. As such, it will ignore any events sent
|
||||||
|
* to the a stage that isn't its X window.
|
||||||
|
*
|
||||||
|
* When a user clicks on what she thinks is the wallpaper, she
|
||||||
|
* is actually clicking on the guard window, which is an entirely
|
||||||
|
* separate top-level override-redirect window in the hierarchy.
|
||||||
|
* We want to recieve events on this guard window so that users
|
||||||
|
* can right-click on the background actor. We do this by telling
|
||||||
|
* Clutter a little white lie, by transforming clicks on the guard
|
||||||
|
* window to become clicks on the stage window, allowing Clutter
|
||||||
|
* to process the event normally.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
maybe_spoof_guard_window_event_as_stage_event (MetaCompScreen *info,
|
||||||
|
XEvent *event)
|
||||||
|
{
|
||||||
|
MetaDisplay *display = meta_screen_get_display (info->screen);
|
||||||
|
|
||||||
|
if (event->type == GenericEvent &&
|
||||||
|
event->xcookie.extension == display->xinput_opcode)
|
||||||
|
{
|
||||||
|
XIEvent *input_event = (XIEvent *) event->xcookie.data;
|
||||||
|
|
||||||
|
/* Only care about pointer events for now. */
|
||||||
|
switch (input_event->evtype)
|
||||||
|
{
|
||||||
|
case XI_Motion:
|
||||||
|
case XI_ButtonPress:
|
||||||
|
case XI_ButtonRelease:
|
||||||
|
{
|
||||||
|
XIDeviceEvent *device_event = ((XIDeviceEvent *) input_event);
|
||||||
|
if (device_event->event == info->screen->guard_window)
|
||||||
|
{
|
||||||
|
Window xwin = clutter_x11_get_stage_window (CLUTTER_STAGE (info->stage));
|
||||||
|
device_event->event = xwin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* meta_compositor_process_event: (skip)
|
* meta_compositor_process_event: (skip)
|
||||||
|
* @compositor:
|
||||||
|
* @event:
|
||||||
|
* @window:
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
gboolean
|
gboolean
|
||||||
@@ -730,7 +914,7 @@ meta_compositor_process_event (MetaCompositor *compositor,
|
|||||||
XEvent *event,
|
XEvent *event,
|
||||||
MetaWindow *window)
|
MetaWindow *window)
|
||||||
{
|
{
|
||||||
if (compositor->modal_plugin && is_grabbed_event (event))
|
if (compositor->modal_plugin && is_grabbed_event (compositor->display, event))
|
||||||
{
|
{
|
||||||
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (compositor->modal_plugin);
|
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (compositor->modal_plugin);
|
||||||
|
|
||||||
@@ -769,6 +953,8 @@ meta_compositor_process_event (MetaCompositor *compositor,
|
|||||||
|
|
||||||
info = meta_screen_get_compositor_data (screen);
|
info = meta_screen_get_compositor_data (screen);
|
||||||
|
|
||||||
|
maybe_spoof_guard_window_event_as_stage_event (info, event);
|
||||||
|
|
||||||
if (meta_plugin_manager_xevent_filter (info->plugin_mgr, event))
|
if (meta_plugin_manager_xevent_filter (info->plugin_mgr, event))
|
||||||
{
|
{
|
||||||
DEBUG_TRACE ("meta_compositor_process_event (filtered,window==NULL)\n");
|
DEBUG_TRACE ("meta_compositor_process_event (filtered,window==NULL)\n");
|
||||||
@@ -815,6 +1001,19 @@ meta_compositor_process_event (MetaCompositor *compositor,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
meta_compositor_filter_keybinding (MetaCompositor *compositor,
|
||||||
|
MetaScreen *screen,
|
||||||
|
MetaKeyBinding *binding)
|
||||||
|
{
|
||||||
|
MetaCompScreen *info = meta_screen_get_compositor_data (screen);
|
||||||
|
|
||||||
|
if (info->plugin_mgr)
|
||||||
|
return meta_plugin_manager_filter_keybinding (info->plugin_mgr, binding);
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_compositor_show_window (MetaCompositor *compositor,
|
meta_compositor_show_window (MetaCompositor *compositor,
|
||||||
MetaWindow *window,
|
MetaWindow *window,
|
||||||
@@ -911,8 +1110,11 @@ static void
|
|||||||
sync_actor_stacking (MetaCompScreen *info)
|
sync_actor_stacking (MetaCompScreen *info)
|
||||||
{
|
{
|
||||||
GList *children;
|
GList *children;
|
||||||
|
GList *expected_window_node;
|
||||||
GList *tmp;
|
GList *tmp;
|
||||||
GList *old;
|
GList *old;
|
||||||
|
GList *backgrounds;
|
||||||
|
gboolean has_windows;
|
||||||
gboolean reordered;
|
gboolean reordered;
|
||||||
|
|
||||||
/* NB: The first entries in the lists are stacked the lowest */
|
/* NB: The first entries in the lists are stacked the lowest */
|
||||||
@@ -921,60 +1123,74 @@ sync_actor_stacking (MetaCompScreen *info)
|
|||||||
* little effort to make sure we actually need to restack before
|
* little effort to make sure we actually need to restack before
|
||||||
* we go ahead and do it */
|
* we go ahead and do it */
|
||||||
|
|
||||||
children = clutter_container_get_children (CLUTTER_CONTAINER (info->window_group));
|
children = clutter_actor_get_children (info->window_group);
|
||||||
reordered = FALSE;
|
reordered = FALSE;
|
||||||
|
|
||||||
old = children;
|
|
||||||
|
|
||||||
/* We allow for actors in the window group other than the actors we
|
/* We allow for actors in the window group other than the actors we
|
||||||
* know about, but it's up to a plugin to try and keep them stacked correctly
|
* know about, but it's up to a plugin to try and keep them stacked correctly
|
||||||
* (we really need extra API to make that reliable.)
|
* (we really need extra API to make that reliable.)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Of the actors we know, the bottom actor should be the background actor */
|
/* First we collect a list of all backgrounds, and check if they're at the
|
||||||
|
* bottom. Then we check if the window actors are in the correct sequence */
|
||||||
while (old && old->data != info->background_actor && !META_IS_WINDOW_ACTOR (old->data))
|
backgrounds = NULL;
|
||||||
old = old->next;
|
expected_window_node = info->windows;
|
||||||
if (old == NULL || old->data != info->background_actor)
|
for (old = children; old != NULL; old = old->next)
|
||||||
{
|
{
|
||||||
reordered = TRUE;
|
ClutterActor *actor = old->data;
|
||||||
goto done_with_check;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Then the window actors should follow in sequence */
|
if (META_IS_BACKGROUND_GROUP (actor) ||
|
||||||
|
META_IS_BACKGROUND_ACTOR (actor))
|
||||||
old = old->next;
|
|
||||||
for (tmp = info->windows; tmp != NULL; tmp = tmp->next)
|
|
||||||
{
|
|
||||||
while (old && !META_IS_WINDOW_ACTOR (old->data))
|
|
||||||
old = old->next;
|
|
||||||
|
|
||||||
/* old == NULL: someone reparented a window out of the window group,
|
|
||||||
* order undefined, always restack */
|
|
||||||
if (old == NULL || old->data != tmp->data)
|
|
||||||
{
|
{
|
||||||
reordered = TRUE;
|
backgrounds = g_list_prepend (backgrounds, actor);
|
||||||
goto done_with_check;
|
|
||||||
|
if (has_windows)
|
||||||
|
reordered = TRUE;
|
||||||
}
|
}
|
||||||
|
else if (META_IS_WINDOW_ACTOR (actor) && !reordered)
|
||||||
|
{
|
||||||
|
has_windows = TRUE;
|
||||||
|
|
||||||
old = old->next;
|
if (expected_window_node != NULL && actor == expected_window_node->data)
|
||||||
|
expected_window_node = expected_window_node->next;
|
||||||
|
else
|
||||||
|
reordered = TRUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
done_with_check:
|
|
||||||
|
|
||||||
g_list_free (children);
|
g_list_free (children);
|
||||||
|
|
||||||
if (!reordered)
|
if (!reordered)
|
||||||
return;
|
|
||||||
|
|
||||||
for (tmp = g_list_last (info->windows); tmp != NULL; tmp = tmp->prev)
|
|
||||||
{
|
{
|
||||||
MetaWindowActor *window_actor = tmp->data;
|
g_list_free (backgrounds);
|
||||||
|
return;
|
||||||
clutter_actor_lower_bottom (CLUTTER_ACTOR (window_actor));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clutter_actor_lower_bottom (info->background_actor);
|
/* reorder the actors by lowering them in turn to the bottom of the stack.
|
||||||
|
* windows first, then background.
|
||||||
|
*
|
||||||
|
* We reorder the actors even if they're not parented to the window group,
|
||||||
|
* to allow stacking to work with intermediate actors (eg during effects)
|
||||||
|
*/
|
||||||
|
for (tmp = g_list_last (info->windows); tmp != NULL; tmp = tmp->prev)
|
||||||
|
{
|
||||||
|
ClutterActor *actor = tmp->data, *parent;
|
||||||
|
|
||||||
|
parent = clutter_actor_get_parent (actor);
|
||||||
|
clutter_actor_set_child_below_sibling (parent, actor, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* we prepended the backgrounds above so the last actor in the list
|
||||||
|
* should get lowered to the bottom last.
|
||||||
|
*/
|
||||||
|
for (tmp = backgrounds; tmp != NULL; tmp = tmp->next)
|
||||||
|
{
|
||||||
|
ClutterActor *actor = tmp->data, *parent;
|
||||||
|
|
||||||
|
parent = clutter_actor_get_parent (actor);
|
||||||
|
clutter_actor_set_child_below_sibling (parent, actor, NULL);
|
||||||
|
}
|
||||||
|
g_list_free (backgrounds);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -1095,7 +1311,8 @@ meta_compositor_window_unmapped (MetaCompositor *compositor,
|
|||||||
|
|
||||||
void
|
void
|
||||||
meta_compositor_sync_window_geometry (MetaCompositor *compositor,
|
meta_compositor_sync_window_geometry (MetaCompositor *compositor,
|
||||||
MetaWindow *window)
|
MetaWindow *window,
|
||||||
|
gboolean did_placement)
|
||||||
{
|
{
|
||||||
MetaWindowActor *window_actor = META_WINDOW_ACTOR (meta_window_get_compositor_private (window));
|
MetaWindowActor *window_actor = META_WINDOW_ACTOR (meta_window_get_compositor_private (window));
|
||||||
MetaScreen *screen = meta_window_get_screen (window);
|
MetaScreen *screen = meta_window_get_screen (window);
|
||||||
@@ -1107,7 +1324,7 @@ meta_compositor_sync_window_geometry (MetaCompositor *compositor,
|
|||||||
if (!window_actor)
|
if (!window_actor)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
meta_window_actor_sync_actor_position (window_actor);
|
meta_window_actor_sync_actor_geometry (window_actor, did_placement);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -1129,13 +1346,53 @@ meta_compositor_sync_screen_size (MetaCompositor *compositor,
|
|||||||
|
|
||||||
XResizeWindow (xdisplay, xwin, width, height);
|
XResizeWindow (xdisplay, xwin, width, height);
|
||||||
|
|
||||||
meta_background_actor_screen_size_changed (screen);
|
|
||||||
|
|
||||||
meta_verbose ("Changed size for stage on screen %d to %dx%d\n",
|
meta_verbose ("Changed size for stage on screen %d to %dx%d\n",
|
||||||
meta_screen_get_screen_number (screen),
|
meta_screen_get_screen_number (screen),
|
||||||
width, height);
|
width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
frame_callback (CoglOnscreen *onscreen,
|
||||||
|
CoglFrameEvent event,
|
||||||
|
CoglFrameInfo *frame_info,
|
||||||
|
void *user_data)
|
||||||
|
{
|
||||||
|
MetaCompScreen *info = user_data;
|
||||||
|
GList *l;
|
||||||
|
|
||||||
|
if (event == COGL_FRAME_EVENT_COMPLETE)
|
||||||
|
{
|
||||||
|
gint64 presentation_time_cogl = cogl_frame_info_get_presentation_time (frame_info);
|
||||||
|
gint64 presentation_time;
|
||||||
|
|
||||||
|
if (presentation_time_cogl != 0)
|
||||||
|
{
|
||||||
|
/* Cogl reports presentation in terms of its own clock, which is
|
||||||
|
* guaranteed to be in nanoseconds but with no specified base. The
|
||||||
|
* normal case with the open source GPU drivers on Linux 3.8 and
|
||||||
|
* newer is that the base of cogl_get_clock_time() is that of
|
||||||
|
* clock_gettime(CLOCK_MONOTONIC), so the same as g_get_monotonic_time),
|
||||||
|
* but there's no exposure of that through the API. clock_gettime()
|
||||||
|
* is fairly fast, so calling it twice and subtracting to get a
|
||||||
|
* nearly-zero number is acceptable, if a litle ugly.
|
||||||
|
*/
|
||||||
|
CoglContext *context = cogl_framebuffer_get_context (COGL_FRAMEBUFFER (onscreen));
|
||||||
|
gint64 current_cogl_time = cogl_get_clock_time (context);
|
||||||
|
gint64 current_monotonic_time = g_get_monotonic_time ();
|
||||||
|
|
||||||
|
presentation_time =
|
||||||
|
current_monotonic_time + (presentation_time_cogl - current_cogl_time) / 1000;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
presentation_time = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (l = info->windows; l; l = l->next)
|
||||||
|
meta_window_actor_frame_complete (l->data, frame_info, presentation_time);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pre_paint_windows (MetaCompScreen *info)
|
pre_paint_windows (MetaCompScreen *info)
|
||||||
{
|
{
|
||||||
@@ -1143,6 +1400,15 @@ pre_paint_windows (MetaCompScreen *info)
|
|||||||
MetaWindowActor *top_window;
|
MetaWindowActor *top_window;
|
||||||
MetaWindowActor *expected_unredirected_window = NULL;
|
MetaWindowActor *expected_unredirected_window = NULL;
|
||||||
|
|
||||||
|
if (info->onscreen == NULL)
|
||||||
|
{
|
||||||
|
info->onscreen = COGL_ONSCREEN (cogl_get_draw_framebuffer ());
|
||||||
|
info->frame_closure = cogl_onscreen_add_frame_callback (info->onscreen,
|
||||||
|
frame_callback,
|
||||||
|
info,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
if (info->windows == NULL)
|
if (info->windows == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -1217,6 +1483,7 @@ on_shadow_factory_changed (MetaShadowFactory *factory,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* meta_compositor_new: (skip)
|
* meta_compositor_new: (skip)
|
||||||
|
* @display:
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
MetaCompositor *
|
MetaCompositor *
|
||||||
@@ -1224,7 +1491,6 @@ meta_compositor_new (MetaDisplay *display)
|
|||||||
{
|
{
|
||||||
char *atom_names[] = {
|
char *atom_names[] = {
|
||||||
"_XROOTPMAP_ID",
|
"_XROOTPMAP_ID",
|
||||||
"_XSETROOT_ID",
|
|
||||||
"_NET_WM_WINDOW_OPACITY",
|
"_NET_WM_WINDOW_OPACITY",
|
||||||
};
|
};
|
||||||
Atom atoms[G_N_ELEMENTS(atom_names)];
|
Atom atoms[G_N_ELEMENTS(atom_names)];
|
||||||
@@ -1251,8 +1517,7 @@ meta_compositor_new (MetaDisplay *display)
|
|||||||
compositor);
|
compositor);
|
||||||
|
|
||||||
compositor->atom_x_root_pixmap = atoms[0];
|
compositor->atom_x_root_pixmap = atoms[0];
|
||||||
compositor->atom_x_set_root = atoms[1];
|
compositor->atom_net_wm_window_opacity = atoms[1];
|
||||||
compositor->atom_net_wm_window_opacity = atoms[2];
|
|
||||||
|
|
||||||
compositor->repaint_func_id = clutter_threads_add_repaint_func (meta_repaint_func,
|
compositor->repaint_func_id = clutter_threads_add_repaint_func (meta_repaint_func,
|
||||||
compositor,
|
compositor,
|
||||||
@@ -1263,6 +1528,7 @@ meta_compositor_new (MetaDisplay *display)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* meta_get_overlay_window: (skip)
|
* meta_get_overlay_window: (skip)
|
||||||
|
* @screen: a #MetaScreen
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
Window
|
Window
|
||||||
@@ -1307,43 +1573,91 @@ meta_enable_unredirect_for_screen (MetaScreen *screen)
|
|||||||
#define FLASH_TIME_MS 50
|
#define FLASH_TIME_MS 50
|
||||||
|
|
||||||
static void
|
static void
|
||||||
flash_out_completed (ClutterAnimation *animation,
|
flash_out_completed (ClutterTimeline *timeline,
|
||||||
ClutterActor *flash)
|
gboolean is_finished,
|
||||||
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
|
ClutterActor *flash = CLUTTER_ACTOR (user_data);
|
||||||
clutter_actor_destroy (flash);
|
clutter_actor_destroy (flash);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
flash_in_completed (ClutterAnimation *animation,
|
|
||||||
ClutterActor *flash)
|
|
||||||
{
|
|
||||||
clutter_actor_animate (flash, CLUTTER_EASE_IN_QUAD,
|
|
||||||
FLASH_TIME_MS,
|
|
||||||
"opacity", 0,
|
|
||||||
"signal-after::completed", flash_out_completed, flash,
|
|
||||||
NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_compositor_flash_screen (MetaCompositor *compositor,
|
meta_compositor_flash_screen (MetaCompositor *compositor,
|
||||||
MetaScreen *screen)
|
MetaScreen *screen)
|
||||||
{
|
{
|
||||||
ClutterActor *stage;
|
ClutterActor *stage;
|
||||||
ClutterActor *flash;
|
ClutterActor *flash;
|
||||||
ClutterColor black = { 0, 0, 0, 255 };
|
ClutterTransition *transition;
|
||||||
gfloat width, height;
|
gfloat width, height;
|
||||||
|
|
||||||
stage = meta_get_stage_for_screen (screen);
|
stage = meta_get_stage_for_screen (screen);
|
||||||
clutter_actor_get_size (stage, &width, &height);
|
clutter_actor_get_size (stage, &width, &height);
|
||||||
|
|
||||||
flash = clutter_rectangle_new_with_color (&black);
|
flash = clutter_actor_new ();
|
||||||
|
clutter_actor_set_background_color (flash, CLUTTER_COLOR_Black);
|
||||||
clutter_actor_set_size (flash, width, height);
|
clutter_actor_set_size (flash, width, height);
|
||||||
clutter_actor_set_opacity (flash, 0);
|
clutter_actor_set_opacity (flash, 0);
|
||||||
clutter_container_add_actor (CLUTTER_CONTAINER (stage), flash);
|
clutter_actor_add_child (stage, flash);
|
||||||
|
|
||||||
clutter_actor_animate (flash, CLUTTER_EASE_OUT_QUAD,
|
clutter_actor_save_easing_state (flash);
|
||||||
FLASH_TIME_MS,
|
clutter_actor_set_easing_mode (flash, CLUTTER_EASE_IN_QUAD);
|
||||||
"opacity", 192,
|
clutter_actor_set_easing_duration (flash, FLASH_TIME_MS);
|
||||||
"signal-after::completed", flash_in_completed, flash,
|
clutter_actor_set_opacity (flash, 192);
|
||||||
NULL);
|
|
||||||
|
transition = clutter_actor_get_transition (flash, "opacity");
|
||||||
|
clutter_timeline_set_auto_reverse (CLUTTER_TIMELINE (transition), TRUE);
|
||||||
|
clutter_timeline_set_repeat_count (CLUTTER_TIMELINE (transition), 2);
|
||||||
|
|
||||||
|
g_signal_connect (transition, "stopped",
|
||||||
|
G_CALLBACK (flash_out_completed), flash);
|
||||||
|
|
||||||
|
clutter_actor_restore_easing_state (flash);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* meta_compositor_monotonic_time_to_server_time:
|
||||||
|
* @display: a #MetaDisplay
|
||||||
|
* @monotonic_time: time in the units of g_get_monotonic_time()
|
||||||
|
*
|
||||||
|
* _NET_WM_FRAME_DRAWN and _NET_WM_FRAME_TIMINGS messages represent time
|
||||||
|
* as a "high resolution server time" - this is the server time interpolated
|
||||||
|
* to microsecond resolution. The advantage of this time representation
|
||||||
|
* is that if X server is running on the same computer as a client, and
|
||||||
|
* the Xserver uses 'clock_gettime(CLOCK_MONOTONIC, ...)' for the server
|
||||||
|
* time, the client can detect this, and all such clients will share a
|
||||||
|
* a time representation with high accuracy. If there is not a common
|
||||||
|
* time source, then the time synchronization will be less accurate.
|
||||||
|
*/
|
||||||
|
gint64
|
||||||
|
meta_compositor_monotonic_time_to_server_time (MetaDisplay *display,
|
||||||
|
gint64 monotonic_time)
|
||||||
|
{
|
||||||
|
MetaCompositor *compositor = display->compositor;
|
||||||
|
|
||||||
|
if (compositor->server_time_query_time == 0 ||
|
||||||
|
(!compositor->server_time_is_monotonic_time &&
|
||||||
|
monotonic_time > compositor->server_time_query_time + 10*1000*1000)) /* 10 seconds */
|
||||||
|
{
|
||||||
|
guint32 server_time = meta_display_get_current_time_roundtrip (display);
|
||||||
|
gint64 server_time_usec = (gint64)server_time * 1000;
|
||||||
|
gint64 current_monotonic_time = g_get_monotonic_time ();
|
||||||
|
compositor->server_time_query_time = current_monotonic_time;
|
||||||
|
|
||||||
|
/* If the server time is within a second of the monotonic time,
|
||||||
|
* we assume that they are identical. This seems like a big margin,
|
||||||
|
* but we want to be as robust as possible even if the system
|
||||||
|
* is under load and our processing of the server response is
|
||||||
|
* delayed.
|
||||||
|
*/
|
||||||
|
if (server_time_usec > current_monotonic_time - 1000*1000 &&
|
||||||
|
server_time_usec < current_monotonic_time + 1000*1000)
|
||||||
|
compositor->server_time_is_monotonic_time = TRUE;
|
||||||
|
|
||||||
|
compositor->server_time_offset = server_time_usec - current_monotonic_time;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (compositor->server_time_is_monotonic_time)
|
||||||
|
return monotonic_time;
|
||||||
|
else
|
||||||
|
return monotonic_time + compositor->server_time_offset;
|
||||||
}
|
}
|
||||||
|
@@ -9,7 +9,6 @@
|
|||||||
void meta_background_actor_set_visible_region (MetaBackgroundActor *self,
|
void meta_background_actor_set_visible_region (MetaBackgroundActor *self,
|
||||||
cairo_region_t *visible_region);
|
cairo_region_t *visible_region);
|
||||||
|
|
||||||
void meta_background_actor_update (MetaScreen *screen);
|
cairo_region_t *meta_background_actor_get_visible_region (MetaBackgroundActor *self);
|
||||||
void meta_background_actor_screen_size_changed (MetaScreen *screen);
|
|
||||||
|
|
||||||
#endif /* META_BACKGROUND_ACTOR_PRIVATE_H */
|
#endif /* META_BACKGROUND_ACTOR_PRIVATE_H */
|
||||||
|
@@ -1,7 +1,5 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
/*
|
/*
|
||||||
* meta-background-actor.c: Actor for painting the root window background
|
|
||||||
*
|
|
||||||
* Copyright 2009 Sander Dijkhuis
|
* Copyright 2009 Sander Dijkhuis
|
||||||
* Copyright 2010 Red Hat, Inc.
|
* Copyright 2010 Red Hat, Inc.
|
||||||
*
|
*
|
||||||
@@ -23,12 +21,17 @@
|
|||||||
* Portions adapted from gnome-shell/src/shell-global.c
|
* Portions adapted from gnome-shell/src/shell-global.c
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SECTION:meta-background-actor
|
||||||
|
* @title: MetaBackgroundActor
|
||||||
|
* @short_description: Actor for painting the root window background
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#define COGL_ENABLE_EXPERIMENTAL_API
|
|
||||||
#include <cogl/cogl-texture-pixmap-x11.h>
|
#include <cogl/cogl-texture-pixmap-x11.h>
|
||||||
|
|
||||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
|
||||||
#include <clutter/clutter.h>
|
#include <clutter/clutter.h>
|
||||||
|
|
||||||
#include <X11/Xatom.h>
|
#include <X11/Xatom.h>
|
||||||
@@ -36,226 +39,23 @@
|
|||||||
#include "cogl-utils.h"
|
#include "cogl-utils.h"
|
||||||
#include "compositor-private.h"
|
#include "compositor-private.h"
|
||||||
#include <meta/errors.h>
|
#include <meta/errors.h>
|
||||||
|
#include <meta/meta-background.h>
|
||||||
#include "meta-background-actor-private.h"
|
#include "meta-background-actor-private.h"
|
||||||
|
|
||||||
/* We allow creating multiple MetaBackgroundActors for the same MetaScreen to
|
|
||||||
* allow different rendering options to be set for different copies.
|
|
||||||
* But we want to share the same underlying CoglTexture for efficiency and
|
|
||||||
* to avoid driver bugs that might occur if we created multiple CoglTexturePixmaps
|
|
||||||
* for the same pixmap.
|
|
||||||
*
|
|
||||||
* This structure holds common information.
|
|
||||||
*/
|
|
||||||
typedef struct _MetaScreenBackground MetaScreenBackground;
|
|
||||||
|
|
||||||
struct _MetaScreenBackground
|
|
||||||
{
|
|
||||||
MetaScreen *screen;
|
|
||||||
GSList *actors;
|
|
||||||
|
|
||||||
float texture_width;
|
|
||||||
float texture_height;
|
|
||||||
CoglHandle texture;
|
|
||||||
CoglMaterialWrapMode wrap_mode;
|
|
||||||
guint have_pixmap : 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _MetaBackgroundActorPrivate
|
struct _MetaBackgroundActorPrivate
|
||||||
{
|
{
|
||||||
MetaScreenBackground *background;
|
|
||||||
CoglHandle material;
|
|
||||||
cairo_region_t *visible_region;
|
cairo_region_t *visible_region;
|
||||||
float dim_factor;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
PROP_0,
|
|
||||||
|
|
||||||
PROP_DIM_FACTOR,
|
|
||||||
|
|
||||||
PROP_LAST
|
|
||||||
};
|
|
||||||
|
|
||||||
static GParamSpec *obj_props[PROP_LAST];
|
|
||||||
|
|
||||||
G_DEFINE_TYPE (MetaBackgroundActor, meta_background_actor, CLUTTER_TYPE_ACTOR);
|
G_DEFINE_TYPE (MetaBackgroundActor, meta_background_actor, CLUTTER_TYPE_ACTOR);
|
||||||
|
|
||||||
static void set_texture (MetaScreenBackground *background,
|
|
||||||
CoglHandle texture);
|
|
||||||
static void set_texture_to_stage_color (MetaScreenBackground *background);
|
|
||||||
|
|
||||||
static void
|
|
||||||
on_notify_stage_color (GObject *stage,
|
|
||||||
GParamSpec *pspec,
|
|
||||||
MetaScreenBackground *background)
|
|
||||||
{
|
|
||||||
if (!background->have_pixmap)
|
|
||||||
set_texture_to_stage_color (background);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
free_screen_background (MetaScreenBackground *background)
|
|
||||||
{
|
|
||||||
set_texture (background, COGL_INVALID_HANDLE);
|
|
||||||
|
|
||||||
if (background->screen != NULL)
|
|
||||||
{
|
|
||||||
ClutterActor *stage = meta_get_stage_for_screen (background->screen);
|
|
||||||
g_signal_handlers_disconnect_by_func (stage,
|
|
||||||
(gpointer) on_notify_stage_color,
|
|
||||||
background);
|
|
||||||
background->screen = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static MetaScreenBackground *
|
|
||||||
meta_screen_background_get (MetaScreen *screen)
|
|
||||||
{
|
|
||||||
MetaScreenBackground *background;
|
|
||||||
|
|
||||||
background = g_object_get_data (G_OBJECT (screen), "meta-screen-background");
|
|
||||||
if (background == NULL)
|
|
||||||
{
|
|
||||||
ClutterActor *stage;
|
|
||||||
|
|
||||||
background = g_new0 (MetaScreenBackground, 1);
|
|
||||||
|
|
||||||
background->screen = screen;
|
|
||||||
g_object_set_data_full (G_OBJECT (screen), "meta-screen-background",
|
|
||||||
background, (GDestroyNotify) free_screen_background);
|
|
||||||
|
|
||||||
stage = meta_get_stage_for_screen (screen);
|
|
||||||
g_signal_connect (stage, "notify::color",
|
|
||||||
G_CALLBACK (on_notify_stage_color), background);
|
|
||||||
|
|
||||||
meta_background_actor_update (screen);
|
|
||||||
}
|
|
||||||
|
|
||||||
return background;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
update_wrap_mode_of_actor (MetaBackgroundActor *self)
|
|
||||||
{
|
|
||||||
MetaBackgroundActorPrivate *priv = self->priv;
|
|
||||||
|
|
||||||
cogl_material_set_layer_wrap_mode (priv->material, 0, priv->background->wrap_mode);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
update_wrap_mode (MetaScreenBackground *background)
|
|
||||||
{
|
|
||||||
GSList *l;
|
|
||||||
int width, height;
|
|
||||||
|
|
||||||
meta_screen_get_size (background->screen, &width, &height);
|
|
||||||
|
|
||||||
/* We turn off repeating when we have a full-screen pixmap to keep from
|
|
||||||
* getting artifacts from one side of the image sneaking into the other
|
|
||||||
* side of the image via bilinear filtering.
|
|
||||||
*/
|
|
||||||
if (width == background->texture_width && height == background->texture_height)
|
|
||||||
background->wrap_mode = COGL_MATERIAL_WRAP_MODE_CLAMP_TO_EDGE;
|
|
||||||
else
|
|
||||||
background->wrap_mode = COGL_MATERIAL_WRAP_MODE_REPEAT;
|
|
||||||
|
|
||||||
for (l = background->actors; l; l = l->next)
|
|
||||||
update_wrap_mode_of_actor (l->data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
set_texture_on_actor (MetaBackgroundActor *self)
|
|
||||||
{
|
|
||||||
MetaBackgroundActorPrivate *priv = self->priv;
|
|
||||||
MetaDisplay *display = meta_screen_get_display (priv->background->screen);
|
|
||||||
|
|
||||||
/* This may trigger destruction of an old texture pixmap, which, if
|
|
||||||
* the underlying X pixmap is already gone has the tendency to trigger
|
|
||||||
* X errors inside DRI. For safety, trap errors */
|
|
||||||
meta_error_trap_push (display);
|
|
||||||
cogl_material_set_layer (priv->material, 0, priv->background->texture);
|
|
||||||
meta_error_trap_pop (display);
|
|
||||||
|
|
||||||
clutter_actor_queue_redraw (CLUTTER_ACTOR (self));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
set_texture (MetaScreenBackground *background,
|
|
||||||
CoglHandle texture)
|
|
||||||
{
|
|
||||||
MetaDisplay *display = meta_screen_get_display (background->screen);
|
|
||||||
GSList *l;
|
|
||||||
|
|
||||||
/* This may trigger destruction of an old texture pixmap, which, if
|
|
||||||
* the underlying X pixmap is already gone has the tendency to trigger
|
|
||||||
* X errors inside DRI. For safety, trap errors */
|
|
||||||
meta_error_trap_push (display);
|
|
||||||
if (background->texture != COGL_INVALID_HANDLE)
|
|
||||||
{
|
|
||||||
cogl_handle_unref (background->texture);
|
|
||||||
background->texture = COGL_INVALID_HANDLE;
|
|
||||||
}
|
|
||||||
meta_error_trap_pop (display);
|
|
||||||
|
|
||||||
if (texture != COGL_INVALID_HANDLE)
|
|
||||||
background->texture = cogl_handle_ref (texture);
|
|
||||||
|
|
||||||
background->texture_width = cogl_texture_get_width (background->texture);
|
|
||||||
background->texture_height = cogl_texture_get_height (background->texture);
|
|
||||||
|
|
||||||
for (l = background->actors; l; l = l->next)
|
|
||||||
set_texture_on_actor (l->data);
|
|
||||||
|
|
||||||
update_wrap_mode (background);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Sets our material to paint with a 1x1 texture of the stage's background
|
|
||||||
* color; doing this when we have no pixmap allows the application to turn
|
|
||||||
* off painting the stage. There might be a performance benefit to
|
|
||||||
* painting in this case with a solid color, but the normal solid color
|
|
||||||
* case is a 1x1 root pixmap, so we'd have to reverse-engineer that to
|
|
||||||
* actually pick up the (small?) performance win. This is just a fallback.
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
set_texture_to_stage_color (MetaScreenBackground *background)
|
|
||||||
{
|
|
||||||
ClutterActor *stage = meta_get_stage_for_screen (background->screen);
|
|
||||||
ClutterColor color;
|
|
||||||
CoglHandle texture;
|
|
||||||
|
|
||||||
clutter_stage_get_color (CLUTTER_STAGE (stage), &color);
|
|
||||||
|
|
||||||
/* Slicing will prevent COGL from using hardware texturing for
|
|
||||||
* the tiled 1x1 pixmap, and will cause it to draw the window
|
|
||||||
* background in millions of separate 1x1 rectangles */
|
|
||||||
texture = meta_create_color_texture_4ub (color.red, color.green,
|
|
||||||
color.blue, 0xff,
|
|
||||||
COGL_TEXTURE_NO_SLICING);
|
|
||||||
set_texture (background, texture);
|
|
||||||
cogl_handle_unref (texture);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_background_actor_dispose (GObject *object)
|
meta_background_actor_dispose (GObject *object)
|
||||||
{
|
{
|
||||||
MetaBackgroundActor *self = META_BACKGROUND_ACTOR (object);
|
MetaBackgroundActor *self = META_BACKGROUND_ACTOR (object);
|
||||||
MetaBackgroundActorPrivate *priv = self->priv;
|
|
||||||
|
|
||||||
meta_background_actor_set_visible_region (self, NULL);
|
meta_background_actor_set_visible_region (self, NULL);
|
||||||
|
|
||||||
if (priv->background != NULL)
|
|
||||||
{
|
|
||||||
priv->background->actors = g_slist_remove (priv->background->actors, self);
|
|
||||||
priv->background = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (priv->material != COGL_INVALID_HANDLE)
|
|
||||||
{
|
|
||||||
cogl_handle_unref (priv->material);
|
|
||||||
priv->material = COGL_INVALID_HANDLE;
|
|
||||||
}
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (meta_background_actor_parent_class)->dispose (object);
|
G_OBJECT_CLASS (meta_background_actor_parent_class)->dispose (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -265,11 +65,15 @@ meta_background_actor_get_preferred_width (ClutterActor *actor,
|
|||||||
gfloat *min_width_p,
|
gfloat *min_width_p,
|
||||||
gfloat *natural_width_p)
|
gfloat *natural_width_p)
|
||||||
{
|
{
|
||||||
MetaBackgroundActor *self = META_BACKGROUND_ACTOR (actor);
|
ClutterContent *content;
|
||||||
MetaBackgroundActorPrivate *priv = self->priv;
|
gfloat width;
|
||||||
int width, height;
|
|
||||||
|
|
||||||
meta_screen_get_size (priv->background->screen, &width, &height);
|
content = clutter_actor_get_content (actor);
|
||||||
|
|
||||||
|
if (content)
|
||||||
|
clutter_content_get_preferred_size (content, &width, NULL);
|
||||||
|
else
|
||||||
|
width = 0;
|
||||||
|
|
||||||
if (min_width_p)
|
if (min_width_p)
|
||||||
*min_width_p = width;
|
*min_width_p = width;
|
||||||
@@ -284,11 +88,15 @@ meta_background_actor_get_preferred_height (ClutterActor *actor,
|
|||||||
gfloat *natural_height_p)
|
gfloat *natural_height_p)
|
||||||
|
|
||||||
{
|
{
|
||||||
MetaBackgroundActor *self = META_BACKGROUND_ACTOR (actor);
|
ClutterContent *content;
|
||||||
MetaBackgroundActorPrivate *priv = self->priv;
|
gfloat height;
|
||||||
int width, height;
|
|
||||||
|
|
||||||
meta_screen_get_size (priv->background->screen, &width, &height);
|
content = clutter_actor_get_content (actor);
|
||||||
|
|
||||||
|
if (content)
|
||||||
|
clutter_content_get_preferred_size (content, NULL, &height);
|
||||||
|
else
|
||||||
|
height = 0;
|
||||||
|
|
||||||
if (min_height_p)
|
if (min_height_p)
|
||||||
*min_height_p = height;
|
*min_height_p = height;
|
||||||
@@ -296,64 +104,19 @@ meta_background_actor_get_preferred_height (ClutterActor *actor,
|
|||||||
*natural_height_p = height;
|
*natural_height_p = height;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
meta_background_actor_paint (ClutterActor *actor)
|
|
||||||
{
|
|
||||||
MetaBackgroundActor *self = META_BACKGROUND_ACTOR (actor);
|
|
||||||
MetaBackgroundActorPrivate *priv = self->priv;
|
|
||||||
guint8 opacity = clutter_actor_get_paint_opacity (actor);
|
|
||||||
guint8 color_component;
|
|
||||||
int width, height;
|
|
||||||
|
|
||||||
meta_screen_get_size (priv->background->screen, &width, &height);
|
|
||||||
|
|
||||||
color_component = (int)(0.5 + opacity * priv->dim_factor);
|
|
||||||
|
|
||||||
cogl_material_set_color4ub (priv->material,
|
|
||||||
color_component,
|
|
||||||
color_component,
|
|
||||||
color_component,
|
|
||||||
opacity);
|
|
||||||
|
|
||||||
cogl_set_source (priv->material);
|
|
||||||
|
|
||||||
if (priv->visible_region)
|
|
||||||
{
|
|
||||||
int n_rectangles = cairo_region_num_rectangles (priv->visible_region);
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < n_rectangles; i++)
|
|
||||||
{
|
|
||||||
cairo_rectangle_int_t rect;
|
|
||||||
cairo_region_get_rectangle (priv->visible_region, i, &rect);
|
|
||||||
|
|
||||||
cogl_rectangle_with_texture_coords (rect.x, rect.y,
|
|
||||||
rect.x + rect.width, rect.y + rect.height,
|
|
||||||
rect.x / priv->background->texture_width,
|
|
||||||
rect.y / priv->background->texture_height,
|
|
||||||
(rect.x + rect.width) / priv->background->texture_width,
|
|
||||||
(rect.y + rect.height) / priv->background->texture_height);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cogl_rectangle_with_texture_coords (0.0f, 0.0f,
|
|
||||||
width, height,
|
|
||||||
0.0f, 0.0f,
|
|
||||||
width / priv->background->texture_width,
|
|
||||||
height / priv->background->texture_height);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
meta_background_actor_get_paint_volume (ClutterActor *actor,
|
meta_background_actor_get_paint_volume (ClutterActor *actor,
|
||||||
ClutterPaintVolume *volume)
|
ClutterPaintVolume *volume)
|
||||||
{
|
{
|
||||||
MetaBackgroundActor *self = META_BACKGROUND_ACTOR (actor);
|
ClutterContent *content;
|
||||||
MetaBackgroundActorPrivate *priv = self->priv;
|
gfloat width, height;
|
||||||
int width, height;
|
|
||||||
|
|
||||||
meta_screen_get_size (priv->background->screen, &width, &height);
|
content = clutter_actor_get_content (actor);
|
||||||
|
|
||||||
|
if (!content)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
clutter_content_get_preferred_size (content, &width, &height);
|
||||||
|
|
||||||
clutter_paint_volume_set_width (volume, width);
|
clutter_paint_volume_set_width (volume, width);
|
||||||
clutter_paint_volume_set_height (volume, height);
|
clutter_paint_volume_set_height (volume, height);
|
||||||
@@ -361,214 +124,48 @@ meta_background_actor_get_paint_volume (ClutterActor *actor,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
meta_background_actor_set_dim_factor (MetaBackgroundActor *self,
|
|
||||||
gfloat dim_factor)
|
|
||||||
{
|
|
||||||
MetaBackgroundActorPrivate *priv = self->priv;
|
|
||||||
|
|
||||||
if (priv->dim_factor == dim_factor)
|
|
||||||
return;
|
|
||||||
|
|
||||||
priv->dim_factor = dim_factor;
|
|
||||||
|
|
||||||
clutter_actor_queue_redraw (CLUTTER_ACTOR (self));
|
|
||||||
|
|
||||||
g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_DIM_FACTOR]);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_background_actor_get_property(GObject *object,
|
|
||||||
guint prop_id,
|
|
||||||
GValue *value,
|
|
||||||
GParamSpec *pspec)
|
|
||||||
{
|
|
||||||
MetaBackgroundActor *self = META_BACKGROUND_ACTOR (object);
|
|
||||||
MetaBackgroundActorPrivate *priv = self->priv;
|
|
||||||
|
|
||||||
switch (prop_id)
|
|
||||||
{
|
|
||||||
case PROP_DIM_FACTOR:
|
|
||||||
g_value_set_float (value, priv->dim_factor);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
meta_background_actor_set_property(GObject *object,
|
|
||||||
guint prop_id,
|
|
||||||
const GValue *value,
|
|
||||||
GParamSpec *pspec)
|
|
||||||
{
|
|
||||||
MetaBackgroundActor *self = META_BACKGROUND_ACTOR (object);
|
|
||||||
|
|
||||||
switch (prop_id)
|
|
||||||
{
|
|
||||||
case PROP_DIM_FACTOR:
|
|
||||||
meta_background_actor_set_dim_factor (self, g_value_get_float (value));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_background_actor_class_init (MetaBackgroundActorClass *klass)
|
meta_background_actor_class_init (MetaBackgroundActorClass *klass)
|
||||||
{
|
{
|
||||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||||
ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass);
|
ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass);
|
||||||
GParamSpec *pspec;
|
|
||||||
|
|
||||||
g_type_class_add_private (klass, sizeof (MetaBackgroundActorPrivate));
|
g_type_class_add_private (klass, sizeof (MetaBackgroundActorPrivate));
|
||||||
|
|
||||||
object_class->dispose = meta_background_actor_dispose;
|
object_class->dispose = meta_background_actor_dispose;
|
||||||
object_class->get_property = meta_background_actor_get_property;
|
|
||||||
object_class->set_property = meta_background_actor_set_property;
|
|
||||||
|
|
||||||
actor_class->get_preferred_width = meta_background_actor_get_preferred_width;
|
actor_class->get_preferred_width = meta_background_actor_get_preferred_width;
|
||||||
actor_class->get_preferred_height = meta_background_actor_get_preferred_height;
|
actor_class->get_preferred_height = meta_background_actor_get_preferred_height;
|
||||||
actor_class->paint = meta_background_actor_paint;
|
|
||||||
actor_class->get_paint_volume = meta_background_actor_get_paint_volume;
|
actor_class->get_paint_volume = meta_background_actor_get_paint_volume;
|
||||||
|
|
||||||
/**
|
|
||||||
* MetaBackgroundActor:dim-factor:
|
|
||||||
*
|
|
||||||
* Factor to dim the background by, between 0.0 (black) and 1.0 (original
|
|
||||||
* colors)
|
|
||||||
*/
|
|
||||||
pspec = g_param_spec_float ("dim-factor",
|
|
||||||
"Dim factor",
|
|
||||||
"Factor to dim the background by",
|
|
||||||
0.0, 1.0,
|
|
||||||
1.0,
|
|
||||||
G_PARAM_READWRITE);
|
|
||||||
obj_props[PROP_DIM_FACTOR] = pspec;
|
|
||||||
g_object_class_install_property (object_class, PROP_DIM_FACTOR, pspec);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_background_actor_init (MetaBackgroundActor *self)
|
meta_background_actor_init (MetaBackgroundActor *self)
|
||||||
{
|
{
|
||||||
MetaBackgroundActorPrivate *priv;
|
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
|
||||||
|
META_TYPE_BACKGROUND_ACTOR,
|
||||||
priv = self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
|
MetaBackgroundActorPrivate);
|
||||||
META_TYPE_BACKGROUND_ACTOR,
|
|
||||||
MetaBackgroundActorPrivate);
|
|
||||||
priv->dim_factor = 1.0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* meta_background_actor_new:
|
* meta_background_actor_new:
|
||||||
* @screen: the #MetaScreen
|
|
||||||
*
|
*
|
||||||
* Creates a new actor to draw the background for the given screen.
|
* Creates a new actor to draw the background for the given monitor.
|
||||||
|
* This actor should be associated with a #MetaBackground using
|
||||||
|
* clutter_actor_set_content()
|
||||||
*
|
*
|
||||||
* Return value: the newly created background actor
|
* Return value: the newly created background actor
|
||||||
*/
|
*/
|
||||||
ClutterActor *
|
ClutterActor *
|
||||||
meta_background_actor_new_for_screen (MetaScreen *screen)
|
meta_background_actor_new (void)
|
||||||
{
|
{
|
||||||
MetaBackgroundActor *self;
|
MetaBackgroundActor *self;
|
||||||
MetaBackgroundActorPrivate *priv;
|
|
||||||
|
|
||||||
g_return_val_if_fail (META_IS_SCREEN (screen), NULL);
|
|
||||||
|
|
||||||
self = g_object_new (META_TYPE_BACKGROUND_ACTOR, NULL);
|
self = g_object_new (META_TYPE_BACKGROUND_ACTOR, NULL);
|
||||||
priv = self->priv;
|
|
||||||
|
|
||||||
priv->background = meta_screen_background_get (screen);
|
|
||||||
priv->background->actors = g_slist_prepend (priv->background->actors, self);
|
|
||||||
|
|
||||||
priv->material = meta_create_texture_material (NULL);
|
|
||||||
|
|
||||||
set_texture_on_actor (self);
|
|
||||||
update_wrap_mode_of_actor (self);
|
|
||||||
|
|
||||||
return CLUTTER_ACTOR (self);
|
return CLUTTER_ACTOR (self);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* meta_background_actor_update:
|
|
||||||
* @screen: a #MetaScreen
|
|
||||||
*
|
|
||||||
* Refetches the _XROOTPMAP_ID property for the root window and updates
|
|
||||||
* the contents of the background actor based on that. There's no attempt
|
|
||||||
* to optimize out pixmap values that don't change (since a root pixmap
|
|
||||||
* could be replaced by with another pixmap with the same ID under some
|
|
||||||
* circumstances), so this should only be called when we actually receive
|
|
||||||
* a PropertyNotify event for the property.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
meta_background_actor_update (MetaScreen *screen)
|
|
||||||
{
|
|
||||||
MetaScreenBackground *background;
|
|
||||||
MetaDisplay *display;
|
|
||||||
MetaCompositor *compositor;
|
|
||||||
Atom type;
|
|
||||||
int format;
|
|
||||||
gulong nitems;
|
|
||||||
gulong bytes_after;
|
|
||||||
guchar *data;
|
|
||||||
Pixmap root_pixmap_id;
|
|
||||||
|
|
||||||
background = meta_screen_background_get (screen);
|
|
||||||
display = meta_screen_get_display (screen);
|
|
||||||
compositor = meta_display_get_compositor (display);
|
|
||||||
|
|
||||||
root_pixmap_id = None;
|
|
||||||
if (!XGetWindowProperty (meta_display_get_xdisplay (display),
|
|
||||||
meta_screen_get_xroot (screen),
|
|
||||||
compositor->atom_x_root_pixmap,
|
|
||||||
0, LONG_MAX,
|
|
||||||
False,
|
|
||||||
AnyPropertyType,
|
|
||||||
&type, &format, &nitems, &bytes_after, &data) &&
|
|
||||||
type != None)
|
|
||||||
{
|
|
||||||
/* Got a property. */
|
|
||||||
if (type == XA_PIXMAP && format == 32 && nitems == 1)
|
|
||||||
{
|
|
||||||
/* Was what we expected. */
|
|
||||||
root_pixmap_id = *(Pixmap *)data;
|
|
||||||
}
|
|
||||||
|
|
||||||
XFree(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (root_pixmap_id != None)
|
|
||||||
{
|
|
||||||
CoglHandle texture;
|
|
||||||
CoglContext *ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
|
|
||||||
GError *error = NULL;
|
|
||||||
|
|
||||||
meta_error_trap_push (display);
|
|
||||||
texture = cogl_texture_pixmap_x11_new (ctx, root_pixmap_id, FALSE, &error);
|
|
||||||
meta_error_trap_pop (display);
|
|
||||||
|
|
||||||
if (texture != COGL_INVALID_HANDLE)
|
|
||||||
{
|
|
||||||
set_texture (background, texture);
|
|
||||||
cogl_handle_unref (texture);
|
|
||||||
|
|
||||||
background->have_pixmap = True;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_warning ("Failed to create background texture from pixmap: %s",
|
|
||||||
error->message);
|
|
||||||
g_error_free (error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
background->have_pixmap = False;
|
|
||||||
set_texture_to_stage_color (background);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* meta_background_actor_set_visible_region:
|
* meta_background_actor_set_visible_region:
|
||||||
* @self: a #MetaBackgroundActor
|
* @self: a #MetaBackgroundActor
|
||||||
@@ -588,40 +185,44 @@ meta_background_actor_set_visible_region (MetaBackgroundActor *self,
|
|||||||
|
|
||||||
priv = self->priv;
|
priv = self->priv;
|
||||||
|
|
||||||
if (priv->visible_region)
|
g_clear_pointer (&priv->visible_region,
|
||||||
{
|
(GDestroyNotify)
|
||||||
cairo_region_destroy (priv->visible_region);
|
cairo_region_destroy);
|
||||||
priv->visible_region = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (visible_region)
|
if (visible_region)
|
||||||
{
|
priv->visible_region = cairo_region_copy (visible_region);
|
||||||
cairo_rectangle_int_t screen_rect = { 0 };
|
|
||||||
meta_screen_get_size (priv->background->screen, &screen_rect.width, &screen_rect.height);
|
|
||||||
|
|
||||||
/* Doing the intersection here is probably unnecessary - MetaWindowGroup
|
|
||||||
* should never compute a visible area that's larger than the root screen!
|
|
||||||
* but it's not that expensive and adds some extra robustness.
|
|
||||||
*/
|
|
||||||
priv->visible_region = cairo_region_create_rectangle (&screen_rect);
|
|
||||||
cairo_region_intersect (priv->visible_region, visible_region);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* meta_background_actor_screen_size_changed:
|
* meta_background_actor_get_visible_region:
|
||||||
* @screen: a #MetaScreen
|
* @self: a #MetaBackgroundActor
|
||||||
*
|
*
|
||||||
* Called by the compositor when the size of the #MetaScreen changes
|
* Return value (transfer full): a #cairo_region_t that represents the part of
|
||||||
|
* the background not obscured by other #MetaBackgroundActor or
|
||||||
|
* #MetaWindowActor objects.
|
||||||
*/
|
*/
|
||||||
void
|
cairo_region_t *
|
||||||
meta_background_actor_screen_size_changed (MetaScreen *screen)
|
meta_background_actor_get_visible_region (MetaBackgroundActor *self)
|
||||||
{
|
{
|
||||||
MetaScreenBackground *background = meta_screen_background_get (screen);
|
MetaBackgroundActorPrivate *priv = self->priv;
|
||||||
GSList *l;
|
ClutterActorBox content_box;
|
||||||
|
cairo_rectangle_int_t content_area = { 0 };
|
||||||
|
cairo_region_t *visible_region;
|
||||||
|
|
||||||
update_wrap_mode (background);
|
g_return_val_if_fail (META_IS_BACKGROUND_ACTOR (self), NULL);
|
||||||
|
|
||||||
for (l = background->actors; l; l = l->next)
|
if (!priv->visible_region)
|
||||||
clutter_actor_queue_relayout (l->data);
|
return NULL;
|
||||||
|
|
||||||
|
clutter_actor_get_content_box (CLUTTER_ACTOR (self), &content_box);
|
||||||
|
|
||||||
|
content_area.x = content_box.x1;
|
||||||
|
content_area.y = content_box.y1;
|
||||||
|
content_area.width = content_box.x2 - content_box.x1;
|
||||||
|
content_area.height = content_box.y2 - content_box.y1;
|
||||||
|
|
||||||
|
visible_region = cairo_region_create_rectangle (&content_area);
|
||||||
|
cairo_region_intersect (visible_region, priv->visible_region);
|
||||||
|
|
||||||
|
return visible_region;
|
||||||
}
|
}
|
||||||
|
11
src/compositor/meta-background-group-private.h
Normal file
11
src/compositor/meta-background-group-private.h
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
|
||||||
|
#ifndef META_BACKGROUND_GROUP_PRIVATE_H
|
||||||
|
#define META_BACKGROUND_GROUP_PRIVATE_H
|
||||||
|
|
||||||
|
#include <meta/screen.h>
|
||||||
|
#include <meta/meta-background-group.h>
|
||||||
|
|
||||||
|
void meta_background_group_set_visible_region (MetaBackgroundGroup *self,
|
||||||
|
cairo_region_t *visible_region);
|
||||||
|
#endif /* META_BACKGROUND_GROUP_PRIVATE_H */
|
110
src/compositor/meta-background-group.c
Normal file
110
src/compositor/meta-background-group.c
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SECTION:meta-background-group
|
||||||
|
* @title: MetaBackgroundGroup
|
||||||
|
* @short_description: Container for background actors
|
||||||
|
*
|
||||||
|
* This class is a subclass of ClutterActor with special handling for
|
||||||
|
* MetaBackgroundActor/MetaBackgroundGroup when painting children.
|
||||||
|
* It makes sure to only draw the parts of the backgrounds not
|
||||||
|
* occluded by opaque windows.
|
||||||
|
*
|
||||||
|
* See #MetaWindowGroup for more information behind the motivation,
|
||||||
|
* and details on implementation.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#include "compositor-private.h"
|
||||||
|
#include "clutter-utils.h"
|
||||||
|
#include "meta-background-actor-private.h"
|
||||||
|
#include "meta-background-group-private.h"
|
||||||
|
|
||||||
|
G_DEFINE_TYPE (MetaBackgroundGroup, meta_background_group, CLUTTER_TYPE_ACTOR);
|
||||||
|
|
||||||
|
struct _MetaBackgroundGroupPrivate
|
||||||
|
{
|
||||||
|
gpointer dummy;
|
||||||
|
};
|
||||||
|
|
||||||
|
static void
|
||||||
|
meta_background_group_dispose (GObject *object)
|
||||||
|
{
|
||||||
|
G_OBJECT_CLASS (meta_background_group_parent_class)->dispose (object);
|
||||||
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
meta_background_group_get_paint_volume (ClutterActor *actor,
|
||||||
|
ClutterPaintVolume *volume)
|
||||||
|
{
|
||||||
|
return clutter_paint_volume_set_from_allocation (volume, actor);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
meta_background_group_class_init (MetaBackgroundGroupClass *klass)
|
||||||
|
{
|
||||||
|
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||||
|
ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass);
|
||||||
|
|
||||||
|
actor_class->get_paint_volume = meta_background_group_get_paint_volume;
|
||||||
|
object_class->dispose = meta_background_group_dispose;
|
||||||
|
|
||||||
|
g_type_class_add_private (klass, sizeof (MetaBackgroundGroupPrivate));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
meta_background_group_init (MetaBackgroundGroup *self)
|
||||||
|
{
|
||||||
|
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
|
||||||
|
META_TYPE_BACKGROUND_GROUP,
|
||||||
|
MetaBackgroundGroupPrivate);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* meta_background_group_set_visible_region:
|
||||||
|
* @self: a #MetaBackgroundGroup
|
||||||
|
* @visible_region: (allow-none): the parts of the background to paint
|
||||||
|
*
|
||||||
|
* Sets the area of the backgrounds that is unobscured by overlapping windows.
|
||||||
|
* This is used to optimize and only paint the visible portions.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
meta_background_group_set_visible_region (MetaBackgroundGroup *self,
|
||||||
|
cairo_region_t *region)
|
||||||
|
{
|
||||||
|
GList *children, *l;
|
||||||
|
|
||||||
|
children = clutter_actor_get_children (CLUTTER_ACTOR (self));
|
||||||
|
for (l = children; l; l = l->next)
|
||||||
|
{
|
||||||
|
ClutterActor *actor = l->data;
|
||||||
|
|
||||||
|
if (META_IS_BACKGROUND_ACTOR (actor))
|
||||||
|
{
|
||||||
|
meta_background_actor_set_visible_region (META_BACKGROUND_ACTOR (actor), region);
|
||||||
|
}
|
||||||
|
else if (META_IS_BACKGROUND_GROUP (actor))
|
||||||
|
{
|
||||||
|
int x, y;
|
||||||
|
|
||||||
|
if (!meta_actor_is_untransformed (actor, &x, &y))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
cairo_region_translate (region, -x, -y);
|
||||||
|
meta_background_group_set_visible_region (META_BACKGROUND_GROUP (actor), region);
|
||||||
|
cairo_region_translate (region, x, y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
g_list_free (children);
|
||||||
|
}
|
||||||
|
|
||||||
|
ClutterActor *
|
||||||
|
meta_background_group_new (void)
|
||||||
|
{
|
||||||
|
MetaBackgroundGroup *background_group;
|
||||||
|
|
||||||
|
background_group = g_object_new (META_TYPE_BACKGROUND_GROUP, NULL);
|
||||||
|
|
||||||
|
return CLUTTER_ACTOR (background_group);
|
||||||
|
}
|
1270
src/compositor/meta-background.c
Normal file
1270
src/compositor/meta-background.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -281,6 +281,19 @@ meta_plugin_manager_switch_workspace (MetaPluginManager *plugin_mgr,
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
meta_plugin_manager_filter_keybinding (MetaPluginManager *plugin_mgr,
|
||||||
|
MetaKeyBinding *binding)
|
||||||
|
{
|
||||||
|
MetaPlugin *plugin = plugin_mgr->plugin;
|
||||||
|
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
|
||||||
|
|
||||||
|
if (klass->keybinding_filter)
|
||||||
|
return klass->keybinding_filter (plugin, binding);
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The public method that the compositor hooks into for desktop switching.
|
* The public method that the compositor hooks into for desktop switching.
|
||||||
*
|
*
|
||||||
@@ -296,17 +309,14 @@ meta_plugin_manager_xevent_filter (MetaPluginManager *plugin_mgr,
|
|||||||
MetaPlugin *plugin = plugin_mgr->plugin;
|
MetaPlugin *plugin = plugin_mgr->plugin;
|
||||||
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
|
MetaPluginClass *klass = META_PLUGIN_GET_CLASS (plugin);
|
||||||
|
|
||||||
if (!plugin_mgr)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
/* We need to make sure that clutter gets certain events, like
|
/* We need to make sure that clutter gets certain events, like
|
||||||
* ConfigureNotify on the stage window. If there is a plugin that
|
* ConfigureNotify on the stage window. If there is a plugin that
|
||||||
* provides an xevent_filter function, then it's the responsibility
|
* provides an xevent_filter function, then it's the responsibility
|
||||||
* of that plugin to pass events to Clutter. Otherwise, we send the
|
* of that plugin to pass events to Clutter. Otherwise, we send the
|
||||||
* event directly to Clutter ourselves.
|
* event directly to Clutter ourselves.
|
||||||
*/
|
*/
|
||||||
if (klass->xevent_filter && klass->xevent_filter (plugin, xev))
|
if (klass->xevent_filter)
|
||||||
return TRUE;
|
return klass->xevent_filter (plugin, xev);
|
||||||
else
|
else
|
||||||
return clutter_x11_handle_event (xev) != CLUTTER_X11_FILTER_CONTINUE;
|
return clutter_x11_handle_event (xev) != CLUTTER_X11_FILTER_CONTINUE;
|
||||||
}
|
}
|
||||||
|
@@ -67,6 +67,9 @@ gboolean meta_plugin_manager_switch_workspace (MetaPluginManager *mgr,
|
|||||||
gint to,
|
gint to,
|
||||||
MetaMotionDirection direction);
|
MetaMotionDirection direction);
|
||||||
|
|
||||||
|
gboolean meta_plugin_manager_filter_keybinding (MetaPluginManager *mgr,
|
||||||
|
MetaKeyBinding *binding);
|
||||||
|
|
||||||
gboolean meta_plugin_manager_xevent_filter (MetaPluginManager *mgr,
|
gboolean meta_plugin_manager_xevent_filter (MetaPluginManager *mgr,
|
||||||
XEvent *xev);
|
XEvent *xev);
|
||||||
|
|
||||||
|
@@ -21,6 +21,13 @@
|
|||||||
* 02111-1307, USA.
|
* 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SECTION:meta-plugin
|
||||||
|
* @title: MetaPlugin
|
||||||
|
* @short_description: Entry point for plugins
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
#include <meta/meta-plugin.h>
|
#include <meta/meta-plugin.h>
|
||||||
#include "meta-plugin-manager.h"
|
#include "meta-plugin-manager.h"
|
||||||
#include <meta/screen.h>
|
#include <meta/screen.h>
|
||||||
|
@@ -40,7 +40,7 @@ typedef struct _MetaShadow MetaShadow;
|
|||||||
|
|
||||||
MetaShadow *meta_shadow_ref (MetaShadow *shadow);
|
MetaShadow *meta_shadow_ref (MetaShadow *shadow);
|
||||||
void meta_shadow_unref (MetaShadow *shadow);
|
void meta_shadow_unref (MetaShadow *shadow);
|
||||||
CoglHandle meta_shadow_get_texture (MetaShadow *shadow);
|
CoglTexture*meta_shadow_get_texture (MetaShadow *shadow);
|
||||||
void meta_shadow_paint (MetaShadow *shadow,
|
void meta_shadow_paint (MetaShadow *shadow,
|
||||||
int window_x,
|
int window_x,
|
||||||
int window_y,
|
int window_y,
|
||||||
|
@@ -1,9 +1,5 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||||
/*
|
/*
|
||||||
* MetaShadowFactory:
|
|
||||||
*
|
|
||||||
* Create and cache shadow textures for abritrary window shapes
|
|
||||||
*
|
|
||||||
* Copyright 2010 Red Hat, Inc.
|
* Copyright 2010 Red Hat, Inc.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
@@ -21,6 +17,13 @@
|
|||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||||
* 02111-1307, USA.
|
* 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SECTION:meta-shadow-factory
|
||||||
|
* @title: MetaShadowFactory
|
||||||
|
* @short_description: Create and cache shadow textures for abritrary window shapes
|
||||||
|
*/
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@@ -65,8 +68,8 @@ struct _MetaShadow
|
|||||||
|
|
||||||
MetaShadowFactory *factory;
|
MetaShadowFactory *factory;
|
||||||
MetaShadowCacheKey key;
|
MetaShadowCacheKey key;
|
||||||
CoglHandle texture;
|
CoglTexture *texture;
|
||||||
CoglHandle material;
|
CoglPipeline *pipeline;
|
||||||
|
|
||||||
/* The outer order is the distance the shadow extends outside the window
|
/* The outer order is the distance the shadow extends outside the window
|
||||||
* shape; the inner border is the unscaled portion inside the window
|
* shape; the inner border is the unscaled portion inside the window
|
||||||
@@ -130,7 +133,7 @@ MetaShadowClassInfo default_shadow_classes[] = {
|
|||||||
{ "popup-menu", { 1, -1, 0, 1, 128 }, { 1, -1, 0, 1, 128 } },
|
{ "popup-menu", { 1, -1, 0, 1, 128 }, { 1, -1, 0, 1, 128 } },
|
||||||
|
|
||||||
{ "dropdown-menu", { 1, 10, 0, 1, 128 }, { 1, 10, 0, 1, 128 } },
|
{ "dropdown-menu", { 1, 10, 0, 1, 128 }, { 1, 10, 0, 1, 128 } },
|
||||||
{ "attached", { 2, 50, 0, 1, 255 }, { 1, 50, 0, 1, 128 } }
|
{ "attached", { 1, -1, 0, 1, 128 }, { 1, -1, 0, 1, 128 } }
|
||||||
};
|
};
|
||||||
|
|
||||||
G_DEFINE_TYPE (MetaShadowFactory, meta_shadow_factory, G_TYPE_OBJECT);
|
G_DEFINE_TYPE (MetaShadowFactory, meta_shadow_factory, G_TYPE_OBJECT);
|
||||||
@@ -175,8 +178,8 @@ meta_shadow_unref (MetaShadow *shadow)
|
|||||||
}
|
}
|
||||||
|
|
||||||
meta_window_shape_unref (shadow->key.shape);
|
meta_window_shape_unref (shadow->key.shape);
|
||||||
cogl_handle_unref (shadow->texture);
|
cogl_object_unref (shadow->texture);
|
||||||
cogl_handle_unref (shadow->material);
|
cogl_object_unref (shadow->pipeline);
|
||||||
|
|
||||||
g_slice_free (MetaShadow, shadow);
|
g_slice_free (MetaShadow, shadow);
|
||||||
}
|
}
|
||||||
@@ -218,10 +221,10 @@ meta_shadow_paint (MetaShadow *shadow,
|
|||||||
int dest_y[4];
|
int dest_y[4];
|
||||||
int n_x, n_y;
|
int n_x, n_y;
|
||||||
|
|
||||||
cogl_material_set_color4ub (shadow->material,
|
cogl_pipeline_set_color4ub (shadow->pipeline,
|
||||||
opacity, opacity, opacity, opacity);
|
opacity, opacity, opacity, opacity);
|
||||||
|
|
||||||
cogl_set_source (shadow->material);
|
cogl_set_source (shadow->pipeline);
|
||||||
|
|
||||||
if (shadow->scale_width)
|
if (shadow->scale_width)
|
||||||
{
|
{
|
||||||
@@ -801,7 +804,7 @@ make_shadow (MetaShadow *shadow,
|
|||||||
cairo_region_destroy (column_convolve_region);
|
cairo_region_destroy (column_convolve_region);
|
||||||
g_free (buffer);
|
g_free (buffer);
|
||||||
|
|
||||||
shadow->material = meta_create_texture_material (shadow->texture);
|
shadow->pipeline = meta_create_texture_pipeline (shadow->texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
static MetaShadowParams *
|
static MetaShadowParams *
|
||||||
|
@@ -1,8 +1,4 @@
|
|||||||
/*
|
/*
|
||||||
* shaped texture
|
|
||||||
*
|
|
||||||
* An actor to draw a masked texture.
|
|
||||||
*
|
|
||||||
* Authored By Neil Roberts <neil@linux.intel.com>
|
* Authored By Neil Roberts <neil@linux.intel.com>
|
||||||
* and Jasper St. Pierre <jstpierre@mecheye.net>
|
* and Jasper St. Pierre <jstpierre@mecheye.net>
|
||||||
*
|
*
|
||||||
@@ -25,10 +21,13 @@
|
|||||||
* 02111-1307, USA.
|
* 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <config.h>
|
/**
|
||||||
|
* SECTION:meta-shaped-texture
|
||||||
|
* @title: MetaShapedTexture
|
||||||
|
* @short_description: An actor to draw a masked texture.
|
||||||
|
*/
|
||||||
|
|
||||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
#include <config.h>
|
||||||
#define COGL_ENABLE_EXPERIMENTAL_API
|
|
||||||
|
|
||||||
#include <meta/meta-shaped-texture.h>
|
#include <meta/meta-shaped-texture.h>
|
||||||
#include "meta-texture-tower.h"
|
#include "meta-texture-tower.h"
|
||||||
@@ -67,10 +66,10 @@ struct _MetaShapedTexturePrivate
|
|||||||
{
|
{
|
||||||
MetaTextureTower *paint_tower;
|
MetaTextureTower *paint_tower;
|
||||||
Pixmap pixmap;
|
Pixmap pixmap;
|
||||||
CoglHandle texture;
|
CoglTexturePixmapX11 *texture;
|
||||||
CoglHandle mask_texture;
|
CoglTexture *mask_texture;
|
||||||
CoglHandle material;
|
CoglPipeline *pipeline;
|
||||||
CoglHandle material_unshaped;
|
CoglPipeline *pipeline_unshaped;
|
||||||
|
|
||||||
cairo_region_t *clip_region;
|
cairo_region_t *clip_region;
|
||||||
|
|
||||||
@@ -104,8 +103,8 @@ meta_shaped_texture_init (MetaShapedTexture *self)
|
|||||||
priv = self->priv = META_SHAPED_TEXTURE_GET_PRIVATE (self);
|
priv = self->priv = META_SHAPED_TEXTURE_GET_PRIVATE (self);
|
||||||
|
|
||||||
priv->paint_tower = meta_texture_tower_new ();
|
priv->paint_tower = meta_texture_tower_new ();
|
||||||
priv->texture = COGL_INVALID_HANDLE;
|
priv->texture = NULL;
|
||||||
priv->mask_texture = COGL_INVALID_HANDLE;
|
priv->mask_texture = NULL;
|
||||||
priv->create_mipmaps = TRUE;
|
priv->create_mipmaps = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,23 +118,11 @@ meta_shaped_texture_dispose (GObject *object)
|
|||||||
meta_texture_tower_free (priv->paint_tower);
|
meta_texture_tower_free (priv->paint_tower);
|
||||||
priv->paint_tower = NULL;
|
priv->paint_tower = NULL;
|
||||||
|
|
||||||
if (priv->material != COGL_INVALID_HANDLE)
|
g_clear_pointer (&priv->pipeline, cogl_object_unref);
|
||||||
{
|
g_clear_pointer (&priv->pipeline_unshaped, cogl_object_unref);
|
||||||
cogl_handle_unref (priv->material);
|
g_clear_pointer (&priv->texture, cogl_object_unref);
|
||||||
priv->material = COGL_INVALID_HANDLE;
|
|
||||||
}
|
|
||||||
if (priv->material_unshaped != COGL_INVALID_HANDLE)
|
|
||||||
{
|
|
||||||
cogl_handle_unref (priv->material_unshaped);
|
|
||||||
priv->material_unshaped = COGL_INVALID_HANDLE;
|
|
||||||
}
|
|
||||||
if (priv->texture != COGL_INVALID_HANDLE)
|
|
||||||
{
|
|
||||||
cogl_handle_unref (priv->texture);
|
|
||||||
priv->texture = COGL_INVALID_HANDLE;
|
|
||||||
}
|
|
||||||
|
|
||||||
meta_shaped_texture_set_mask_texture (self, COGL_INVALID_HANDLE);
|
meta_shaped_texture_set_mask_texture (self, NULL);
|
||||||
meta_shaped_texture_set_clip_region (self, NULL);
|
meta_shaped_texture_set_clip_region (self, NULL);
|
||||||
|
|
||||||
G_OBJECT_CLASS (meta_shaped_texture_parent_class)->dispose (object);
|
G_OBJECT_CLASS (meta_shaped_texture_parent_class)->dispose (object);
|
||||||
@@ -146,14 +133,14 @@ meta_shaped_texture_paint (ClutterActor *actor)
|
|||||||
{
|
{
|
||||||
MetaShapedTexture *stex = (MetaShapedTexture *) actor;
|
MetaShapedTexture *stex = (MetaShapedTexture *) actor;
|
||||||
MetaShapedTexturePrivate *priv = stex->priv;
|
MetaShapedTexturePrivate *priv = stex->priv;
|
||||||
CoglHandle paint_tex;
|
CoglTexture *paint_tex;
|
||||||
guint tex_width, tex_height;
|
guint tex_width, tex_height;
|
||||||
ClutterActorBox alloc;
|
ClutterActorBox alloc;
|
||||||
|
|
||||||
static CoglHandle material_template = COGL_INVALID_HANDLE;
|
static CoglPipeline *pipeline_template = NULL;
|
||||||
static CoglHandle material_unshaped_template = COGL_INVALID_HANDLE;
|
static CoglPipeline *pipeline_unshaped_template = NULL;
|
||||||
|
|
||||||
CoglHandle material;
|
CoglPipeline *pipeline;
|
||||||
|
|
||||||
if (priv->clip_region && cairo_region_is_empty (priv->clip_region))
|
if (priv->clip_region && cairo_region_is_empty (priv->clip_region))
|
||||||
return;
|
return;
|
||||||
@@ -179,9 +166,9 @@ meta_shaped_texture_paint (ClutterActor *actor)
|
|||||||
if (priv->create_mipmaps)
|
if (priv->create_mipmaps)
|
||||||
paint_tex = meta_texture_tower_get_paint_texture (priv->paint_tower);
|
paint_tex = meta_texture_tower_get_paint_texture (priv->paint_tower);
|
||||||
else
|
else
|
||||||
paint_tex = priv->texture;
|
paint_tex = COGL_TEXTURE (priv->texture);
|
||||||
|
|
||||||
if (paint_tex == COGL_INVALID_HANDLE)
|
if (paint_tex == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
tex_width = priv->tex_width;
|
tex_width = priv->tex_width;
|
||||||
@@ -190,47 +177,51 @@ meta_shaped_texture_paint (ClutterActor *actor)
|
|||||||
if (tex_width == 0 || tex_height == 0) /* no contents yet */
|
if (tex_width == 0 || tex_height == 0) /* no contents yet */
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (priv->mask_texture == COGL_INVALID_HANDLE)
|
if (priv->mask_texture == NULL)
|
||||||
{
|
{
|
||||||
/* Use a single-layer texture if we don't have a mask. */
|
/* Use a single-layer texture if we don't have a mask. */
|
||||||
|
|
||||||
if (priv->material_unshaped == COGL_INVALID_HANDLE)
|
if (priv->pipeline_unshaped == NULL)
|
||||||
{
|
{
|
||||||
if (G_UNLIKELY (material_unshaped_template == COGL_INVALID_HANDLE))
|
if (G_UNLIKELY (pipeline_unshaped_template == NULL))
|
||||||
material_unshaped_template = cogl_material_new ();
|
{
|
||||||
|
CoglContext *ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
|
||||||
|
pipeline_unshaped_template = cogl_pipeline_new (ctx);
|
||||||
|
}
|
||||||
|
|
||||||
priv->material_unshaped = cogl_material_copy (material_unshaped_template);
|
priv->pipeline_unshaped = cogl_pipeline_copy (pipeline_unshaped_template);
|
||||||
}
|
}
|
||||||
material = priv->material_unshaped;
|
pipeline = priv->pipeline_unshaped;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (priv->material == COGL_INVALID_HANDLE)
|
if (priv->pipeline == NULL)
|
||||||
{
|
{
|
||||||
if (G_UNLIKELY (material_template == COGL_INVALID_HANDLE))
|
if (G_UNLIKELY (pipeline_template == NULL))
|
||||||
{
|
{
|
||||||
material_template = cogl_material_new ();
|
CoglContext *ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
|
||||||
cogl_material_set_layer_combine (material_template, 1,
|
pipeline_template = cogl_pipeline_new (ctx);
|
||||||
|
cogl_pipeline_set_layer_combine (pipeline_template, 1,
|
||||||
"RGBA = MODULATE (PREVIOUS, TEXTURE[A])",
|
"RGBA = MODULATE (PREVIOUS, TEXTURE[A])",
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
priv->material = cogl_material_copy (material_template);
|
priv->pipeline = cogl_pipeline_copy (pipeline_template);
|
||||||
}
|
}
|
||||||
material = priv->material;
|
pipeline = priv->pipeline;
|
||||||
|
|
||||||
cogl_material_set_layer (material, 1, priv->mask_texture);
|
cogl_pipeline_set_layer_texture (pipeline, 1, priv->mask_texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
cogl_material_set_layer (material, 0, paint_tex);
|
cogl_pipeline_set_layer_texture (pipeline, 0, paint_tex);
|
||||||
|
|
||||||
{
|
{
|
||||||
CoglColor color;
|
CoglColor color;
|
||||||
guchar opacity = clutter_actor_get_paint_opacity (actor);
|
guchar opacity = clutter_actor_get_paint_opacity (actor);
|
||||||
cogl_color_set_from_4ub (&color, opacity, opacity, opacity, opacity);
|
cogl_color_set_from_4ub (&color, opacity, opacity, opacity, opacity);
|
||||||
cogl_material_set_color (material, &color);
|
cogl_pipeline_set_color (pipeline, &color);
|
||||||
}
|
}
|
||||||
|
|
||||||
cogl_set_source (material);
|
cogl_set_source (pipeline);
|
||||||
|
|
||||||
clutter_actor_get_allocation_box (actor, &alloc);
|
clutter_actor_get_allocation_box (actor, &alloc);
|
||||||
|
|
||||||
@@ -295,18 +286,18 @@ meta_shaped_texture_pick (ClutterActor *actor,
|
|||||||
MetaShapedTexturePrivate *priv = stex->priv;
|
MetaShapedTexturePrivate *priv = stex->priv;
|
||||||
|
|
||||||
/* If there is no region then use the regular pick */
|
/* If there is no region then use the regular pick */
|
||||||
if (priv->mask_texture == COGL_INVALID_HANDLE)
|
if (priv->mask_texture == NULL)
|
||||||
CLUTTER_ACTOR_CLASS (meta_shaped_texture_parent_class)
|
CLUTTER_ACTOR_CLASS (meta_shaped_texture_parent_class)
|
||||||
->pick (actor, color);
|
->pick (actor, color);
|
||||||
else if (clutter_actor_should_pick_paint (actor))
|
else if (clutter_actor_should_pick_paint (actor))
|
||||||
{
|
{
|
||||||
CoglHandle paint_tex;
|
CoglTexture *paint_tex;
|
||||||
ClutterActorBox alloc;
|
ClutterActorBox alloc;
|
||||||
guint tex_width, tex_height;
|
guint tex_width, tex_height;
|
||||||
|
|
||||||
paint_tex = priv->texture;
|
paint_tex = COGL_TEXTURE (priv->texture);
|
||||||
|
|
||||||
if (paint_tex == COGL_INVALID_HANDLE)
|
if (paint_tex == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
tex_width = cogl_texture_get_width (paint_tex);
|
tex_width = cogl_texture_get_width (paint_tex);
|
||||||
@@ -396,17 +387,17 @@ meta_shaped_texture_set_create_mipmaps (MetaShapedTexture *stex,
|
|||||||
|
|
||||||
if (create_mipmaps != priv->create_mipmaps)
|
if (create_mipmaps != priv->create_mipmaps)
|
||||||
{
|
{
|
||||||
CoglHandle base_texture;
|
CoglTexture *base_texture;
|
||||||
priv->create_mipmaps = create_mipmaps;
|
priv->create_mipmaps = create_mipmaps;
|
||||||
base_texture = create_mipmaps ?
|
base_texture = create_mipmaps ?
|
||||||
priv->texture : COGL_INVALID_HANDLE;
|
COGL_TEXTURE (priv->texture) : NULL;
|
||||||
meta_texture_tower_set_base_texture (priv->paint_tower, base_texture);
|
meta_texture_tower_set_base_texture (priv->paint_tower, base_texture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_shaped_texture_set_mask_texture (MetaShapedTexture *stex,
|
meta_shaped_texture_set_mask_texture (MetaShapedTexture *stex,
|
||||||
CoglHandle mask_texture)
|
CoglTexture *mask_texture)
|
||||||
{
|
{
|
||||||
MetaShapedTexturePrivate *priv;
|
MetaShapedTexturePrivate *priv;
|
||||||
|
|
||||||
@@ -414,16 +405,12 @@ meta_shaped_texture_set_mask_texture (MetaShapedTexture *stex,
|
|||||||
|
|
||||||
priv = stex->priv;
|
priv = stex->priv;
|
||||||
|
|
||||||
if (priv->mask_texture != COGL_INVALID_HANDLE)
|
g_clear_pointer (&priv->mask_texture, cogl_object_unref);
|
||||||
{
|
|
||||||
cogl_handle_unref (priv->mask_texture);
|
|
||||||
priv->mask_texture = COGL_INVALID_HANDLE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mask_texture != COGL_INVALID_HANDLE)
|
if (mask_texture != NULL)
|
||||||
{
|
{
|
||||||
priv->mask_texture = mask_texture;
|
priv->mask_texture = mask_texture;
|
||||||
cogl_handle_ref (priv->mask_texture);
|
cogl_object_ref (priv->mask_texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
clutter_actor_queue_redraw (CLUTTER_ACTOR (stex));
|
clutter_actor_queue_redraw (CLUTTER_ACTOR (stex));
|
||||||
@@ -441,10 +428,11 @@ meta_shaped_texture_update_area (MetaShapedTexture *stex,
|
|||||||
|
|
||||||
priv = stex->priv;
|
priv = stex->priv;
|
||||||
|
|
||||||
if (priv->texture == COGL_INVALID_HANDLE)
|
if (priv->texture == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
cogl_texture_pixmap_x11_update_area (priv->texture, x, y, width, height);
|
cogl_texture_pixmap_x11_update_area (priv->texture,
|
||||||
|
x, y, width, height);
|
||||||
|
|
||||||
meta_texture_tower_update_area (priv->paint_tower, x, y, width, height);
|
meta_texture_tower_update_area (priv->paint_tower, x, y, width, height);
|
||||||
|
|
||||||
@@ -452,8 +440,8 @@ meta_shaped_texture_update_area (MetaShapedTexture *stex,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
set_cogl_texture (MetaShapedTexture *stex,
|
set_cogl_texture (MetaShapedTexture *stex,
|
||||||
CoglHandle cogl_tex)
|
CoglTexturePixmapX11 *cogl_tex)
|
||||||
{
|
{
|
||||||
MetaShapedTexturePrivate *priv;
|
MetaShapedTexturePrivate *priv;
|
||||||
guint width, height;
|
guint width, height;
|
||||||
@@ -462,21 +450,21 @@ set_cogl_texture (MetaShapedTexture *stex,
|
|||||||
|
|
||||||
priv = stex->priv;
|
priv = stex->priv;
|
||||||
|
|
||||||
if (priv->texture != COGL_INVALID_HANDLE)
|
if (priv->texture != NULL)
|
||||||
cogl_handle_unref (priv->texture);
|
cogl_object_unref (priv->texture);
|
||||||
|
|
||||||
priv->texture = cogl_tex;
|
priv->texture = cogl_tex;
|
||||||
|
|
||||||
if (priv->material != COGL_INVALID_HANDLE)
|
if (priv->pipeline != NULL)
|
||||||
cogl_material_set_layer (priv->material, 0, cogl_tex);
|
cogl_pipeline_set_layer_texture (priv->pipeline, 0, COGL_TEXTURE (cogl_tex));
|
||||||
|
|
||||||
if (priv->material_unshaped != COGL_INVALID_HANDLE)
|
if (priv->pipeline_unshaped != NULL)
|
||||||
cogl_material_set_layer (priv->material_unshaped, 0, cogl_tex);
|
cogl_pipeline_set_layer_texture (priv->pipeline_unshaped, 0, COGL_TEXTURE (cogl_tex));
|
||||||
|
|
||||||
if (cogl_tex != COGL_INVALID_HANDLE)
|
if (cogl_tex != NULL)
|
||||||
{
|
{
|
||||||
width = cogl_texture_get_width (cogl_tex);
|
width = cogl_texture_get_width (COGL_TEXTURE (cogl_tex));
|
||||||
height = cogl_texture_get_height (cogl_tex);
|
height = cogl_texture_get_height (COGL_TEXTURE (cogl_tex));
|
||||||
|
|
||||||
if (width != priv->tex_width ||
|
if (width != priv->tex_width ||
|
||||||
height != priv->tex_height)
|
height != priv->tex_height)
|
||||||
@@ -489,7 +477,7 @@ set_cogl_texture (MetaShapedTexture *stex,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* size changed to 0 going to an invalid handle */
|
/* size changed to 0 going to an inavlid texture */
|
||||||
priv->tex_width = 0;
|
priv->tex_width = 0;
|
||||||
priv->tex_height = 0;
|
priv->tex_height = 0;
|
||||||
clutter_actor_queue_relayout (CLUTTER_ACTOR (stex));
|
clutter_actor_queue_relayout (CLUTTER_ACTOR (stex));
|
||||||
@@ -525,10 +513,11 @@ meta_shaped_texture_set_pixmap (MetaShapedTexture *stex,
|
|||||||
set_cogl_texture (stex, cogl_texture_pixmap_x11_new (ctx, pixmap, FALSE, NULL));
|
set_cogl_texture (stex, cogl_texture_pixmap_x11_new (ctx, pixmap, FALSE, NULL));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
set_cogl_texture (stex, COGL_INVALID_HANDLE);
|
set_cogl_texture (stex, NULL);
|
||||||
|
|
||||||
if (priv->create_mipmaps)
|
if (priv->create_mipmaps)
|
||||||
meta_texture_tower_set_base_texture (priv->paint_tower, priv->texture);
|
meta_texture_tower_set_base_texture (priv->paint_tower,
|
||||||
|
COGL_TEXTURE (priv->texture));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -537,11 +526,11 @@ meta_shaped_texture_set_pixmap (MetaShapedTexture *stex,
|
|||||||
*
|
*
|
||||||
* Returns: (transfer none): the unshaped texture
|
* Returns: (transfer none): the unshaped texture
|
||||||
*/
|
*/
|
||||||
CoglHandle
|
CoglTexture *
|
||||||
meta_shaped_texture_get_texture (MetaShapedTexture *stex)
|
meta_shaped_texture_get_texture (MetaShapedTexture *stex)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (META_IS_SHAPED_TEXTURE (stex), COGL_INVALID_HANDLE);
|
g_return_val_if_fail (META_IS_SHAPED_TEXTURE (stex), NULL);
|
||||||
return stex->priv->texture;
|
return COGL_TEXTURE (stex->priv->texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -598,13 +587,13 @@ cairo_surface_t *
|
|||||||
meta_shaped_texture_get_image (MetaShapedTexture *stex,
|
meta_shaped_texture_get_image (MetaShapedTexture *stex,
|
||||||
cairo_rectangle_int_t *clip)
|
cairo_rectangle_int_t *clip)
|
||||||
{
|
{
|
||||||
CoglHandle texture, mask_texture;
|
CoglTexture *texture, *mask_texture;
|
||||||
cairo_rectangle_int_t texture_rect = { 0, 0, 0, 0 };
|
cairo_rectangle_int_t texture_rect = { 0, 0, 0, 0 };
|
||||||
cairo_surface_t *surface;
|
cairo_surface_t *surface;
|
||||||
|
|
||||||
g_return_val_if_fail (META_IS_SHAPED_TEXTURE (stex), NULL);
|
g_return_val_if_fail (META_IS_SHAPED_TEXTURE (stex), NULL);
|
||||||
|
|
||||||
texture = stex->priv->texture;
|
texture = COGL_TEXTURE (stex->priv->texture);
|
||||||
|
|
||||||
if (texture == NULL)
|
if (texture == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -641,7 +630,7 @@ meta_shaped_texture_get_image (MetaShapedTexture *stex,
|
|||||||
cogl_object_unref (texture);
|
cogl_object_unref (texture);
|
||||||
|
|
||||||
mask_texture = stex->priv->mask_texture;
|
mask_texture = stex->priv->mask_texture;
|
||||||
if (mask_texture != COGL_INVALID_HANDLE)
|
if (mask_texture != NULL)
|
||||||
{
|
{
|
||||||
cairo_t *cr;
|
cairo_t *cr;
|
||||||
cairo_surface_t *mask_surface;
|
cairo_surface_t *mask_surface;
|
||||||
|
@@ -25,9 +25,6 @@
|
|||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
|
||||||
#define COGL_ENABLE_EXPERIMENTAL_API
|
|
||||||
|
|
||||||
#include <clutter/clutter.h>
|
#include <clutter/clutter.h>
|
||||||
#include "meta-texture-rectangle.h"
|
#include "meta-texture-rectangle.h"
|
||||||
|
|
||||||
|
@@ -59,8 +59,8 @@ typedef struct
|
|||||||
struct _MetaTextureTower
|
struct _MetaTextureTower
|
||||||
{
|
{
|
||||||
int n_levels;
|
int n_levels;
|
||||||
CoglHandle textures[MAX_TEXTURE_LEVELS];
|
CoglTexture *textures[MAX_TEXTURE_LEVELS];
|
||||||
CoglHandle fbos[MAX_TEXTURE_LEVELS];
|
CoglOffscreen *fbos[MAX_TEXTURE_LEVELS];
|
||||||
Box invalid[MAX_TEXTURE_LEVELS];
|
Box invalid[MAX_TEXTURE_LEVELS];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -93,7 +93,7 @@ meta_texture_tower_free (MetaTextureTower *tower)
|
|||||||
{
|
{
|
||||||
g_return_if_fail (tower != NULL);
|
g_return_if_fail (tower != NULL);
|
||||||
|
|
||||||
meta_texture_tower_set_base_texture (tower, COGL_INVALID_HANDLE);
|
meta_texture_tower_set_base_texture (tower, NULL);
|
||||||
|
|
||||||
g_slice_free (MetaTextureTower, tower);
|
g_slice_free (MetaTextureTower, tower);
|
||||||
}
|
}
|
||||||
@@ -110,7 +110,7 @@ meta_texture_tower_free (MetaTextureTower *tower)
|
|||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
meta_texture_tower_set_base_texture (MetaTextureTower *tower,
|
meta_texture_tower_set_base_texture (MetaTextureTower *tower,
|
||||||
CoglHandle texture)
|
CoglTexture *texture)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@@ -119,33 +119,33 @@ meta_texture_tower_set_base_texture (MetaTextureTower *tower,
|
|||||||
if (texture == tower->textures[0])
|
if (texture == tower->textures[0])
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (tower->textures[0] != COGL_INVALID_HANDLE)
|
if (tower->textures[0] != NULL)
|
||||||
{
|
{
|
||||||
for (i = 1; i < tower->n_levels; i++)
|
for (i = 1; i < tower->n_levels; i++)
|
||||||
{
|
{
|
||||||
if (tower->textures[i] != COGL_INVALID_HANDLE)
|
if (tower->textures[i] != NULL)
|
||||||
{
|
{
|
||||||
cogl_handle_unref (tower->textures[i]);
|
cogl_object_unref (tower->textures[i]);
|
||||||
tower->textures[i] = COGL_INVALID_HANDLE;
|
tower->textures[i] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tower->fbos[i] != COGL_INVALID_HANDLE)
|
if (tower->fbos[i] != NULL)
|
||||||
{
|
{
|
||||||
cogl_handle_unref (tower->fbos[i]);
|
cogl_object_unref (tower->fbos[i]);
|
||||||
tower->fbos[i] = COGL_INVALID_HANDLE;
|
tower->fbos[i] = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cogl_handle_unref (tower->textures[0]);
|
cogl_object_unref (tower->textures[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
tower->textures[0] = texture;
|
tower->textures[0] = texture;
|
||||||
|
|
||||||
if (tower->textures[0] != COGL_INVALID_HANDLE)
|
if (tower->textures[0] != NULL)
|
||||||
{
|
{
|
||||||
int width, height;
|
int width, height;
|
||||||
|
|
||||||
cogl_handle_ref (tower->textures[0]);
|
cogl_object_ref (tower->textures[0]);
|
||||||
|
|
||||||
width = cogl_texture_get_width (tower->textures[0]);
|
width = cogl_texture_get_width (tower->textures[0]);
|
||||||
height = cogl_texture_get_height (tower->textures[0]);
|
height = cogl_texture_get_height (tower->textures[0]);
|
||||||
@@ -186,7 +186,7 @@ meta_texture_tower_update_area (MetaTextureTower *tower,
|
|||||||
|
|
||||||
g_return_if_fail (tower != NULL);
|
g_return_if_fail (tower != NULL);
|
||||||
|
|
||||||
if (tower->textures[0] == COGL_INVALID_HANDLE)
|
if (tower->textures[0] == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
texture_width = cogl_texture_get_width (tower->textures[0]);
|
texture_width = cogl_texture_get_width (tower->textures[0]);
|
||||||
@@ -387,22 +387,22 @@ static gboolean
|
|||||||
texture_tower_revalidate_fbo (MetaTextureTower *tower,
|
texture_tower_revalidate_fbo (MetaTextureTower *tower,
|
||||||
int level)
|
int level)
|
||||||
{
|
{
|
||||||
CoglHandle source_texture = tower->textures[level - 1];
|
CoglTexture *source_texture = tower->textures[level - 1];
|
||||||
int source_texture_width = cogl_texture_get_width (source_texture);
|
int source_texture_width = cogl_texture_get_width (source_texture);
|
||||||
int source_texture_height = cogl_texture_get_height (source_texture);
|
int source_texture_height = cogl_texture_get_height (source_texture);
|
||||||
CoglHandle dest_texture = tower->textures[level];
|
CoglTexture *dest_texture = tower->textures[level];
|
||||||
int dest_texture_width = cogl_texture_get_width (dest_texture);
|
int dest_texture_width = cogl_texture_get_width (dest_texture);
|
||||||
int dest_texture_height = cogl_texture_get_height (dest_texture);
|
int dest_texture_height = cogl_texture_get_height (dest_texture);
|
||||||
Box *invalid = &tower->invalid[level];
|
Box *invalid = &tower->invalid[level];
|
||||||
CoglMatrix modelview;
|
CoglMatrix modelview;
|
||||||
|
|
||||||
if (tower->fbos[level] == COGL_INVALID_HANDLE)
|
if (tower->fbos[level] == NULL)
|
||||||
tower->fbos[level] = cogl_offscreen_new_to_texture (dest_texture);
|
tower->fbos[level] = cogl_offscreen_new_to_texture (dest_texture);
|
||||||
|
|
||||||
if (tower->fbos[level] == COGL_INVALID_HANDLE)
|
if (tower->fbos[level] == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
cogl_push_framebuffer (tower->fbos[level]);
|
cogl_push_framebuffer (COGL_FRAMEBUFFER (tower->fbos[level]));
|
||||||
|
|
||||||
cogl_ortho (0, dest_texture_width, dest_texture_height, 0, -1., 1.);
|
cogl_ortho (0, dest_texture_width, dest_texture_height, 0, -1., 1.);
|
||||||
|
|
||||||
@@ -460,12 +460,12 @@ static void
|
|||||||
texture_tower_revalidate_client (MetaTextureTower *tower,
|
texture_tower_revalidate_client (MetaTextureTower *tower,
|
||||||
int level)
|
int level)
|
||||||
{
|
{
|
||||||
CoglHandle source_texture = tower->textures[level - 1];
|
CoglTexture *source_texture = tower->textures[level - 1];
|
||||||
int source_texture_width = cogl_texture_get_width (source_texture);
|
int source_texture_width = cogl_texture_get_width (source_texture);
|
||||||
int source_texture_height = cogl_texture_get_height (source_texture);
|
int source_texture_height = cogl_texture_get_height (source_texture);
|
||||||
guint source_rowstride;
|
guint source_rowstride;
|
||||||
guchar *source_data;
|
guchar *source_data;
|
||||||
CoglHandle dest_texture = tower->textures[level];
|
CoglTexture *dest_texture = tower->textures[level];
|
||||||
int dest_texture_width = cogl_texture_get_width (dest_texture);
|
int dest_texture_width = cogl_texture_get_width (dest_texture);
|
||||||
int dest_texture_height = cogl_texture_get_height (dest_texture);
|
int dest_texture_height = cogl_texture_get_height (dest_texture);
|
||||||
int dest_x = tower->invalid[level].x1;
|
int dest_x = tower->invalid[level].x1;
|
||||||
@@ -575,28 +575,28 @@ texture_tower_revalidate (MetaTextureTower *tower,
|
|||||||
* rectangle (0, 0, 200, 200).
|
* rectangle (0, 0, 200, 200).
|
||||||
*
|
*
|
||||||
* Return value: the COGL texture handle to use for painting, or
|
* Return value: the COGL texture handle to use for painting, or
|
||||||
* %COGL_INVALID_HANDLE if no base texture has yet been set.
|
* %NULL if no base texture has yet been set.
|
||||||
*/
|
*/
|
||||||
CoglHandle
|
CoglTexture *
|
||||||
meta_texture_tower_get_paint_texture (MetaTextureTower *tower)
|
meta_texture_tower_get_paint_texture (MetaTextureTower *tower)
|
||||||
{
|
{
|
||||||
int texture_width, texture_height;
|
int texture_width, texture_height;
|
||||||
int level;
|
int level;
|
||||||
|
|
||||||
g_return_val_if_fail (tower != NULL, COGL_INVALID_HANDLE);
|
g_return_val_if_fail (tower != NULL, NULL);
|
||||||
|
|
||||||
if (tower->textures[0] == COGL_INVALID_HANDLE)
|
if (tower->textures[0] == NULL)
|
||||||
return COGL_INVALID_HANDLE;
|
return NULL;
|
||||||
|
|
||||||
texture_width = cogl_texture_get_width (tower->textures[0]);
|
texture_width = cogl_texture_get_width (tower->textures[0]);
|
||||||
texture_height = cogl_texture_get_height (tower->textures[0]);
|
texture_height = cogl_texture_get_height (tower->textures[0]);
|
||||||
|
|
||||||
level = get_paint_level(texture_width, texture_height);
|
level = get_paint_level(texture_width, texture_height);
|
||||||
if (level < 0) /* singular paint matrix, scaled to nothing */
|
if (level < 0) /* singular paint matrix, scaled to nothing */
|
||||||
return COGL_INVALID_HANDLE;
|
return NULL;
|
||||||
level = MIN (level, tower->n_levels - 1);
|
level = MIN (level, tower->n_levels - 1);
|
||||||
|
|
||||||
if (tower->textures[level] == COGL_INVALID_HANDLE ||
|
if (tower->textures[level] == NULL ||
|
||||||
(tower->invalid[level].x2 != tower->invalid[level].x1 &&
|
(tower->invalid[level].x2 != tower->invalid[level].x1 &&
|
||||||
tower->invalid[level].y2 != tower->invalid[level].y1))
|
tower->invalid[level].y2 != tower->invalid[level].y1))
|
||||||
{
|
{
|
||||||
@@ -608,7 +608,7 @@ meta_texture_tower_get_paint_texture (MetaTextureTower *tower)
|
|||||||
texture_width = MAX (1, texture_width / 2);
|
texture_width = MAX (1, texture_width / 2);
|
||||||
texture_height = MAX (1, texture_height / 2);
|
texture_height = MAX (1, texture_height / 2);
|
||||||
|
|
||||||
if (tower->textures[i] == COGL_INVALID_HANDLE)
|
if (tower->textures[i] == NULL)
|
||||||
texture_tower_create_texture (tower, i, texture_width, texture_height);
|
texture_tower_create_texture (tower, i, texture_width, texture_height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -56,13 +56,13 @@ typedef struct _MetaTextureTower MetaTextureTower;
|
|||||||
MetaTextureTower *meta_texture_tower_new (void);
|
MetaTextureTower *meta_texture_tower_new (void);
|
||||||
void meta_texture_tower_free (MetaTextureTower *tower);
|
void meta_texture_tower_free (MetaTextureTower *tower);
|
||||||
void meta_texture_tower_set_base_texture (MetaTextureTower *tower,
|
void meta_texture_tower_set_base_texture (MetaTextureTower *tower,
|
||||||
CoglHandle texture);
|
CoglTexture *texture);
|
||||||
void meta_texture_tower_update_area (MetaTextureTower *tower,
|
void meta_texture_tower_update_area (MetaTextureTower *tower,
|
||||||
int x,
|
int x,
|
||||||
int y,
|
int y,
|
||||||
int width,
|
int width,
|
||||||
int height);
|
int height);
|
||||||
CoglHandle meta_texture_tower_get_paint_texture (MetaTextureTower *tower);
|
CoglTexture *meta_texture_tower_get_paint_texture (MetaTextureTower *tower);
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
@@ -28,6 +28,10 @@ void meta_window_actor_process_damage (MetaWindowActor *self,
|
|||||||
XDamageNotifyEvent *event);
|
XDamageNotifyEvent *event);
|
||||||
|
|
||||||
void meta_window_actor_pre_paint (MetaWindowActor *self);
|
void meta_window_actor_pre_paint (MetaWindowActor *self);
|
||||||
|
void meta_window_actor_post_paint (MetaWindowActor *self);
|
||||||
|
void meta_window_actor_frame_complete (MetaWindowActor *self,
|
||||||
|
CoglFrameInfo *frame_info,
|
||||||
|
gint64 presentation_time);
|
||||||
|
|
||||||
void meta_window_actor_invalidate_shadow (MetaWindowActor *self);
|
void meta_window_actor_invalidate_shadow (MetaWindowActor *self);
|
||||||
|
|
||||||
@@ -39,12 +43,17 @@ void meta_window_actor_get_shape_bounds (MetaWindowActor *self,
|
|||||||
cairo_rectangle_int_t *bounds);
|
cairo_rectangle_int_t *bounds);
|
||||||
|
|
||||||
gboolean meta_window_actor_effect_in_progress (MetaWindowActor *self);
|
gboolean meta_window_actor_effect_in_progress (MetaWindowActor *self);
|
||||||
void meta_window_actor_sync_actor_position (MetaWindowActor *self);
|
void meta_window_actor_sync_actor_geometry (MetaWindowActor *self,
|
||||||
|
gboolean did_placement);
|
||||||
void meta_window_actor_sync_visibility (MetaWindowActor *self);
|
void meta_window_actor_sync_visibility (MetaWindowActor *self);
|
||||||
void meta_window_actor_update_shape (MetaWindowActor *self);
|
void meta_window_actor_update_shape (MetaWindowActor *self);
|
||||||
void meta_window_actor_update_opacity (MetaWindowActor *self);
|
void meta_window_actor_update_opacity (MetaWindowActor *self);
|
||||||
void meta_window_actor_mapped (MetaWindowActor *self);
|
void meta_window_actor_mapped (MetaWindowActor *self);
|
||||||
void meta_window_actor_unmapped (MetaWindowActor *self);
|
void meta_window_actor_unmapped (MetaWindowActor *self);
|
||||||
|
void meta_window_actor_set_updates_frozen (MetaWindowActor *self,
|
||||||
|
gboolean updates_frozen);
|
||||||
|
void meta_window_actor_queue_frame_drawn (MetaWindowActor *self,
|
||||||
|
gboolean no_delay_frame);
|
||||||
|
|
||||||
cairo_region_t *meta_window_actor_get_obscured_region (MetaWindowActor *self);
|
cairo_region_t *meta_window_actor_get_obscured_region (MetaWindowActor *self);
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user