Compare commits
	
		
			41 Commits
		
	
	
		
			3.33.2
			...
			gnome-3-10
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					b05e592d16 | ||
| 
						 | 
					a57740648a | ||
| 
						 | 
					dd7b3f6d8d | ||
| 
						 | 
					d8d8d36ffb | ||
| 
						 | 
					72ec20e48f | ||
| 
						 | 
					3d1d155561 | ||
| 
						 | 
					7943cf50d4 | ||
| 
						 | 
					489ad9e978 | ||
| 
						 | 
					a3f3c60a6c | ||
| 
						 | 
					b39ef6a961 | ||
| 
						 | 
					14dbe8ac8a | ||
| 
						 | 
					d158e19133 | ||
| 
						 | 
					c2dadecab8 | ||
| 
						 | 
					099059c930 | ||
| 
						 | 
					24f5b37d6b | ||
| 
						 | 
					2958b15a61 | ||
| 
						 | 
					fd263d8457 | ||
| 
						 | 
					47758f0f5f | ||
| 
						 | 
					477eb1afed | ||
| 
						 | 
					3b8b05518c | ||
| 
						 | 
					0bd30696b1 | ||
| 
						 | 
					fb4e9d2232 | ||
| 
						 | 
					e072295395 | ||
| 
						 | 
					1066c19e67 | ||
| 
						 | 
					d654c93ed2 | ||
| 
						 | 
					7d1611f666 | ||
| 
						 | 
					2579e48f21 | ||
| 
						 | 
					7278f9bd6b | ||
| 
						 | 
					da55e27c3b | ||
| 
						 | 
					f3196e356b | ||
| 
						 | 
					491b17af19 | ||
| 
						 | 
					01e0eaf1fc | ||
| 
						 | 
					f679ce7017 | ||
| 
						 | 
					844f4e9348 | ||
| 
						 | 
					5cfc1461a1 | ||
| 
						 | 
					323e1aba59 | ||
| 
						 | 
					992b97d565 | ||
| 
						 | 
					da5b9f3255 | ||
| 
						 | 
					6c1eff0dc2 | ||
| 
						 | 
					1ff986e227 | ||
| 
						 | 
					b86a289ee3 | 
							
								
								
									
										50
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								NEWS
									
									
									
									
									
								
							@@ -1,3 +1,53 @@
 | 
			
		||||
3.10.4
 | 
			
		||||
======
 | 
			
		||||
* Fix CSD titlebars being placed off-screen [Jasper; #719772]
 | 
			
		||||
* Expose MetaWindow:skip-taskbar property [Florian; #723307]
 | 
			
		||||
* Fix legacy tray icons showing up blank [Adel; #721596]
 | 
			
		||||
* Fix configuration of cloned monitors [Adel; #710610]
 | 
			
		||||
* Use correct output property for backlight control [Robert; #723606]
 | 
			
		||||
* Misc. bug fixes [Jasper, Adel, Giovanni, Ryan; #720630, #723468, #724258,
 | 
			
		||||
  #724364]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Robert Ancell, Giovanni Campagna, Adel Gadllah, Ryan Lortie, Florian Müllner,
 | 
			
		||||
  Jasper St. Pierre
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Shankar Prasad [kn], Khaled Hosny [ar]
 | 
			
		||||
 | 
			
		||||
3.10.3
 | 
			
		||||
======
 | 
			
		||||
* xrandr: Use "hotplug_mode_update" property [Marc-André; #711216]
 | 
			
		||||
* Don't focus the no-focus-window for globally active windows [Jasper; #710296]
 | 
			
		||||
* Fix window group paint volume [Owen; #719669]
 | 
			
		||||
* Fix checks for KeyPress/ButtonPress [Jasper; #720545]
 | 
			
		||||
* Fix problems with focus tracking [Owen; #720558]
 | 
			
		||||
* Don't leave focus on windows that are being unmanaged [Owen; #711618]
 | 
			
		||||
* Reduce server grabs [Daniel; #721345, #721709]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Daniel Drake, Marc-André Lureau, Jasper St. Pierre, Owen W. Taylor
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  甘露(Gan  Lu) [zh_CN]
 | 
			
		||||
 | 
			
		||||
3.10.2
 | 
			
		||||
======
 | 
			
		||||
* Fix resize operations using mouse-button-modifier [Lionel; #710251]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Lionel Landwerlin
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Efstathios Iosifidis [el], Reinout van Schouwen [nl]
 | 
			
		||||
 | 
			
		||||
3.10.1.1
 | 
			
		||||
========
 | 
			
		||||
* Don't assert that at least one output is connected [Giovanni; #709009]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Giovanni Campagna
 | 
			
		||||
 | 
			
		||||
3.10.1
 | 
			
		||||
======
 | 
			
		||||
* Don't apply fullscreen workarounds to CSD windows [Giovanni; #708718]
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@ AC_PREREQ(2.50)
 | 
			
		||||
 | 
			
		||||
m4_define([mutter_major_version], [3])
 | 
			
		||||
m4_define([mutter_minor_version], [10])
 | 
			
		||||
m4_define([mutter_micro_version], [1])
 | 
			
		||||
m4_define([mutter_micro_version], [4])
 | 
			
		||||
 | 
			
		||||
m4_define([mutter_version],
 | 
			
		||||
          [mutter_major_version.mutter_minor_version.mutter_micro_version])
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								po/ar.po
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								po/ar.po
									
									
									
									
									
								
							@@ -4,14 +4,14 @@
 | 
			
		||||
# Arafat Medini <lumina@silverpen.de>, 2003.
 | 
			
		||||
# Abdulaziz Al-Arfaj <alarfaj0@yahoo.com>, 2004.
 | 
			
		||||
# Djihed Afifi <djihed@gmail.com>, 2006.
 | 
			
		||||
# Khaled Hosny <khaledhosny@eglug.org>, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013.
 | 
			
		||||
# Khaled Hosny <khaledhosny@eglug.org>, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014.
 | 
			
		||||
# Anas Afif Emad <anas.e87@gmail.com>, 2008.
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: metacity.HEAD\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2013-10-07 17:09+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2013-10-07 17:09+0200\n"
 | 
			
		||||
"POT-Creation-Date: 2014-02-06 15:37+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2014-02-06 15:37+0200\n"
 | 
			
		||||
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
 | 
			
		||||
"Language-Team: Arabic <doc@arabeyes.org>\n"
 | 
			
		||||
"Language: ar\n"
 | 
			
		||||
@@ -314,16 +314,16 @@ msgstr "تعذّر إيجاد سِمة! تأكد من وجود %s و احتوا
 | 
			
		||||
 | 
			
		||||
#: ../src/core/monitor.c:696
 | 
			
		||||
msgid "Built-in display"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "شاشة مدمجة"
 | 
			
		||||
 | 
			
		||||
#. TRANSLATORS: this is a monitor name (in case we don't know
 | 
			
		||||
#. the vendor), it's Unknown followed by a size in inches,
 | 
			
		||||
#. like 'Unknown 15"'
 | 
			
		||||
#.
 | 
			
		||||
#: ../src/core/monitor.c:724
 | 
			
		||||
#, fuzzy, c-format
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Unknown %s"
 | 
			
		||||
msgstr "عنصر مجهول %s"
 | 
			
		||||
msgstr "غير معروفة %s"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/mutter.c:40
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -503,7 +503,7 @@ msgid "Window manager error: "
 | 
			
		||||
msgstr "خطأ مدير النوافذ: "
 | 
			
		||||
 | 
			
		||||
#. first time through
 | 
			
		||||
#: ../src/core/window.c:7515
 | 
			
		||||
#: ../src/core/window.c:7497
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
 | 
			
		||||
@@ -519,7 +519,7 @@ msgstr ""
 | 
			
		||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
 | 
			
		||||
#. * about these apps but make them work.
 | 
			
		||||
#.
 | 
			
		||||
#: ../src/core/window.c:8345
 | 
			
		||||
#: ../src/core/window.c:8329
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										234
									
								
								po/nl.po
									
									
									
									
									
								
							
							
						
						
									
										234
									
								
								po/nl.po
									
									
									
									
									
								
							@@ -7,10 +7,9 @@
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: mutter\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mutter"
 | 
			
		||||
"&keywords=I18N+L10N&component=general\n"
 | 
			
		||||
"POT-Creation-Date: 2013-08-18 20:03+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2013-10-12 00:32+0200\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2013-10-25 00:15+0200\n"
 | 
			
		||||
"PO-Revision-Date: 2013-10-25 00:23+0200\n"
 | 
			
		||||
"Last-Translator: Reinout van Schouwen <reinouts@gnome.org>\n"
 | 
			
		||||
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
 | 
			
		||||
"Language: nl\n"
 | 
			
		||||
@@ -18,7 +17,6 @@ msgstr ""
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 | 
			
		||||
"X-Generator: Virtaal 0.7.1\n"
 | 
			
		||||
"X-Project-Style: gnome\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-navigation.xml.in.h:1
 | 
			
		||||
@@ -211,16 +209,16 @@ msgstr "Weergave gesplitst op rechts"
 | 
			
		||||
 | 
			
		||||
#. This probably means that a non-WM compositor like xcompmgr is running;
 | 
			
		||||
#. * we have no way to get it to exit
 | 
			
		||||
#: ../src/compositor/compositor.c:589
 | 
			
		||||
#: ../src/compositor/compositor.c:596
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Another compositing manager is already running on screen %i on display \"%s"
 | 
			
		||||
"\"."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Er is al een andere ‘compositing manager’ actief op scherm %i van display ‘%"
 | 
			
		||||
"s’."
 | 
			
		||||
"Er is al een andere ‘compositing manager’ actief op scherm %i van display "
 | 
			
		||||
"‘%s’."
 | 
			
		||||
 | 
			
		||||
#: ../src/compositor/meta-background.c:1076
 | 
			
		||||
#: ../src/compositor/meta-background.c:1075
 | 
			
		||||
msgid "background texture could not be created from file"
 | 
			
		||||
msgstr "aanmaken achtergrondstructuur uit bestand mislukt"
 | 
			
		||||
 | 
			
		||||
@@ -235,7 +233,6 @@ msgstr "Onbekende aanvraag voor vensterinformatie: %d"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:111
 | 
			
		||||
#, c-format
 | 
			
		||||
#| msgid "<tt>%s</tt> is not responding."
 | 
			
		||||
msgid "“%s” is not responding."
 | 
			
		||||
msgstr "‘%s’ reageert niet."
 | 
			
		||||
 | 
			
		||||
@@ -259,12 +256,12 @@ msgstr "_Wachten"
 | 
			
		||||
msgid "_Force Quit"
 | 
			
		||||
msgstr "Ge_forceerd afsluiten"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/display.c:421
 | 
			
		||||
#: ../src/core/display.c:422
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Missing %s extension required for compositing"
 | 
			
		||||
msgstr "Benodigde extensie ‘%s’ voor ‘compositing’ ontbreekt"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/display.c:513
 | 
			
		||||
#: ../src/core/display.c:514
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to open X Window System display '%s'\n"
 | 
			
		||||
msgstr "Openen van X Window System display ‘%s’ mislukt\n"
 | 
			
		||||
@@ -281,7 +278,6 @@ msgstr ""
 | 
			
		||||
 | 
			
		||||
#: ../src/core/keybindings.c:1333
 | 
			
		||||
#, c-format
 | 
			
		||||
#| msgid "\"%s\" is not a valid value for focus attribute"
 | 
			
		||||
msgid "\"%s\" is not a valid accelerator\n"
 | 
			
		||||
msgstr "‘%s’ is geen geldige sneltoets\n"
 | 
			
		||||
 | 
			
		||||
@@ -322,7 +318,7 @@ msgstr ""
 | 
			
		||||
"Kon geen thema vinden! Zorg ervoor dat %s bestaat en de gebruikelijke "
 | 
			
		||||
"thema's bevat.\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/monitor.c:711
 | 
			
		||||
#: ../src/core/monitor.c:696
 | 
			
		||||
msgid "Built-in display"
 | 
			
		||||
msgstr "Ingebouwd beeldscherm"
 | 
			
		||||
 | 
			
		||||
@@ -330,9 +326,8 @@ msgstr "Ingebouwd beeldscherm"
 | 
			
		||||
#. the vendor), it's Unknown followed by a size in inches,
 | 
			
		||||
#. like 'Unknown 15"'
 | 
			
		||||
#.
 | 
			
		||||
#: ../src/core/monitor.c:739
 | 
			
		||||
#: ../src/core/monitor.c:724
 | 
			
		||||
#, c-format
 | 
			
		||||
#| msgid "Unknown element %s"
 | 
			
		||||
msgid "Unknown %s"
 | 
			
		||||
msgstr "Onbekend %s"
 | 
			
		||||
 | 
			
		||||
@@ -394,12 +389,12 @@ msgstr ""
 | 
			
		||||
msgid "Workspace %d"
 | 
			
		||||
msgstr "Werkblad %d"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:534
 | 
			
		||||
#: ../src/core/screen.c:537
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Screen %d on display '%s' is invalid\n"
 | 
			
		||||
msgstr "Scherm %d op display '%s' is ongeldig\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:550
 | 
			
		||||
#: ../src/core/screen.c:553
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
 | 
			
		||||
@@ -408,19 +403,19 @@ msgstr ""
 | 
			
		||||
"Scherm %d op display ‘%s’ heeft al een ‘window manager’; probeer de optie: --"
 | 
			
		||||
"replace te gebruiken om de huidige ‘window manager’ te vervangen.\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:577
 | 
			
		||||
#: ../src/core/screen.c:580
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Kon ‘window manager’-selectie niet verkrijgen op scherm %d display ‘%s’\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:655
 | 
			
		||||
#: ../src/core/screen.c:658
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
 | 
			
		||||
msgstr "Scherm %d op display ‘%s’ heeft al een ‘window manager’\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:846
 | 
			
		||||
#: ../src/core/screen.c:850
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Could not release screen %d on display \"%s\"\n"
 | 
			
		||||
msgstr "Kon scherm %d op display ‘%s’ niet vrijmaken\n"
 | 
			
		||||
@@ -516,7 +511,7 @@ msgid "Window manager error: "
 | 
			
		||||
msgstr "Fout van vensterbeheer:"
 | 
			
		||||
 | 
			
		||||
#. first time through
 | 
			
		||||
#: ../src/core/window.c:7533
 | 
			
		||||
#: ../src/core/window.c:7515
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
 | 
			
		||||
@@ -532,7 +527,7 @@ msgstr ""
 | 
			
		||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
 | 
			
		||||
#. * about these apps but make them work.
 | 
			
		||||
#.
 | 
			
		||||
#: ../src/core/window.c:8257
 | 
			
		||||
#: ../src/core/window.c:8345
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
 | 
			
		||||
@@ -650,6 +645,9 @@ msgid ""
 | 
			
		||||
"static number of workspaces (determined by the num-workspaces key in org."
 | 
			
		||||
"gnome.desktop.wm.preferences)."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Bepaalt of werkbladen dynamisch worden beheerd of dat er een statisch aantal "
 | 
			
		||||
"werkbladen is (gegeven door de sleutel num-workspaces in org.gnome.desktop."
 | 
			
		||||
"wm.preferences)."
 | 
			
		||||
 | 
			
		||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:9
 | 
			
		||||
msgid "Workspaces only on primary"
 | 
			
		||||
@@ -672,10 +670,12 @@ msgid ""
 | 
			
		||||
"Determines whether the use of popup and highlight frame should be disabled "
 | 
			
		||||
"for window cycling."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Bepaalt of het gebruik van pop-up en markering van het kader uitgeschakeld "
 | 
			
		||||
"wordt voor het vensterbladeren."
 | 
			
		||||
 | 
			
		||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:13
 | 
			
		||||
msgid "Delay focus changes until the pointer stops moving"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Aandacht vertragen totdat de muispijl stopt met bewegen"
 | 
			
		||||
 | 
			
		||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:14
 | 
			
		||||
msgid ""
 | 
			
		||||
@@ -683,16 +683,22 @@ msgid ""
 | 
			
		||||
"the focus will not be changed immediately when entering a window, but only "
 | 
			
		||||
"after the pointer stops moving."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Indien op ‘true’ ingesteld en de aandachtsmodus is ofwel ‘sloppy’ of ‘mouse’, "
 | 
			
		||||
"dan zal de aandacht niet direct veranderd worden bij het binnengaan van een "
 | 
			
		||||
"venster, maar slechts wanneer de muispijl stopt met bewegen."
 | 
			
		||||
 | 
			
		||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:15
 | 
			
		||||
msgid "Draggable border width"
 | 
			
		||||
msgstr ""
 | 
			
		||||
msgstr "Sleepbare randbreedte"
 | 
			
		||||
 | 
			
		||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:16
 | 
			
		||||
msgid ""
 | 
			
		||||
"The amount of total draggable borders. If the theme's visible borders are "
 | 
			
		||||
"not enough, invisible borders will be added to meet this value."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Het totaal aantal sleepbare randen. Als de zichtbare randen in het thema "
 | 
			
		||||
"onvoldoende zijn, worden onzichtbare randen toegevoegd om deze waarde "
 | 
			
		||||
"te bereiken."
 | 
			
		||||
 | 
			
		||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:17
 | 
			
		||||
msgid "Auto maximize nearly monitor sized windows"
 | 
			
		||||
@@ -957,13 +963,13 @@ msgid "Gradients should have at least two colors"
 | 
			
		||||
msgstr "Kleurverloop moet tenminste twee kleuren hebben"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1203
 | 
			
		||||
#, fuzzy, c-format
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"GTK custom color specification must have color name and fallback in "
 | 
			
		||||
"parentheses, e.g. gtk:custom(foo,bar); could not parse \"%s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"GTK-kleurspecificatie moet een sluithaakje hebben na de status, dus: gtk: "
 | 
			
		||||
"fg[NORMAL] waarbij NORMAL de stutus is; kon ‘%s’ niet verwerken"
 | 
			
		||||
"Aangepaste GTK-kleurspecificatie moet een kleurnaam en terugvaloptie "
 | 
			
		||||
"hebben tussen haakjes, dus: gtk:custom(foo,bar); kon ‘%s’ niet verwerken"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1219
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -971,15 +977,17 @@ msgid ""
 | 
			
		||||
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
 | 
			
		||||
"_ are valid"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Ongeldig teken ‘%c’ in color_name-parameter van gtk:custom, alleen A-Za-z0-9-_ "
 | 
			
		||||
"zijn geldig"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1233
 | 
			
		||||
#, fuzzy, c-format
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Gtk:custom format is \"gtk:custom(color_name,fallback)\", \"%s\" does not "
 | 
			
		||||
"fit the format"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Schaduwformaat is ‘schaduw/basiskleur/factor’, ‘%s’ voldoet niet aan dit "
 | 
			
		||||
"formaat"
 | 
			
		||||
"Gtk:custom-formaat is ‘gtk:custom(color_name,fallback)’, ‘%s’ voldoet "
 | 
			
		||||
"niet aan dit formaat"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1278
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -987,8 +995,8 @@ msgid ""
 | 
			
		||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
 | 
			
		||||
"where NORMAL is the state; could not parse \"%s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"GTK-kleurspecificatie moet de toestand in rechte haken hebben, bijv. gtk:fg"
 | 
			
		||||
"[NORMAL] waarbij NORMAL de toestand is; kon ‘%s’ niet verwerken"
 | 
			
		||||
"GTK-kleurspecificatie moet de toestand in rechte haken hebben, bijv. gtk:"
 | 
			
		||||
"fg[NORMAL] waarbij NORMAL de toestand is; kon ‘%s’ niet verwerken"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1292
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -996,8 +1004,8 @@ msgid ""
 | 
			
		||||
"GTK color specification must have a close bracket after the state, e.g. gtk:"
 | 
			
		||||
"fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"GTK-kleurspecificatie moet een sluithaakje hebben na de status, dus: gtk: fg"
 | 
			
		||||
"[NORMAL] waarbij NORMAL de stutus is; kon ‘%s’ niet verwerken"
 | 
			
		||||
"GTK-kleurspecificatie moet een sluithaakje hebben na de status, dus: gtk: "
 | 
			
		||||
"fg[NORMAL] waarbij NORMAL de stutus is; kon ‘%s’ niet verwerken"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1303
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -1222,59 +1230,59 @@ msgstr "Geen ‘%s’-attribuut op element <%s>"
 | 
			
		||||
msgid "Line %d character %d: %s"
 | 
			
		||||
msgstr "Regel %d teken %d: %s"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:479
 | 
			
		||||
#: ../src/ui/theme-parser.c:483
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Attribute \"%s\" repeated twice on the same <%s> element"
 | 
			
		||||
msgstr "Attribuut ‘%s’ twee keer herhaald op hetzelfde <%s>-element"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:503 ../src/ui/theme-parser.c:552
 | 
			
		||||
#: ../src/ui/theme-parser.c:507 ../src/ui/theme-parser.c:556
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Attribute \"%s\" is invalid on <%s> element in this context"
 | 
			
		||||
msgstr "Attribuut ‘%s’ is ongeldig op een <%s>-element in deze context"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:594
 | 
			
		||||
#: ../src/ui/theme-parser.c:598
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Could not parse \"%s\" as an integer"
 | 
			
		||||
msgstr "Kon ‘%s’ niet verwerken als geheel getal"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:603 ../src/ui/theme-parser.c:658
 | 
			
		||||
#: ../src/ui/theme-parser.c:607 ../src/ui/theme-parser.c:662
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Did not understand trailing characters \"%s\" in string \"%s\""
 | 
			
		||||
msgstr "Niet begrepen: de laatste tekens ‘%s’ in ‘%s’"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:613
 | 
			
		||||
#: ../src/ui/theme-parser.c:617
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Integer %ld must be positive"
 | 
			
		||||
msgstr "Geheel getal %ld moet positief zijn"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:621
 | 
			
		||||
#: ../src/ui/theme-parser.c:625
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Integer %ld is too large, current max is %d"
 | 
			
		||||
msgstr "Geheel getal %ld is te groot, huidige maximum is %d"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:649 ../src/ui/theme-parser.c:765
 | 
			
		||||
#: ../src/ui/theme-parser.c:653 ../src/ui/theme-parser.c:769
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Could not parse \"%s\" as a floating point number"
 | 
			
		||||
msgstr "Kon ‘%s’ niet als 'floating-point'-getal verwerken"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:680 ../src/ui/theme-parser.c:708
 | 
			
		||||
#: ../src/ui/theme-parser.c:684 ../src/ui/theme-parser.c:712
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Boolean values must be \"true\" or \"false\" not \"%s\""
 | 
			
		||||
msgstr "Boolese waarde moet ‘true’ of ‘false’ zijn, niet ‘%s’"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:735
 | 
			
		||||
#: ../src/ui/theme-parser.c:739
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Angle must be between 0.0 and 360.0, was %g\n"
 | 
			
		||||
msgstr "Hoek moet liggen tussen 0.0 en 360.0, maar was %g\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:798
 | 
			
		||||
#: ../src/ui/theme-parser.c:802
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Alpha must be between 0.0 (invisible) and 1.0 (fully opaque), was %g\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Alpha moet liggen tussen 0.0 (onzichtbaar) en 1.0 (volledig ondoorzichtig), "
 | 
			
		||||
"maar was %g\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:863
 | 
			
		||||
#: ../src/ui/theme-parser.c:867
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Invalid title scale \"%s\" (must be one of xx-small,x-small,small,medium,"
 | 
			
		||||
@@ -1283,60 +1291,60 @@ msgstr ""
 | 
			
		||||
"Ongeldige titel-schaal ‘%s’ (u kunt kiezen uit: xx-small, x-small, small, "
 | 
			
		||||
"medium, large, x-large, xx-large)\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:1019 ../src/ui/theme-parser.c:1082
 | 
			
		||||
#: ../src/ui/theme-parser.c:1116 ../src/ui/theme-parser.c:1219
 | 
			
		||||
#: ../src/ui/theme-parser.c:1023 ../src/ui/theme-parser.c:1086
 | 
			
		||||
#: ../src/ui/theme-parser.c:1120 ../src/ui/theme-parser.c:1223
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "<%s> name \"%s\" used a second time"
 | 
			
		||||
msgstr "<%s>-naam ‘%s’ een tweede keer gebruikt"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:1031 ../src/ui/theme-parser.c:1128
 | 
			
		||||
#: ../src/ui/theme-parser.c:1231
 | 
			
		||||
#: ../src/ui/theme-parser.c:1035 ../src/ui/theme-parser.c:1132
 | 
			
		||||
#: ../src/ui/theme-parser.c:1235
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "<%s> parent \"%s\" has not been defined"
 | 
			
		||||
msgstr "<%s>-ouder ‘%s’ is niet gedefinieerd"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:1141
 | 
			
		||||
#: ../src/ui/theme-parser.c:1145
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "<%s> geometry \"%s\" has not been defined"
 | 
			
		||||
msgstr "<%s>-afmetingen ‘%s’ is niet gedefinieerd"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:1154
 | 
			
		||||
#: ../src/ui/theme-parser.c:1158
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "<%s> must specify either a geometry or a parent that has a geometry"
 | 
			
		||||
msgstr "<%s> moet ofwel afmetingen specificeren, of een ouder met afmetingen"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:1196
 | 
			
		||||
#: ../src/ui/theme-parser.c:1200
 | 
			
		||||
msgid "You must specify a background for an alpha value to be meaningful"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"U dient een achtergrond te specificeren voordat een alpha-waarde betekenis "
 | 
			
		||||
"heeft"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:1264
 | 
			
		||||
#: ../src/ui/theme-parser.c:1268
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Unknown type \"%s\" on <%s> element"
 | 
			
		||||
msgstr "Onbekend type ‘%s’ op <%s>-element"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:1275
 | 
			
		||||
#: ../src/ui/theme-parser.c:1279
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Unknown style_set \"%s\" on <%s> element"
 | 
			
		||||
msgstr "Onbekende style_set ‘%s’ op <%s>-element"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:1283
 | 
			
		||||
#: ../src/ui/theme-parser.c:1287
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Window type \"%s\" has already been assigned a style set"
 | 
			
		||||
msgstr "Venstertype ‘%s’ heeft reeds een stijlset toegewezen gekregen"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:1313 ../src/ui/theme-parser.c:1377
 | 
			
		||||
#: ../src/ui/theme-parser.c:1603 ../src/ui/theme-parser.c:2838
 | 
			
		||||
#: ../src/ui/theme-parser.c:2884 ../src/ui/theme-parser.c:3034
 | 
			
		||||
#: ../src/ui/theme-parser.c:3273 ../src/ui/theme-parser.c:3311
 | 
			
		||||
#: ../src/ui/theme-parser.c:3349 ../src/ui/theme-parser.c:3387
 | 
			
		||||
#: ../src/ui/theme-parser.c:1317 ../src/ui/theme-parser.c:1381
 | 
			
		||||
#: ../src/ui/theme-parser.c:1607 ../src/ui/theme-parser.c:2842
 | 
			
		||||
#: ../src/ui/theme-parser.c:2888 ../src/ui/theme-parser.c:3038
 | 
			
		||||
#: ../src/ui/theme-parser.c:3274 ../src/ui/theme-parser.c:3312
 | 
			
		||||
#: ../src/ui/theme-parser.c:3350 ../src/ui/theme-parser.c:3388
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Element <%s> is not allowed below <%s>"
 | 
			
		||||
msgstr "Element <%s> is niet toegestaan onder <%s>"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:1427 ../src/ui/theme-parser.c:1441
 | 
			
		||||
#: ../src/ui/theme-parser.c:1486
 | 
			
		||||
#: ../src/ui/theme-parser.c:1431 ../src/ui/theme-parser.c:1445
 | 
			
		||||
#: ../src/ui/theme-parser.c:1490
 | 
			
		||||
msgid ""
 | 
			
		||||
"Cannot specify both \"button_width\"/\"button_height\" and \"aspect_ratio\" "
 | 
			
		||||
"for buttons"
 | 
			
		||||
@@ -1344,123 +1352,123 @@ msgstr ""
 | 
			
		||||
"Kan niet tegelijk ‘button_width’/‘button_height’ en ‘aspect_ratio’ voor "
 | 
			
		||||
"knoppen opgeven."
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:1450
 | 
			
		||||
#: ../src/ui/theme-parser.c:1454
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Distance \"%s\" is unknown"
 | 
			
		||||
msgstr "Afstand ‘%s’ is onbekend"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:1495
 | 
			
		||||
#: ../src/ui/theme-parser.c:1499
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Aspect ratio \"%s\" is unknown"
 | 
			
		||||
msgstr "Verhouding ‘%s’ is onbekend"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:1557
 | 
			
		||||
#: ../src/ui/theme-parser.c:1561
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Border \"%s\" is unknown"
 | 
			
		||||
msgstr "Rand ‘%s’ is onbekend"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:1868
 | 
			
		||||
#: ../src/ui/theme-parser.c:1872
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "No \"start_angle\" or \"from\" attribute on element <%s>"
 | 
			
		||||
msgstr "Geen ‘start_angle’- of ‘from’-attribuut op element <%s>"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:1875
 | 
			
		||||
#: ../src/ui/theme-parser.c:1879
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "No \"extent_angle\" or \"to\" attribute on element <%s>"
 | 
			
		||||
msgstr "Geen ‘extent_angle’- of ‘to’-attribuut op element <%s>"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2115
 | 
			
		||||
#: ../src/ui/theme-parser.c:2119
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Did not understand value \"%s\" for type of gradient"
 | 
			
		||||
msgstr "Niet begrepen: de waarde ‘%s’ voor type kleurverloop"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2193 ../src/ui/theme-parser.c:2568
 | 
			
		||||
#: ../src/ui/theme-parser.c:2197 ../src/ui/theme-parser.c:2572
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Did not understand fill type \"%s\" for <%s> element"
 | 
			
		||||
msgstr "Niet begrepen: vul-type ‘%s’ voor <%s>-element"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2360 ../src/ui/theme-parser.c:2443
 | 
			
		||||
#: ../src/ui/theme-parser.c:2506
 | 
			
		||||
#: ../src/ui/theme-parser.c:2364 ../src/ui/theme-parser.c:2447
 | 
			
		||||
#: ../src/ui/theme-parser.c:2510
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Did not understand state \"%s\" for <%s> element"
 | 
			
		||||
msgstr "Niet begrepen: status ‘%s’ voor <%s>-element"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2370 ../src/ui/theme-parser.c:2453
 | 
			
		||||
#: ../src/ui/theme-parser.c:2374 ../src/ui/theme-parser.c:2457
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Did not understand shadow \"%s\" for <%s> element"
 | 
			
		||||
msgstr "Niet begrepen: schaduw ‘%s’ voor <%s>-element"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2380
 | 
			
		||||
#: ../src/ui/theme-parser.c:2384
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Did not understand arrow \"%s\" for <%s> element"
 | 
			
		||||
msgstr "Niet begrepen: pijl ‘%s’ voor <%s>-element"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2694 ../src/ui/theme-parser.c:2790
 | 
			
		||||
#: ../src/ui/theme-parser.c:2698 ../src/ui/theme-parser.c:2794
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "No <draw_ops> called \"%s\" has been defined"
 | 
			
		||||
msgstr "Er zijn geen <draw_ops> genaamd ‘%s’ gedefinieerd"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2706 ../src/ui/theme-parser.c:2802
 | 
			
		||||
#: ../src/ui/theme-parser.c:2710 ../src/ui/theme-parser.c:2806
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Including draw_ops \"%s\" here would create a circular reference"
 | 
			
		||||
msgstr "Hier ‘draw_ops’ ‘%s’ meenemen zou een circulaire verwijzing creëren"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2917
 | 
			
		||||
#: ../src/ui/theme-parser.c:2921
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Unknown position \"%s\" for frame piece"
 | 
			
		||||
msgstr "Onbekende positie ‘%s’ voor kader-onderdeel"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2925
 | 
			
		||||
#: ../src/ui/theme-parser.c:2929
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Frame style already has a piece at position %s"
 | 
			
		||||
msgstr "Kader-stijl heeft al een onderdeel op positie %s"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2942 ../src/ui/theme-parser.c:3019
 | 
			
		||||
#: ../src/ui/theme-parser.c:2946 ../src/ui/theme-parser.c:3023
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "No <draw_ops> with the name \"%s\" has been defined"
 | 
			
		||||
msgstr "Er zijn geen <draw_ops> met naam ‘%s’ gedefinieerd"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2972
 | 
			
		||||
#: ../src/ui/theme-parser.c:2976
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Unknown function \"%s\" for button"
 | 
			
		||||
msgstr "Onbekende functie ‘%s’ voor knop"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2982
 | 
			
		||||
#: ../src/ui/theme-parser.c:2986
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Button function \"%s\" does not exist in this version (%d, need %d)"
 | 
			
		||||
msgstr "Knopfunctie ‘%s’ bestaat niet in deze versie (%d, %d benodigd)"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2994
 | 
			
		||||
#: ../src/ui/theme-parser.c:2998
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Unknown state \"%s\" for button"
 | 
			
		||||
msgstr "Onbekende status ‘%s’ voor knop"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3002
 | 
			
		||||
#: ../src/ui/theme-parser.c:3006
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Frame style already has a button for function %s state %s"
 | 
			
		||||
msgstr "Kader-stijl heeft reeds een knop voor functie %s status %s"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3073
 | 
			
		||||
#: ../src/ui/theme-parser.c:3077
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "\"%s\" is not a valid value for focus attribute"
 | 
			
		||||
msgstr "‘%s’ is geen geldige waarde voor ‘focus’-attribuut"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3082
 | 
			
		||||
#: ../src/ui/theme-parser.c:3086
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "\"%s\" is not a valid value for state attribute"
 | 
			
		||||
msgstr "‘%s’ is geen geldige waarde voor ‘state’-attribuut"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3092
 | 
			
		||||
#: ../src/ui/theme-parser.c:3096
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "A style called \"%s\" has not been defined"
 | 
			
		||||
msgstr "Een stijl genaamd ‘%s’ is niet gedefinieerd"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3113 ../src/ui/theme-parser.c:3136
 | 
			
		||||
#: ../src/ui/theme-parser.c:3117 ../src/ui/theme-parser.c:3140
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "\"%s\" is not a valid value for resize attribute"
 | 
			
		||||
msgstr "‘%s’ is geen geldige waarde voor ‘resize’-attribuut"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3147
 | 
			
		||||
#: ../src/ui/theme-parser.c:3151
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Should not have \"resize\" attribute on <%s> element for maximized/shaded "
 | 
			
		||||
@@ -1469,7 +1477,7 @@ msgstr ""
 | 
			
		||||
"Behoort geen ‘resize’-attribuut te hebben op <%s>-element voor "
 | 
			
		||||
"gemaximaliseerde/opgerolde toestanden"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3161
 | 
			
		||||
#: ../src/ui/theme-parser.c:3165
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Should not have \"resize\" attribute on <%s> element for maximized states"
 | 
			
		||||
@@ -1477,20 +1485,20 @@ msgstr ""
 | 
			
		||||
"Behoort geen ‘resize’-attribuut te hebben op <%s>-element voor "
 | 
			
		||||
"gemaximaliseerde toestand"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3175 ../src/ui/theme-parser.c:3222
 | 
			
		||||
#: ../src/ui/theme-parser.c:3179 ../src/ui/theme-parser.c:3223
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Style has already been specified for state %s resize %s focus %s"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Stijl is reeds gespecificeerd voor status %s grootte aanpassen %s aandacht %s"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3186 ../src/ui/theme-parser.c:3197
 | 
			
		||||
#: ../src/ui/theme-parser.c:3208 ../src/ui/theme-parser.c:3233
 | 
			
		||||
#: ../src/ui/theme-parser.c:3244 ../src/ui/theme-parser.c:3255
 | 
			
		||||
#: ../src/ui/theme-parser.c:3190 ../src/ui/theme-parser.c:3201
 | 
			
		||||
#: ../src/ui/theme-parser.c:3212 ../src/ui/theme-parser.c:3234
 | 
			
		||||
#: ../src/ui/theme-parser.c:3245 ../src/ui/theme-parser.c:3256
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Style has already been specified for state %s focus %s"
 | 
			
		||||
msgstr "Stijl is reeds gespecificeerd voor status %s aandacht %s"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3294
 | 
			
		||||
#: ../src/ui/theme-parser.c:3295
 | 
			
		||||
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)"
 | 
			
		||||
@@ -1499,7 +1507,7 @@ msgstr ""
 | 
			
		||||
"specificeerde een ‘draw_ops’-attribuut en tevens een <draw_ops>-element, of "
 | 
			
		||||
"specificeerde twee elementen)"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3332
 | 
			
		||||
#: ../src/ui/theme-parser.c:3333
 | 
			
		||||
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)"
 | 
			
		||||
@@ -1508,7 +1516,7 @@ msgstr ""
 | 
			
		||||
"specificeerde een ‘draw_ops’-attribuut en tevens een <draw_ops>-element, of "
 | 
			
		||||
"specificeerde twee elementen)"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3370
 | 
			
		||||
#: ../src/ui/theme-parser.c:3371
 | 
			
		||||
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)"
 | 
			
		||||
@@ -1517,12 +1525,12 @@ msgstr ""
 | 
			
		||||
"specificeerde een ‘draw_ops’-attribuut en tevens een <draw_ops>-element, of "
 | 
			
		||||
"specificeerde twee elementen)"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3434
 | 
			
		||||
#: ../src/ui/theme-parser.c:3435
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Bad version specification '%s'"
 | 
			
		||||
msgstr "Foutieve opgave van versie: ‘%s’"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3507
 | 
			
		||||
#: ../src/ui/theme-parser.c:3508
 | 
			
		||||
msgid ""
 | 
			
		||||
"\"version\" attribute cannot be used in metacity-theme-1.xml or metacity-"
 | 
			
		||||
"theme-2.xml"
 | 
			
		||||
@@ -1530,18 +1538,18 @@ msgstr ""
 | 
			
		||||
"Het ‘version’-attribuut kan niet gebruikt worden in metacity-theme-1.xml of "
 | 
			
		||||
"metacity-theme-2.xml."
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3530
 | 
			
		||||
#: ../src/ui/theme-parser.c:3531
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Theme requires version %s but latest supported theme version is %d.%d"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Het thema vereist versie %s, maar de recentste ondersteunde versie is %d.%d"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3562
 | 
			
		||||
#: ../src/ui/theme-parser.c:3563
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Outermost element in theme must be <metacity_theme> not <%s>"
 | 
			
		||||
msgstr "Buitenste element in thema moet zijn: <metacity_theme>, niet <%s>"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3582
 | 
			
		||||
#: ../src/ui/theme-parser.c:3583
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Element <%s> is not allowed inside a name/author/date/description element"
 | 
			
		||||
@@ -1549,12 +1557,12 @@ msgstr ""
 | 
			
		||||
"Element <%s> is niet toegestaan binnen een naam/auteur/datum/beschrijving "
 | 
			
		||||
"element"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3587
 | 
			
		||||
#: ../src/ui/theme-parser.c:3588
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Element <%s> is not allowed inside a <constant> element"
 | 
			
		||||
msgstr "Element <%s> is niet toegestaan binnen een <constant>-element"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3599
 | 
			
		||||
#: ../src/ui/theme-parser.c:3600
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Element <%s> is not allowed inside a distance/border/aspect_ratio element"
 | 
			
		||||
@@ -1562,38 +1570,38 @@ msgstr ""
 | 
			
		||||
"Element <%s> is niet toegestaan binnen de elementen distance/border/"
 | 
			
		||||
"aspect_ratio"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3621
 | 
			
		||||
#: ../src/ui/theme-parser.c:3622
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Element <%s> is not allowed inside a draw operation element"
 | 
			
		||||
msgstr "Element <%s> is niet toegestaan binnen een ‘draw operation’-element"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3631 ../src/ui/theme-parser.c:3661
 | 
			
		||||
#: ../src/ui/theme-parser.c:3666 ../src/ui/theme-parser.c:3671
 | 
			
		||||
#: ../src/ui/theme-parser.c:3632 ../src/ui/theme-parser.c:3662
 | 
			
		||||
#: ../src/ui/theme-parser.c:3667 ../src/ui/theme-parser.c:3672
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Element <%s> is not allowed inside a <%s> element"
 | 
			
		||||
msgstr "Element <%s> is niet toegestaan binnen een <%s>-element"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3899
 | 
			
		||||
#: ../src/ui/theme-parser.c:3900
 | 
			
		||||
msgid "No draw_ops provided for frame piece"
 | 
			
		||||
msgstr "Geen ‘draw_ops’ gegeven voor kader-onderdeel"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3914
 | 
			
		||||
#: ../src/ui/theme-parser.c:3915
 | 
			
		||||
msgid "No draw_ops provided for button"
 | 
			
		||||
msgstr "Geen ‘draw_ops’ gegeven voor knop"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3968
 | 
			
		||||
#: ../src/ui/theme-parser.c:3969
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "No text is allowed inside element <%s>"
 | 
			
		||||
msgstr "Geen tekst toegestaan binnen element <%s>"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:4026 ../src/ui/theme-parser.c:4038
 | 
			
		||||
#: ../src/ui/theme-parser.c:4050 ../src/ui/theme-parser.c:4062
 | 
			
		||||
#: ../src/ui/theme-parser.c:4074
 | 
			
		||||
#: ../src/ui/theme-parser.c:4027 ../src/ui/theme-parser.c:4039
 | 
			
		||||
#: ../src/ui/theme-parser.c:4051 ../src/ui/theme-parser.c:4063
 | 
			
		||||
#: ../src/ui/theme-parser.c:4075
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "<%s> specified twice for this theme"
 | 
			
		||||
msgstr "<%s> twee keer gegeven voor dit thema"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:4336
 | 
			
		||||
#: ../src/ui/theme-parser.c:4337
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to find a valid file for theme %s\n"
 | 
			
		||||
msgstr "Geen geldig bestand gevonden voor thema %s\n"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										222
									
								
								po/pt.po
									
									
									
									
									
								
							
							
						
						
									
										222
									
								
								po/pt.po
									
									
									
									
									
								
							@@ -1,20 +1,24 @@
 | 
			
		||||
# mutter's Portuguese Translation
 | 
			
		||||
# Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 metacity/mutter
 | 
			
		||||
# 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.
 | 
			
		||||
# 
 | 
			
		||||
# mutter's Portuguese Translation
 | 
			
		||||
# Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 metacity/mutter
 | 
			
		||||
# 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.
 | 
			
		||||
# Pedro Albuquerque <palbuquerque73@gmail.com>, 2015.
 | 
			
		||||
#
 | 
			
		||||
msgid ""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Project-Id-Version: 3.10\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: \n"
 | 
			
		||||
"POT-Creation-Date: 2013-09-23 00:17+0100\n"
 | 
			
		||||
"PO-Revision-Date: 2013-09-23 00:20+0000\n"
 | 
			
		||||
"Last-Translator: Duarte Loreto <happyguy_pt@hotmail.com>\n"
 | 
			
		||||
"Language-Team: Portuguese <gnome_pt@yahoogroups.com>\n"
 | 
			
		||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
 | 
			
		||||
"product=mutter&keywords=I18N+L10N&component=general\n"
 | 
			
		||||
"POT-Creation-Date: 2015-09-28 23:51+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2015-10-07 09:55+0100\n"
 | 
			
		||||
"Last-Translator: Pedro Albuquerque <palbuquerque73@gmail.com>\n"
 | 
			
		||||
"Language-Team: Português <palbuquerque73@gmail.com>\n"
 | 
			
		||||
"Language: pt\n"
 | 
			
		||||
"MIME-Version: 1.0\n"
 | 
			
		||||
"Content-Type: text/plain; charset=UTF-8\n"
 | 
			
		||||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
"Plural-Forms: nplurals=2; plural=(n != 1);\\n\n"
 | 
			
		||||
"X-Generator: Gtranslator 2.91.6\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-navigation.xml.in.h:1
 | 
			
		||||
msgid "Navigation"
 | 
			
		||||
@@ -54,11 +58,11 @@ msgstr "Mover a janela uma área de trabalho abaixo"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-navigation.xml.in.h:10
 | 
			
		||||
msgid "Switch applications"
 | 
			
		||||
msgstr "Alternar entre aplicações"
 | 
			
		||||
msgstr "Mudar de aplicações"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-navigation.xml.in.h:11
 | 
			
		||||
msgid "Switch windows"
 | 
			
		||||
msgstr "Alternar entre janelas"
 | 
			
		||||
msgstr "Mudar de janelas"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-navigation.xml.in.h:12
 | 
			
		||||
msgid "Switch windows of an application"
 | 
			
		||||
@@ -82,23 +86,23 @@ msgstr "Alternar diretamente entre controlos de sistema"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-navigation.xml.in.h:17
 | 
			
		||||
msgid "Hide all normal windows"
 | 
			
		||||
msgstr "Esconder todas as janelas normais"
 | 
			
		||||
msgstr "Ocultar todas as janelas normais"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-navigation.xml.in.h:18
 | 
			
		||||
msgid "Switch to workspace 1"
 | 
			
		||||
msgstr "Alternar para a área de trabalho 1"
 | 
			
		||||
msgstr "Mudar para a área de trabalho 1"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-navigation.xml.in.h:19
 | 
			
		||||
msgid "Switch to workspace 2"
 | 
			
		||||
msgstr "Alternar para a área de trabalho 2"
 | 
			
		||||
msgstr "Mudar para a área de trabalho 2"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-navigation.xml.in.h:20
 | 
			
		||||
msgid "Switch to workspace 3"
 | 
			
		||||
msgstr "Alternar para a área de trabalho 3"
 | 
			
		||||
msgstr "Mudar para a área de trabalho 3"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-navigation.xml.in.h:21
 | 
			
		||||
msgid "Switch to workspace 4"
 | 
			
		||||
msgstr "Alternar para a área de trabalho 4"
 | 
			
		||||
msgstr "Mudar para a área de trabalho 4"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-navigation.xml.in.h:22
 | 
			
		||||
msgid "Move to workspace left"
 | 
			
		||||
@@ -122,11 +126,11 @@ msgstr "Sistema"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-system.xml.in.h:2
 | 
			
		||||
msgid "Show the run command prompt"
 | 
			
		||||
msgstr "Apresentar a linha de comando de execução"
 | 
			
		||||
msgstr "Mostrar a linha de comando de execução"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-system.xml.in.h:3
 | 
			
		||||
msgid "Show the activities overview"
 | 
			
		||||
msgstr "Apresentar o resumo de atividades"
 | 
			
		||||
msgstr "Mostrar o resumo de atividades"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-windows.xml.in.h:1
 | 
			
		||||
msgid "Windows"
 | 
			
		||||
@@ -162,7 +166,7 @@ msgstr "Fechar a janela"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-windows.xml.in.h:9
 | 
			
		||||
msgid "Hide window"
 | 
			
		||||
msgstr "Esconder a janela"
 | 
			
		||||
msgstr "Ocultar a janela"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-windows.xml.in.h:10
 | 
			
		||||
msgid "Move window"
 | 
			
		||||
@@ -174,7 +178,7 @@ msgstr "Redimensionar a janela"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-windows.xml.in.h:12
 | 
			
		||||
msgid "Toggle window on all workspaces or one"
 | 
			
		||||
msgstr "Alternar janela em todas as áreas de trabalho ou apenas numa"
 | 
			
		||||
msgstr "Alternar janela em todas as áreas de trabalho ou só numa"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-windows.xml.in.h:13
 | 
			
		||||
msgid "Raise window if covered, otherwise lower it"
 | 
			
		||||
@@ -198,11 +202,11 @@ msgstr "Maximizar janela horizontalmente"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-windows.xml.in.h:18
 | 
			
		||||
msgid "View split on left"
 | 
			
		||||
msgstr "Visualizar a divisão à esquerda"
 | 
			
		||||
msgstr "Ver a divisão à esquerda"
 | 
			
		||||
 | 
			
		||||
#: ../src/50-mutter-windows.xml.in.h:19
 | 
			
		||||
msgid "View split on right"
 | 
			
		||||
msgstr "Visualizar a divisão à direita"
 | 
			
		||||
msgstr "Ver a divisão à direita"
 | 
			
		||||
 | 
			
		||||
#. This probably means that a non-WM compositor like xcompmgr is running;
 | 
			
		||||
#. * we have no way to get it to exit
 | 
			
		||||
@@ -215,9 +219,9 @@ msgstr ""
 | 
			
		||||
"Já se encontra em execução outro gestor de janelas no ecrã %i do monitor \"%s"
 | 
			
		||||
"\"."
 | 
			
		||||
 | 
			
		||||
#: ../src/compositor/meta-background.c:1075
 | 
			
		||||
#: ../src/compositor/meta-background.c:1090
 | 
			
		||||
msgid "background texture could not be created from file"
 | 
			
		||||
msgstr "incapaz de criar de ficheiro a textura de fundo"
 | 
			
		||||
msgstr "impossível criar de ficheiro a textura de fundo"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/bell.c:322
 | 
			
		||||
msgid "Bell event"
 | 
			
		||||
@@ -231,7 +235,7 @@ msgstr "Pedido de informação de janela desconhecido: %d"
 | 
			
		||||
#: ../src/core/delete.c:111
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "“%s” is not responding."
 | 
			
		||||
msgstr "“%s” não está a responder."
 | 
			
		||||
msgstr "\"%s\" não está a responder."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:113
 | 
			
		||||
msgid "Application is not responding."
 | 
			
		||||
@@ -251,17 +255,17 @@ msgstr "_Aguardar"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/delete.c:125
 | 
			
		||||
msgid "_Force Quit"
 | 
			
		||||
msgstr "_Forçar Terminar"
 | 
			
		||||
msgstr "_Forçar terminar"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/display.c:422
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Missing %s extension required for compositing"
 | 
			
		||||
msgstr "Incapaz de encontrar a extensão %s, necessária para a composição"
 | 
			
		||||
msgstr "Impossível encontrar a extensão %s, necessária para a composição"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/display.c:514
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to open X Window System display '%s'\n"
 | 
			
		||||
msgstr "Falha ao abrir ecrã '%s' do Sistema Janelas X\n"
 | 
			
		||||
msgstr "Falha ao abrir ecrã \"%s\" do sistema Janelas X\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/keybindings.c:1136
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -287,7 +291,7 @@ msgstr "Substituir o gestor de janelas em execução"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:209
 | 
			
		||||
msgid "Specify session management ID"
 | 
			
		||||
msgstr "Especificar o ID de gestão de sessão"
 | 
			
		||||
msgstr "Especificar a ID de gestão de sessão"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:214
 | 
			
		||||
msgid "X Display to use"
 | 
			
		||||
@@ -299,19 +303,19 @@ msgstr "Inicializar a sessão a partir de um ficheiro de gravação de sessão"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:226
 | 
			
		||||
msgid "Make X calls synchronous"
 | 
			
		||||
msgstr "Realizar as invocações X sincronamente"
 | 
			
		||||
msgstr "Fazer as chamadas X sincronamente"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:534
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to scan themes directory: %s\n"
 | 
			
		||||
msgstr "Falha ao analizar diretório de temas: %s\n"
 | 
			
		||||
msgstr "Falha ao analizar pasta de temas: %s\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/main.c:550
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Could not find a theme! Be sure %s exists and contains the usual themes.\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Incapaz de encontrar um tema! Certifique-se que %s existe e contém os temas "
 | 
			
		||||
"Impossível encontrar um tema! Certifique-se que %s existe e contém os temas "
 | 
			
		||||
"normais.\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/monitor.c:696
 | 
			
		||||
@@ -349,21 +353,21 @@ msgstr "Imprimir a versão"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/mutter.c:60
 | 
			
		||||
msgid "Mutter plugin to use"
 | 
			
		||||
msgstr "Plugin Mutter a utilizar"
 | 
			
		||||
msgstr "Extensão Mutter a utilizar"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/prefs.c:1202
 | 
			
		||||
msgid ""
 | 
			
		||||
"Workarounds for broken applications disabled. Some applications may not "
 | 
			
		||||
"behave properly.\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Recursos para aplicações problemáticas inativos. Algumas aplicações poderão "
 | 
			
		||||
"Recursos inativos para aplicações problemáticas. Algumas aplicações poderão "
 | 
			
		||||
"não funcionar corretamente.\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/prefs.c:1277
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Could not parse font description \"%s\" from GSettings key %s\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Incapaz de processar a descrição de fonte \"%s\" da chave GSettings %s\n"
 | 
			
		||||
"Impossível processar a descrição de letra \"%s\" da chave GSettings %s\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/prefs.c:1343
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -386,14 +390,14 @@ msgstr ""
 | 
			
		||||
#: ../src/core/prefs.c:1999
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Workspace %d"
 | 
			
		||||
msgstr "Área de Trabalho %d"
 | 
			
		||||
msgstr "Área de trabalho %d"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:537
 | 
			
		||||
#: ../src/core/screen.c:539
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Screen %d on display '%s' is invalid\n"
 | 
			
		||||
msgstr "Ecrã %d no monitor '%s' é inválido\n"
 | 
			
		||||
msgstr "Ecrã %d no monitor \"%s\" é inválido\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:553
 | 
			
		||||
#: ../src/core/screen.c:555
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Screen %d on display \"%s\" already has a window manager; try using the --"
 | 
			
		||||
@@ -402,42 +406,42 @@ msgstr ""
 | 
			
		||||
"Ecrã %d no monitor \"%s\" já tem um gestor de janelas; tente utilizar a "
 | 
			
		||||
"opção --replace para substituir o gestor de janelas atual.\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:580
 | 
			
		||||
#: ../src/core/screen.c:582
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Could not acquire window manager selection on screen %d display \"%s\"\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Incapaz de obter seleção do gestor de janelas no ecrã %d monitor \"%s\"\n"
 | 
			
		||||
"Impossível obter seleção do gestor de janelas no ecrã %d monitor \"%s\"\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:658
 | 
			
		||||
#: ../src/core/screen.c:660
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Screen %d on display \"%s\" already has a window manager\n"
 | 
			
		||||
msgstr "Ecrã %d no monitor \"%s\" já tem um gestor de janelas\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/screen.c:850
 | 
			
		||||
#: ../src/core/screen.c:852
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Could not release screen %d on display \"%s\"\n"
 | 
			
		||||
msgstr "Incapaz libertar ecrã %d no monitor \"%s\"\n"
 | 
			
		||||
msgstr "Impossível libertar ecrã %d no monitor \"%s\"\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/session.c:843 ../src/core/session.c:850
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Could not create directory '%s': %s\n"
 | 
			
		||||
msgstr "Incapaz de criar diretório '%s': %s\n"
 | 
			
		||||
msgstr "Impossível criar pasta \"%s\": %s\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/session.c:860
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Could not open session file '%s' for writing: %s\n"
 | 
			
		||||
msgstr "Incapaz de abrir ficheiro de sessão '%s' para escrita: %s\n"
 | 
			
		||||
msgstr "Impossível abrir ficheiro de sessão \"%s\" para escrita: %s\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/session.c:1001
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Error writing session file '%s': %s\n"
 | 
			
		||||
msgstr "Erro ao escrever ficheiro de sessão '%s': %s\n"
 | 
			
		||||
msgstr "Erro ao escrever ficheiro de sessão \"%s\": %s\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/session.c:1006
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Error closing session file '%s': %s\n"
 | 
			
		||||
msgstr "Erro ao fechar ficheiro de sessão '%s': %s\n"
 | 
			
		||||
msgstr "Erro ao fechar ficheiro de sessão \"%s\": %s\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/session.c:1136
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -459,7 +463,7 @@ msgstr "Atributo %s desconhecido no elemento <%s>"
 | 
			
		||||
#: ../src/core/session.c:1215
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "nested <window> tag"
 | 
			
		||||
msgstr "etiqueta de <window> encadeada"
 | 
			
		||||
msgstr "etiqueta de <window> aninhada"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/session.c:1457
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -471,8 +475,8 @@ msgid ""
 | 
			
		||||
"These windows do not support "save current setup" and will have to "
 | 
			
		||||
"be restarted manually next time you log in."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Estas janelas não suportam "gravar configuração atual" e terão de "
 | 
			
		||||
"ser reiniciadas manualmente da próxima vez que iniciar sessão."
 | 
			
		||||
"Estas janelas não suportam \"Gravar configuração atual\" e terão de ser "
 | 
			
		||||
"reiniciadas manualmente da próxima vez que iniciar sessão."
 | 
			
		||||
 | 
			
		||||
#: ../src/core/util.c:84
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -492,7 +496,7 @@ msgstr "Ficheiro de registo %s aberto\n"
 | 
			
		||||
#: ../src/core/util.c:119
 | 
			
		||||
msgid "Mutter was compiled without support for verbose mode\n"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Mutter foi compilado sem suporte para modo de registo detalhado (verbose)\n"
 | 
			
		||||
"Mutter foi compilado sem suporte para modo de registo detalhado (verboso)\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/core/util.c:264
 | 
			
		||||
msgid "Window manager: "
 | 
			
		||||
@@ -511,7 +515,7 @@ msgid "Window manager error: "
 | 
			
		||||
msgstr "Erro do gestor de janelas: "
 | 
			
		||||
 | 
			
		||||
#. first time through
 | 
			
		||||
#: ../src/core/window.c:7515
 | 
			
		||||
#: ../src/core/window.c:7509
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
 | 
			
		||||
@@ -527,7 +531,7 @@ msgstr ""
 | 
			
		||||
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
 | 
			
		||||
#. * about these apps but make them work.
 | 
			
		||||
#.
 | 
			
		||||
#: ../src/core/window.c:8345
 | 
			
		||||
#: ../src/core/window.c:8341
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid ""
 | 
			
		||||
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
 | 
			
		||||
@@ -602,10 +606,10 @@ msgid ""
 | 
			
		||||
"\"Windows key\" on PC hardware. It's expected that this binding either the "
 | 
			
		||||
"default or set to the empty string."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Esta chave irá iniciar a \"sobreposição\", que é um sistema de visão "
 | 
			
		||||
"combinada de janelas e arranque de aplicações. Por omissão é a \"tecla "
 | 
			
		||||
"Windows\" em computadores PC. Espera-se que esta associação esteja para a "
 | 
			
		||||
"omissão ou uma expressão vazia."
 | 
			
		||||
"Esta tecla iniciará a \"sobreposição\", que é um sistema de visão combinada "
 | 
			
		||||
"de janelas e arranque de aplicações. Por predefinição é a \"tecla Windows\" "
 | 
			
		||||
"em computadores PC. Espera-se que esta associação seja a predefinição ou uma "
 | 
			
		||||
"cadeia vazia."
 | 
			
		||||
 | 
			
		||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:3
 | 
			
		||||
msgid "Attach modal dialogs"
 | 
			
		||||
@@ -618,8 +622,8 @@ msgid ""
 | 
			
		||||
"the parent window."
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Quando verdadeiro, em vez de terem barras de título independentes, os "
 | 
			
		||||
"diálogos modais surgem anexados à barra de título da janela pai e são "
 | 
			
		||||
"movidos juntamente com a janela pai."
 | 
			
		||||
"diálogos modais surgem anexados à barra de título da janela-mãe e são "
 | 
			
		||||
"movidos juntamente com a janela-mãe."
 | 
			
		||||
 | 
			
		||||
#: ../src/org.gnome.mutter.gschema.xml.in.h:5
 | 
			
		||||
msgid "Enable edge tiling when dropping windows on screen edges"
 | 
			
		||||
@@ -724,17 +728,17 @@ msgstr "Cancelar o popup de tabulador"
 | 
			
		||||
#. Translators: Translate this string the same way as you do in libwnck!
 | 
			
		||||
#: ../src/ui/menu.c:67
 | 
			
		||||
msgid "Mi_nimize"
 | 
			
		||||
msgstr "Mi_nimizar"
 | 
			
		||||
msgstr "Mi_Nimizar"
 | 
			
		||||
 | 
			
		||||
#. Translators: Translate this string the same way as you do in libwnck!
 | 
			
		||||
#: ../src/ui/menu.c:69
 | 
			
		||||
msgid "Ma_ximize"
 | 
			
		||||
msgstr "Ma_ximizar"
 | 
			
		||||
msgstr "Ma_Ximizar"
 | 
			
		||||
 | 
			
		||||
#. Translators: Translate this string the same way as you do in libwnck!
 | 
			
		||||
#: ../src/ui/menu.c:71
 | 
			
		||||
msgid "Unma_ximize"
 | 
			
		||||
msgstr "Resta_urar"
 | 
			
		||||
msgstr "Resta_Urar"
 | 
			
		||||
 | 
			
		||||
#. Translators: Translate this string the same way as you do in libwnck!
 | 
			
		||||
#: ../src/ui/menu.c:73
 | 
			
		||||
@@ -744,7 +748,7 @@ msgstr "_Enrolar"
 | 
			
		||||
#. Translators: Translate this string the same way as you do in libwnck!
 | 
			
		||||
#: ../src/ui/menu.c:75
 | 
			
		||||
msgid "_Unroll"
 | 
			
		||||
msgstr "D_esenrolar"
 | 
			
		||||
msgstr "D_Esenrolar"
 | 
			
		||||
 | 
			
		||||
#. Translators: Translate this string the same way as you do in libwnck!
 | 
			
		||||
#: ../src/ui/menu.c:77
 | 
			
		||||
@@ -759,7 +763,7 @@ msgstr "_Redimensionar"
 | 
			
		||||
#. Translators: Translate this string the same way as you do in libwnck!
 | 
			
		||||
#: ../src/ui/menu.c:81
 | 
			
		||||
msgid "Move Titlebar On_screen"
 | 
			
		||||
msgstr "Mover a _Barra de Títulos no Ecrã"
 | 
			
		||||
msgstr "Mover a _Barra de títulos no ecrã"
 | 
			
		||||
 | 
			
		||||
#. separator
 | 
			
		||||
#. Translators: Translate this string the same way as you do in libwnck!
 | 
			
		||||
@@ -770,32 +774,32 @@ msgstr "Sempre no _Topo"
 | 
			
		||||
#. Translators: Translate this string the same way as you do in libwnck!
 | 
			
		||||
#: ../src/ui/menu.c:88
 | 
			
		||||
msgid "_Always on Visible Workspace"
 | 
			
		||||
msgstr "_Sempre na Área de Trabalho Visível"
 | 
			
		||||
msgstr "_Sempre na área de trabalho visível"
 | 
			
		||||
 | 
			
		||||
#. Translators: Translate this string the same way as you do in libwnck!
 | 
			
		||||
#: ../src/ui/menu.c:90
 | 
			
		||||
msgid "_Only on This Workspace"
 | 
			
		||||
msgstr "_Apenas nesta Área de Trabalho"
 | 
			
		||||
msgstr "_Só nesta área de trabalho"
 | 
			
		||||
 | 
			
		||||
#. Translators: Translate this string the same way as you do in libwnck!
 | 
			
		||||
#: ../src/ui/menu.c:92
 | 
			
		||||
msgid "Move to Workspace _Left"
 | 
			
		||||
msgstr "Mover para a Área de Trabalho à _Esquerda"
 | 
			
		||||
msgstr "Mover para a área de trabalho à _Esquerda"
 | 
			
		||||
 | 
			
		||||
#. Translators: Translate this string the same way as you do in libwnck!
 | 
			
		||||
#: ../src/ui/menu.c:94
 | 
			
		||||
msgid "Move to Workspace R_ight"
 | 
			
		||||
msgstr "Mover para a Área de Trabalho à _Direita"
 | 
			
		||||
msgstr "Mover para a área de trabalho à _Direita"
 | 
			
		||||
 | 
			
		||||
#. Translators: Translate this string the same way as you do in libwnck!
 | 
			
		||||
#: ../src/ui/menu.c:96
 | 
			
		||||
msgid "Move to Workspace _Up"
 | 
			
		||||
msgstr "Mover para a Área de Trabalho _Acima"
 | 
			
		||||
msgstr "Mover para a área de trabalho _Acima"
 | 
			
		||||
 | 
			
		||||
#. Translators: Translate this string the same way as you do in libwnck!
 | 
			
		||||
#: ../src/ui/menu.c:98
 | 
			
		||||
msgid "Move to Workspace _Down"
 | 
			
		||||
msgstr "Mover para a Área de Trabalho A_baixo"
 | 
			
		||||
msgstr "Mover para a área de trabalho a_Baixo"
 | 
			
		||||
 | 
			
		||||
#. separator
 | 
			
		||||
#. Translators: Translate this string the same way as you do in libwnck!
 | 
			
		||||
@@ -806,21 +810,21 @@ msgstr "_Fechar"
 | 
			
		||||
#: ../src/ui/menu.c:202
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Workspace %d%n"
 | 
			
		||||
msgstr "Área de Trabalho %d%n"
 | 
			
		||||
msgstr "Área de trabalho %d%n"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/menu.c:212
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Workspace 1_0"
 | 
			
		||||
msgstr "Área de Trabalho 1_0"
 | 
			
		||||
msgstr "Área de trabalho 1_0"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/menu.c:214
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Workspace %s%d"
 | 
			
		||||
msgstr "Área de Trabalho %s%d"
 | 
			
		||||
msgstr "Área de trabalho %s%d"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/menu.c:384
 | 
			
		||||
msgid "Move to Another _Workspace"
 | 
			
		||||
msgstr "Mover para Outra Área de _Trabalho"
 | 
			
		||||
msgstr "Mover para outra área de _Trabalho"
 | 
			
		||||
 | 
			
		||||
#. This is the text that should appear next to menu accelerators
 | 
			
		||||
#. * that use the shift key. If the text on this key isn't typically
 | 
			
		||||
@@ -949,7 +953,7 @@ msgstr "geometria de moldura não especifica dimensão \"%s\" para margem \"%s\"
 | 
			
		||||
#: ../src/ui/theme.c:326
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Button aspect ratio %g is not reasonable"
 | 
			
		||||
msgstr "Rácio de aparência de botão %g não é um valor razoável"
 | 
			
		||||
msgstr "Proporção do botão %g não é um valor razoável"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:338
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -968,7 +972,7 @@ msgid ""
 | 
			
		||||
"parentheses, e.g. gtk:custom(foo,bar); could not parse \"%s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Especificação de cor GTK tem de ter o nome da cor e o recurso entre "
 | 
			
		||||
"parentesis, por ex. gtk:custom(foo,bar); incapaz de processar \"%s\""
 | 
			
		||||
"parentesis, por ex. gtk:custom(foo,bar); impossível processar \"%s\""
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1219
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -976,8 +980,8 @@ msgid ""
 | 
			
		||||
"Invalid character '%c' in color_name parameter of gtk:custom, only A-Za-z0-9-"
 | 
			
		||||
"_ are valid"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Caracter '%c' inválido no parâmetro color_name de gtk:custom, apenas são "
 | 
			
		||||
"válidos os carateres A-Za-z0-9-_"
 | 
			
		||||
"Carácter \"%c\" inválido no parâmetro color_name de gtk:custom, apenas são "
 | 
			
		||||
"válidos os caracteres A-Za-z0-9-_"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1233
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -994,8 +998,8 @@ msgid ""
 | 
			
		||||
"GTK color specification must have the state in brackets, e.g. gtk:fg[NORMAL] "
 | 
			
		||||
"where NORMAL is the state; could not parse \"%s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Especificação de cor GTK tem de ter o estado entre parentesis retos, por ex. "
 | 
			
		||||
"gtk:fg[NORMAL] em que NORMAL é o estado; incapaz de processar \"%s\""
 | 
			
		||||
"Especificação de cor GTK tem de ter o estado entre parênteses retos, por ex. "
 | 
			
		||||
"gtk:fg[NORMAL] em que NORMAL é o estado; impossível processar \"%s\""
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1292
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -1003,20 +1007,20 @@ msgid ""
 | 
			
		||||
"GTK color specification must have a close bracket after the state, e.g. gtk:"
 | 
			
		||||
"fg[NORMAL] where NORMAL is the state; could not parse \"%s\""
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Especificação de cor GTK tem de ter um parentesis reto de fecho após o "
 | 
			
		||||
"estado, por ex. gtk:fg[NORMAL] em que NORMAL é o estado; incapaz de "
 | 
			
		||||
"Especificação de cor GTK tem de ter um parênteses reto de fecho após o "
 | 
			
		||||
"estado, por ex. gtk:fg[NORMAL] em que NORMAL é o estado; impossível "
 | 
			
		||||
"processar \"%s\""
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1303
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Did not understand state \"%s\" in color specification"
 | 
			
		||||
msgstr "Incapaz de compreender o estado \"%s\" na especificação de cor"
 | 
			
		||||
msgstr "Impossível compreender o estado \"%s\" na especificação de cor"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1316
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Did not understand color component \"%s\" in color specification"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Incapaz de compreender componente de cor \"%s\" na especificação de cor"
 | 
			
		||||
"Impossível compreender componente de cor \"%s\" na especificação de cor"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1345
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -1030,7 +1034,7 @@ msgstr ""
 | 
			
		||||
#: ../src/ui/theme.c:1356
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Could not parse alpha value \"%s\" in blended color"
 | 
			
		||||
msgstr "Incapaz de processar o valor alfa \"%s\" na mistura de cor"
 | 
			
		||||
msgstr "Impossível processar o valor alfa \"%s\" na mistura de cor"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1366
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -1048,7 +1052,7 @@ msgstr ""
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Could not parse shade factor \"%s\" in shaded color"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Incapaz de processar o valor de fator de sombra \"%s\" na cor sombreada"
 | 
			
		||||
"Impossível processar o valor de fator de sombra \"%s\" na cor sombreada"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1434
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -1058,12 +1062,12 @@ msgstr "Fator de sombreado \"%s\" na cor sombreada é negativo"
 | 
			
		||||
#: ../src/ui/theme.c:1463
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Could not parse color \"%s\""
 | 
			
		||||
msgstr "Incapaz de processar cor \"%s\""
 | 
			
		||||
msgstr "Impossível processar cor \"%s\""
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1780
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Coordinate expression contains character '%s' which is not allowed"
 | 
			
		||||
msgstr "Expressão de coordenada contém caracter '%s' que não é permitido"
 | 
			
		||||
msgstr "Expressão de coordenada contém carácter \"%s\" que não é permitido"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1807
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -1071,14 +1075,14 @@ msgid ""
 | 
			
		||||
"Coordinate expression contains floating point number '%s' which could not be "
 | 
			
		||||
"parsed"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Expressão de coordenada contém número decimal '%s' que não pode ser "
 | 
			
		||||
"Expressão de coordenada contém número decimal \"%s\" que não pode ser "
 | 
			
		||||
"processado"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1821
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Coordinate expression contains integer '%s' which could not be parsed"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Expressão de coordenada contém número inteiro '%s' que não pode ser "
 | 
			
		||||
"Expressão de coordenada contém número inteiro \"%s\" que não pode ser "
 | 
			
		||||
"processado"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:1942
 | 
			
		||||
@@ -1147,13 +1151,13 @@ msgstr "O processador de expressão de coordenada transbordou o seu buffer."
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Coordinate expression had a close parenthesis with no open parenthesis"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Expressão de coordenada tem um fecho de parentesis sem a respetiva abertura"
 | 
			
		||||
"Expressão de coordenada tem um fecho de parênteses sem a respetiva abertura"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:2590
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Coordinate expression had an open parenthesis with no close parenthesis"
 | 
			
		||||
msgstr ""
 | 
			
		||||
"Expressão de coordenada tem uma abertura de parentesis sem o respetivo fecho"
 | 
			
		||||
"Expressão de coordenada tem uma abertura de parênteses sem o respetivo fecho"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:2601
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -1185,7 +1189,7 @@ msgstr ""
 | 
			
		||||
#: ../src/ui/theme.c:5082
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to load theme \"%s\": %s\n"
 | 
			
		||||
msgstr "Falha ao ler tema \"%s\": %s\n"
 | 
			
		||||
msgstr "Falha ao carregar tema \"%s\": %s\n"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme.c:5218 ../src/ui/theme.c:5225 ../src/ui/theme.c:5232
 | 
			
		||||
#: ../src/ui/theme.c:5239 ../src/ui/theme.c:5246
 | 
			
		||||
@@ -1226,7 +1230,7 @@ msgstr "Nenhum atributo \"%s\" no elemento <%s>"
 | 
			
		||||
#: ../src/ui/theme-parser.c:265 ../src/ui/theme-parser.c:283
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Line %d character %d: %s"
 | 
			
		||||
msgstr "Linha %d caracter %d: %s"
 | 
			
		||||
msgstr "Linha %d, carácter %d: %s"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:483
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -1241,12 +1245,12 @@ msgstr "Atributo \"%s\" é inválido no elemento <%s> neste contexto"
 | 
			
		||||
#: ../src/ui/theme-parser.c:598
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Could not parse \"%s\" as an integer"
 | 
			
		||||
msgstr "Incapaz de processar \"%s\" como um inteiro"
 | 
			
		||||
msgstr "Impossível processar \"%s\" como um inteiro"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:607 ../src/ui/theme-parser.c:662
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Did not understand trailing characters \"%s\" in string \"%s\""
 | 
			
		||||
msgstr "Incapaz de compreender últimos carateres \"%s\" na expressão \"%s\""
 | 
			
		||||
msgstr "Impossível compreender últimos caracteres \"%s\" na expressão \"%s\""
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:617
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -1256,17 +1260,17 @@ msgstr "Inteiro %ld tem de ser positivo"
 | 
			
		||||
#: ../src/ui/theme-parser.c:625
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Integer %ld is too large, current max is %d"
 | 
			
		||||
msgstr "Inteiro %ld é demasiado grande, máx atual é %d"
 | 
			
		||||
msgstr "Inteiro %ld é demasiado grande, máximo atual é %d"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:653 ../src/ui/theme-parser.c:769
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Could not parse \"%s\" as a floating point number"
 | 
			
		||||
msgstr "Incapaz de processar \"%s\" como um númerico decimal"
 | 
			
		||||
msgstr "Impossível processar \"%s\" como um número decimal"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:684 ../src/ui/theme-parser.c:712
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Boolean values must be \"true\" or \"false\" not \"%s\""
 | 
			
		||||
msgstr "Valores boleanos têm de ser \"true\" ou \"false\" não \"%s\""
 | 
			
		||||
msgstr "Valores boolianos têm de ser \"true\" ou \"false\" não \"%s\""
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:739
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -1356,7 +1360,7 @@ msgstr "Distância \"%s\" é desconhecida"
 | 
			
		||||
#: ../src/ui/theme-parser.c:1499
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Aspect ratio \"%s\" is unknown"
 | 
			
		||||
msgstr "Rácio de aparência \"%s\" é desconhecido"
 | 
			
		||||
msgstr "Proporção \"%s\" é desconhecida"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:1561
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -1376,28 +1380,28 @@ msgstr "Nenhum atributo \"extent_angle\" ou \"to\" no elemento <%s>"
 | 
			
		||||
#: ../src/ui/theme-parser.c:2119
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Did not understand value \"%s\" for type of gradient"
 | 
			
		||||
msgstr "Incapaz de compreender valor \"%s\" para tipo de gradiente"
 | 
			
		||||
msgstr "Impossível compreender valor \"%s\" para tipo de gradiente"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2197 ../src/ui/theme-parser.c:2572
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Did not understand fill type \"%s\" for <%s> element"
 | 
			
		||||
msgstr "Incapaz de compreender tipo de enchimento \"%s\" para elemento <%s>"
 | 
			
		||||
msgstr "Impossível compreender tipo de enchimento \"%s\" para elemento <%s>"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2364 ../src/ui/theme-parser.c:2447
 | 
			
		||||
#: ../src/ui/theme-parser.c:2510
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Did not understand state \"%s\" for <%s> element"
 | 
			
		||||
msgstr "Incapaz de compreender estado \"%s\" para elemento <%s>"
 | 
			
		||||
msgstr "Impossível compreender estado \"%s\" para elemento <%s>"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2374 ../src/ui/theme-parser.c:2457
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Did not understand shadow \"%s\" for <%s> element"
 | 
			
		||||
msgstr "Incapaz de compreender sombra \"%s\" para elemento <%s>"
 | 
			
		||||
msgstr "Impossível compreender sombra \"%s\" para elemento <%s>"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2384
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Did not understand arrow \"%s\" for <%s> element"
 | 
			
		||||
msgstr "Incapaz de compreender seta \"%s\" para elemento <%s>"
 | 
			
		||||
msgstr "Impossível compreender seta \"%s\" para elemento <%s>"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2698 ../src/ui/theme-parser.c:2794
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -1407,7 +1411,7 @@ msgstr "Não foi definido nenhum <draw_ops> chamado \"%s\""
 | 
			
		||||
#: ../src/ui/theme-parser.c:2710 ../src/ui/theme-parser.c:2806
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Including draw_ops \"%s\" here would create a circular reference"
 | 
			
		||||
msgstr "Incluir aqui draw_ops \"%s\" iria criar uma referência circular"
 | 
			
		||||
msgstr "Incluir aqui draw_ops \"%s\" criaria uma referência circular"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:2921
 | 
			
		||||
#, c-format
 | 
			
		||||
@@ -1524,7 +1528,7 @@ msgstr ""
 | 
			
		||||
#: ../src/ui/theme-parser.c:3435
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Bad version specification '%s'"
 | 
			
		||||
msgstr "Especificação de versão '%s' inválida"
 | 
			
		||||
msgstr "Especificação de versão \"%s\" inválida"
 | 
			
		||||
 | 
			
		||||
#: ../src/ui/theme-parser.c:3508
 | 
			
		||||
msgid ""
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1197
									
								
								po/zh_CN.po
									
									
									
									
									
								
							
							
						
						
									
										1197
									
								
								po/zh_CN.po
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -501,7 +501,8 @@ set_brightness (MetaBackground *self,
 | 
			
		||||
 | 
			
		||||
  priv->brightness = brightness;
 | 
			
		||||
 | 
			
		||||
  if (priv->effects & META_BACKGROUND_EFFECTS_VIGNETTE)
 | 
			
		||||
  if (clutter_feature_available (CLUTTER_FEATURE_SHADERS_GLSL) &&
 | 
			
		||||
      priv->effects & META_BACKGROUND_EFFECTS_VIGNETTE)
 | 
			
		||||
    {
 | 
			
		||||
      ensure_pipeline (self);
 | 
			
		||||
      cogl_pipeline_set_uniform_1f (priv->pipeline,
 | 
			
		||||
@@ -509,6 +510,14 @@ set_brightness (MetaBackground *self,
 | 
			
		||||
                                                                        "brightness"),
 | 
			
		||||
                                    priv->brightness);
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    {
 | 
			
		||||
      ensure_pipeline (self);
 | 
			
		||||
      CoglColor blend_color;
 | 
			
		||||
      cogl_color_init_from_4f (&blend_color, brightness, brightness, brightness, 1.0);
 | 
			
		||||
      cogl_pipeline_set_layer_combine (priv->pipeline, 1, "RGB=MODULATE(PREVIOUS, CONSTANT) A=REPLACE(PREVIOUS)", NULL);
 | 
			
		||||
      cogl_pipeline_set_layer_combine_constant (priv->pipeline, 1, &blend_color);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  clutter_content_invalidate (CLUTTER_CONTENT (self));
 | 
			
		||||
 | 
			
		||||
@@ -526,6 +535,9 @@ set_vignette_sharpness (MetaBackground *self,
 | 
			
		||||
 | 
			
		||||
  priv->vignette_sharpness = sharpness;
 | 
			
		||||
 | 
			
		||||
  if (!clutter_feature_available (CLUTTER_FEATURE_SHADERS_GLSL))
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  if (priv->effects & META_BACKGROUND_EFFECTS_VIGNETTE)
 | 
			
		||||
    {
 | 
			
		||||
      ensure_pipeline (self);
 | 
			
		||||
@@ -546,6 +558,9 @@ add_vignette (MetaBackground *self)
 | 
			
		||||
  MetaBackgroundPrivate *priv = self->priv;
 | 
			
		||||
  static CoglSnippet *snippet = NULL;
 | 
			
		||||
 | 
			
		||||
  if (!clutter_feature_available (CLUTTER_FEATURE_SHADERS_GLSL))
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  ensure_pipeline (self);
 | 
			
		||||
 | 
			
		||||
  /* Cogl automatically caches pipelines with no eviction policy,
 | 
			
		||||
 
 | 
			
		||||
@@ -734,8 +734,12 @@ meta_window_actor_get_paint_volume (ClutterActor       *actor,
 | 
			
		||||
      gdk_rectangle_union (&bounds, &shadow_bounds, &bounds);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  if (priv->unobscured_region)
 | 
			
		||||
    cairo_region_intersect_rectangle (priv->unobscured_region, &bounds);
 | 
			
		||||
  if (priv->unobscured_region && !clutter_actor_has_mapped_clones (actor))
 | 
			
		||||
    {
 | 
			
		||||
      cairo_rectangle_int_t unobscured_bounds;
 | 
			
		||||
      cairo_region_get_extents (priv->unobscured_region, &unobscured_bounds);
 | 
			
		||||
      gdk_rectangle_intersect (&bounds, &unobscured_bounds, &bounds);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  origin.x = bounds.x;
 | 
			
		||||
  origin.y = bounds.y;
 | 
			
		||||
@@ -1395,6 +1399,12 @@ meta_window_actor_destroy (MetaWindowActor *self)
 | 
			
		||||
  window_type = meta_window_get_window_type (window);
 | 
			
		||||
  meta_window_set_compositor_private (window, NULL);
 | 
			
		||||
 | 
			
		||||
  if (priv->send_frame_messages_timer != 0)
 | 
			
		||||
    {
 | 
			
		||||
      g_source_remove (priv->send_frame_messages_timer);
 | 
			
		||||
      priv->send_frame_messages_timer = 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  /*
 | 
			
		||||
   * We remove the window from internal lookup hashes and thus any other
 | 
			
		||||
   * unmap events etc fail
 | 
			
		||||
@@ -2219,7 +2229,8 @@ build_and_scan_frame_mask (MetaWindowActor       *self,
 | 
			
		||||
 | 
			
		||||
  meta_shaped_texture_set_mask_texture (META_SHAPED_TEXTURE (priv->actor),
 | 
			
		||||
                                        mask_texture);
 | 
			
		||||
  cogl_object_unref (mask_texture);
 | 
			
		||||
  if (mask_texture)
 | 
			
		||||
    cogl_object_unref (mask_texture);
 | 
			
		||||
 | 
			
		||||
  g_free (mask_data);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -277,11 +277,30 @@ meta_window_group_paint (ClutterActor *actor)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Adapted from clutter_actor_update_default_paint_volume() */
 | 
			
		||||
static gboolean
 | 
			
		||||
meta_window_group_get_paint_volume (ClutterActor       *actor,
 | 
			
		||||
meta_window_group_get_paint_volume (ClutterActor       *self,
 | 
			
		||||
                                    ClutterPaintVolume *volume)
 | 
			
		||||
{
 | 
			
		||||
  return clutter_paint_volume_set_from_allocation (volume, actor);
 | 
			
		||||
  ClutterActorIter iter;
 | 
			
		||||
  ClutterActor *child;
 | 
			
		||||
 | 
			
		||||
  clutter_actor_iter_init (&iter, self);
 | 
			
		||||
  while (clutter_actor_iter_next (&iter, &child))
 | 
			
		||||
    {
 | 
			
		||||
      const ClutterPaintVolume *child_volume;
 | 
			
		||||
 | 
			
		||||
      if (!CLUTTER_ACTOR_IS_MAPPED (child))
 | 
			
		||||
        continue;
 | 
			
		||||
 | 
			
		||||
      child_volume = clutter_actor_get_transformed_paint_volume (child, self);
 | 
			
		||||
      if (child_volume == NULL)
 | 
			
		||||
        return FALSE;
 | 
			
		||||
 | 
			
		||||
      clutter_paint_volume_union (volume, child_volume);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
 
 | 
			
		||||
@@ -1390,7 +1390,6 @@ constrain_titlebar_visible (MetaWindow         *window,
 | 
			
		||||
      window->type == META_WINDOW_DOCK    ||
 | 
			
		||||
      window->fullscreen                  ||
 | 
			
		||||
      !window->require_titlebar_visible   ||
 | 
			
		||||
      !window->decorated                  ||
 | 
			
		||||
      unconstrained_user_action)
 | 
			
		||||
    return TRUE;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -138,6 +138,14 @@ struct _MetaDisplay
 | 
			
		||||
   */
 | 
			
		||||
  guint allow_terminal_deactivation : 1;
 | 
			
		||||
 | 
			
		||||
  /* If true, server->focus_serial refers to us changing the focus; in
 | 
			
		||||
   * this case, we can ignore focus events that have exactly focus_serial,
 | 
			
		||||
   * since we take care to make another request immediately afterwards.
 | 
			
		||||
   * But if focus is being changed by another client, we have to accept
 | 
			
		||||
   * multiple events with the same serial.
 | 
			
		||||
   */
 | 
			
		||||
  guint focused_by_us : 1;
 | 
			
		||||
 | 
			
		||||
  guint static_gravity_works : 1;
 | 
			
		||||
  
 | 
			
		||||
  /*< private-ish >*/
 | 
			
		||||
 
 | 
			
		||||
@@ -925,8 +925,6 @@ meta_display_open (void)
 | 
			
		||||
 | 
			
		||||
  enable_compositor (the_display);
 | 
			
		||||
   
 | 
			
		||||
  meta_display_grab (the_display);
 | 
			
		||||
  
 | 
			
		||||
  /* Now manage all existing windows */
 | 
			
		||||
  tmp = the_display->screens;
 | 
			
		||||
  while (tmp != NULL)
 | 
			
		||||
@@ -978,8 +976,6 @@ meta_display_open (void)
 | 
			
		||||
 | 
			
		||||
  meta_idle_monitor_init_dbus ();
 | 
			
		||||
 | 
			
		||||
  meta_display_ungrab (the_display);
 | 
			
		||||
 | 
			
		||||
  /* Done opening new display */
 | 
			
		||||
  the_display->display_opening = FALSE;
 | 
			
		||||
 | 
			
		||||
@@ -1224,7 +1220,18 @@ meta_display_screen_for_x_screen (MetaDisplay *display,
 | 
			
		||||
  return NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Grab/ungrab routines taken from fvwm */
 | 
			
		||||
/* Grab/ungrab routines taken from fvwm.
 | 
			
		||||
 * Calling this function will cause X to ignore all other clients until
 | 
			
		||||
 * you ungrab. This may not be quite as bad as it sounds, yet there is
 | 
			
		||||
 * agreement that avoiding server grabs except when they are clearly needed
 | 
			
		||||
 * is a good thing.
 | 
			
		||||
 *
 | 
			
		||||
 * If you do use such grabs, please clearly explain the necessity for their
 | 
			
		||||
 * usage in a comment. Try to keep their scope extremely limited. In
 | 
			
		||||
 * particular, try to avoid emitting any signals or notifications while
 | 
			
		||||
 * a grab is active (if the signal receiver tries to block on an X request
 | 
			
		||||
 * from another client at this point, you will have a deadlock).
 | 
			
		||||
 */
 | 
			
		||||
void
 | 
			
		||||
meta_display_grab (MetaDisplay *display)
 | 
			
		||||
{
 | 
			
		||||
@@ -1890,9 +1897,11 @@ static void
 | 
			
		||||
update_focus_window (MetaDisplay *display,
 | 
			
		||||
                     MetaWindow  *window,
 | 
			
		||||
                     Window       xwindow,
 | 
			
		||||
                     gulong       serial)
 | 
			
		||||
                     gulong       serial,
 | 
			
		||||
                     gboolean     focused_by_us)
 | 
			
		||||
{
 | 
			
		||||
  display->focus_serial = serial;
 | 
			
		||||
  display->focused_by_us = focused_by_us;
 | 
			
		||||
 | 
			
		||||
  if (display->focus_xwindow == xwindow)
 | 
			
		||||
    return;
 | 
			
		||||
@@ -2003,7 +2012,8 @@ request_xserver_input_focus_change (MetaDisplay *display,
 | 
			
		||||
  update_focus_window (display,
 | 
			
		||||
                       meta_window,
 | 
			
		||||
                       xwindow,
 | 
			
		||||
                       serial);
 | 
			
		||||
                       serial,
 | 
			
		||||
                       TRUE);
 | 
			
		||||
 | 
			
		||||
  meta_error_trap_pop (display);
 | 
			
		||||
 | 
			
		||||
@@ -2117,12 +2127,20 @@ handle_window_focus_event (MetaDisplay  *display,
 | 
			
		||||
  else
 | 
			
		||||
    g_return_if_reached ();
 | 
			
		||||
 | 
			
		||||
  if (display->server_focus_serial > display->focus_serial)
 | 
			
		||||
  /* If display->focused_by_us, then the focus_serial will be used only
 | 
			
		||||
   * for a focus change we made and have already accounted for.
 | 
			
		||||
   * (See request_xserver_input_focus_change().) Otherwise, we can get
 | 
			
		||||
   * multiple focus events with the same serial.
 | 
			
		||||
   */
 | 
			
		||||
  if (display->server_focus_serial > display->focus_serial ||
 | 
			
		||||
      (!display->focused_by_us &&
 | 
			
		||||
       display->server_focus_serial == display->focus_serial))
 | 
			
		||||
    {
 | 
			
		||||
      update_focus_window (display,
 | 
			
		||||
                           focus_window,
 | 
			
		||||
                           focus_window ? focus_window->xwindow : None,
 | 
			
		||||
                           display->server_focus_serial);
 | 
			
		||||
                           display->server_focus_serial,
 | 
			
		||||
                           FALSE);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -2179,7 +2197,8 @@ event_callback (XEvent   *event,
 | 
			
		||||
  display->current_time = event_get_time (display, event);
 | 
			
		||||
  display->monitor_cache_invalidated = TRUE;
 | 
			
		||||
 | 
			
		||||
  if (event->xany.serial > display->focus_serial &&
 | 
			
		||||
  if (display->focused_by_us &&
 | 
			
		||||
      event->xany.serial > display->focus_serial &&
 | 
			
		||||
      display->focus_window &&
 | 
			
		||||
      display->focus_window->xwindow != display->server_focus_window)
 | 
			
		||||
    {
 | 
			
		||||
@@ -2188,7 +2207,8 @@ event_callback (XEvent   *event,
 | 
			
		||||
      update_focus_window (display,
 | 
			
		||||
                           meta_display_lookup_x_window (display, display->server_focus_window),
 | 
			
		||||
                           display->server_focus_window,
 | 
			
		||||
                           display->server_focus_serial);
 | 
			
		||||
                           display->server_focus_serial,
 | 
			
		||||
                           FALSE);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  screen = meta_display_screen_for_root (display, event->xany.window);
 | 
			
		||||
@@ -2304,7 +2324,7 @@ event_callback (XEvent   *event,
 | 
			
		||||
      XIEnterEvent *enter_event = (XIEnterEvent *) input_event;
 | 
			
		||||
 | 
			
		||||
      if (window && !window->override_redirect &&
 | 
			
		||||
          ((input_event->type == XI_KeyPress) || (input_event->type == XI_ButtonPress)))
 | 
			
		||||
          ((input_event->evtype == XI_KeyPress) || (input_event->evtype == XI_ButtonPress)))
 | 
			
		||||
        {
 | 
			
		||||
          if (CurrentTime == display->current_time)
 | 
			
		||||
            {
 | 
			
		||||
@@ -2774,14 +2794,14 @@ event_callback (XEvent   *event,
 | 
			
		||||
              && meta_display_screen_for_root (display, event->xmap.event))
 | 
			
		||||
            {
 | 
			
		||||
              window = meta_window_new (display, event->xmap.window,
 | 
			
		||||
                                        FALSE);
 | 
			
		||||
                                        FALSE, META_COMP_EFFECT_CREATE);
 | 
			
		||||
            }
 | 
			
		||||
          break;
 | 
			
		||||
        case MapRequest:
 | 
			
		||||
          if (window == NULL)
 | 
			
		||||
            {
 | 
			
		||||
              window = meta_window_new (display, event->xmaprequest.window,
 | 
			
		||||
                                        FALSE);
 | 
			
		||||
                                        FALSE, META_COMP_EFFECT_CREATE);
 | 
			
		||||
            }
 | 
			
		||||
          /* if frame was receiver it's some malicious send event or something */
 | 
			
		||||
          else if (!frame_was_receiver && window)        
 | 
			
		||||
@@ -5808,25 +5828,6 @@ meta_display_request_take_focus (MetaDisplay *display,
 | 
			
		||||
  meta_topic (META_DEBUG_FOCUS, "WM_TAKE_FOCUS(%s, %u)\n",
 | 
			
		||||
              window->desc, timestamp);
 | 
			
		||||
 | 
			
		||||
  if (window != display->focus_window)
 | 
			
		||||
    {
 | 
			
		||||
      /* The "Globally Active Input" window case, where the window
 | 
			
		||||
       * doesn't want us to call XSetInputFocus on it, but does
 | 
			
		||||
       * want us to send a WM_TAKE_FOCUS.
 | 
			
		||||
       *
 | 
			
		||||
       * We can't just set display->focus_window to @window, since we
 | 
			
		||||
       * we don't know when (or even if) the window will actually take
 | 
			
		||||
       * focus, so we could end up being wrong for arbitrarily long.
 | 
			
		||||
       * But we also can't leave it set to the current window, or else
 | 
			
		||||
       * bug #597352 would come back. So we focus the no_focus_window
 | 
			
		||||
       * now (and set display->focus_window to that), send the
 | 
			
		||||
       * WM_TAKE_FOCUS, and then just forget about @window
 | 
			
		||||
       * until/unless we get a FocusIn.
 | 
			
		||||
       */
 | 
			
		||||
      meta_display_focus_the_no_focus_window (display,
 | 
			
		||||
                                              window->screen,
 | 
			
		||||
                                              timestamp);
 | 
			
		||||
    }
 | 
			
		||||
  meta_window_send_icccm_message (window,
 | 
			
		||||
                                  display->atom_WM_TAKE_FOCUS,
 | 
			
		||||
                                  timestamp);
 | 
			
		||||
 
 | 
			
		||||
@@ -51,9 +51,6 @@ meta_window_ensure_frame (MetaWindow *window)
 | 
			
		||||
  if (window->frame)
 | 
			
		||||
    return;
 | 
			
		||||
  
 | 
			
		||||
  /* See comment below for why this is required. */
 | 
			
		||||
  meta_display_grab (window->display);
 | 
			
		||||
  
 | 
			
		||||
  frame = g_new (MetaFrame, 1);
 | 
			
		||||
 | 
			
		||||
  frame->window = window;
 | 
			
		||||
@@ -116,14 +113,6 @@ meta_window_ensure_frame (MetaWindow *window)
 | 
			
		||||
  
 | 
			
		||||
  meta_display_register_x_window (window->display, &frame->xwindow, window);
 | 
			
		||||
 | 
			
		||||
  /* Reparent the client window; it may be destroyed,
 | 
			
		||||
   * thus the error trap. We'll get a destroy notify later
 | 
			
		||||
   * and free everything. Comment in FVWM source code says
 | 
			
		||||
   * we need a server grab or the child can get its MapNotify
 | 
			
		||||
   * before we've finished reparenting and getting the decoration
 | 
			
		||||
   * window onscreen, so ensure_frame must be called with
 | 
			
		||||
   * a grab.
 | 
			
		||||
   */
 | 
			
		||||
  meta_error_trap_push (window->display);
 | 
			
		||||
  if (window->mapped)
 | 
			
		||||
    {
 | 
			
		||||
@@ -165,8 +154,6 @@ meta_window_ensure_frame (MetaWindow *window)
 | 
			
		||||
 | 
			
		||||
  /* Move keybindings to frame instead of window */
 | 
			
		||||
  meta_window_grab_keys (window);
 | 
			
		||||
 | 
			
		||||
  meta_display_ungrab (window->display);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
 
 | 
			
		||||
@@ -501,7 +501,7 @@ make_watch (MetaIdleMonitor           *monitor,
 | 
			
		||||
      if (meta_idle_monitor_get_idletime (monitor) > (gint64)timeout_msec)
 | 
			
		||||
        watch->idle_source_id = g_idle_add (fire_watch_idle, watch);
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
  else if (monitor->user_active_alarm != None)
 | 
			
		||||
    {
 | 
			
		||||
      watch->xalarm = monitor->user_active_alarm;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -816,6 +816,22 @@ meta_monitor_config_match_current (MetaMonitorConfig  *self,
 | 
			
		||||
  return ok;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
gboolean
 | 
			
		||||
meta_monitor_manager_has_hotplug_mode_update (MetaMonitorManager *manager)
 | 
			
		||||
{
 | 
			
		||||
  MetaOutput *outputs;
 | 
			
		||||
  unsigned n_outputs;
 | 
			
		||||
  unsigned int i;
 | 
			
		||||
 | 
			
		||||
  outputs = meta_monitor_manager_get_outputs (manager, &n_outputs);
 | 
			
		||||
 | 
			
		||||
  for (i = 0; i < n_outputs; i++)
 | 
			
		||||
    if (outputs[i].hotplug_mode_update)
 | 
			
		||||
      return TRUE;
 | 
			
		||||
 | 
			
		||||
  return FALSE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static MetaConfiguration *
 | 
			
		||||
meta_monitor_config_get_stored (MetaMonitorConfig *self,
 | 
			
		||||
				MetaOutput        *outputs,
 | 
			
		||||
@@ -824,6 +840,9 @@ meta_monitor_config_get_stored (MetaMonitorConfig *self,
 | 
			
		||||
  MetaConfiguration key;
 | 
			
		||||
  MetaConfiguration *stored;
 | 
			
		||||
 | 
			
		||||
  if (n_outputs == 0)
 | 
			
		||||
    return NULL;
 | 
			
		||||
 | 
			
		||||
  make_config_key (&key, outputs, n_outputs, -1);
 | 
			
		||||
  stored = g_hash_table_lookup (self->configs, &key);
 | 
			
		||||
 | 
			
		||||
@@ -1231,6 +1250,12 @@ meta_monitor_config_make_default (MetaMonitorConfig  *self,
 | 
			
		||||
  outputs = meta_monitor_manager_get_outputs (manager, &n_outputs);
 | 
			
		||||
  meta_monitor_manager_get_screen_limits (manager, &max_width, &max_height);
 | 
			
		||||
 | 
			
		||||
  if (n_outputs == 0)
 | 
			
		||||
    {
 | 
			
		||||
      meta_verbose ("No output connected, not applying configuration\n");
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  default_config = make_default_config (self, outputs, n_outputs, max_width, max_height);
 | 
			
		||||
 | 
			
		||||
  if (default_config != NULL)
 | 
			
		||||
 
 | 
			
		||||
@@ -116,6 +116,9 @@ struct _MetaOutput
 | 
			
		||||
  */
 | 
			
		||||
  gboolean is_primary;
 | 
			
		||||
  gboolean is_presentation;
 | 
			
		||||
 | 
			
		||||
  /* get a new preferred mode on hotplug events, to handle dynamic guest resizing */
 | 
			
		||||
  gboolean hotplug_mode_update;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _MetaCRTC
 | 
			
		||||
@@ -383,6 +386,7 @@ void               meta_output_info_free (MetaOutputInfo *info);
 | 
			
		||||
 | 
			
		||||
void               meta_monitor_manager_free_output_array (MetaOutput *old_outputs,
 | 
			
		||||
                                                           int         n_old_outputs);
 | 
			
		||||
gboolean           meta_monitor_manager_has_hotplug_mode_update (MetaMonitorManager *manager);
 | 
			
		||||
 | 
			
		||||
/* Returns true if transform causes width and height to be inverted
 | 
			
		||||
   This is true for the odd transforms in the enum */
 | 
			
		||||
 
 | 
			
		||||
@@ -187,7 +187,7 @@ output_get_backlight_xrandr (MetaMonitorManagerXrandr *manager_xrandr,
 | 
			
		||||
 | 
			
		||||
  XRRGetOutputProperty (manager_xrandr->xdisplay,
 | 
			
		||||
                        (XID)output->output_id,
 | 
			
		||||
                        display->atom_BACKLIGHT,
 | 
			
		||||
                        display->atom_Backlight,
 | 
			
		||||
                        0, G_MAXLONG, False, False, XA_INTEGER,
 | 
			
		||||
                        &actual_type, &actual_format,
 | 
			
		||||
                        &nitems, &bytes_after, &buffer);
 | 
			
		||||
@@ -212,7 +212,7 @@ output_get_backlight_limits_xrandr (MetaMonitorManagerXrandr *manager_xrandr,
 | 
			
		||||
  meta_error_trap_push (display);
 | 
			
		||||
  info = XRRQueryOutputProperty (manager_xrandr->xdisplay,
 | 
			
		||||
                                 (XID)output->output_id,
 | 
			
		||||
                                 display->atom_BACKLIGHT);
 | 
			
		||||
                                 display->atom_Backlight);
 | 
			
		||||
  meta_error_trap_pop (display);
 | 
			
		||||
 | 
			
		||||
  if (info == NULL)
 | 
			
		||||
@@ -311,6 +311,29 @@ read_output_edid (MetaMonitorManagerXrandr *manager_xrandr,
 | 
			
		||||
  return NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static gboolean
 | 
			
		||||
output_get_hotplug_mode_update (MetaMonitorManagerXrandr *manager_xrandr,
 | 
			
		||||
                                XID                       output_id)
 | 
			
		||||
{
 | 
			
		||||
  MetaDisplay *display = meta_get_display ();
 | 
			
		||||
  XRRPropertyInfo *info;
 | 
			
		||||
  gboolean result = FALSE;
 | 
			
		||||
 | 
			
		||||
  meta_error_trap_push (display);
 | 
			
		||||
  info = XRRQueryOutputProperty (manager_xrandr->xdisplay, output_id,
 | 
			
		||||
                                 display->atom_hotplug_mode_update);
 | 
			
		||||
  meta_error_trap_pop (display);
 | 
			
		||||
 | 
			
		||||
  if (info)
 | 
			
		||||
    {
 | 
			
		||||
      result = TRUE;
 | 
			
		||||
      XFree (info);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  return result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
meta_monitor_manager_xrandr_read_current (MetaMonitorManager *manager)
 | 
			
		||||
{
 | 
			
		||||
@@ -430,8 +453,10 @@ meta_monitor_manager_xrandr_read_current (MetaMonitorManager *manager)
 | 
			
		||||
      XRRFreeCrtcInfo (crtc);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  meta_error_trap_push (meta_get_display ());
 | 
			
		||||
  primary_output = XRRGetOutputPrimary (manager_xrandr->xdisplay,
 | 
			
		||||
					DefaultRootWindow (manager_xrandr->xdisplay));
 | 
			
		||||
  meta_error_trap_pop (meta_get_display ());
 | 
			
		||||
 | 
			
		||||
  n_actual_outputs = 0;
 | 
			
		||||
  for (i = 0; i < (unsigned)resources->noutput; i++)
 | 
			
		||||
@@ -484,6 +509,8 @@ meta_monitor_manager_xrandr_read_current (MetaMonitorManager *manager)
 | 
			
		||||
	  meta_output->width_mm = output->mm_width;
 | 
			
		||||
	  meta_output->height_mm = output->mm_height;
 | 
			
		||||
	  meta_output->subpixel_order = COGL_SUBPIXEL_ORDER_UNKNOWN;
 | 
			
		||||
          meta_output->hotplug_mode_update =
 | 
			
		||||
              output_get_hotplug_mode_update (manager_xrandr, meta_output->output_id);
 | 
			
		||||
 | 
			
		||||
	  meta_output->n_modes = output->nmode;
 | 
			
		||||
	  meta_output->modes = g_new0 (MetaMonitorMode *, meta_output->n_modes);
 | 
			
		||||
@@ -668,10 +695,11 @@ meta_monitor_manager_xrandr_apply_configuration (MetaMonitorManager *manager,
 | 
			
		||||
						 unsigned int         n_outputs)
 | 
			
		||||
{
 | 
			
		||||
  MetaMonitorManagerXrandr *manager_xrandr = META_MONITOR_MANAGER_XRANDR (manager);
 | 
			
		||||
  MetaDisplay *display = meta_get_display ();
 | 
			
		||||
  unsigned i;
 | 
			
		||||
  int width, height, width_mm, height_mm;
 | 
			
		||||
 | 
			
		||||
  meta_display_grab (meta_get_display ());
 | 
			
		||||
  meta_display_grab (display);
 | 
			
		||||
 | 
			
		||||
  /* First compute the new size of the screen (framebuffer) */
 | 
			
		||||
  width = 0; height = 0;
 | 
			
		||||
@@ -765,10 +793,10 @@ meta_monitor_manager_xrandr_apply_configuration (MetaMonitorManager *manager,
 | 
			
		||||
   */
 | 
			
		||||
  width_mm = (width / DPI_FALLBACK) * 25.4 + 0.5;
 | 
			
		||||
  height_mm = (height / DPI_FALLBACK) * 25.4 + 0.5;
 | 
			
		||||
  meta_error_trap_push (meta_get_display ());
 | 
			
		||||
  meta_error_trap_push (display);
 | 
			
		||||
  XRRSetScreenSize (manager_xrandr->xdisplay, DefaultRootWindow (manager_xrandr->xdisplay),
 | 
			
		||||
                    width, height, width_mm, height_mm);
 | 
			
		||||
  meta_error_trap_pop (meta_get_display ());
 | 
			
		||||
  meta_error_trap_pop (display);
 | 
			
		||||
 | 
			
		||||
  for (i = 0; i < n_crtcs; i++)
 | 
			
		||||
    {
 | 
			
		||||
@@ -825,7 +853,7 @@ meta_monitor_manager_xrandr_apply_configuration (MetaMonitorManager *manager,
 | 
			
		||||
              goto next;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
          meta_error_trap_push (meta_get_display ());
 | 
			
		||||
          meta_error_trap_push (display);
 | 
			
		||||
          ok = XRRSetCrtcConfig (manager_xrandr->xdisplay,
 | 
			
		||||
                                 manager_xrandr->resources,
 | 
			
		||||
                                 (XID)crtc->crtc_id,
 | 
			
		||||
@@ -834,7 +862,7 @@ meta_monitor_manager_xrandr_apply_configuration (MetaMonitorManager *manager,
 | 
			
		||||
                                 (XID)mode->mode_id,
 | 
			
		||||
                                 wl_transform_to_xrandr (crtc_info->transform),
 | 
			
		||||
                                 outputs, n_outputs);
 | 
			
		||||
          meta_error_trap_pop (meta_get_display ());
 | 
			
		||||
          meta_error_trap_pop (display);
 | 
			
		||||
 | 
			
		||||
          if (ok != Success)
 | 
			
		||||
            {
 | 
			
		||||
@@ -875,9 +903,11 @@ meta_monitor_manager_xrandr_apply_configuration (MetaMonitorManager *manager,
 | 
			
		||||
 | 
			
		||||
      if (output_info->is_primary)
 | 
			
		||||
        {
 | 
			
		||||
          meta_error_trap_push (display);
 | 
			
		||||
          XRRSetOutputPrimary (manager_xrandr->xdisplay,
 | 
			
		||||
                               DefaultRootWindow (manager_xrandr->xdisplay),
 | 
			
		||||
                               (XID)output_info->output->output_id);
 | 
			
		||||
          meta_error_trap_pop (display);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
      output_set_presentation_xrandr (manager_xrandr,
 | 
			
		||||
@@ -903,7 +933,7 @@ meta_monitor_manager_xrandr_apply_configuration (MetaMonitorManager *manager,
 | 
			
		||||
      output->is_primary = FALSE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  meta_display_ungrab (meta_get_display ());
 | 
			
		||||
  meta_display_ungrab (display);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
@@ -920,7 +950,7 @@ meta_monitor_manager_xrandr_change_backlight (MetaMonitorManager *manager,
 | 
			
		||||
  meta_error_trap_push (display);
 | 
			
		||||
  XRRChangeOutputProperty (manager_xrandr->xdisplay,
 | 
			
		||||
                           (XID)output->output_id,
 | 
			
		||||
                           display->atom_BACKLIGHT,
 | 
			
		||||
                           display->atom_Backlight,
 | 
			
		||||
                           XA_INTEGER, 32, PropModeReplace,
 | 
			
		||||
                           (unsigned char *) &hw_value, 1);
 | 
			
		||||
  meta_error_trap_pop (display);
 | 
			
		||||
@@ -971,6 +1001,16 @@ meta_monitor_manager_xrandr_set_crtc_gamma (MetaMonitorManager *manager,
 | 
			
		||||
  XRRFreeGamma (gamma);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
meta_monitor_manager_xrandr_rebuild_derived (MetaMonitorManager *manager)
 | 
			
		||||
{
 | 
			
		||||
  /* This will be a no-op if the change was from our side, as
 | 
			
		||||
     we already called it in the DBus method handler */
 | 
			
		||||
  meta_monitor_config_update_current (manager->config, manager);
 | 
			
		||||
 | 
			
		||||
  meta_monitor_manager_rebuild_derived (manager);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static gboolean
 | 
			
		||||
meta_monitor_manager_xrandr_handle_xevent (MetaMonitorManager *manager,
 | 
			
		||||
					   XEvent             *event)
 | 
			
		||||
@@ -980,6 +1020,7 @@ meta_monitor_manager_xrandr_handle_xevent (MetaMonitorManager *manager,
 | 
			
		||||
  MetaCRTC *old_crtcs;
 | 
			
		||||
  MetaMonitorMode *old_modes;
 | 
			
		||||
  int n_old_outputs;
 | 
			
		||||
  gboolean new_config;
 | 
			
		||||
 | 
			
		||||
  if ((event->type - manager_xrandr->rr_event_base) != RRScreenChangeNotify)
 | 
			
		||||
    return FALSE;
 | 
			
		||||
@@ -995,31 +1036,36 @@ meta_monitor_manager_xrandr_handle_xevent (MetaMonitorManager *manager,
 | 
			
		||||
  manager->serial++;
 | 
			
		||||
  meta_monitor_manager_xrandr_read_current (manager);
 | 
			
		||||
 | 
			
		||||
  /* Check if the current intended configuration has the same outputs
 | 
			
		||||
     as the new real one, or if the event is a result of an XRandR call.
 | 
			
		||||
     If so, we can go straight to rebuild the logical config and tell
 | 
			
		||||
     the outside world.
 | 
			
		||||
     Otherwise, this event was caused by hotplug, so give a chance to
 | 
			
		||||
     MetaMonitorConfig.
 | 
			
		||||
  new_config = manager_xrandr->resources->timestamp >=
 | 
			
		||||
    manager_xrandr->resources->configTimestamp;
 | 
			
		||||
  if (meta_monitor_manager_has_hotplug_mode_update (manager))
 | 
			
		||||
 | 
			
		||||
     Note that we need to check both the timestamps and the list of
 | 
			
		||||
     outputs, because the X server might emit spurious events with
 | 
			
		||||
     new configTimestamps (bug 702804), and the driver may have
 | 
			
		||||
     changed the EDID for some other reason (old broken qxl and vbox
 | 
			
		||||
     drivers...).
 | 
			
		||||
  */
 | 
			
		||||
  if (manager_xrandr->resources->timestamp >= manager_xrandr->resources->configTimestamp ||
 | 
			
		||||
      meta_monitor_config_match_current (manager->config, manager))
 | 
			
		||||
    {
 | 
			
		||||
      /* This will be a no-op if the change was from our side, as
 | 
			
		||||
         we already called it in the DBus method handler */
 | 
			
		||||
      meta_monitor_config_update_current (manager->config, manager);
 | 
			
		||||
 | 
			
		||||
      meta_monitor_manager_rebuild_derived (manager);
 | 
			
		||||
      /* Check if the current intended configuration is a result of an
 | 
			
		||||
         XRandR call.  Otherwise, hotplug_mode_update tells us to get
 | 
			
		||||
         a new preferred mode on hotplug events to handle dynamic
 | 
			
		||||
         guest resizing. */
 | 
			
		||||
      if (new_config)
 | 
			
		||||
        meta_monitor_manager_xrandr_rebuild_derived (manager);
 | 
			
		||||
      else
 | 
			
		||||
        meta_monitor_config_make_default (manager->config, manager);
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    {
 | 
			
		||||
      if (!meta_monitor_config_apply_stored (manager->config, manager))
 | 
			
		||||
      /* Check if the current intended configuration has the same outputs
 | 
			
		||||
         as the new real one, or if the event is a result of an XRandR call.
 | 
			
		||||
         If so, we can go straight to rebuild the logical config and tell
 | 
			
		||||
         the outside world.
 | 
			
		||||
         Otherwise, this event was caused by hotplug, so give a chance to
 | 
			
		||||
         MetaMonitorConfig.
 | 
			
		||||
 | 
			
		||||
         Note that we need to check both the timestamps and the list of
 | 
			
		||||
         outputs, because the X server might emit spurious events with new
 | 
			
		||||
         configTimestamps (bug 702804), and the driver may have changed
 | 
			
		||||
         the EDID for some other reason (old qxl and vbox drivers). */
 | 
			
		||||
      if (new_config || meta_monitor_config_match_current (manager->config, manager))
 | 
			
		||||
        meta_monitor_manager_xrandr_rebuild_derived (manager);
 | 
			
		||||
      else if (!meta_monitor_config_apply_stored (manager->config, manager))
 | 
			
		||||
        meta_monitor_config_make_default (manager->config, manager);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -406,7 +406,7 @@ make_logical_config (MetaMonitorManager *manager)
 | 
			
		||||
 | 
			
		||||
      for (j = 0; j < monitor_infos->len; j++)
 | 
			
		||||
        {
 | 
			
		||||
          MetaMonitorInfo *info = &g_array_index (monitor_infos, MetaMonitorInfo, i);
 | 
			
		||||
          MetaMonitorInfo *info = &g_array_index (monitor_infos, MetaMonitorInfo, j);
 | 
			
		||||
          if (meta_rectangle_equal (&crtc->rect,
 | 
			
		||||
                                    &info->rect))
 | 
			
		||||
            {
 | 
			
		||||
 
 | 
			
		||||
@@ -392,6 +392,8 @@ int
 | 
			
		||||
meta_screen_monitor_index_to_xinerama_index (MetaScreen *screen,
 | 
			
		||||
                                             int         index)
 | 
			
		||||
{
 | 
			
		||||
  g_return_val_if_fail (index >= 0 && index < screen->n_monitor_infos, -1);
 | 
			
		||||
 | 
			
		||||
  meta_screen_ensure_xinerama_indices (screen);
 | 
			
		||||
 | 
			
		||||
  return screen->monitor_infos[index].xinerama_index;
 | 
			
		||||
@@ -877,83 +879,31 @@ meta_screen_free (MetaScreen *screen,
 | 
			
		||||
  meta_display_ungrab (display);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
{
 | 
			
		||||
  Window		xwindow;
 | 
			
		||||
  XWindowAttributes	attrs;
 | 
			
		||||
} WindowInfo;
 | 
			
		||||
 | 
			
		||||
static GList *
 | 
			
		||||
list_windows (MetaScreen *screen)
 | 
			
		||||
{
 | 
			
		||||
  Window ignored1, ignored2;
 | 
			
		||||
  Window *children;
 | 
			
		||||
  guint n_children, i;
 | 
			
		||||
  GList *result;
 | 
			
		||||
 | 
			
		||||
  XQueryTree (screen->display->xdisplay,
 | 
			
		||||
              screen->xroot,
 | 
			
		||||
              &ignored1, &ignored2, &children, &n_children);
 | 
			
		||||
 | 
			
		||||
  result = NULL;
 | 
			
		||||
  for (i = 0; i < n_children; ++i)
 | 
			
		||||
    {
 | 
			
		||||
      WindowInfo *info = g_new0 (WindowInfo, 1);
 | 
			
		||||
 | 
			
		||||
      meta_error_trap_push_with_return (screen->display);
 | 
			
		||||
      
 | 
			
		||||
      XGetWindowAttributes (screen->display->xdisplay,
 | 
			
		||||
                            children[i], &info->attrs);
 | 
			
		||||
 | 
			
		||||
      if (meta_error_trap_pop_with_return (screen->display))
 | 
			
		||||
	{
 | 
			
		||||
          meta_verbose ("Failed to get attributes for window 0x%lx\n",
 | 
			
		||||
                        children[i]);
 | 
			
		||||
	  g_free (info);
 | 
			
		||||
        }
 | 
			
		||||
      else
 | 
			
		||||
        {
 | 
			
		||||
	  info->xwindow = children[i];
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
      result = g_list_prepend (result, info);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  if (children)
 | 
			
		||||
    XFree (children);
 | 
			
		||||
 | 
			
		||||
  return g_list_reverse (result);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
meta_screen_manage_all_windows (MetaScreen *screen)
 | 
			
		||||
{
 | 
			
		||||
  GList *windows;
 | 
			
		||||
  GList *list;
 | 
			
		||||
 | 
			
		||||
  meta_display_grab (screen->display);
 | 
			
		||||
  Window *_children;
 | 
			
		||||
  Window *children;
 | 
			
		||||
  int n_children, i;
 | 
			
		||||
 | 
			
		||||
  if (screen->guard_window == None)
 | 
			
		||||
    screen->guard_window = create_guard_window (screen->display->xdisplay,
 | 
			
		||||
                                                screen);
 | 
			
		||||
 | 
			
		||||
  windows = list_windows (screen);
 | 
			
		||||
 | 
			
		||||
  meta_stack_freeze (screen->stack);
 | 
			
		||||
  for (list = windows; list != NULL; list = list->next)
 | 
			
		||||
  meta_stack_tracker_get_stack (screen->stack_tracker, &_children, &n_children);
 | 
			
		||||
 | 
			
		||||
  /* Copy the stack as it will be modified as part of the loop */
 | 
			
		||||
  children = g_memdup (_children, sizeof (Window) * n_children);
 | 
			
		||||
 | 
			
		||||
  for (i = 0; i < n_children; ++i)
 | 
			
		||||
    {
 | 
			
		||||
      WindowInfo *info = list->data;
 | 
			
		||||
 | 
			
		||||
      meta_window_new_with_attrs (screen->display, info->xwindow, TRUE,
 | 
			
		||||
                                  META_COMP_EFFECT_NONE,
 | 
			
		||||
                                  &info->attrs);
 | 
			
		||||
      meta_window_new (screen->display, children[i], TRUE,
 | 
			
		||||
                       META_COMP_EFFECT_NONE);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  g_free (children);
 | 
			
		||||
  meta_stack_thaw (screen->stack);
 | 
			
		||||
 | 
			
		||||
  g_list_foreach (windows, (GFunc)g_free, NULL);
 | 
			
		||||
  g_list_free (windows);
 | 
			
		||||
 | 
			
		||||
  meta_display_ungrab (screen->display);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 
 | 
			
		||||
@@ -484,12 +484,8 @@ struct _MetaWindowClass
 | 
			
		||||
 | 
			
		||||
MetaWindow* meta_window_new                (MetaDisplay *display,
 | 
			
		||||
                                            Window       xwindow,
 | 
			
		||||
                                            gboolean     must_be_viewable);
 | 
			
		||||
MetaWindow* meta_window_new_with_attrs     (MetaDisplay       *display,
 | 
			
		||||
                                            Window             xwindow,
 | 
			
		||||
                                            gboolean           must_be_viewable,
 | 
			
		||||
                                            MetaCompEffect     effect,
 | 
			
		||||
                                            XWindowAttributes *attrs);
 | 
			
		||||
                                            gboolean     must_be_viewable,
 | 
			
		||||
                                            MetaCompEffect     effect);
 | 
			
		||||
void        meta_window_unmanage           (MetaWindow  *window,
 | 
			
		||||
                                            guint32      timestamp);
 | 
			
		||||
void        meta_window_calc_showing       (MetaWindow  *window);
 | 
			
		||||
 
 | 
			
		||||
@@ -175,6 +175,7 @@ enum {
 | 
			
		||||
  PROP_USER_TIME,
 | 
			
		||||
  PROP_DEMANDS_ATTENTION,
 | 
			
		||||
  PROP_URGENT,
 | 
			
		||||
  PROP_SKIP_TASKBAR,
 | 
			
		||||
  PROP_MUTTER_HINTS,
 | 
			
		||||
  PROP_APPEARS_FOCUSED,
 | 
			
		||||
  PROP_RESIZEABLE,
 | 
			
		||||
@@ -308,6 +309,9 @@ meta_window_get_property(GObject         *object,
 | 
			
		||||
    case PROP_URGENT:
 | 
			
		||||
      g_value_set_boolean (value, win->wm_hints_urgent);
 | 
			
		||||
      break;
 | 
			
		||||
    case PROP_SKIP_TASKBAR:
 | 
			
		||||
      g_value_set_boolean (value, win->skip_taskbar);
 | 
			
		||||
      break;
 | 
			
		||||
    case PROP_MUTTER_HINTS:
 | 
			
		||||
      g_value_set_string (value, win->mutter_hints);
 | 
			
		||||
      break;
 | 
			
		||||
@@ -468,6 +472,14 @@ meta_window_class_init (MetaWindowClass *klass)
 | 
			
		||||
                                                         FALSE,
 | 
			
		||||
                                                         G_PARAM_READABLE));
 | 
			
		||||
 | 
			
		||||
  g_object_class_install_property (object_class,
 | 
			
		||||
                                   PROP_SKIP_TASKBAR,
 | 
			
		||||
                                   g_param_spec_boolean ("skip-taskbar",
 | 
			
		||||
                                                         "Skip taskbar",
 | 
			
		||||
                                                         "Whether the skip-taskbar flag of WM_HINTS is set",
 | 
			
		||||
                                                         FALSE,
 | 
			
		||||
                                                         G_PARAM_READABLE));
 | 
			
		||||
 | 
			
		||||
  g_object_class_install_property (object_class,
 | 
			
		||||
                                   PROP_MUTTER_HINTS,
 | 
			
		||||
                                   g_param_spec_string ("mutter-hints",
 | 
			
		||||
@@ -659,53 +671,6 @@ maybe_leave_show_desktop_mode (MetaWindow *window)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
MetaWindow*
 | 
			
		||||
meta_window_new (MetaDisplay *display,
 | 
			
		||||
                 Window       xwindow,
 | 
			
		||||
                 gboolean     must_be_viewable)
 | 
			
		||||
{
 | 
			
		||||
  XWindowAttributes attrs;
 | 
			
		||||
  MetaWindow *window;
 | 
			
		||||
 | 
			
		||||
  meta_display_grab (display);
 | 
			
		||||
  meta_error_trap_push (display); /* Push a trap over all of window
 | 
			
		||||
                                   * creation, to reduce XSync() calls
 | 
			
		||||
                                   */
 | 
			
		||||
 | 
			
		||||
  meta_error_trap_push_with_return (display);
 | 
			
		||||
 | 
			
		||||
  if (XGetWindowAttributes (display->xdisplay,xwindow, &attrs))
 | 
			
		||||
   {
 | 
			
		||||
      if(meta_error_trap_pop_with_return (display) != Success)
 | 
			
		||||
       {
 | 
			
		||||
          meta_verbose ("Failed to get attributes for window 0x%lx\n",
 | 
			
		||||
                        xwindow);
 | 
			
		||||
          meta_error_trap_pop (display);
 | 
			
		||||
          meta_display_ungrab (display);
 | 
			
		||||
          return NULL;
 | 
			
		||||
       }
 | 
			
		||||
      window = meta_window_new_with_attrs (display, xwindow,
 | 
			
		||||
                                           must_be_viewable,
 | 
			
		||||
                                           META_COMP_EFFECT_CREATE,
 | 
			
		||||
                                           &attrs);
 | 
			
		||||
   }
 | 
			
		||||
  else
 | 
			
		||||
   {
 | 
			
		||||
         meta_error_trap_pop_with_return (display);
 | 
			
		||||
         meta_verbose ("Failed to get attributes for window 0x%lx\n",
 | 
			
		||||
                        xwindow);
 | 
			
		||||
         meta_error_trap_pop (display);
 | 
			
		||||
         meta_display_ungrab (display);
 | 
			
		||||
         return NULL;
 | 
			
		||||
   }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  meta_error_trap_pop (display);
 | 
			
		||||
  meta_display_ungrab (display);
 | 
			
		||||
 | 
			
		||||
  return window;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* The MUTTER_WM_CLASS_FILTER environment variable is designed for
 | 
			
		||||
 * performance and regression testing environments where we want to do
 | 
			
		||||
 * tests with only a limited set of windows and ignore all other windows
 | 
			
		||||
@@ -816,12 +781,12 @@ meta_window_should_attach_to_parent (MetaWindow *window)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
MetaWindow*
 | 
			
		||||
meta_window_new_with_attrs (MetaDisplay       *display,
 | 
			
		||||
                            Window             xwindow,
 | 
			
		||||
                            gboolean           must_be_viewable,
 | 
			
		||||
                            MetaCompEffect     effect,
 | 
			
		||||
                            XWindowAttributes *attrs)
 | 
			
		||||
meta_window_new (MetaDisplay   *display,
 | 
			
		||||
                 Window         xwindow,
 | 
			
		||||
                 gboolean       must_be_viewable,
 | 
			
		||||
                 MetaCompEffect effect)
 | 
			
		||||
{
 | 
			
		||||
  XWindowAttributes	attrs;
 | 
			
		||||
  MetaWindow *window;
 | 
			
		||||
  GSList *tmp;
 | 
			
		||||
  MetaWorkspace *space;
 | 
			
		||||
@@ -830,8 +795,6 @@ meta_window_new_with_attrs (MetaDisplay       *display,
 | 
			
		||||
  MetaMoveResizeFlags flags;
 | 
			
		||||
  MetaScreen *screen;
 | 
			
		||||
 | 
			
		||||
  g_assert (attrs != NULL);
 | 
			
		||||
 | 
			
		||||
  meta_verbose ("Attempting to manage 0x%lx\n", xwindow);
 | 
			
		||||
 | 
			
		||||
  if (meta_display_xwindow_is_a_no_focus_window (display, xwindow))
 | 
			
		||||
@@ -841,12 +804,28 @@ meta_window_new_with_attrs (MetaDisplay       *display,
 | 
			
		||||
      return NULL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  meta_error_trap_push (display); /* Push a trap over all of window
 | 
			
		||||
                                   * creation, to reduce XSync() calls
 | 
			
		||||
                                   */
 | 
			
		||||
  /*
 | 
			
		||||
   * This function executes without any server grabs held. This means that
 | 
			
		||||
   * the window could have already gone away, or could go away at any point,
 | 
			
		||||
   * so we must be careful with X error handling.
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
  if (!XGetWindowAttributes (display->xdisplay, xwindow, &attrs))
 | 
			
		||||
    {
 | 
			
		||||
      meta_verbose ("Failed to get attributes for window 0x%lx\n",
 | 
			
		||||
                    xwindow);
 | 
			
		||||
      goto error;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  screen = NULL;
 | 
			
		||||
  for (tmp = display->screens; tmp != NULL; tmp = tmp->next)
 | 
			
		||||
    {
 | 
			
		||||
      MetaScreen *scr = tmp->data;
 | 
			
		||||
 | 
			
		||||
      if (scr->xroot == attrs->root)
 | 
			
		||||
      if (scr->xroot == attrs.root)
 | 
			
		||||
        {
 | 
			
		||||
          screen = tmp->data;
 | 
			
		||||
          break;
 | 
			
		||||
@@ -856,14 +835,14 @@ meta_window_new_with_attrs (MetaDisplay       *display,
 | 
			
		||||
  g_assert (screen);
 | 
			
		||||
 | 
			
		||||
  /* A black list of override redirect windows that we don't need to manage: */
 | 
			
		||||
  if (attrs->override_redirect &&
 | 
			
		||||
  if (attrs.override_redirect &&
 | 
			
		||||
      (xwindow == screen->no_focus_window ||
 | 
			
		||||
       xwindow == screen->flash_window ||
 | 
			
		||||
       xwindow == screen->wm_sn_selection_window ||
 | 
			
		||||
       attrs->class == InputOnly ||
 | 
			
		||||
       attrs.class == InputOnly ||
 | 
			
		||||
       /* any windows created via meta_create_offscreen_window: */
 | 
			
		||||
       (attrs->x == -100 && attrs->y == -100
 | 
			
		||||
	&& attrs->width == 1 && attrs->height == 1) ||
 | 
			
		||||
       (attrs.x == -100 && attrs.y == -100
 | 
			
		||||
	&& attrs.width == 1 && attrs.height == 1) ||
 | 
			
		||||
       xwindow == screen->wm_cm_selection_window ||
 | 
			
		||||
       xwindow == screen->guard_window ||
 | 
			
		||||
       (display->compositor &&
 | 
			
		||||
@@ -873,34 +852,28 @@ meta_window_new_with_attrs (MetaDisplay       *display,
 | 
			
		||||
      )
 | 
			
		||||
     ) {
 | 
			
		||||
    meta_verbose ("Not managing our own windows\n");
 | 
			
		||||
    return NULL;
 | 
			
		||||
    goto error;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (maybe_filter_window (display, xwindow, must_be_viewable, attrs))
 | 
			
		||||
  if (maybe_filter_window (display, xwindow, must_be_viewable, &attrs))
 | 
			
		||||
    {
 | 
			
		||||
      meta_verbose ("Not managing filtered window\n");
 | 
			
		||||
      return NULL;
 | 
			
		||||
      goto error;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  /* Grab server */
 | 
			
		||||
  meta_display_grab (display);
 | 
			
		||||
  meta_error_trap_push (display); /* Push a trap over all of window
 | 
			
		||||
                                   * creation, to reduce XSync() calls
 | 
			
		||||
                                   */
 | 
			
		||||
 | 
			
		||||
  meta_verbose ("must_be_viewable = %d attrs->map_state = %d (%s)\n",
 | 
			
		||||
  meta_verbose ("must_be_viewable = %d attrs.map_state = %d (%s)\n",
 | 
			
		||||
                must_be_viewable,
 | 
			
		||||
                attrs->map_state,
 | 
			
		||||
                (attrs->map_state == IsUnmapped) ?
 | 
			
		||||
                attrs.map_state,
 | 
			
		||||
                (attrs.map_state == IsUnmapped) ?
 | 
			
		||||
                "IsUnmapped" :
 | 
			
		||||
                (attrs->map_state == IsViewable) ?
 | 
			
		||||
                (attrs.map_state == IsViewable) ?
 | 
			
		||||
                "IsViewable" :
 | 
			
		||||
                (attrs->map_state == IsUnviewable) ?
 | 
			
		||||
                (attrs.map_state == IsUnviewable) ?
 | 
			
		||||
                "IsUnviewable" :
 | 
			
		||||
                "(unknown)");
 | 
			
		||||
 | 
			
		||||
  existing_wm_state = WithdrawnState;
 | 
			
		||||
  if (must_be_viewable && attrs->map_state != IsViewable)
 | 
			
		||||
  if (must_be_viewable && attrs.map_state != IsViewable)
 | 
			
		||||
    {
 | 
			
		||||
      /* Only manage if WM_STATE is IconicState or NormalState */
 | 
			
		||||
      gulong state;
 | 
			
		||||
@@ -913,9 +886,7 @@ meta_window_new_with_attrs (MetaDisplay       *display,
 | 
			
		||||
            (state == IconicState || state == NormalState)))
 | 
			
		||||
        {
 | 
			
		||||
          meta_verbose ("Deciding not to manage unmapped or unviewable window 0x%lx\n", xwindow);
 | 
			
		||||
          meta_error_trap_pop (display);
 | 
			
		||||
          meta_display_ungrab (display);
 | 
			
		||||
          return NULL;
 | 
			
		||||
          goto error;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
      existing_wm_state = state;
 | 
			
		||||
@@ -923,29 +894,26 @@ meta_window_new_with_attrs (MetaDisplay       *display,
 | 
			
		||||
                    wm_state_to_string (existing_wm_state));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  meta_error_trap_push_with_return (display);
 | 
			
		||||
 | 
			
		||||
  /*
 | 
			
		||||
   * XAddToSaveSet can only be called on windows created by a different client.
 | 
			
		||||
   * with Mutter we want to be able to create manageable windows from within
 | 
			
		||||
   * the process (such as a dummy desktop window), so we do not want this
 | 
			
		||||
   * call failing to prevent the window from being managed -- wrap it in its
 | 
			
		||||
   * own error trap (we use the _with_return() version here to ensure that
 | 
			
		||||
   * XSync() is done on the pop, otherwise the error will not get caught).
 | 
			
		||||
   * the process (such as a dummy desktop window). As we do not want this
 | 
			
		||||
   * call failing to prevent the window from being managed, we call this
 | 
			
		||||
   * before creating the return-checked error trap.
 | 
			
		||||
   */
 | 
			
		||||
  meta_error_trap_push_with_return (display);
 | 
			
		||||
  XAddToSaveSet (display->xdisplay, xwindow);
 | 
			
		||||
  meta_error_trap_pop_with_return (display);
 | 
			
		||||
 | 
			
		||||
  meta_error_trap_push_with_return (display);
 | 
			
		||||
 | 
			
		||||
  event_mask = PropertyChangeMask | ColormapChangeMask;
 | 
			
		||||
  if (attrs->override_redirect)
 | 
			
		||||
  if (attrs.override_redirect)
 | 
			
		||||
    event_mask |= StructureNotifyMask;
 | 
			
		||||
 | 
			
		||||
  /* If the window is from this client (a menu, say) we need to augment
 | 
			
		||||
   * the event mask, not replace it. For windows from other clients,
 | 
			
		||||
   * attrs->your_event_mask will be empty at this point.
 | 
			
		||||
   * attrs.your_event_mask will be empty at this point.
 | 
			
		||||
   */
 | 
			
		||||
  XSelectInput (display->xdisplay, xwindow, attrs->your_event_mask | event_mask);
 | 
			
		||||
  XSelectInput (display->xdisplay, xwindow, attrs.your_event_mask | event_mask);
 | 
			
		||||
 | 
			
		||||
  {
 | 
			
		||||
    unsigned char mask_bits[XIMaskLen (XI_LASTEVENT)] = { 0 };
 | 
			
		||||
@@ -967,11 +935,11 @@ meta_window_new_with_attrs (MetaDisplay       *display,
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  /* Get rid of any borders */
 | 
			
		||||
  if (attrs->border_width != 0)
 | 
			
		||||
  if (attrs.border_width != 0)
 | 
			
		||||
    XSetWindowBorderWidth (display->xdisplay, xwindow, 0);
 | 
			
		||||
 | 
			
		||||
  /* Get rid of weird gravities */
 | 
			
		||||
  if (attrs->win_gravity != NorthWestGravity)
 | 
			
		||||
  if (attrs.win_gravity != NorthWestGravity)
 | 
			
		||||
    {
 | 
			
		||||
      XSetWindowAttributes set_attrs;
 | 
			
		||||
 | 
			
		||||
@@ -987,9 +955,7 @@ meta_window_new_with_attrs (MetaDisplay       *display,
 | 
			
		||||
    {
 | 
			
		||||
      meta_verbose ("Window 0x%lx disappeared just as we tried to manage it\n",
 | 
			
		||||
                    xwindow);
 | 
			
		||||
      meta_error_trap_pop (display);
 | 
			
		||||
      meta_display_ungrab (display);
 | 
			
		||||
      return NULL;
 | 
			
		||||
      goto error;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -1018,22 +984,22 @@ meta_window_new_with_attrs (MetaDisplay       *display,
 | 
			
		||||
 | 
			
		||||
  window->desc = g_strdup_printf ("0x%lx", window->xwindow);
 | 
			
		||||
 | 
			
		||||
  window->override_redirect = attrs->override_redirect;
 | 
			
		||||
  window->override_redirect = attrs.override_redirect;
 | 
			
		||||
 | 
			
		||||
  /* avoid tons of stack updates */
 | 
			
		||||
  meta_stack_freeze (window->screen->stack);
 | 
			
		||||
 | 
			
		||||
  window->rect.x = attrs->x;
 | 
			
		||||
  window->rect.y = attrs->y;
 | 
			
		||||
  window->rect.width = attrs->width;
 | 
			
		||||
  window->rect.height = attrs->height;
 | 
			
		||||
  window->rect.x = attrs.x;
 | 
			
		||||
  window->rect.y = attrs.y;
 | 
			
		||||
  window->rect.width = attrs.width;
 | 
			
		||||
  window->rect.height = attrs.height;
 | 
			
		||||
 | 
			
		||||
  /* And border width, size_hints are the "request" */
 | 
			
		||||
  window->border_width = attrs->border_width;
 | 
			
		||||
  window->size_hints.x = attrs->x;
 | 
			
		||||
  window->size_hints.y = attrs->y;
 | 
			
		||||
  window->size_hints.width = attrs->width;
 | 
			
		||||
  window->size_hints.height = attrs->height;
 | 
			
		||||
  window->border_width = attrs.border_width;
 | 
			
		||||
  window->size_hints.x = attrs.x;
 | 
			
		||||
  window->size_hints.y = attrs.y;
 | 
			
		||||
  window->size_hints.width = attrs.width;
 | 
			
		||||
  window->size_hints.height = attrs.height;
 | 
			
		||||
  /* initialize the remaining size_hints as if size_hints.flags were zero */
 | 
			
		||||
  meta_set_normal_hints (window, NULL);
 | 
			
		||||
 | 
			
		||||
@@ -1041,9 +1007,9 @@ meta_window_new_with_attrs (MetaDisplay       *display,
 | 
			
		||||
  window->saved_rect = window->rect;
 | 
			
		||||
  window->user_rect = window->rect;
 | 
			
		||||
 | 
			
		||||
  window->depth = attrs->depth;
 | 
			
		||||
  window->xvisual = attrs->visual;
 | 
			
		||||
  window->colormap = attrs->colormap;
 | 
			
		||||
  window->depth = attrs.depth;
 | 
			
		||||
  window->xvisual = attrs.visual;
 | 
			
		||||
  window->colormap = attrs.colormap;
 | 
			
		||||
 | 
			
		||||
  window->title = NULL;
 | 
			
		||||
  window->icon_name = NULL;
 | 
			
		||||
@@ -1078,7 +1044,7 @@ meta_window_new_with_attrs (MetaDisplay       *display,
 | 
			
		||||
  window->minimized = FALSE;
 | 
			
		||||
  window->tab_unminimized = FALSE;
 | 
			
		||||
  window->iconic = FALSE;
 | 
			
		||||
  window->mapped = attrs->map_state != IsUnmapped;
 | 
			
		||||
  window->mapped = attrs.map_state != IsUnmapped;
 | 
			
		||||
  window->hidden = FALSE;
 | 
			
		||||
  window->visible_to_compositor = FALSE;
 | 
			
		||||
  window->pending_compositor_effect = effect;
 | 
			
		||||
@@ -1483,7 +1449,6 @@ meta_window_new_with_attrs (MetaDisplay       *display,
 | 
			
		||||
    unminimize_window_and_all_transient_parents (window);
 | 
			
		||||
 | 
			
		||||
  meta_error_trap_pop (display); /* pop the XSync()-reducing trap */
 | 
			
		||||
  meta_display_ungrab (display);
 | 
			
		||||
 | 
			
		||||
  window->constructing = FALSE;
 | 
			
		||||
 | 
			
		||||
@@ -1496,6 +1461,10 @@ meta_window_new_with_attrs (MetaDisplay       *display,
 | 
			
		||||
    g_signal_emit_by_name (window->display, "window-marked-urgent", window);
 | 
			
		||||
 | 
			
		||||
  return window;
 | 
			
		||||
 | 
			
		||||
error:
 | 
			
		||||
  meta_error_trap_pop (display);
 | 
			
		||||
  return NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* This function should only be called from the end of meta_window_new_with_attrs () */
 | 
			
		||||
@@ -2090,23 +2059,35 @@ set_net_wm_state (MetaWindow *window)
 | 
			
		||||
 | 
			
		||||
  if (window->fullscreen)
 | 
			
		||||
    {
 | 
			
		||||
      data[0] = meta_screen_monitor_index_to_xinerama_index (window->screen,
 | 
			
		||||
                                                             window->fullscreen_monitors[0]);
 | 
			
		||||
      data[1] = meta_screen_monitor_index_to_xinerama_index (window->screen,
 | 
			
		||||
                                                             window->fullscreen_monitors[1]);
 | 
			
		||||
      data[2] = meta_screen_monitor_index_to_xinerama_index (window->screen,
 | 
			
		||||
                                                             window->fullscreen_monitors[2]);
 | 
			
		||||
      data[3] = meta_screen_monitor_index_to_xinerama_index (window->screen,
 | 
			
		||||
                                                             window->fullscreen_monitors[3]);
 | 
			
		||||
      if (window->fullscreen_monitors[0] >= 0)
 | 
			
		||||
        {
 | 
			
		||||
          data[0] = meta_screen_monitor_index_to_xinerama_index (window->screen,
 | 
			
		||||
                                                                 window->fullscreen_monitors[0]);
 | 
			
		||||
          data[1] = meta_screen_monitor_index_to_xinerama_index (window->screen,
 | 
			
		||||
                                                                 window->fullscreen_monitors[1]);
 | 
			
		||||
          data[2] = meta_screen_monitor_index_to_xinerama_index (window->screen,
 | 
			
		||||
                                                                 window->fullscreen_monitors[2]);
 | 
			
		||||
          data[3] = meta_screen_monitor_index_to_xinerama_index (window->screen,
 | 
			
		||||
                                                                 window->fullscreen_monitors[3]);
 | 
			
		||||
 | 
			
		||||
      meta_verbose ("Setting _NET_WM_FULLSCREEN_MONITORS\n");
 | 
			
		||||
      meta_error_trap_push (window->display);
 | 
			
		||||
      XChangeProperty (window->display->xdisplay,
 | 
			
		||||
                       window->xwindow,
 | 
			
		||||
                       window->display->atom__NET_WM_FULLSCREEN_MONITORS,
 | 
			
		||||
                       XA_CARDINAL, 32, PropModeReplace,
 | 
			
		||||
                       (guchar*) data, 4);
 | 
			
		||||
      meta_error_trap_pop (window->display);
 | 
			
		||||
          meta_verbose ("Setting _NET_WM_FULLSCREEN_MONITORS\n");
 | 
			
		||||
          meta_error_trap_push (window->display);
 | 
			
		||||
          XChangeProperty (window->display->xdisplay,
 | 
			
		||||
                           window->xwindow,
 | 
			
		||||
                           window->display->atom__NET_WM_FULLSCREEN_MONITORS,
 | 
			
		||||
                           XA_CARDINAL, 32, PropModeReplace,
 | 
			
		||||
                           (guchar*) data, 4);
 | 
			
		||||
          meta_error_trap_pop (window->display);
 | 
			
		||||
        }
 | 
			
		||||
      else
 | 
			
		||||
        {
 | 
			
		||||
          meta_verbose ("Clearing _NET_WM_FULLSCREEN_MONITORS\n");
 | 
			
		||||
          meta_error_trap_push (window->display);
 | 
			
		||||
          XDeleteProperty (window->display->xdisplay,
 | 
			
		||||
                           window->xwindow,
 | 
			
		||||
                           window->display->atom__NET_WM_FULLSCREEN_MONITORS);
 | 
			
		||||
          meta_error_trap_pop (window->display);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -2292,7 +2273,6 @@ idle_calc_showing (gpointer data)
 | 
			
		||||
  GSList *should_hide;
 | 
			
		||||
  GSList *unplaced;
 | 
			
		||||
  GSList *displays;
 | 
			
		||||
  MetaWindow *first_window;
 | 
			
		||||
  guint queue_index = GPOINTER_TO_INT (data);
 | 
			
		||||
 | 
			
		||||
  g_return_val_if_fail (queue_pending[queue_index] != NULL, FALSE);
 | 
			
		||||
@@ -2345,10 +2325,6 @@ idle_calc_showing (gpointer data)
 | 
			
		||||
  should_show = g_slist_sort (should_show, stackcmp);
 | 
			
		||||
  should_show = g_slist_reverse (should_show);
 | 
			
		||||
 | 
			
		||||
  first_window = copy->data;
 | 
			
		||||
 | 
			
		||||
  meta_display_grab (first_window->display);
 | 
			
		||||
 | 
			
		||||
  tmp = unplaced;
 | 
			
		||||
  while (tmp != NULL)
 | 
			
		||||
    {
 | 
			
		||||
@@ -2421,8 +2397,6 @@ idle_calc_showing (gpointer data)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  meta_display_ungrab (first_window->display);
 | 
			
		||||
 | 
			
		||||
  g_slist_free (copy);
 | 
			
		||||
 | 
			
		||||
  g_slist_free (unplaced);
 | 
			
		||||
@@ -5890,7 +5864,8 @@ meta_window_focus (MetaWindow  *window,
 | 
			
		||||
              window->desc, window->input, window->take_focus);
 | 
			
		||||
 | 
			
		||||
  if (window->display->grab_window &&
 | 
			
		||||
      window->display->grab_window->all_keys_grabbed)
 | 
			
		||||
      window->display->grab_window->all_keys_grabbed &&
 | 
			
		||||
      !window->display->grab_window->unmanaging)
 | 
			
		||||
    {
 | 
			
		||||
      meta_topic (META_DEBUG_FOCUS,
 | 
			
		||||
                  "Current focus window %s has global keygrab, not focusing window %s after all\n",
 | 
			
		||||
@@ -5961,6 +5936,25 @@ meta_window_focus (MetaWindow  *window,
 | 
			
		||||
                      "Sending WM_TAKE_FOCUS to %s since take_focus = true\n",
 | 
			
		||||
                      window->desc);
 | 
			
		||||
 | 
			
		||||
          if (!window->input)
 | 
			
		||||
            {
 | 
			
		||||
              /* The "Globally Active Input" window case, where the window
 | 
			
		||||
               * doesn't want us to call XSetInputFocus on it, but does
 | 
			
		||||
               * want us to send a WM_TAKE_FOCUS.
 | 
			
		||||
               *
 | 
			
		||||
               * Normally, we want to just leave the focus undisturbed until
 | 
			
		||||
               * the window respnds to WM_TAKE_FOCUS, but if we're unmanaging
 | 
			
		||||
               * the current focus window we *need* to move the focus away, so
 | 
			
		||||
               * we focus the no_focus_window now (and set
 | 
			
		||||
               * display->focus_window to that) before sending WM_TAKE_FOCUS.
 | 
			
		||||
               */
 | 
			
		||||
              if (window->display->focus_window != NULL &&
 | 
			
		||||
                  window->display->focus_window->unmanaging)
 | 
			
		||||
                meta_display_focus_the_no_focus_window (window->display,
 | 
			
		||||
                                                        window->screen,
 | 
			
		||||
                                                        timestamp);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
          meta_display_request_take_focus (window->display,
 | 
			
		||||
                                           window,
 | 
			
		||||
                                           timestamp);
 | 
			
		||||
@@ -8310,6 +8304,7 @@ recalc_window_features (MetaWindow *window)
 | 
			
		||||
  gboolean old_has_resize_func;
 | 
			
		||||
  gboolean old_has_shade_func;
 | 
			
		||||
  gboolean old_always_sticky;
 | 
			
		||||
  gboolean old_skip_taskbar;
 | 
			
		||||
 | 
			
		||||
  old_has_close_func = window->has_close_func;
 | 
			
		||||
  old_has_minimize_func = window->has_minimize_func;
 | 
			
		||||
@@ -8317,6 +8312,7 @@ recalc_window_features (MetaWindow *window)
 | 
			
		||||
  old_has_resize_func = window->has_resize_func;
 | 
			
		||||
  old_has_shade_func = window->has_shade_func;
 | 
			
		||||
  old_always_sticky = window->always_sticky;
 | 
			
		||||
  old_skip_taskbar = window->skip_taskbar;
 | 
			
		||||
 | 
			
		||||
  /* Use MWM hints initially */
 | 
			
		||||
  window->decorated = window->mwm_decorated;
 | 
			
		||||
@@ -8509,6 +8505,9 @@ recalc_window_features (MetaWindow *window)
 | 
			
		||||
              window->skip_taskbar,
 | 
			
		||||
              window->skip_pager);
 | 
			
		||||
 | 
			
		||||
  if (old_skip_taskbar != window->skip_taskbar)
 | 
			
		||||
    g_object_notify (G_OBJECT (window), "skip-taskbar");
 | 
			
		||||
 | 
			
		||||
  /* FIXME:
 | 
			
		||||
   * Lame workaround for recalc_window_features
 | 
			
		||||
   * being used overzealously. The fix is to
 | 
			
		||||
@@ -9711,7 +9710,8 @@ meta_window_handle_mouse_grab_op_event (MetaWindow *window,
 | 
			
		||||
  switch (xev->evtype)
 | 
			
		||||
    {
 | 
			
		||||
    case XI_ButtonRelease:
 | 
			
		||||
      if (xev->detail == 1)
 | 
			
		||||
      if (xev->detail == 1 ||
 | 
			
		||||
          xev->detail == meta_prefs_get_mouse_button_resize ())
 | 
			
		||||
        {
 | 
			
		||||
          meta_display_check_threshold_reached (window->display,
 | 
			
		||||
                                                xev->root_x,
 | 
			
		||||
 
 | 
			
		||||
@@ -80,7 +80,8 @@ item(MULTIPLE)
 | 
			
		||||
item(TIMESTAMP)
 | 
			
		||||
item(VERSION)
 | 
			
		||||
item(ATOM_PAIR)
 | 
			
		||||
item(BACKLIGHT)
 | 
			
		||||
item(Backlight)
 | 
			
		||||
item(hotplug_mode_update)
 | 
			
		||||
 | 
			
		||||
/* Oddities: These are used, and we need atoms for them,
 | 
			
		||||
 * but when we need all _NET_WM hints (i.e. when we're making
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user