Compare commits
	
		
			22 Commits
		
	
	
		
			3.24.3
			...
			gnome-3-20
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | de18294625 | ||
|   | 67598b84dd | ||
|   | f37b21e923 | ||
|   | 83bddd75a6 | ||
|   | 1169ccc331 | ||
|   | d934cdee4f | ||
|   | 9ec231f603 | ||
|   | 9b5daf9094 | ||
|   | bd1297f35c | ||
|   | 15aa1a5140 | ||
|   | b2bf30165f | ||
|   | e75d9a5237 | ||
|   | aa65fc8b85 | ||
|   | a15f33ac9c | ||
|   | 0b4cd7ed92 | ||
|   | 69086f8daa | ||
|   | ae8ce15587 | ||
|   | 16e2953c6f | ||
|   | dc257ee1c1 | ||
|   | 4baf217d74 | ||
|   | 7631ba5208 | ||
|   | b31eddd208 | 
							
								
								
									
										33
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								NEWS
									
									
									
									
									
								
							| @@ -1,3 +1,36 @@ | ||||
| 3.20.3 | ||||
| ====== | ||||
| * Fix grabbing random keys for disabled shortcuts [Rui; #766270] | ||||
| * Crash fixes [Marek, Rui; #751847, #767969] | ||||
| * Improve multi-monitor handling on wayland [Rui; #766528] | ||||
| * Don't create invalid UTF-8 window description strings [Rui; #765535] | ||||
| * Convert window titles and wm_class to UTF-8 [Rui; #752788] | ||||
| * Use kill() to force-quit unresponsive wayland clients [Olivier; #767464] | ||||
| * Fix window position when unmaximizing via DND on wayland [Olivier; #764180] | ||||
| * Avoid full window redraws when using extended frame sync [Florian; #767798] | ||||
| * Fix missing frame border around GTK+ dialogs [Florian; #745060] | ||||
| * Improve X11 <-> wayland copy and paste interaction [Carlos; #768007] | ||||
|  | ||||
| Contributors: | ||||
|   Marek Chalupa, Olivier Fourdan, Carlos Garnacho, Rui Matos, Florian Müllner | ||||
|  | ||||
| Translations: | ||||
|   Kjartan Maraas [nb], Muhammet Kara [tr], Andika Triwidada [id] | ||||
|  | ||||
| 3.20.2 | ||||
| ====== | ||||
| * Notify clients of pending modifier state changes [Rui; #748526] | ||||
| * Add get_is_builtin_display_on() method [Florian; #765267] | ||||
| * Fix 2-finger titlebar taps on wayland [Carlos; #764519] | ||||
| * Misc. bug fixes [Florian, Victor, Jonas; #765058, #765252, #765062] | ||||
|  | ||||
| Contributors: | ||||
|   Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Rui Matos, Florian Müllner, | ||||
|   Victor Toso | ||||
|  | ||||
| Translations: | ||||
|   GNOME Translation Robot [ja], Tiago Santos [pt] | ||||
|  | ||||
| 3.20.1 | ||||
| ====== | ||||
| * Constrain window move/resizes on wayland as on X11 [Rui; #748819] | ||||
|   | ||||
| @@ -2,7 +2,7 @@ AC_PREREQ(2.62) | ||||
|  | ||||
| m4_define([mutter_major_version], [3]) | ||||
| m4_define([mutter_minor_version], [20]) | ||||
| m4_define([mutter_micro_version], [1]) | ||||
| m4_define([mutter_micro_version], [3]) | ||||
|  | ||||
| m4_define([mutter_version], | ||||
|           [mutter_major_version.mutter_minor_version.mutter_micro_version]) | ||||
|   | ||||
							
								
								
									
										48
									
								
								po/id.po
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								po/id.po
									
									
									
									
									
								
							| @@ -8,18 +8,18 @@ | ||||
| # Andika Triwidada <andika@gmail.com>, 2011-2015. | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: mutter master\n" | ||||
| "Project-Id-Version: mutter gnome-3-20\n" | ||||
| "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" | ||||
| "product=mutter&keywords=I18N+L10N&component=general\n" | ||||
| "POT-Creation-Date: 2015-03-21 11:13+0000\n" | ||||
| "PO-Revision-Date: 2015-03-21 19:04+0700\n" | ||||
| "POT-Creation-Date: 2016-05-10 20:26+0000\n" | ||||
| "PO-Revision-Date: 2016-06-23 04:18+0700\n" | ||||
| "Last-Translator: Andika Triwidada <andika@gmail.com>\n" | ||||
| "Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n" | ||||
| "Language: id\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
| "X-Generator: Poedit 1.7.1\n" | ||||
| "X-Generator: Poedit 1.8.8\n" | ||||
| "Plural-Forms: nplurals=1; plural=0;\n" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:1 | ||||
| @@ -454,22 +454,22 @@ msgstr "Pindah ke VT 11" | ||||
| msgid "Switch to VT 12" | ||||
| msgstr "Pindah ke VT 12" | ||||
|  | ||||
| #: ../src/backends/meta-monitor-manager.c:364 | ||||
| #: ../src/backends/meta-monitor-manager.c:515 | ||||
| msgid "Built-in display" | ||||
| msgstr "Tampilan bawaan" | ||||
|  | ||||
| #: ../src/backends/meta-monitor-manager.c:391 | ||||
| #: ../src/backends/meta-monitor-manager.c:538 | ||||
| msgid "Unknown" | ||||
| msgstr "Tak Dikenal" | ||||
|  | ||||
| #: ../src/backends/meta-monitor-manager.c:393 | ||||
| #: ../src/backends/meta-monitor-manager.c:540 | ||||
| msgid "Unknown Display" | ||||
| msgstr "Tampilan Tak Dikenal" | ||||
|  | ||||
| #. TRANSLATORS: this is a monitor vendor name, followed by a | ||||
| #. * size in inches, like 'Dell 15"' | ||||
| #. | ||||
| #: ../src/backends/meta-monitor-manager.c:401 | ||||
| #: ../src/backends/meta-monitor-manager.c:548 | ||||
| #, c-format | ||||
| msgid "%s %s" | ||||
| msgstr "%s %s" | ||||
| @@ -484,7 +484,7 @@ msgid "" | ||||
| msgstr "" | ||||
| "Manajer komposit lain telah berjalan pada layar %i pada tampilan \"%s\"." | ||||
|  | ||||
| #: ../src/core/bell.c:185 | ||||
| #: ../src/core/bell.c:194 | ||||
| msgid "Bell event" | ||||
| msgstr "Bel peristiwa" | ||||
|  | ||||
| @@ -512,40 +512,44 @@ msgstr "_Tunggu" | ||||
| msgid "_Force Quit" | ||||
| msgstr "_Matikan Paksa" | ||||
|  | ||||
| #: ../src/core/display.c:562 | ||||
| #: ../src/core/display.c:555 | ||||
| #, c-format | ||||
| msgid "Failed to open X Window System display '%s'\n" | ||||
| msgstr "Gagal membuka tampilan X Window System '%s'\n" | ||||
|  | ||||
| #: ../src/core/main.c:176 | ||||
| #: ../src/core/main.c:181 | ||||
| msgid "Disable connection to session manager" | ||||
| msgstr "Menonaktifkan koneksi ke manajer sesi" | ||||
|  | ||||
| #: ../src/core/main.c:182 | ||||
| #: ../src/core/main.c:187 | ||||
| msgid "Replace the running window manager" | ||||
| msgstr "Mengganti manajer jendela yang tengah berjalan" | ||||
|  | ||||
| #: ../src/core/main.c:188 | ||||
| #: ../src/core/main.c:193 | ||||
| msgid "Specify session management ID" | ||||
| msgstr "Tentukan kode pengaturan sesi" | ||||
|  | ||||
| #: ../src/core/main.c:193 | ||||
| #: ../src/core/main.c:198 | ||||
| msgid "X Display to use" | ||||
| msgstr "Tampilan X yang digunakna" | ||||
|  | ||||
| #: ../src/core/main.c:199 | ||||
| #: ../src/core/main.c:204 | ||||
| msgid "Initialize session from savefile" | ||||
| msgstr "Aktifkan sesi dari berkas simpanan" | ||||
|  | ||||
| #: ../src/core/main.c:205 | ||||
| #: ../src/core/main.c:210 | ||||
| msgid "Make X calls synchronous" | ||||
| msgstr "Buat panggilan X selaras" | ||||
|  | ||||
| #: ../src/core/main.c:212 | ||||
| #: ../src/core/main.c:217 | ||||
| msgid "Run as a wayland compositor" | ||||
| msgstr "Jalankan sebagai kompositor wayland" | ||||
|  | ||||
| #: ../src/core/main.c:220 | ||||
| #: ../src/core/main.c:223 | ||||
| msgid "Run as a nested compositor" | ||||
| msgstr "Jalankan sebagai kompositor bersarang" | ||||
|  | ||||
| #: ../src/core/main.c:231 | ||||
| msgid "Run as a full display server, rather than nested" | ||||
| msgstr "Jalankan sebagai server tampilan penuh, ketimbang tampilan bersarang" | ||||
|  | ||||
| @@ -573,12 +577,12 @@ msgstr "Cetak versi" | ||||
| msgid "Mutter plugin to use" | ||||
| msgstr "Pengaya Mutter yang dipakai" | ||||
|  | ||||
| #: ../src/core/prefs.c:2004 | ||||
| #: ../src/core/prefs.c:1997 | ||||
| #, c-format | ||||
| msgid "Workspace %d" | ||||
| msgstr "Area kerja %d" | ||||
|  | ||||
| #: ../src/core/screen.c:525 | ||||
| #: ../src/core/screen.c:521 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "Display \"%s\" already has a window manager; try using the --replace option " | ||||
| @@ -587,12 +591,12 @@ msgstr "" | ||||
| "Tampilan \"%s\" sudah memiliki manajer jendela; cobalah gunakan pilihan --" | ||||
| "replace untuk mengganti manajer jendela saat ini." | ||||
|  | ||||
| #: ../src/core/screen.c:607 | ||||
| #: ../src/core/screen.c:603 | ||||
| #, c-format | ||||
| msgid "Screen %d on display '%s' is invalid\n" | ||||
| msgstr "Layar %d pada tampilan '%s' tidak benar\n" | ||||
|  | ||||
| #: ../src/core/util.c:118 | ||||
| #: ../src/core/util.c:121 | ||||
| msgid "Mutter was compiled without support for verbose mode\n" | ||||
| msgstr "Muter dikompilasi tanpa dukungan mode riuh\n" | ||||
|  | ||||
|   | ||||
							
								
								
									
										432
									
								
								po/nb.po
									
									
									
									
									
								
							
							
						
						
									
										432
									
								
								po/nb.po
									
									
									
									
									
								
							| @@ -1,13 +1,13 @@ | ||||
| # Norwegian bokmål translation of mutter. | ||||
| # Copyright © 2002-2004 Free Software Foundation, Inc. | ||||
| # Kjartan Maraas <kmaraas@gnome.org>, 2002-2015. | ||||
| # Kjartan Maraas <kmaraas@gnome.org>, 2002-2016. | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: mutter 3.15.x\n" | ||||
| "Project-Id-Version: mutter 3.20.x\n" | ||||
| "Report-Msgid-Bugs-To: \n" | ||||
| "POT-Creation-Date: 2015-03-19 21:23+0100\n" | ||||
| "PO-Revision-Date: 2015-03-19 21:24+0100\n" | ||||
| "POT-Creation-Date: 2016-05-23 18:59+0200\n" | ||||
| "PO-Revision-Date: 2016-05-23 19:00+0200\n" | ||||
| "Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n" | ||||
| "Language-Team: Norwegian bokmål <i18n-no@lister.ping.uio.no>\n" | ||||
| "Language: \n" | ||||
| @@ -448,22 +448,22 @@ msgstr "Bytt til VT 11" | ||||
| msgid "Switch to VT 12" | ||||
| msgstr "Bytt til VT 12" | ||||
|  | ||||
| #: ../src/backends/meta-monitor-manager.c:364 | ||||
| #: ../src/backends/meta-monitor-manager.c:515 | ||||
| msgid "Built-in display" | ||||
| msgstr "Innebygget skjerm" | ||||
|  | ||||
| #: ../src/backends/meta-monitor-manager.c:391 | ||||
| #: ../src/backends/meta-monitor-manager.c:538 | ||||
| msgid "Unknown" | ||||
| msgstr "Ukjent" | ||||
|  | ||||
| #: ../src/backends/meta-monitor-manager.c:393 | ||||
| #: ../src/backends/meta-monitor-manager.c:540 | ||||
| msgid "Unknown Display" | ||||
| msgstr "Ukjent skjerm" | ||||
|  | ||||
| #. TRANSLATORS: this is a monitor vendor name, followed by a | ||||
| #. * size in inches, like 'Dell 15"' | ||||
| #. | ||||
| #: ../src/backends/meta-monitor-manager.c:401 | ||||
| #: ../src/backends/meta-monitor-manager.c:548 | ||||
| #, c-format | ||||
| msgid "%s %s" | ||||
| msgstr "%s %s" | ||||
| @@ -477,7 +477,7 @@ msgid "" | ||||
| "\"." | ||||
| msgstr "En annen compositing manager kjører skjerm %i på display «%s»." | ||||
|  | ||||
| #: ../src/core/bell.c:185 | ||||
| #: ../src/core/bell.c:194 | ||||
| msgid "Bell event" | ||||
| msgstr "Klokkehendelse" | ||||
|  | ||||
| @@ -506,40 +506,44 @@ msgstr "_Vent" | ||||
| msgid "_Force Quit" | ||||
| msgstr "_Tvungen nedstenging" | ||||
|  | ||||
| #: ../src/core/display.c:562 | ||||
| #: ../src/core/display.c:555 | ||||
| #, c-format | ||||
| msgid "Failed to open X Window System display '%s'\n" | ||||
| msgstr "Feil under åpning av X Window System skjerm «%s»\n" | ||||
|  | ||||
| #: ../src/core/main.c:176 | ||||
| #: ../src/core/main.c:181 | ||||
| msgid "Disable connection to session manager" | ||||
| msgstr "Deaktiver tilkobling til sesjonshåndtereren" | ||||
|  | ||||
| #: ../src/core/main.c:182 | ||||
| #: ../src/core/main.c:187 | ||||
| msgid "Replace the running window manager" | ||||
| msgstr "Erstatt kjørende vindushåndterer" | ||||
|  | ||||
| #: ../src/core/main.c:188 | ||||
| #: ../src/core/main.c:193 | ||||
| msgid "Specify session management ID" | ||||
| msgstr "Oppgi sesjonshåndterings-ID" | ||||
|  | ||||
| #: ../src/core/main.c:193 | ||||
| #: ../src/core/main.c:198 | ||||
| msgid "X Display to use" | ||||
| msgstr "X-skjerm som skal brukes" | ||||
|  | ||||
| #: ../src/core/main.c:199 | ||||
| #: ../src/core/main.c:204 | ||||
| msgid "Initialize session from savefile" | ||||
| msgstr "Initier sesjonen fra en lagret fil" | ||||
|  | ||||
| #: ../src/core/main.c:205 | ||||
| #: ../src/core/main.c:210 | ||||
| msgid "Make X calls synchronous" | ||||
| msgstr "Gjør X-kall synkrone" | ||||
|  | ||||
| #: ../src/core/main.c:212 | ||||
| #: ../src/core/main.c:217 | ||||
| msgid "Run as a wayland compositor" | ||||
| msgstr "Kjør som en wayland-kompositør" | ||||
|  | ||||
| #: ../src/core/main.c:220 | ||||
| #: ../src/core/main.c:223 | ||||
| msgid "Run as a nested compositor" | ||||
| msgstr "Kjør som en nøstet kompositør" | ||||
|  | ||||
| #: ../src/core/main.c:231 | ||||
| msgid "Run as a full display server, rather than nested" | ||||
| msgstr "Kjør som en full skjermtjener, heller enn nøstet" | ||||
|  | ||||
| @@ -565,24 +569,26 @@ msgstr "Skriv versjonsnummer" | ||||
| msgid "Mutter plugin to use" | ||||
| msgstr "Mutter-tillegg som skal brukes" | ||||
|  | ||||
| #: ../src/core/prefs.c:2004 | ||||
| #: ../src/core/prefs.c:1997 | ||||
| #, c-format | ||||
| msgid "Workspace %d" | ||||
| msgstr "Arbeidsområde %d" | ||||
|  | ||||
| #: ../src/core/screen.c:525 | ||||
| #: ../src/core/screen.c:521 | ||||
| #, c-format | ||||
| msgid "" | ||||
| "Display \"%s\" already has a window manager; try using the --replace option " | ||||
| "to replace the current window manager." | ||||
| msgstr "Skjerm «%s» har allerede en vindushåndterer; prøv å bruke flagget --replace for å erstatte aktiv vindushåndterer." | ||||
| msgstr "" | ||||
| "Skjerm «%s» har allerede en vindushåndterer; prøv å bruke flagget --replace " | ||||
| "for å erstatte aktiv vindushåndterer." | ||||
|  | ||||
| #: ../src/core/screen.c:607 | ||||
| #: ../src/core/screen.c:603 | ||||
| #, c-format | ||||
| msgid "Screen %d on display '%s' is invalid\n" | ||||
| msgstr "Skjerm %d på display «%s» er ugyldig\n" | ||||
|  | ||||
| #: ../src/core/util.c:118 | ||||
| #: ../src/core/util.c:121 | ||||
| msgid "Mutter was compiled without support for verbose mode\n" | ||||
| msgstr "Mutter er kompilert uten støtte for «verbose» modus\n" | ||||
|  | ||||
| @@ -598,383 +604,3 @@ msgstr "" | ||||
| #, c-format | ||||
| msgid "%s (on %s)" | ||||
| msgstr "%s (på %s)" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Blend format is \"blend/bg_color/fg_color/alpha\", \"%s\" does not fit " | ||||
| #~ "the format" | ||||
| #~ msgstr "" | ||||
| #~ "Blandingsformat er «blend/bg_color/fg_color/alpha», «%s» passer ikke i " | ||||
| #~ "formatet" | ||||
|  | ||||
| #~ msgid "Could not parse alpha value \"%s\" in blended color" | ||||
| #~ msgstr "Kunne ikke lese alpha-verdi «%s» i blandet farge" | ||||
|  | ||||
| #~ msgid "Alpha value \"%s\" in blended color is not between 0.0 and 1.0" | ||||
| #~ msgstr "Alpha-verdi «%s» i blandet farge er ikke mellom 0.0 og 1.0" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Shade format is \"shade/base_color/factor\", \"%s\" does not fit the " | ||||
| #~ "format" | ||||
| #~ msgstr "" | ||||
| #~ "Skyggeformatet er «shade/base_color/factor», «%s» passer ikke i formatet" | ||||
|  | ||||
| #~ msgid "Could not parse shade factor \"%s\" in shaded color" | ||||
| #~ msgstr "Kunne ikke lese skyggefaktor «%s» i skyggelagt farge" | ||||
|  | ||||
| #~ msgid "Shade factor \"%s\" in shaded color is negative" | ||||
| #~ msgstr "Skyggefaktor «%s» i skyggelagt farge er negativ" | ||||
|  | ||||
| #~ msgid "Could not parse color \"%s\"" | ||||
| #~ msgstr "Kunne ikke lese farge «%s»" | ||||
|  | ||||
| #~ msgid "Coordinate expression contains character '%s' which is not allowed" | ||||
| #~ msgstr "Koordinatuttrykk inneholder tegn «%s» som ikke er tillatt" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Coordinate expression contains floating point number '%s' which could not " | ||||
| #~ "be parsed" | ||||
| #~ msgstr "Koordinatuttrykk inneholder flyttall «%s» som ikke kunne tolkes" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Coordinate expression contains integer '%s' which could not be parsed" | ||||
| #~ msgstr "Koordinatuttrykk inneholder heltall «%s» som ikke kunne tolkes" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Coordinate expression contained unknown operator at the start of this " | ||||
| #~ "text: \"%s\"" | ||||
| #~ msgstr "" | ||||
| #~ "Koordinatuttrykket inneholdt en ukjent operator ved begynnelsen av denne " | ||||
| #~ "teksten: «%s»" | ||||
|  | ||||
| #~ msgid "Coordinate expression was empty or not understood" | ||||
| #~ msgstr "Koordinatuttrykket var tomt eller ble ikke forstått" | ||||
|  | ||||
| #~ msgid "Coordinate expression results in division by zero" | ||||
| #~ msgstr "Koordinatuttrykket resulterer i divisjon med null" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Coordinate expression tries to use mod operator on a floating-point number" | ||||
| #~ msgstr "Koordinatuttrykket prøver å bruke mod-operator på et flyttall" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Coordinate expression has an operator \"%s\" where an operand was expected" | ||||
| #~ msgstr "Koordinatuttrykket har en operator «%s» hvor en operand var ventet" | ||||
|  | ||||
| #~ msgid "Coordinate expression had an operand where an operator was expected" | ||||
| #~ msgstr "Koordinatuttrykket hadde en operand hvor en operator var ventet" | ||||
|  | ||||
| #~ msgid "Coordinate expression ended with an operator instead of an operand" | ||||
| #~ msgstr "Koordinatuttrykket sluttet med en operator i stedet for en operand" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Coordinate expression has operator \"%c\" following operator \"%c\" with " | ||||
| #~ "no operand in between" | ||||
| #~ msgstr "" | ||||
| #~ "Koordinatuttrykket har en operator «%c» etter en operator «%c» og ingen " | ||||
| #~ "operand mellom dem." | ||||
|  | ||||
| #~ msgid "Coordinate expression had unknown variable or constant \"%s\"" | ||||
| #~ msgstr "Koordinatuttrykket haddeen ukjent variabel eller konstant «%s»" | ||||
|  | ||||
| #~ msgid "Coordinate expression parser overflowed its buffer." | ||||
| #~ msgstr "Tolkeren for koordinatuttrykk oversteg buffergrensen." | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Coordinate expression had a close parenthesis with no open parenthesis" | ||||
| #~ msgstr "Koordinatuttrykket hadde en parantes slutt uten parantes start" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Coordinate expression had an open parenthesis with no close parenthesis" | ||||
| #~ msgstr "" | ||||
| #~ "Koordinatuttrykket hadde en åpen parantes uten en avsluttende parantes" | ||||
|  | ||||
| #~ msgid "Coordinate expression doesn't seem to have any operators or operands" | ||||
| #~ msgstr "" | ||||
| #~ "Koordinatuttrykket ser ikke ut til å ha noen operatorer eller operander" | ||||
|  | ||||
| #~ msgid "Theme contained an expression that resulted in an error: %s\n" | ||||
| #~ msgstr "Tema inneholdt et uttrykk som resulterte i en feil: %s\n" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "<button function=\"%s\" state=\"%s\" draw_ops=\"whatever\"/> must be " | ||||
| #~ "specified for this frame style" | ||||
| #~ msgstr "" | ||||
| #~ "<button function=«%s» state=«%s» draw_ops=«ett-eller-annet»/> må " | ||||
| #~ "spesifiseres for denne rammestilen" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Missing <frame state=\"%s\" resize=\"%s\" focus=\"%s\" style=\"whatever\"/" | ||||
| #~ ">" | ||||
| #~ msgstr "" | ||||
| #~ "Mangler <frame state=«%s» resize=«%s» focus=«%s» stil=«ett-eller-annet»/>" | ||||
|  | ||||
| #~ msgid "Failed to load theme \"%s\": %s\n" | ||||
| #~ msgstr "Klarte ikke å laste tema «%s»: %s\n" | ||||
|  | ||||
| #~ msgid "No <%s> set for theme \"%s\"" | ||||
| #~ msgstr "<%s> er ikke satt for tema «%s»" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "No frame style set for window type \"%s\" in theme \"%s\", add a <window " | ||||
| #~ "type=\"%s\" style_set=\"whatever\"/> element" | ||||
| #~ msgstr "" | ||||
| #~ "Ingen rammestil satt for vindutype «%s» i tema «%s», legg til et <window " | ||||
| #~ "type=«%s» style_set=«ett-eller-annet»/>-element" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "User-defined constants must begin with a capital letter; \"%s\" does not" | ||||
| #~ msgstr "" | ||||
| #~ "Brukerdefinerte konstanter må begynne med stor bokstav; «%s» gjør ikke det" | ||||
|  | ||||
| #~ msgid "Constant \"%s\" has already been defined" | ||||
| #~ msgstr "Konstant «%s» er allerede definert" | ||||
|  | ||||
| #~ msgid "No \"%s\" attribute on element <%s>" | ||||
| #~ msgstr "Ingen «%s»-attributt på element <%s>" | ||||
|  | ||||
| #~ msgid "Line %d character %d: %s" | ||||
| #~ msgstr "Linje %d tegn %d: %s" | ||||
|  | ||||
| #~ msgid "Attribute \"%s\" repeated twice on the same <%s> element" | ||||
| #~ msgstr "Attributt «%s» gjentatt to ganger på samme <%s>-element" | ||||
|  | ||||
| #~ msgid "Attribute \"%s\" is invalid on <%s> element in this context" | ||||
| #~ msgstr "Attributt «%s» er ugyldig på <%s>-element i denne konteksten" | ||||
|  | ||||
| #~ msgid "Could not parse \"%s\" as an integer" | ||||
| #~ msgstr "Kunne ikke lese «%s» som et heltall" | ||||
|  | ||||
| #~ msgid "Did not understand trailing characters \"%s\" in string \"%s\"" | ||||
| #~ msgstr "Forsto ikke etterslepende tegn «%s» i streng «%s»" | ||||
|  | ||||
| #~ msgid "Integer %ld must be positive" | ||||
| #~ msgstr "Heltall %ld må være positivt" | ||||
|  | ||||
| #~ msgid "Integer %ld is too large, current max is %d" | ||||
| #~ msgstr "Heltall %ld er for stort, maksimalverdien er %d" | ||||
|  | ||||
| #~ msgid "Could not parse \"%s\" as a floating point number" | ||||
| #~ msgstr "Kunne ikke lese «%s» som et flyttall" | ||||
|  | ||||
| #~ msgid "Boolean values must be \"true\" or \"false\" not \"%s\"" | ||||
| #~ msgstr "Bolske verdier må være «sann» eller «usann» ikke «%s»" | ||||
|  | ||||
| #~ msgid "Angle must be between 0.0 and 360.0, was %g\n" | ||||
| #~ msgstr "Vinkelen må være mellom 0.0 og 360.0, var %g\n" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Alpha must be between 0.0 (invisible) and 1.0 (fully opaque), was %g\n" | ||||
| #~ msgstr "" | ||||
| #~ "Alpha må være mellom 0.0 (usynlig) og 1.0 (helt ugjennomsiktig), var %g\n" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Invalid title scale \"%s\" (must be one of xx-small,x-small,small,medium," | ||||
| #~ "large,x-large,xx-large)\n" | ||||
| #~ msgstr "" | ||||
| #~ "Ugyldig skalering av tittel «%s» (må være en av xx-small,x-small,small," | ||||
| #~ "medium,large,x-large,xx-large)\n" | ||||
|  | ||||
| #~ msgid "<%s> name \"%s\" used a second time" | ||||
| #~ msgstr "<%s> navn «%s» brukt på nytt" | ||||
|  | ||||
| #~ msgid "<%s> parent \"%s\" has not been defined" | ||||
| #~ msgstr "<%s> opphav «%s» er ikke definert" | ||||
|  | ||||
| #~ msgid "<%s> geometry \"%s\" has not been defined" | ||||
| #~ msgstr "<%s> geometri «%s» er ikke definert" | ||||
|  | ||||
| #~ msgid "<%s> must specify either a geometry or a parent that has a geometry" | ||||
| #~ msgstr "" | ||||
| #~ "<%s> må spesifisere enten en geometri eller et opphav som har geometri" | ||||
|  | ||||
| #~ msgid "You must specify a background for an alpha value to be meaningful" | ||||
| #~ msgstr "Du må oppgi en bakgrunn for at en alpha-verdi skal ha mening" | ||||
|  | ||||
| #~ msgid "Unknown type \"%s\" on <%s> element" | ||||
| #~ msgstr "Ukjent type «%s» på <%s>-element" | ||||
|  | ||||
| #~ msgid "Unknown style_set \"%s\" on <%s> element" | ||||
| #~ msgstr "Ukjent style_set «%s» på <%s>-element" | ||||
|  | ||||
| #~ msgid "Window type \"%s\" has already been assigned a style set" | ||||
| #~ msgstr "Vindutype «%s» er allerede tildelt et stilsett" | ||||
|  | ||||
| #~ msgid "Element <%s> is not allowed below <%s>" | ||||
| #~ msgstr "Element <%s> er ikke tillatt under <%s>" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Cannot specify both \"button_width\"/\"button_height\" and \"aspect_ratio" | ||||
| #~ "\" for buttons" | ||||
| #~ msgstr "" | ||||
| #~ "Kan ikke spesifisere både «button_width»/«button_height» og " | ||||
| #~ "«aspect_ratio» for knapper" | ||||
|  | ||||
| #~ msgid "Distance \"%s\" is unknown" | ||||
| #~ msgstr "Avstand «%s» er ukjent" | ||||
|  | ||||
| #~ msgid "Aspect ratio \"%s\" is unknown" | ||||
| #~ msgstr "Aspektrate «%s» er ukjent" | ||||
|  | ||||
| #~ msgid "Border \"%s\" is unknown" | ||||
| #~ msgstr "Grense «%s» er ukjent" | ||||
|  | ||||
| #~ msgid "No \"start_angle\" or \"from\" attribute on element <%s>" | ||||
| #~ msgstr "Ingen «start_angle» eller «from»-attributt på element <%s>" | ||||
|  | ||||
| #~ msgid "No \"extent_angle\" or \"to\" attribute on element <%s>" | ||||
| #~ msgstr "Ingen «extent_angle» eller «to»-attributt <%s>-element" | ||||
|  | ||||
| #~ msgid "Did not understand value \"%s\" for type of gradient" | ||||
| #~ msgstr "Forsto ikke verdi «%s» for gradienttype" | ||||
|  | ||||
| #~ msgid "Did not understand fill type \"%s\" for <%s> element" | ||||
| #~ msgstr "Forsto ikke fyll-type «%s» for <%s>-element" | ||||
|  | ||||
| #~ msgid "Did not understand state \"%s\" for <%s> element" | ||||
| #~ msgstr "Forsto ikke tilstand «%s» for element <%s>" | ||||
|  | ||||
| #~ msgid "Did not understand shadow \"%s\" for <%s> element" | ||||
| #~ msgstr "Forsto ikke skygge «%s» for element <%s>" | ||||
|  | ||||
| #~ msgid "Did not understand arrow \"%s\" for <%s> element" | ||||
| #~ msgstr "Forsto ikke pil «%s» for element <%s>" | ||||
|  | ||||
| #~ msgid "No <draw_ops> called \"%s\" has been defined" | ||||
| #~ msgstr "Ingen <draw_ops> kalt «%s» er definert" | ||||
|  | ||||
| #~ msgid "Including draw_ops \"%s\" here would create a circular reference" | ||||
| #~ msgstr "" | ||||
| #~ "Hvis du tar med draw_ops «%s» her vil dette lage en sirkulær referanse" | ||||
|  | ||||
| #~ msgid "Unknown position \"%s\" for frame piece" | ||||
| #~ msgstr "Ukjent posisjon «%s» for rammesdel" | ||||
|  | ||||
| #~ msgid "Frame style already has a piece at position %s" | ||||
| #~ msgstr "Rammestil har allerede en del i posisjon %s" | ||||
|  | ||||
| #~ msgid "No <draw_ops> with the name \"%s\" has been defined" | ||||
| #~ msgstr "Ingen <draw_ops> med navn «%s» er definert" | ||||
|  | ||||
| #~ msgid "Unknown function \"%s\" for button" | ||||
| #~ msgstr "Ukjent funksjon «%s» for knapp" | ||||
|  | ||||
| #~ msgid "Button function \"%s\" does not exist in this version (%d, need %d)" | ||||
| #~ msgstr "" | ||||
| #~ "Knappefunksjon «%s» eksisterer ikke i denne versjonen (%d, trenger %d)" | ||||
|  | ||||
| #~ msgid "Unknown state \"%s\" for button" | ||||
| #~ msgstr "Ukjent tilstand «%s» for knapp" | ||||
|  | ||||
| #~ msgid "Frame style already has a button for function %s state %s" | ||||
| #~ msgstr "Rammestil har allerede en knapp for funksjon %s tilstand %s" | ||||
|  | ||||
| #~ msgid "\"%s\" is not a valid value for focus attribute" | ||||
| #~ msgstr "«%s» er ikke en gyldig verdi for fokusattributt" | ||||
|  | ||||
| #~ msgid "\"%s\" is not a valid value for state attribute" | ||||
| #~ msgstr "«%s» er ikke en gyldig verdi for tilstandsattributt" | ||||
|  | ||||
| #~ msgid "A style called \"%s\" has not been defined" | ||||
| #~ msgstr "En stil med navn «%s» er ikke definert" | ||||
|  | ||||
| #~ msgid "\"%s\" is not a valid value for resize attribute" | ||||
| #~ msgstr "«%s» er ikke en gyldig verdi for attributt for endring av størrelse" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Should not have \"resize\" attribute on <%s> element for maximized/shaded " | ||||
| #~ "states" | ||||
| #~ msgstr "" | ||||
| #~ "Skal ikke være noen «resize»-attributt på <%s>-element for maksimert/" | ||||
| #~ "skyggelagt tilstand" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Should not have \"resize\" attribute on <%s> element for maximized states" | ||||
| #~ msgstr "" | ||||
| #~ "Skal ikke være noen «resize»-attributt på <%s>-element for maksimert " | ||||
| #~ "tilstand" | ||||
|  | ||||
| #~ msgid "Style has already been specified for state %s resize %s focus %s" | ||||
| #~ msgstr "" | ||||
| #~ "Stil er allerede spesifisert for tilstand %s størrelsesendring %s fokus %s" | ||||
|  | ||||
| #~ msgid "Style has already been specified for state %s focus %s" | ||||
| #~ msgstr "Stil er allerede spesifisert for tilstand %s fokus %s" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Can't have a two draw_ops for a <piece> element (theme specified a " | ||||
| #~ "draw_ops attribute and also a <draw_ops> element, or specified two " | ||||
| #~ "elements)" | ||||
| #~ msgstr "" | ||||
| #~ "Kan ikke ha to draw_ops for et <piece>-element (tema spesifiserte en " | ||||
| #~ "draw_ops-attributt i tillegg til et <draw_ops>-element, eller så " | ||||
| #~ "spesifiserte det to elementer)" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Can't have a two draw_ops for a <button> element (theme specified a " | ||||
| #~ "draw_ops attribute and also a <draw_ops> element, or specified two " | ||||
| #~ "elements)" | ||||
| #~ msgstr "" | ||||
| #~ "Kan ikke ha to draw_ops for et <button>-element (tema spesifiserte en " | ||||
| #~ "draw_ops-attributt i tillegg til et <draw_ops>-element, eller det " | ||||
| #~ "spesifiserte to elementer)" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Can't have a two draw_ops for a <menu_icon> element (theme specified a " | ||||
| #~ "draw_ops attribute and also a <draw_ops> element, or specified two " | ||||
| #~ "elements)" | ||||
| #~ msgstr "" | ||||
| #~ "Kan ikke ha to draw_ops for et <menu_icon>-element (tema spesifiserte en " | ||||
| #~ "draw_ops-attributt i tillegg til et <draw_ops>-element, eller det " | ||||
| #~ "spesifiserte to elementer)" | ||||
|  | ||||
| #~ msgid "Bad version specification '%s'" | ||||
| #~ msgstr "Ugyldig versjonspesifikasjon «%s»" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "\"version\" attribute cannot be used in metacity-theme-1.xml or metacity-" | ||||
| #~ "theme-2.xml" | ||||
| #~ msgstr "" | ||||
| #~ "«version»-attributt kan ikke brukes i metacity-theme-1.xml eller metacity-" | ||||
| #~ "theme-2.xml" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Theme requires version %s but latest supported theme version is %d.%d" | ||||
| #~ msgstr "Tema krever versjon %s men siste støttede temaversjon er %d.%d" | ||||
|  | ||||
| #~ msgid "Outermost element in theme must be <metacity_theme> not <%s>" | ||||
| #~ msgstr "Ytterste element i temaet må være <metacity_theme> ikke <%s>" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Element <%s> is not allowed inside a name/author/date/description element" | ||||
| #~ msgstr "" | ||||
| #~ "Element <%s> er ikke tillatt inne i et name/author/date/description " | ||||
| #~ "element" | ||||
|  | ||||
| #~ msgid "Element <%s> is not allowed inside a <constant> element" | ||||
| #~ msgstr "Element <%s> er ikke tillatt inne i et <constand> element" | ||||
|  | ||||
| #~ msgid "" | ||||
| #~ "Element <%s> is not allowed inside a distance/border/aspect_ratio element" | ||||
| #~ msgstr "" | ||||
| #~ "Element <%s> er ikke tillatt inne i et avstand/kant/aspektrate-element" | ||||
|  | ||||
| #~ msgid "Element <%s> is not allowed inside a draw operation element" | ||||
| #~ msgstr "Element <%s> er ikke tillatt inne i et element for tegneoperasjon" | ||||
|  | ||||
| #~ msgid "Element <%s> is not allowed inside a <%s> element" | ||||
| #~ msgstr "Element <%s> er ikke tillatt inne i et <%s>-element" | ||||
|  | ||||
| #~ msgid "No draw_ops provided for frame piece" | ||||
| #~ msgstr "Ingen draw_ops tilbys for rammedelen" | ||||
|  | ||||
| #~ msgid "No draw_ops provided for button" | ||||
| #~ msgstr "Ingen draw_ops tilbys for knappen" | ||||
|  | ||||
| #~ msgid "No text is allowed inside element <%s>" | ||||
| #~ msgstr "Ingen tekst er tillatt inne i element <%s>" | ||||
|  | ||||
| #~ msgid "<%s> specified twice for this theme" | ||||
| #~ msgstr "<%s> spesifisert to ganger for dette temaet" | ||||
|  | ||||
| #~ msgid "Failed to find a valid file for theme %s\n" | ||||
| #~ msgstr "Fant ikke en gyldig fil for tema %s\n" | ||||
|   | ||||
							
								
								
									
										73
									
								
								po/pt.po
									
									
									
									
									
								
							
							
						
						
									
										73
									
								
								po/pt.po
									
									
									
									
									
								
							| @@ -3,21 +3,22 @@ | ||||
| # Distributed under the same licence as the metacity package | ||||
| # Duarte Loreto <happyguy_pt@hotmail.com>, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014. | ||||
| # Pedro Albuquerque <palbuquerque73@openmailbox.com>, 2015. | ||||
| # Tiago Santos <tiagofsantos81@sapo.pt>, 2016. | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: 3.10\n" | ||||
| "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" | ||||
| "product=mutter&keywords=I18N+L10N&component=general\n" | ||||
| "POT-Creation-Date: 2015-06-07 22:51+0000\n" | ||||
| "PO-Revision-Date: 2015-06-25 08:16+0100\n" | ||||
| "Last-Translator: Pedro Albuquerque <palbuquerque73@openmailbox.com>\n" | ||||
| "POT-Creation-Date: 2016-04-30 13:15+0000\n" | ||||
| "PO-Revision-Date: 2016-04-30 16:12+0100\n" | ||||
| "Last-Translator: Tiago Santos <tiagofsantos81@sapo.pt>\n" | ||||
| "Language-Team: Português <palbuquerque73@openmailbox.com>\n" | ||||
| "Language: pt\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
| "X-Generator: Gtranslator 2.91.6\n" | ||||
| "X-Generator: Poedit 1.5.4\n" | ||||
| "Plural-Forms: nplurals=2; plural=(n != 1);\n" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:1 | ||||
| @@ -41,7 +42,6 @@ msgid "Move window to workspace 4" | ||||
| msgstr "Mover janela para a área de trabalho 4" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:6 | ||||
| #| msgid "Move window to workspace 1" | ||||
| msgid "Move window to last workspace" | ||||
| msgstr "Mover janela para a última área de trabalho" | ||||
|  | ||||
| @@ -82,7 +82,6 @@ msgid "Switch applications" | ||||
| msgstr "Mudar de aplicações" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:16 | ||||
| #| msgid "Switch applications" | ||||
| msgid "Switch to previous application" | ||||
| msgstr "Mudar para a aplicação anterior" | ||||
|  | ||||
| @@ -91,7 +90,6 @@ msgid "Switch windows" | ||||
| msgstr "Mudar de janelas" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:18 | ||||
| #| msgid "Switch windows" | ||||
| msgid "Switch to previous window" | ||||
| msgstr "Mudar para a janela anterior" | ||||
|  | ||||
| @@ -100,7 +98,6 @@ msgid "Switch windows of an application" | ||||
| msgstr "Alternar entre janelas de uma aplicação" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:20 | ||||
| #| msgid "Switch windows of an application" | ||||
| msgid "Switch to previous window of an application" | ||||
| msgstr "Mudar para a janela anterior de uma aplicação" | ||||
|  | ||||
| @@ -109,7 +106,6 @@ msgid "Switch system controls" | ||||
| msgstr "Alternar entre controlos de sistema" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:22 | ||||
| #| msgid "Switch system controls" | ||||
| msgid "Switch to previous system control" | ||||
| msgstr "Mudar para o controlo de sistema anterior" | ||||
|  | ||||
| @@ -126,7 +122,6 @@ msgid "Switch windows of an app directly" | ||||
| msgstr "Alternar diretamente entre janelas de uma aplicação" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:26 | ||||
| #| msgid "Switch windows of an application" | ||||
| msgid "Switch directly to previous window of an app" | ||||
| msgstr "Mudar diretamente para a janela anterior de uma aplicação" | ||||
|  | ||||
| @@ -135,7 +130,6 @@ msgid "Switch system controls directly" | ||||
| msgstr "Alternar diretamente entre controlos de sistema" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:28 | ||||
| #| msgid "Switch system controls" | ||||
| msgid "Switch directly to previous system control" | ||||
| msgstr "Mudar diretamente para o controlo de sistema anterior" | ||||
|  | ||||
| @@ -160,7 +154,6 @@ msgid "Switch to workspace 4" | ||||
| msgstr "Mudar para a área de trabalho 4" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:34 | ||||
| #| msgid "Switch to workspace 1" | ||||
| msgid "Switch to last workspace" | ||||
| msgstr "Mudar para a última área de trabalho 1" | ||||
|  | ||||
| @@ -415,81 +408,69 @@ msgid "Cancel tab popup" | ||||
| msgstr "Cancelar o popup de tabulador" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:1 | ||||
| #| msgid "Switch to workspace 1" | ||||
| msgid "Switch to VT 1" | ||||
| msgstr "Alternar para a área de trabalho 1" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:2 | ||||
| #| msgid "Switch to workspace 2" | ||||
| msgid "Switch to VT 2" | ||||
| msgstr "Alternar para a área de trabalho 2" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:3 | ||||
| #| msgid "Switch to workspace 3" | ||||
| msgid "Switch to VT 3" | ||||
| msgstr "Alternar para a área de trabalho 3" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:4 | ||||
| #| msgid "Switch to workspace 4" | ||||
| msgid "Switch to VT 4" | ||||
| msgstr "Alternar para a área de trabalho 4" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:5 | ||||
| #| msgid "Switch to workspace 5" | ||||
| msgid "Switch to VT 5" | ||||
| msgstr "Mover para a área de trabalho 5" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:6 | ||||
| #| msgid "Switch to workspace 6" | ||||
| msgid "Switch to VT 6" | ||||
| msgstr "Mover para a área de trabalho 6" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:7 | ||||
| #| msgid "Switch to workspace 7" | ||||
| msgid "Switch to VT 7" | ||||
| msgstr "Mover para a área de trabalho 7" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8 | ||||
| #| msgid "Switch to workspace 8" | ||||
| msgid "Switch to VT 8" | ||||
| msgstr "Mover para a área de trabalho 8" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9 | ||||
| #| msgid "Switch to workspace 9" | ||||
| msgid "Switch to VT 9" | ||||
| msgstr "Mover para a área de trabalho 9" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10 | ||||
| #| msgid "Switch to workspace 10" | ||||
| msgid "Switch to VT 10" | ||||
| msgstr "Mover para a área de trabalho 10" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11 | ||||
| #| msgid "Switch to workspace 11" | ||||
| msgid "Switch to VT 11" | ||||
| msgstr "Mover para a área de trabalho 11" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12 | ||||
| #| msgid "Switch to workspace 12" | ||||
| msgid "Switch to VT 12" | ||||
| msgstr "Mover para a área de trabalho 12" | ||||
|  | ||||
| #: ../src/backends/meta-monitor-manager.c:496 | ||||
| #: ../src/backends/meta-monitor-manager.c:515 | ||||
| msgid "Built-in display" | ||||
| msgstr "Ecrã embutido" | ||||
|  | ||||
| #: ../src/backends/meta-monitor-manager.c:522 | ||||
| #: ../src/backends/meta-monitor-manager.c:538 | ||||
| msgid "Unknown" | ||||
| msgstr "Desconhecido" | ||||
|  | ||||
| #: ../src/backends/meta-monitor-manager.c:524 | ||||
| #: ../src/backends/meta-monitor-manager.c:540 | ||||
| msgid "Unknown Display" | ||||
| msgstr "Ecrã desconhecido" | ||||
|  | ||||
| #. TRANSLATORS: this is a monitor vendor name, followed by a | ||||
| #. * size in inches, like 'Dell 15"' | ||||
| #. | ||||
| #: ../src/backends/meta-monitor-manager.c:532 | ||||
| #: ../src/backends/meta-monitor-manager.c:548 | ||||
| #, c-format | ||||
| msgid "%s %s" | ||||
| msgstr "%s %s" | ||||
| @@ -505,7 +486,7 @@ msgstr "" | ||||
| "Já se encontra em execução outro gestor de janelas no ecrã %i do monitor \"%s" | ||||
| "\"." | ||||
|  | ||||
| #: ../src/core/bell.c:185 | ||||
| #: ../src/core/bell.c:194 | ||||
| msgid "Bell event" | ||||
| msgstr "Evento de campainha" | ||||
|  | ||||
| @@ -534,40 +515,45 @@ msgstr "_Aguardar" | ||||
| msgid "_Force Quit" | ||||
| msgstr "_Forçar terminar" | ||||
|  | ||||
| #: ../src/core/display.c:563 | ||||
| #: ../src/core/display.c:555 | ||||
| #, c-format | ||||
| msgid "Failed to open X Window System display '%s'\n" | ||||
| msgstr "Falha ao abrir ecrã \"%s\" do sistema Janelas X\n" | ||||
|  | ||||
| #: ../src/core/main.c:176 | ||||
| #: ../src/core/main.c:181 | ||||
| msgid "Disable connection to session manager" | ||||
| msgstr "Desativar a ligação ao gestor de sessão" | ||||
|  | ||||
| #: ../src/core/main.c:182 | ||||
| #: ../src/core/main.c:187 | ||||
| msgid "Replace the running window manager" | ||||
| msgstr "Substituir o gestor de janelas em execução" | ||||
|  | ||||
| #: ../src/core/main.c:188 | ||||
| #: ../src/core/main.c:193 | ||||
| msgid "Specify session management ID" | ||||
| msgstr "Especificar a ID de gestão de sessão" | ||||
|  | ||||
| #: ../src/core/main.c:193 | ||||
| #: ../src/core/main.c:198 | ||||
| msgid "X Display to use" | ||||
| msgstr "Ecrã X a utilizar" | ||||
|  | ||||
| #: ../src/core/main.c:199 | ||||
| #: ../src/core/main.c:204 | ||||
| msgid "Initialize session from savefile" | ||||
| msgstr "Inicializar a sessão a partir de um ficheiro de gravação de sessão" | ||||
|  | ||||
| #: ../src/core/main.c:205 | ||||
| #: ../src/core/main.c:210 | ||||
| msgid "Make X calls synchronous" | ||||
| msgstr "Fazer as chamadas X sincronamente" | ||||
|  | ||||
| #: ../src/core/main.c:212 | ||||
| #: ../src/core/main.c:217 | ||||
| msgid "Run as a wayland compositor" | ||||
| msgstr "Executar como compositor wayland" | ||||
|  | ||||
| #: ../src/core/main.c:220 | ||||
| #: ../src/core/main.c:223 | ||||
| #| msgid "Run as a wayland compositor" | ||||
| msgid "Run as a nested compositor" | ||||
| msgstr "Executar como compositor aninhado" | ||||
|  | ||||
| #: ../src/core/main.c:231 | ||||
| msgid "Run as a full display server, rather than nested" | ||||
| msgstr "Executar como servidor de ecrã completo, em vez de aninhado" | ||||
|  | ||||
| @@ -595,16 +581,13 @@ msgstr "Imprimir a versão" | ||||
| msgid "Mutter plugin to use" | ||||
| msgstr "Extensão Mutter a utilizar" | ||||
|  | ||||
| #: ../src/core/prefs.c:2004 | ||||
| #: ../src/core/prefs.c:1997 | ||||
| #, c-format | ||||
| msgid "Workspace %d" | ||||
| msgstr "Área de trabalho %d" | ||||
|  | ||||
| #: ../src/core/screen.c:525 | ||||
| #: ../src/core/screen.c:521 | ||||
| #, c-format | ||||
| #| msgid "" | ||||
| #| "Screen %d on display \"%s\" already has a window manager; try using the --" | ||||
| #| "replace option to replace the current window manager.\n" | ||||
| msgid "" | ||||
| "Display \"%s\" already has a window manager; try using the --replace option " | ||||
| "to replace the current window manager." | ||||
| @@ -612,12 +595,12 @@ msgstr "" | ||||
| "O ecrã \"%s\" já tem um gestor de janelas; tente utilizar a opção --replace " | ||||
| "para substituir o gestor de janelas atual." | ||||
|  | ||||
| #: ../src/core/screen.c:607 | ||||
| #: ../src/core/screen.c:603 | ||||
| #, c-format | ||||
| msgid "Screen %d on display '%s' is invalid\n" | ||||
| msgstr "Ecrã %d no monitor \"%s\" é inválido\n" | ||||
|  | ||||
| #: ../src/core/util.c:118 | ||||
| #: ../src/core/util.c:121 | ||||
| msgid "Mutter was compiled without support for verbose mode\n" | ||||
| msgstr "O Mutter foi compilado sem suporte para modo verboso\n" | ||||
|  | ||||
|   | ||||
							
								
								
									
										82
									
								
								po/tr.po
									
									
									
									
									
								
							
							
						
						
									
										82
									
								
								po/tr.po
									
									
									
									
									
								
							| @@ -6,22 +6,22 @@ | ||||
| # Baris Cicek <baris@teamforce.name.tr>, 2004, 2005, 2008, 2009. | ||||
| # İlker DAĞLI <ilker@ilkerdagli.info>, 2011. | ||||
| # Muhammed EKEN <gnome@m-eken.com>, 2011. | ||||
| # Muhammet Kara <muhammetk@gmail.com>, 2011, 2012, 2014, 2015. | ||||
| # Muhammet Kara <muhammetk@gmail.com>, 2011, 2012, 2014, 2015, 2016. | ||||
| # | ||||
| msgid "" | ||||
| msgstr "" | ||||
| "Project-Id-Version: mutter master\n" | ||||
| "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" | ||||
| "product=mutter&keywords=I18N+L10N&component=general\n" | ||||
| "POT-Creation-Date: 2015-03-21 23:08+0000\n" | ||||
| "PO-Revision-Date: 2015-03-22 15:57+0200\n" | ||||
| "POT-Creation-Date: 2016-05-10 20:26+0000\n" | ||||
| "PO-Revision-Date: 2016-05-26 22:25+0300\n" | ||||
| "Last-Translator: Muhammet Kara <muhammetk@gmail.com>\n" | ||||
| "Language-Team: Turkish <gnome-turk@gnome.org>\n" | ||||
| "Language: tr\n" | ||||
| "MIME-Version: 1.0\n" | ||||
| "Content-Type: text/plain; charset=UTF-8\n" | ||||
| "Content-Transfer-Encoding: 8bit\n" | ||||
| "X-Generator: Gtranslator 2.91.6\n" | ||||
| "X-Generator: Poedit 1.8.6\n" | ||||
| "Plural-Forms: nplurals=1; plural=0;\n" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:1 | ||||
| @@ -73,12 +73,10 @@ msgid "Move window one monitor to the right" | ||||
| msgstr "Pencereyi sağdaki monitöre taşı" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:13 | ||||
| #| msgid "Move window one workspace up" | ||||
| msgid "Move window one monitor up" | ||||
| msgstr "Pencereyi üstteki monitöre taşı" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:14 | ||||
| #| msgid "Move window one workspace down" | ||||
| msgid "Move window one monitor down" | ||||
| msgstr "Pencereyi alttaki monitöre taşı" | ||||
|  | ||||
| @@ -99,12 +97,10 @@ msgid "Switch to previous window" | ||||
| msgstr "Önceki pencereye geç" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:19 | ||||
| #| msgid "Move between windows of an application immediately" | ||||
| msgid "Switch windows of an application" | ||||
| msgstr "Uygulamanın pencereleri arasında geçiş yap" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:20 | ||||
| #| msgid "Move between windows of an application immediately" | ||||
| msgid "Switch to previous window of an application" | ||||
| msgstr "Uygulamanın bir önceki penceresine geç" | ||||
|  | ||||
| @@ -125,7 +121,6 @@ msgid "Switch directly to previous window" | ||||
| msgstr "Önceki pencereye doğrudan geç" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:25 | ||||
| #| msgid "Move between windows of an application immediately" | ||||
| msgid "Switch windows of an app directly" | ||||
| msgstr "Uygulamanın pencereleri arasında anında geçiş yap" | ||||
|  | ||||
| @@ -142,7 +137,6 @@ msgid "Switch directly to previous system control" | ||||
| msgstr "Önceki sistem denetimine doğrudan geç" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:29 | ||||
| #| msgid "Hide all normal windows and set focus to the desktop" | ||||
| msgid "Hide all normal windows" | ||||
| msgstr "Tüm normal pencereleri gizle" | ||||
|  | ||||
| @@ -163,27 +157,22 @@ msgid "Switch to workspace 4" | ||||
| msgstr "Çalışma alanı 4'e geç" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:34 | ||||
| #| msgid "Switch to workspace 1" | ||||
| msgid "Switch to last workspace" | ||||
| msgstr "Son çalışma alanına geç" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:35 | ||||
| #| msgid "Move to Workspace _Left" | ||||
| msgid "Move to workspace left" | ||||
| msgstr "Soldaki çalışma alanına taşı" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:36 | ||||
| #| msgid "Move to Workspace R_ight" | ||||
| msgid "Move to workspace right" | ||||
| msgstr "Sağdaki çalışma alanına taşı" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:37 | ||||
| #| msgid "Move to Workspace _Left" | ||||
| msgid "Move to workspace above" | ||||
| msgstr "Üstteki çalışma alanına taşı" | ||||
|  | ||||
| #: ../data/50-mutter-navigation.xml.in.h:38 | ||||
| #| msgid "Move to Workspace _Down" | ||||
| msgid "Move to workspace below" | ||||
| msgstr "Alttaki çalışma alanına taşı" | ||||
|  | ||||
| @@ -192,7 +181,6 @@ msgid "System" | ||||
| msgstr "Sistem" | ||||
|  | ||||
| #: ../data/50-mutter-system.xml.in.h:2 | ||||
| #| msgid "Show the panel's main menu" | ||||
| msgid "Show the run command prompt" | ||||
| msgstr "Komut çalıştırma istemini göster" | ||||
|  | ||||
| @@ -245,14 +233,12 @@ msgid "Resize window" | ||||
| msgstr "Pencereyi yeniden boyutlandır" | ||||
|  | ||||
| #: ../data/50-mutter-windows.xml.in.h:12 | ||||
| #| msgid "Toggle whether window is on all workspaces or just one" | ||||
| msgid "Toggle window on all workspaces or one" | ||||
| msgstr "" | ||||
| "Pencerenin tüm çalışma alanlarında veya sadece bir tanesi üzerinde olmasını " | ||||
| "seç" | ||||
|  | ||||
| #: ../data/50-mutter-windows.xml.in.h:13 | ||||
| #| msgid "Raise window if it's covered by another window, otherwise lower it" | ||||
| msgid "Raise window if covered, otherwise lower it" | ||||
| msgstr "" | ||||
| "Pencere eğer başkası tarafından kapatılmışsa yukarı çıkar, yoksa aşağıya it" | ||||
| @@ -374,11 +360,6 @@ msgid "Delay focus changes until the pointer stops moving" | ||||
| msgstr "Odak değişikliklerini işaretçi hareketi durana kadar ertele" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.gschema.xml.in.h:14 | ||||
| #| msgid "" | ||||
| #| "If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then " | ||||
| #| "the focused window will be automatically raised after a delay specified " | ||||
| #| "by the auto_raise_delay key. This is not related to clicking on a window " | ||||
| #| "to raise it, nor to entering a window during drag-and-drop." | ||||
| 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 " | ||||
| @@ -433,81 +414,69 @@ msgid "Cancel tab popup" | ||||
| msgstr "Sekmeyi yeni pencerede açmayı iptal et" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:1 | ||||
| #| msgid "Switch to workspace 1" | ||||
| msgid "Switch to VT 1" | ||||
| msgstr "VT 1'e geç" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:2 | ||||
| #| msgid "Switch to workspace 2" | ||||
| msgid "Switch to VT 2" | ||||
| msgstr "VT 2'ye geç" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:3 | ||||
| #| msgid "Switch to workspace 3" | ||||
| msgid "Switch to VT 3" | ||||
| msgstr "VT 3'e geç" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:4 | ||||
| #| msgid "Switch to workspace 4" | ||||
| msgid "Switch to VT 4" | ||||
| msgstr "VT 4'e geç" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:5 | ||||
| #| msgid "Switch to workspace 5" | ||||
| msgid "Switch to VT 5" | ||||
| msgstr "VT 5'e geç" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:6 | ||||
| #| msgid "Switch to workspace 6" | ||||
| msgid "Switch to VT 6" | ||||
| msgstr "VT 6'ya geç" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:7 | ||||
| #| msgid "Switch to workspace 7" | ||||
| msgid "Switch to VT 7" | ||||
| msgstr "VT 7'ye geç" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8 | ||||
| #| msgid "Switch to workspace 1" | ||||
| msgid "Switch to VT 8" | ||||
| msgstr "VT 8'e geç" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9 | ||||
| #| msgid "Switch to workspace 1" | ||||
| msgid "Switch to VT 9" | ||||
| msgstr "VT 9'a geç" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10 | ||||
| #| msgid "Switch to workspace 1" | ||||
| msgid "Switch to VT 10" | ||||
| msgstr "VT 10'a geç" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11 | ||||
| #| msgid "Switch to workspace 1" | ||||
| msgid "Switch to VT 11" | ||||
| msgstr "VT 11'e geç" | ||||
|  | ||||
| #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12 | ||||
| #| msgid "Switch to workspace 1" | ||||
| msgid "Switch to VT 12" | ||||
| msgstr "VT 12'ye geç" | ||||
|  | ||||
| #: ../src/backends/meta-monitor-manager.c:364 | ||||
| #: ../src/backends/meta-monitor-manager.c:515 | ||||
| msgid "Built-in display" | ||||
| msgstr "Yerleşik ekran" | ||||
|  | ||||
| #: ../src/backends/meta-monitor-manager.c:391 | ||||
| #: ../src/backends/meta-monitor-manager.c:538 | ||||
| msgid "Unknown" | ||||
| msgstr "Bilinmiyor" | ||||
|  | ||||
| #: ../src/backends/meta-monitor-manager.c:393 | ||||
| #: ../src/backends/meta-monitor-manager.c:540 | ||||
| msgid "Unknown Display" | ||||
| msgstr "Bilinmeyen Ekran" | ||||
|  | ||||
| #. TRANSLATORS: this is a monitor vendor name, followed by a | ||||
| #. * size in inches, like 'Dell 15"' | ||||
| #. | ||||
| #: ../src/backends/meta-monitor-manager.c:401 | ||||
| #: ../src/backends/meta-monitor-manager.c:548 | ||||
| #, c-format | ||||
| msgid "%s %s" | ||||
| msgstr "%s %s" | ||||
| @@ -523,7 +492,7 @@ msgstr "" | ||||
| "\"%2$s\" monitöründeki %1$i ekranında zaten başka bir birleştirme yöneticisi " | ||||
| "çalışıyor." | ||||
|  | ||||
| #: ../src/core/bell.c:185 | ||||
| #: ../src/core/bell.c:194 | ||||
| msgid "Bell event" | ||||
| msgstr "Etkinlik zili" | ||||
|  | ||||
| @@ -552,40 +521,44 @@ msgstr "_Bekle" | ||||
| msgid "_Force Quit" | ||||
| msgstr "_Sonlandır" | ||||
|  | ||||
| #: ../src/core/display.c:562 | ||||
| #: ../src/core/display.c:555 | ||||
| #, c-format | ||||
| msgid "Failed to open X Window System display '%s'\n" | ||||
| msgstr "X Pencere Sistemi '%s' ekranı açılamadı\n" | ||||
|  | ||||
| #: ../src/core/main.c:176 | ||||
| #: ../src/core/main.c:181 | ||||
| msgid "Disable connection to session manager" | ||||
| msgstr "Ortam yöneticisine olan bağlantıyı kapat" | ||||
|  | ||||
| #: ../src/core/main.c:182 | ||||
| #: ../src/core/main.c:187 | ||||
| msgid "Replace the running window manager" | ||||
| msgstr "Çalışan pencere yöneticisinin yerini al" | ||||
|  | ||||
| #: ../src/core/main.c:188 | ||||
| #: ../src/core/main.c:193 | ||||
| msgid "Specify session management ID" | ||||
| msgstr "Ortam yönetim ID'sini belirtin" | ||||
|  | ||||
| #: ../src/core/main.c:193 | ||||
| #: ../src/core/main.c:198 | ||||
| msgid "X Display to use" | ||||
| msgstr "Kullanılacak X Ekranı" | ||||
|  | ||||
| #: ../src/core/main.c:199 | ||||
| #: ../src/core/main.c:204 | ||||
| msgid "Initialize session from savefile" | ||||
| msgstr "Ortamı kayıtlı dosyadan başlat" | ||||
|  | ||||
| #: ../src/core/main.c:205 | ||||
| #: ../src/core/main.c:210 | ||||
| msgid "Make X calls synchronous" | ||||
| msgstr "X çağrılarını eşazamanlı yap" | ||||
|  | ||||
| #: ../src/core/main.c:212 | ||||
| #: ../src/core/main.c:217 | ||||
| msgid "Run as a wayland compositor" | ||||
| msgstr "Bir wayland dizgicisi olarak çalıştır" | ||||
|  | ||||
| #: ../src/core/main.c:220 | ||||
| #: ../src/core/main.c:223 | ||||
| msgid "Run as a nested compositor" | ||||
| msgstr "Yuvalanmış dizgici olarak çalıştır" | ||||
|  | ||||
| #: ../src/core/main.c:231 | ||||
| msgid "Run as a full display server, rather than nested" | ||||
| msgstr "İç içe değil tam ekran sunucusu olarak çalıştır" | ||||
|  | ||||
| @@ -611,16 +584,13 @@ msgstr "Sürümü yazdır" | ||||
| msgid "Mutter plugin to use" | ||||
| msgstr "Kullanılacak Mutter eklentisi" | ||||
|  | ||||
| #: ../src/core/prefs.c:2004 | ||||
| #: ../src/core/prefs.c:1997 | ||||
| #, c-format | ||||
| msgid "Workspace %d" | ||||
| msgstr "Çalışma Alanı %d" | ||||
|  | ||||
| #: ../src/core/screen.c:525 | ||||
| #: ../src/core/screen.c:521 | ||||
| #, c-format | ||||
| #| msgid "" | ||||
| #| "Screen %d on display \"%s\" already has a window manager; try using the --" | ||||
| #| "replace option to replace the current window manager.\n" | ||||
| msgid "" | ||||
| "Display \"%s\" already has a window manager; try using the --replace option " | ||||
| "to replace the current window manager." | ||||
| @@ -629,12 +599,12 @@ msgstr "" | ||||
| "yöneticisinin yerine bir başkasını koymak için --replace seçeneğini " | ||||
| "kullanmayı deneyin." | ||||
|  | ||||
| #: ../src/core/screen.c:607 | ||||
| #: ../src/core/screen.c:603 | ||||
| #, c-format | ||||
| msgid "Screen %d on display '%s' is invalid\n" | ||||
| msgstr "'%2$s' X oturumundaki ekran %1$d geçersiz\n" | ||||
|  | ||||
| #: ../src/core/util.c:118 | ||||
| #: ../src/core/util.c:121 | ||||
| msgid "Mutter was compiled without support for verbose mode\n" | ||||
| msgstr "Mutter, ayrıntılı kip desteği olmadan derlenmiş\n" | ||||
|  | ||||
|   | ||||
							
								
								
									
										1179
									
								
								po/zh_CN.po
									
									
									
									
									
								
							
							
						
						
									
										1179
									
								
								po/zh_CN.po
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -25,7 +25,7 @@ struct _MetaSurfaceActorPrivate | ||||
|   cairo_region_t *input_region; | ||||
|  | ||||
|   /* Freeze/thaw accounting */ | ||||
|   guint needs_damage_all : 1; | ||||
|   cairo_region_t *pending_damage; | ||||
|   guint frozen : 1; | ||||
| }; | ||||
|  | ||||
| @@ -261,9 +261,8 @@ meta_surface_actor_process_damage (MetaSurfaceActor *self, | ||||
|        * here on the off chance that this will stop the corresponding | ||||
|        * texture_from_pixmap from being update. | ||||
|        * | ||||
|        * needs_damage_all tracks that some unknown damage happened while the | ||||
|        * window was frozen so that when the window becomes unfrozen we can | ||||
|        * issue a full window update to cover any lost damage. | ||||
|        * pending_damage tracks any damage that happened while the window was | ||||
|        * frozen so that when can apply it when the window becomes unfrozen. | ||||
|        * | ||||
|        * It should be noted that this is an unreliable mechanism since it's | ||||
|        * quite likely that drivers will aim to provide a zero-copy | ||||
| @@ -271,7 +270,12 @@ meta_surface_actor_process_damage (MetaSurfaceActor *self, | ||||
|        * any drawing done to the window is always immediately reflected in the | ||||
|        * texture regardless of damage event handling. | ||||
|        */ | ||||
|       priv->needs_damage_all = TRUE; | ||||
|       cairo_rectangle_int_t rect = { .x = x, .y = y, .width = width, .height = height }; | ||||
|  | ||||
|       if (!priv->pending_damage) | ||||
|         priv->pending_damage = cairo_region_create_rectangle (&rect); | ||||
|       else | ||||
|         cairo_region_union_rectangle (priv->pending_damage, &rect); | ||||
|       return; | ||||
|     } | ||||
|  | ||||
| @@ -332,16 +336,21 @@ meta_surface_actor_set_frozen (MetaSurfaceActor *self, | ||||
|  | ||||
|   priv->frozen = frozen; | ||||
|  | ||||
|   if (!frozen && priv->needs_damage_all) | ||||
|   if (!frozen && priv->pending_damage) | ||||
|     { | ||||
|       /* Since we ignore damage events while a window is frozen for certain effects | ||||
|        * we may need to issue an update_area() covering the whole pixmap if we | ||||
|        * don't know what real damage has happened. */ | ||||
|       int i, n_rects = cairo_region_num_rectangles (priv->pending_damage); | ||||
|       cairo_rectangle_int_t rect; | ||||
|  | ||||
|       meta_surface_actor_process_damage (self, 0, 0, | ||||
|                                          clutter_actor_get_width (CLUTTER_ACTOR (priv->texture)), | ||||
|                                          clutter_actor_get_height (CLUTTER_ACTOR (priv->texture))); | ||||
|       priv->needs_damage_all = FALSE; | ||||
|       /* Since we ignore damage events while a window is frozen for certain effects | ||||
|        * we need to apply the tracked damage now. */ | ||||
|  | ||||
|       for (i = 0; i < n_rects; i++) | ||||
|         { | ||||
|           cairo_region_get_rectangle (priv->pending_damage, i, &rect); | ||||
|           meta_surface_actor_process_damage (self, rect.x, rect.y, | ||||
|                                              rect.width, rect.height); | ||||
|         } | ||||
|       g_clear_pointer (&priv->pending_damage, cairo_region_destroy); | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -1379,8 +1379,8 @@ meta_display_grab_accelerator (MetaDisplay *display, | ||||
|   MetaKeyBindingManager *keys = &display->key_binding_manager; | ||||
|   MetaKeyBinding *binding; | ||||
|   MetaKeyGrab *grab; | ||||
|   MetaKeyCombo combo; | ||||
|   MetaResolvedKeyCombo resolved_combo; | ||||
|   MetaKeyCombo combo = { 0 }; | ||||
|   MetaResolvedKeyCombo resolved_combo = { 0 }; | ||||
|  | ||||
|   if (!meta_parse_accelerator (accelerator, &combo)) | ||||
|     { | ||||
|   | ||||
| @@ -326,6 +326,10 @@ gboolean | ||||
| meta_parse_accelerator (const char   *accel, | ||||
|                         MetaKeyCombo *combo) | ||||
| { | ||||
|   g_return_val_if_fail (combo != NULL, FALSE); | ||||
|  | ||||
|   *combo = (MetaKeyCombo) { 0 }; | ||||
|  | ||||
|   if (!accel[0] || strcmp (accel, "disabled") == 0) | ||||
|     return TRUE; | ||||
|  | ||||
| @@ -336,7 +340,11 @@ gboolean | ||||
| meta_parse_modifier (const char          *accel, | ||||
|                      MetaVirtualModifier *mask) | ||||
| { | ||||
|   MetaKeyCombo combo; | ||||
|   MetaKeyCombo combo = { 0 }; | ||||
|  | ||||
|   g_return_val_if_fail (mask != NULL, FALSE); | ||||
|  | ||||
|   *mask = 0; | ||||
|  | ||||
|   if (accel == NULL || !accel[0] || strcmp (accel, "disabled") == 0) | ||||
|     return TRUE; | ||||
|   | ||||
| @@ -761,12 +761,18 @@ sync_client_window_mapped (MetaWindow *window) | ||||
| static void | ||||
| meta_window_update_desc (MetaWindow *window) | ||||
| { | ||||
|   g_autofree gchar *title = NULL; | ||||
|  | ||||
|   g_clear_pointer (&window->desc, g_free); | ||||
|  | ||||
|   if (window->title) | ||||
|     title = g_utf8_substring (window->title, 0, | ||||
|                               MIN (10, g_utf8_strlen (window->title, -1))); | ||||
|  | ||||
|   if (window->client_type == META_WINDOW_CLIENT_TYPE_X11) | ||||
|     { | ||||
|       if (window->title) | ||||
|         window->desc = g_strdup_printf ("0x%lx (%.10s)", window->xwindow, window->title); | ||||
|       if (title) | ||||
|         window->desc = g_strdup_printf ("0x%lx (%s)", window->xwindow, title); | ||||
|       else | ||||
|         window->desc = g_strdup_printf ("0x%lx", window->xwindow); | ||||
|     } | ||||
| @@ -774,8 +780,8 @@ meta_window_update_desc (MetaWindow *window) | ||||
|     { | ||||
|       guint64 small_stamp = window->stamp - G_GUINT64_CONSTANT(0x100000000); | ||||
|  | ||||
|       if (window->title) | ||||
|         window->desc = g_strdup_printf ("W%" G_GUINT64_FORMAT " (%.10s)", small_stamp, window->title); | ||||
|       if (title) | ||||
|         window->desc = g_strdup_printf ("W%" G_GUINT64_FORMAT " (%s)", small_stamp, title); | ||||
|       else | ||||
|         window->desc = g_strdup_printf ("W%" G_GUINT64_FORMAT , small_stamp); | ||||
|     } | ||||
| @@ -1259,6 +1265,7 @@ meta_window_unmanage (MetaWindow  *window, | ||||
|   GList *tmp; | ||||
|  | ||||
|   meta_verbose ("Unmanaging %s\n", window->desc); | ||||
|   window->unmanaging = TRUE; | ||||
|  | ||||
| #ifdef HAVE_WAYLAND | ||||
|   /* This needs to happen for both Wayland and XWayland clients, | ||||
| @@ -1286,8 +1293,6 @@ meta_window_unmanage (MetaWindow  *window, | ||||
|  | ||||
|   meta_display_unregister_stamp (window->display, window->stamp); | ||||
|  | ||||
|   window->unmanaging = TRUE; | ||||
|  | ||||
|   if (meta_prefs_get_attach_modal_dialogs ()) | ||||
|     { | ||||
|       GList *attached_children = NULL, *iter; | ||||
|   | ||||
| @@ -1114,6 +1114,7 @@ handle_button_release_event (MetaUIFrame *frame, | ||||
| { | ||||
|   Display *display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); | ||||
|  | ||||
|   frame->frames->current_grab_op = META_GRAB_OP_NONE; | ||||
|   meta_core_end_grab_op (display, event->time); | ||||
|  | ||||
|   /* We only handle the releases we handled the presses for (things | ||||
| @@ -1292,7 +1293,7 @@ get_visible_frame_border_region (MetaUIFrame *frame) | ||||
|   MetaFrameFlags flags; | ||||
|   MetaFrameType type; | ||||
|   MetaFrameBorders borders; | ||||
|   MetaRectangle frame_rect = frame->meta_window->rect; | ||||
|   MetaRectangle buffer_rect = frame->meta_window->buffer_rect; | ||||
|  | ||||
|   flags = meta_frame_get_flags (frame->meta_window->frame); | ||||
|   type = meta_window_get_frame_type (frame->meta_window); | ||||
| @@ -1301,19 +1302,19 @@ get_visible_frame_border_region (MetaUIFrame *frame) | ||||
|                                 type, frame->text_height, flags, | ||||
|                                 &borders); | ||||
|  | ||||
|   /* Visible frame rect */ | ||||
|   area.x = borders.invisible.left; | ||||
|   area.y = borders.invisible.top; | ||||
|   area.width = frame_rect.width; | ||||
|   area.height = frame_rect.height; | ||||
|   /* Frame rect */ | ||||
|   area.x = 0; | ||||
|   area.y = 0; | ||||
|   area.width = buffer_rect.width; | ||||
|   area.height = buffer_rect.height; | ||||
|  | ||||
|   frame_border = cairo_region_create_rectangle (&area); | ||||
|  | ||||
|   /* Client rect */ | ||||
|   area.x += borders.visible.left; | ||||
|   area.y += borders.visible.top; | ||||
|   area.width -= borders.visible.left + borders.visible.right; | ||||
|   area.height -= borders.visible.top + borders.visible.bottom; | ||||
|   area.x += borders.total.left; | ||||
|   area.y += borders.total.top; | ||||
|   area.width -= borders.total.left + borders.total.right; | ||||
|   area.height -= borders.total.top + borders.total.bottom; | ||||
|  | ||||
|   /* Visible frame border */ | ||||
|   cairo_region_subtract_rectangle (frame_border, &area); | ||||
| @@ -1403,6 +1404,13 @@ meta_frames_draw (GtkWidget *widget, | ||||
|   gdk_cairo_region (cr, region); | ||||
|   cairo_clip (cr); | ||||
|  | ||||
|   /* The target may be cleared to black or transparent, depending | ||||
|    * on the frame's visual; we don't want decorations to appear | ||||
|    * differently when the theme's decorations aren't fully opaque, | ||||
|    * so clear to black first | ||||
|    */ | ||||
|   cairo_paint (cr); | ||||
|  | ||||
|   meta_ui_frame_paint (frame, cr); | ||||
|   cairo_region_destroy (region); | ||||
|  | ||||
|   | ||||
| @@ -53,6 +53,80 @@ output_resource_destroy (struct wl_resource *res) | ||||
|   wayland_output->resources = g_list_remove (wayland_output->resources, res); | ||||
| } | ||||
|  | ||||
| static inline enum wl_output_transform | ||||
| wl_output_transform_from_meta_monitor_transform (MetaMonitorTransform transform) | ||||
| { | ||||
|   /* The enums are the same. */ | ||||
|   return (enum wl_output_transform) transform; | ||||
| } | ||||
|  | ||||
| static void | ||||
| send_output_events (struct wl_resource *resource, | ||||
|                     MetaWaylandOutput  *wayland_output, | ||||
|                     MetaMonitorInfo    *monitor_info, | ||||
|                     gboolean            need_all_events) | ||||
| { | ||||
|   int version = wl_resource_get_version (resource); | ||||
|  | ||||
|   MetaOutput *output = monitor_info->outputs[0]; | ||||
|   enum wl_output_transform transform = wl_output_transform_from_meta_monitor_transform (output->crtc->transform); | ||||
|   guint mode_flags = WL_OUTPUT_MODE_CURRENT; | ||||
|  | ||||
|   MetaMonitorInfo *old_monitor_info = wayland_output->monitor_info; | ||||
|   enum wl_output_transform old_transform = wayland_output->transform; | ||||
|   guint old_mode_flags = wayland_output->mode_flags; | ||||
|   gint old_scale = wayland_output->scale; | ||||
|  | ||||
|   gboolean need_done = FALSE; | ||||
|  | ||||
|   if (need_all_events || | ||||
|       old_monitor_info->rect.x != monitor_info->rect.x || | ||||
|       old_monitor_info->rect.y != monitor_info->rect.y || | ||||
|       old_transform != transform) | ||||
|     { | ||||
|       wl_output_send_geometry (resource, | ||||
|                                (int)monitor_info->rect.x, | ||||
|                                (int)monitor_info->rect.y, | ||||
|                                monitor_info->width_mm, | ||||
|                                monitor_info->height_mm, | ||||
|                                output->subpixel_order, | ||||
|                                output->vendor, | ||||
|                                output->product, | ||||
|                                transform); | ||||
|       need_done = TRUE; | ||||
|     } | ||||
|  | ||||
|   if (output->crtc->current_mode == output->preferred_mode) | ||||
|     mode_flags |= WL_OUTPUT_MODE_PREFERRED; | ||||
|  | ||||
|   if (need_all_events || | ||||
|       old_monitor_info->rect.width != monitor_info->rect.width || | ||||
|       old_monitor_info->rect.height != monitor_info->rect.height || | ||||
|       old_monitor_info->refresh_rate != monitor_info->refresh_rate || | ||||
|       old_mode_flags != mode_flags) | ||||
|     { | ||||
|       wl_output_send_mode (resource, | ||||
|                            mode_flags, | ||||
|                            (int)monitor_info->rect.width, | ||||
|                            (int)monitor_info->rect.height, | ||||
|                            (int)(monitor_info->refresh_rate * 1000)); | ||||
|       need_done = TRUE; | ||||
|     } | ||||
|  | ||||
|   if (version >= WL_OUTPUT_SCALE_SINCE_VERSION) | ||||
|     { | ||||
|       if (need_all_events || | ||||
|           old_scale != output->scale) | ||||
|         { | ||||
|           wl_output_send_scale (resource, output->scale); | ||||
|           need_done = TRUE; | ||||
|         } | ||||
|  | ||||
|       if (need_done) | ||||
|         wl_output_send_done (resource); | ||||
|     } | ||||
| } | ||||
|  | ||||
| static void | ||||
| bind_output (struct wl_client *client, | ||||
|              void *data, | ||||
| @@ -62,7 +136,6 @@ bind_output (struct wl_client *client, | ||||
|   MetaWaylandOutput *wayland_output = data; | ||||
|   MetaMonitorInfo *monitor_info = wayland_output->monitor_info; | ||||
|   struct wl_resource *resource; | ||||
|   guint mode_flags; | ||||
|   MetaOutput *output = monitor_info->outputs[0]; | ||||
|  | ||||
|   resource = wl_resource_create (client, &wl_output_interface, version, id); | ||||
| @@ -77,35 +150,7 @@ bind_output (struct wl_client *client, | ||||
|                 monitor_info->rect.width, monitor_info->rect.height, | ||||
|                 monitor_info->refresh_rate); | ||||
|  | ||||
|   wl_output_send_geometry (resource, | ||||
|                            (int)monitor_info->rect.x, | ||||
|                            (int)monitor_info->rect.y, | ||||
|                            monitor_info->width_mm, | ||||
|                            monitor_info->height_mm, | ||||
|                            /* Cogl values reflect XRandR values, | ||||
|                               and so does wayland */ | ||||
|                            output->subpixel_order, | ||||
|                            output->vendor, | ||||
|                            output->product, | ||||
|                            output->crtc->transform); | ||||
|  | ||||
|   g_assert (output->crtc->current_mode != NULL); | ||||
|  | ||||
|   mode_flags = WL_OUTPUT_MODE_CURRENT; | ||||
|   if (output->crtc->current_mode == output->preferred_mode) | ||||
|     mode_flags |= WL_OUTPUT_MODE_PREFERRED; | ||||
|  | ||||
|   wl_output_send_mode (resource, | ||||
|                        mode_flags, | ||||
|                        (int)monitor_info->rect.width, | ||||
|                        (int)monitor_info->rect.height, | ||||
|                        (int)(monitor_info->refresh_rate * 1000)); | ||||
|  | ||||
|   if (version >= WL_OUTPUT_SCALE_SINCE_VERSION) | ||||
|     wl_output_send_scale (resource, output->scale); | ||||
|  | ||||
|   if (version >= WL_OUTPUT_DONE_SINCE_VERSION) | ||||
|     wl_output_send_done (resource); | ||||
|   send_output_events (resource, wayland_output, monitor_info, TRUE); | ||||
| } | ||||
|  | ||||
| static void | ||||
| @@ -117,11 +162,19 @@ wayland_output_destroy_notify (gpointer data) | ||||
|   g_object_unref (wayland_output); | ||||
| } | ||||
|  | ||||
| static inline enum wl_output_transform | ||||
| wl_output_transform_from_meta_monitor_transform (MetaMonitorTransform transform) | ||||
| static void | ||||
| wayland_output_set_monitor_info (MetaWaylandOutput *wayland_output, | ||||
|                                  MetaMonitorInfo   *monitor_info) | ||||
| { | ||||
|   /* The enums are the same. */ | ||||
|   return (enum wl_output_transform) transform; | ||||
|   MetaOutput *output = monitor_info->outputs[0]; | ||||
|   enum wl_output_transform transform = wl_output_transform_from_meta_monitor_transform (output->crtc->transform); | ||||
|  | ||||
|   wayland_output->monitor_info = monitor_info; | ||||
|   wayland_output->transform = transform; | ||||
|   wayland_output->mode_flags = WL_OUTPUT_MODE_CURRENT; | ||||
|   if (output->crtc->current_mode == output->preferred_mode) | ||||
|     wayland_output->mode_flags |= WL_OUTPUT_MODE_PREFERRED; | ||||
|   wayland_output->scale = output->scale; | ||||
| } | ||||
|  | ||||
| static void | ||||
| @@ -129,50 +182,21 @@ wayland_output_update_for_output (MetaWaylandOutput *wayland_output, | ||||
|                                   MetaMonitorInfo *monitor_info) | ||||
| { | ||||
|   GList *iter; | ||||
|   guint mode_flags; | ||||
|   MetaOutput *output = monitor_info->outputs[0]; | ||||
|   enum wl_output_transform wl_transform = wl_output_transform_from_meta_monitor_transform (output->crtc->transform); | ||||
|  | ||||
|   mode_flags = WL_OUTPUT_MODE_CURRENT; | ||||
|   if (output->crtc->current_mode == output->preferred_mode) | ||||
|     mode_flags |= WL_OUTPUT_MODE_PREFERRED; | ||||
|  | ||||
|   for (iter = wayland_output->resources; iter; iter = iter->next) | ||||
|     { | ||||
|       struct wl_resource *resource = iter->data; | ||||
|  | ||||
|       if (wayland_output->x != monitor_info->rect.x || | ||||
|           wayland_output->y != monitor_info->rect.y || | ||||
|           wayland_output->transform != wl_transform) | ||||
|         { | ||||
|           wl_output_send_geometry (resource, | ||||
|                                    (int)monitor_info->rect.x, | ||||
|                                    (int)monitor_info->rect.y, | ||||
|                                    monitor_info->width_mm, | ||||
|                                    monitor_info->height_mm, | ||||
|                                    output->subpixel_order, | ||||
|                                    output->vendor, | ||||
|                                    output->product, | ||||
|                                    wl_transform); | ||||
|         } | ||||
|  | ||||
|       wl_output_send_mode (resource, | ||||
|                            mode_flags, | ||||
|                            (int)monitor_info->rect.width, | ||||
|                            (int)monitor_info->rect.height, | ||||
|                            (int)(monitor_info->refresh_rate * 1000)); | ||||
|       send_output_events (resource, wayland_output, monitor_info, FALSE); | ||||
|     } | ||||
|  | ||||
|   /* It's very important that we change the output pointer here, as | ||||
|      the old structure is about to be freed by MetaMonitorManager */ | ||||
|   wayland_output->monitor_info = monitor_info; | ||||
|   wayland_output->x = monitor_info->rect.x; | ||||
|   wayland_output->y = monitor_info->rect.y; | ||||
|   wayland_output->transform = wl_transform; | ||||
|   wayland_output_set_monitor_info (wayland_output, monitor_info); | ||||
| } | ||||
|  | ||||
| static MetaWaylandOutput * | ||||
| meta_wayland_output_new (MetaWaylandCompositor *compositor) | ||||
| meta_wayland_output_new (MetaWaylandCompositor *compositor, | ||||
|                          MetaMonitorInfo *monitor_info) | ||||
| { | ||||
|   MetaWaylandOutput *wayland_output; | ||||
|  | ||||
| @@ -181,6 +205,7 @@ meta_wayland_output_new (MetaWaylandCompositor *compositor) | ||||
|                                              &wl_output_interface, | ||||
|                                              META_WL_OUTPUT_VERSION, | ||||
|                                              wayland_output, bind_output); | ||||
|   wayland_output_set_monitor_info (wayland_output, monitor_info); | ||||
|  | ||||
|   return wayland_output; | ||||
| } | ||||
| @@ -211,7 +236,7 @@ meta_wayland_compositor_update_outputs (MetaWaylandCompositor *compositor, | ||||
|           g_hash_table_steal (compositor->outputs, GSIZE_TO_POINTER (info->winsys_id)); | ||||
|         } | ||||
|       else | ||||
|         wayland_output = meta_wayland_output_new (compositor); | ||||
|         wayland_output = meta_wayland_output_new (compositor, info); | ||||
|  | ||||
|       wayland_output_update_for_output (wayland_output, info); | ||||
|       g_hash_table_insert (new_table, GSIZE_TO_POINTER (info->winsys_id), wayland_output); | ||||
|   | ||||
| @@ -41,10 +41,11 @@ struct _MetaWaylandOutput | ||||
| { | ||||
|   GObject                   parent; | ||||
|  | ||||
|   MetaMonitorInfo          *monitor_info; | ||||
|   struct wl_global         *global; | ||||
|   int                       x, y; | ||||
|   MetaMonitorInfo          *monitor_info; | ||||
|   enum wl_output_transform  transform; | ||||
|   guint                     mode_flags; | ||||
|   gint                      scale; | ||||
|  | ||||
|   GList                    *resources; | ||||
| }; | ||||
|   | ||||
| @@ -300,17 +300,20 @@ meta_wayland_seat_update (MetaWaylandSeat    *seat, | ||||
|     case CLUTTER_BUTTON_PRESS: | ||||
|     case CLUTTER_BUTTON_RELEASE: | ||||
|     case CLUTTER_SCROLL: | ||||
|       if (seat->capabilities & WL_SEAT_CAPABILITY_POINTER) | ||||
|         meta_wayland_pointer_update (&seat->pointer, event); | ||||
|       break; | ||||
|  | ||||
|     case CLUTTER_KEY_PRESS: | ||||
|     case CLUTTER_KEY_RELEASE: | ||||
|       if (seat->capabilities & WL_SEAT_CAPABILITY_KEYBOARD) | ||||
|         meta_wayland_keyboard_update (&seat->keyboard, (const ClutterKeyEvent *) event); | ||||
|       break; | ||||
|  | ||||
|     case CLUTTER_TOUCH_BEGIN: | ||||
|     case CLUTTER_TOUCH_UPDATE: | ||||
|     case CLUTTER_TOUCH_END: | ||||
|       if (seat->capabilities & WL_SEAT_CAPABILITY_TOUCH) | ||||
|         meta_wayland_touch_update (&seat->touch, event); | ||||
|       break; | ||||
|  | ||||
| @@ -334,15 +337,18 @@ meta_wayland_seat_handle_event (MetaWaylandSeat *seat, | ||||
|     case CLUTTER_SCROLL: | ||||
|     case CLUTTER_TOUCHPAD_SWIPE: | ||||
|     case CLUTTER_TOUCHPAD_PINCH: | ||||
|       if (seat->capabilities & WL_SEAT_CAPABILITY_POINTER) | ||||
|         return meta_wayland_pointer_handle_event (&seat->pointer, event); | ||||
|  | ||||
|     case CLUTTER_KEY_PRESS: | ||||
|     case CLUTTER_KEY_RELEASE: | ||||
|       if (seat->capabilities & WL_SEAT_CAPABILITY_KEYBOARD) | ||||
|         return meta_wayland_keyboard_handle_event (&seat->keyboard, | ||||
|                                                    (const ClutterKeyEvent *) event); | ||||
|     case CLUTTER_TOUCH_BEGIN: | ||||
|     case CLUTTER_TOUCH_UPDATE: | ||||
|     case CLUTTER_TOUCH_END: | ||||
|       if (seat->capabilities & WL_SEAT_CAPABILITY_TOUCH) | ||||
|         return meta_wayland_touch_handle_event (&seat->touch, event); | ||||
|  | ||||
|     default: | ||||
|   | ||||
| @@ -1338,6 +1338,9 @@ xdg_surface_set_title (struct wl_client *client, | ||||
| { | ||||
|   MetaWaylandSurface *surface = wl_resource_get_user_data (resource); | ||||
|  | ||||
|   if (!g_utf8_validate (title, -1, NULL)) | ||||
|     title = ""; | ||||
|  | ||||
|   meta_window_set_title (surface->window, title); | ||||
| } | ||||
|  | ||||
| @@ -1348,6 +1351,9 @@ xdg_surface_set_app_id (struct wl_client *client, | ||||
| { | ||||
|   MetaWaylandSurface *surface = wl_resource_get_user_data (resource); | ||||
|  | ||||
|   if (!g_utf8_validate (app_id, -1, NULL)) | ||||
|     app_id = ""; | ||||
|  | ||||
|   meta_window_set_wm_class (surface->window, app_id, app_id); | ||||
| } | ||||
|  | ||||
| @@ -1964,6 +1970,9 @@ wl_shell_surface_set_title (struct wl_client *client, | ||||
| { | ||||
|   MetaWaylandSurface *surface = wl_resource_get_user_data (resource); | ||||
|  | ||||
|   if (!g_utf8_validate (title, -1, NULL)) | ||||
|     title = ""; | ||||
|  | ||||
|   meta_window_set_title (surface->window, title); | ||||
| } | ||||
|  | ||||
| @@ -1974,6 +1983,9 @@ wl_shell_surface_set_class (struct wl_client *client, | ||||
| { | ||||
|   MetaWaylandSurface *surface = wl_resource_get_user_data (resource); | ||||
|  | ||||
|   if (!g_utf8_validate (class_, -1, NULL)) | ||||
|     class_ = ""; | ||||
|  | ||||
|   meta_window_set_wm_class (surface->window, class_, class_); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -27,6 +27,8 @@ | ||||
| #include "meta-window-wayland.h" | ||||
|  | ||||
| #include <meta/errors.h> | ||||
| #include <errno.h> | ||||
| #include <string.h> /* for strerror () */ | ||||
| #include "window-private.h" | ||||
| #include "boxes-private.h" | ||||
| #include "stack-tracker.h" | ||||
| @@ -109,6 +111,24 @@ meta_window_wayland_kill (MetaWindow *window) | ||||
| { | ||||
|   MetaWaylandSurface *surface = window->surface; | ||||
|   struct wl_resource *resource = surface->resource; | ||||
|   pid_t pid; | ||||
|   uid_t uid; | ||||
|   gid_t gid; | ||||
|  | ||||
|   wl_client_get_credentials (wl_resource_get_client (resource), &pid, &uid, &gid); | ||||
|   if (pid > 0) | ||||
|     { | ||||
|       meta_topic (META_DEBUG_WINDOW_OPS, | ||||
|                   "Killing %s with kill()\n", | ||||
|                   window->desc); | ||||
|  | ||||
|       if (kill (pid, 9) == 0) | ||||
|         return; | ||||
|  | ||||
|       meta_topic (META_DEBUG_WINDOW_OPS, | ||||
|                   "Failed to signal %s: %s\n", | ||||
|                   window->desc, strerror (errno)); | ||||
|     } | ||||
|  | ||||
|   /* Send the client an unrecoverable error to kill the client. */ | ||||
|   wl_resource_post_error (resource, | ||||
| @@ -131,6 +151,10 @@ surface_state_changed (MetaWindow *window) | ||||
| { | ||||
|   MetaWindowWayland *wl_window = META_WINDOW_WAYLAND (window); | ||||
|  | ||||
|   /* don't send notify when the window is being unmanaged */ | ||||
|   if (window->unmanaging) | ||||
|     return; | ||||
|  | ||||
|   meta_wayland_surface_configure_notify (window->surface, | ||||
|                                          wl_window->last_sent_width, | ||||
|                                          wl_window->last_sent_height, | ||||
| @@ -173,6 +197,10 @@ meta_window_wayland_move_resize_internal (MetaWindow                *window, | ||||
|  | ||||
|   g_assert (window->frame == NULL); | ||||
|  | ||||
|   /* don't do anything if we're dropping the window, see #751847 */ | ||||
|   if (window->unmanaging) | ||||
|     return; | ||||
|  | ||||
|   /* The scale the window is drawn in might change depending on what monitor it | ||||
|    * is mainly on. Scale the configured rectangle to be in logical pixel | ||||
|    * coordinate space so that we can have a scale independent size to pass | ||||
| @@ -282,6 +310,7 @@ meta_window_wayland_move_resize_internal (MetaWindow                *window, | ||||
|  | ||||
|       if (new_x != window->rect.x || new_y != window->rect.y) | ||||
|         { | ||||
|           *result |= META_MOVE_RESIZE_RESULT_MOVED; | ||||
|           wl_window->has_pending_move = TRUE; | ||||
|           wl_window->pending_move_x = new_x; | ||||
|           wl_window->pending_move_y = new_y; | ||||
| @@ -403,12 +432,6 @@ appears_focused_changed (GObject    *object, | ||||
|                          gpointer    user_data) | ||||
| { | ||||
|   MetaWindow *window = META_WINDOW (object); | ||||
|  | ||||
|   /* When we're unmanaging, we remove focus from the window, | ||||
|    * causing this to fire. Don't do anything in that case. */ | ||||
|   if (window->unmanaging) | ||||
|     return; | ||||
|  | ||||
|   surface_state_changed (window); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -1577,7 +1577,7 @@ meta_xwayland_selection_handle_xfixes_selection_notify (MetaWaylandCompositor *c | ||||
|                              gdk_x11_get_xatom_by_name ("TARGETS"), | ||||
|                              gdk_x11_get_xatom_by_name ("_META_SELECTION"), | ||||
|                              selection->window, | ||||
|                              selection->timestamp); | ||||
|                              CurrentTime); | ||||
|           XFlush (xdisplay); | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -635,7 +635,10 @@ reload_wm_name (MetaWindow    *window, | ||||
|  | ||||
|   if (value->type != META_PROP_VALUE_INVALID) | ||||
|     { | ||||
|       set_window_title (window, value->v.str); | ||||
|       g_autofree gchar *title = g_convert (value->v.str, -1, | ||||
|                                            "UTF-8", "LATIN1", | ||||
|                                            NULL, NULL, NULL); | ||||
|       set_window_title (window, title); | ||||
|  | ||||
|       meta_verbose ("Using WM_NAME for new title of %s: \"%s\"\n", | ||||
|                     window->desc, window->title); | ||||
| @@ -969,9 +972,13 @@ reload_wm_class (MetaWindow    *window, | ||||
| { | ||||
|   if (value->type != META_PROP_VALUE_INVALID) | ||||
|     { | ||||
|       meta_window_set_wm_class (window, | ||||
|                                 value->v.class_hint.res_class, | ||||
|                                 value->v.class_hint.res_name); | ||||
|       g_autofree gchar *res_class = g_convert (value->v.class_hint.res_class, -1, | ||||
|                                                "UTF-8", "LATIN1", | ||||
|                                                NULL, NULL, NULL); | ||||
|       g_autofree gchar *res_name = g_convert (value->v.class_hint.res_name, -1, | ||||
|                                               "UTF-8", "LATIN1", | ||||
|                                               NULL, NULL, NULL); | ||||
|       meta_window_set_wm_class (window, res_class, res_name); | ||||
|     } | ||||
|   else | ||||
|     { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user