Compare commits

..

1 Commits

Author SHA1 Message Date
Jasper St. Pierre
bb9501dbdf compositor: Remove meta_compositor_window_[un]mapped
We no longer unmap the toplevel windows during normal operation. The
toplevel state is tied to the window's lifetime.

Call meta_compositor_add_window / meta_compositor_remove_window instead...
2013-12-09 15:49:50 -05:00
20 changed files with 964 additions and 1082 deletions

21
NEWS
View File

@@ -1,24 +1,3 @@
3.11.3
======
* xrandr: Use "hotplug_mode_update" property [Marc-André; #711216]
* Fix position of attached dialogs for CSD windows [Giovanni, Owen; #707194]
* Fix focus issues with external OSKs [Jasper; #715030]
* Add a MetaCullable interface [Jasper; #714706]
* Fix window group paint volume [Owen; #719669]
* Fix frame extents problems [Owen; #714707]
* Add shortcut to move windows between monitors [Florian; #671054]
* Fix problems with focus tracking [Owen; #720558]
* Misc. bug fixes and cleanups [Rui, Jasper, Owen; #712833, #678989, #720106,
#720417, #720630]
Contributors:
Robert Bragg, Giovanni Campagna, Marc-André Lureau, Rui Matos, Alberto Milone,
Florian Müllner, Sindhu S, Jasper St. Pierre, Rico Tzschichholz,
Owen W. Taylor
Translations:
甘露(Gan Lu) [zh_CN], Khaled Hosny [ar]
3.11.2
======
* Fix resize operations using mouse-button-modifier [Lionel; #710251]

View File

@@ -3,7 +3,7 @@ AC_CONFIG_MACRO_DIR([m4])
m4_define([mutter_major_version], [3])
m4_define([mutter_minor_version], [11])
m4_define([mutter_micro_version], [3])
m4_define([mutter_micro_version], [2])
m4_define([mutter_version],
[mutter_major_version.mutter_minor_version.mutter_micro_version])

View File

@@ -96,8 +96,6 @@ meta_compositor_hide_window
meta_compositor_switch_workspace
meta_compositor_maximize_window
meta_compositor_unmaximize_window
meta_compositor_window_mapped
meta_compositor_window_unmapped
meta_compositor_sync_window_geometry
meta_compositor_set_updates_frozen
meta_compositor_queue_frame_drawn

View File

@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: metacity.HEAD\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-11 06:55+0200\n"
"PO-Revision-Date: 2013-12-11 06:57+0200\n"
"POT-Creation-Date: 2013-10-07 17:09+0200\n"
"PO-Revision-Date: 2013-10-07 17:09+0200\n"
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
"Language-Team: Arabic <doc@arabeyes.org>\n"
"Language: ar\n"
@@ -212,7 +212,7 @@ msgstr "المنظور مقسوم على اليسار"
#. 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:571
#: ../src/compositor/compositor.c:596
#, c-format
msgid ""
"Another compositing manager is already running on screen %i on display \"%s"
@@ -255,12 +255,12 @@ msgstr "ا_نتظر"
msgid "_Force Quit"
msgstr "أ_جبر الإنهاء"
#: ../src/core/display.c:415
#: ../src/core/display.c:422
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "الامتداد %s مفقود، لكنه مطلوب للتركيب"
#: ../src/core/display.c:507
#: ../src/core/display.c:514
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "فشل فتح عرض نظام نوافذ إكس '%s'\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
#, c-format
#, fuzzy, c-format
msgid "Unknown %s"
msgstr "غير معروفة %s"
msgstr "عنصر مجهول %s"
#: ../src/core/mutter.c:40
#, c-format
@@ -382,12 +382,12 @@ msgstr ""
msgid "Workspace %d"
msgstr "مساحة العمل %d"
#: ../src/core/screen.c:540
#: ../src/core/screen.c:537
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "الشاشة %d على العرض '%s' غير صحيحة\n"
#: ../src/core/screen.c:556
#: ../src/core/screen.c:553
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@@ -396,18 +396,18 @@ msgstr ""
"الشاشة %d على العرض \"%s\" لها مدير نوافذ بالفعل، حاول استعمال خيار التبديل "
"--replace لتحُلّ محلّ مدير النوافذ الحالي.\n"
#: ../src/core/screen.c:583
#: ../src/core/screen.c:580
#, c-format
msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n"
msgstr "لا يمكن الحصول على اختيار مدير النوافذ على الشاشة %d العرض \"%s\"\n"
#: ../src/core/screen.c:661
#: ../src/core/screen.c:658
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "الشاشة %d على العرض \"%s\" لها مدير نوافذ بالفعل\n"
#: ../src/core/screen.c:853
#: ../src/core/screen.c:850
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "لا يمكن ترك الشاشة %d على العرض \"%s\"\n"
@@ -503,7 +503,7 @@ msgid "Window manager error: "
msgstr "خطأ مدير النوافذ: "
#. first time through
#: ../src/core/window.c:7615
#: ../src/core/window.c:7515
#, 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:8537
#: ../src/core/window.c:8345
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@@ -528,22 +528,22 @@ msgstr ""
"ضبطت النافذة %s تلميحة MWM يدل على انه لا يمكن تحجيمها، لكنها تضبط الحجم "
"الأدنى %d x %d و الحجم الأقصى %d x %d، هذا ليس له أي معنى.\n"
#: ../src/core/window-props.c:350
#: ../src/core/window-props.c:347
#, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n"
msgstr "ضبط التطبيق رمز NET_WM_PID غير مفهوم %lu\n"
#: ../src/core/window-props.c:466
#: ../src/core/window-props.c:463
#, c-format
msgid "%s (on %s)"
msgstr "%s (على %s)"
#: ../src/core/window-props.c:1549
#: ../src/core/window-props.c:1546
#, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "نافذة WM_TRANSIENT_FOR 0x%lx غير صحيحة ل %s.\n"
#: ../src/core/window-props.c:1560
#: ../src/core/window-props.c:1557
#, fuzzy, c-format
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
msgstr "نافذة WM_TRANSIENT_FOR 0x%lx غير صحيحة ل %s.\n"
@@ -929,8 +929,8 @@ 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:fg[NORMAL]، NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\""
"يحب أن يكون لتخصيص حالة ألوان جتك قوس غلق قائم بعد الحالة/ مثال gtk:"
"fg[NORMAL]، NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\""
#: ../src/ui/theme.c:1219
#, c-format

668
po/el.po

File diff suppressed because it is too large Load Diff

224
po/es.po
View File

@@ -7,23 +7,23 @@
# Pablo Gonzalo del Campo <pablodc@bigfoot.com>,2002,2003.
# Francisco Javier F. Serrador <serrador@cvs.gnome.org>, 2004, 2005, 2006.
# Jorge González <jorgegonz@svn.gnome.org>, 2007, 2008, 2009, 2010, 2011.
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011, 2012, 2013, 2014.
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011, 2012, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: mutter.master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=mutter&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-01-07 17:48+0000\n"
"PO-Revision-Date: 2014-01-08 10:37+0100\n"
"POT-Creation-Date: 2013-08-20 15:46+0000\n"
"PO-Revision-Date: 2013-08-27 18:27+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\n"
"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
"Language: \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"
"X-Generator: Gtranslator 2.91.5\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Gtranslator 2.91.6\n"
#: ../src/50-mutter-navigation.xml.in.h:1
msgid "Navigation"
@@ -215,7 +215,7 @@ msgstr "Ver división a la derecha"
#. 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:571
#: ../src/compositor/compositor.c:596
#, c-format
msgid ""
"Another compositing manager is already running on screen %i on display \"%s"
@@ -224,7 +224,7 @@ msgstr ""
"Ya existe un gestor de composición ejecutándose en la monitor %i, pantalla "
"«%s»."
#: ../src/compositor/meta-background.c:1075
#: ../src/compositor/meta-background.c:1076
msgid "background texture could not be created from file"
msgstr "no se pudo crear la textura de fondo a partir de archivo"
@@ -262,17 +262,17 @@ msgstr "_Esperar"
msgid "_Force Quit"
msgstr "_Forzar la salida"
#: ../src/core/display.c:415
#: ../src/core/display.c:421
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "Falta la extensión %s requerida para la composición"
#: ../src/core/display.c:507
#: ../src/core/display.c:513
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "Ocurrió un error al abrir la pantalla de X Window System «%s»\n"
#: ../src/core/keybindings.c:1137
#: ../src/core/keybindings.c:1136
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
@@ -281,7 +281,7 @@ msgstr ""
"Algún otro programa ya está usando la clave %s con el modificador %x como "
"una vinculación\n"
#: ../src/core/keybindings.c:1334
#: ../src/core/keybindings.c:1333
#, c-format
msgid "\"%s\" is not a valid accelerator\n"
msgstr "«%s» no es un acelerador válido\n"
@@ -327,23 +327,15 @@ msgstr ""
msgid "Built-in display"
msgstr "Pantalla integrada"
#: ../src/core/monitor.c:727
#| msgid "Unknown %s"
msgid "Unknown"
msgstr "Desconocida"
#: ../src/core/monitor.c:729
#| msgid "Unknown %s"
msgid "Unknown Display"
msgstr "Pantalla desconocida"
#. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"'
#. 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:737
#: ../src/core/monitor.c:730
#, c-format
msgid "%s %s"
msgstr "%s %s"
#| msgid "Unknown element %s"
msgid "Unknown %s"
msgstr "Pantalla de %s desconocida"
#: ../src/core/mutter.c:40
#, c-format
@@ -406,12 +398,12 @@ msgstr ""
msgid "Workspace %d"
msgstr "Área de trabajo %d"
#: ../src/core/screen.c:540
#: ../src/core/screen.c:535
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "La ventana %d en la pantalla «%s» no es válida\n"
#: ../src/core/screen.c:556
#: ../src/core/screen.c:551
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@@ -420,7 +412,7 @@ msgstr ""
"La ventana %d en la pantalla «%s» ya tiene un gestor de ventanas, intente "
"usar la opción «--replace» para reemplazar el gestor de ventanas activo.\n"
#: ../src/core/screen.c:583
#: ../src/core/screen.c:578
#, c-format
msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n"
@@ -428,12 +420,12 @@ msgstr ""
"No se ha podido obtener la selección del gestor de ventanas en la ventana %d "
"en la pantalla «%s»\n"
#: ../src/core/screen.c:661
#: ../src/core/screen.c:656
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "La ventana %d en la pantalla «%s» ya tiene un gestor de ventanas\n"
#: ../src/core/screen.c:853
#: ../src/core/screen.c:848
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "No se ha podido liberar el monitor %d en la pantalla «%s»\n"
@@ -531,7 +523,7 @@ msgid "Window manager error: "
msgstr "Error del gestor de ventanas: "
#. first time through
#: ../src/core/window.c:7597
#: ../src/core/window.c:7533
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@@ -547,7 +539,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:8519
#: ../src/core/window.c:8257
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@@ -557,23 +549,23 @@ msgstr ""
"redimensionable, pero configuró el tamaño mínimo a %d x %d y el tamaño "
"máximo a %d x %d ; esto no tiene mucho sentido.\n"
#: ../src/core/window-props.c:350
#: ../src/core/window-props.c:347
#, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n"
msgstr "La aplicación establecio un _NET_WM_PID %lu erróneo\n"
#: ../src/core/window-props.c:466
#: ../src/core/window-props.c:463
#, c-format
msgid "%s (on %s)"
msgstr "%s (on %s)"
#: ../src/core/window-props.c:1549
#: ../src/core/window-props.c:1546
#, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr ""
"WM_TRANSIENT_FOR no válido para la ventana 0x%lx especificada para %s.\n"
#: ../src/core/window-props.c:1560
#: ../src/core/window-props.c:1557
#, c-format
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
msgstr "WM_TRANSIENT_FOR ventana 0x%lx para %s crearía un bucle.\n"
@@ -1264,59 +1256,59 @@ msgstr "El atributo «%s» no está definido en el elemento <%s>"
msgid "Line %d character %d: %s"
msgstr "Línea %d carácter %d: %s"
#: ../src/ui/theme-parser.c:483
#: ../src/ui/theme-parser.c:479
#, c-format
msgid "Attribute \"%s\" repeated twice on the same <%s> element"
msgstr "El atributo «%s» se ha repetido dos veces en el mismo elemento <%s>"
#: ../src/ui/theme-parser.c:507 ../src/ui/theme-parser.c:556
#: ../src/ui/theme-parser.c:503 ../src/ui/theme-parser.c:552
#, c-format
msgid "Attribute \"%s\" is invalid on <%s> element in this context"
msgstr "El atributo «%s» es no válido en el elemento <%s> en este contexto"
#: ../src/ui/theme-parser.c:598
#: ../src/ui/theme-parser.c:594
#, c-format
msgid "Could not parse \"%s\" as an integer"
msgstr "No se ha podido interpretar «%s» como un entero"
#: ../src/ui/theme-parser.c:607 ../src/ui/theme-parser.c:662
#: ../src/ui/theme-parser.c:603 ../src/ui/theme-parser.c:658
#, c-format
msgid "Did not understand trailing characters \"%s\" in string \"%s\""
msgstr "No se comprenden los caracteres sobrantes «%s» en la cadena «%s»"
#: ../src/ui/theme-parser.c:617
#: ../src/ui/theme-parser.c:613
#, c-format
msgid "Integer %ld must be positive"
msgstr "El entero %ld debe ser positivo"
#: ../src/ui/theme-parser.c:625
#: ../src/ui/theme-parser.c:621
#, c-format
msgid "Integer %ld is too large, current max is %d"
msgstr "El entero %ld es demasiado grande, el máximo actual es %d"
#: ../src/ui/theme-parser.c:653 ../src/ui/theme-parser.c:769
#: ../src/ui/theme-parser.c:649 ../src/ui/theme-parser.c:765
#, c-format
msgid "Could not parse \"%s\" as a floating point number"
msgstr "No se ha podido interpretar «%s» como un número de coma flotante"
#: ../src/ui/theme-parser.c:684 ../src/ui/theme-parser.c:712
#: ../src/ui/theme-parser.c:680 ../src/ui/theme-parser.c:708
#, c-format
msgid "Boolean values must be \"true\" or \"false\" not \"%s\""
msgstr "Los valores booleanos deben ser «true» o «false» no «%s»"
#: ../src/ui/theme-parser.c:739
#: ../src/ui/theme-parser.c:735
#, c-format
msgid "Angle must be between 0.0 and 360.0, was %g\n"
msgstr "El ángulo debe estar entre 0.0 y 360.0, fue %g\n"
#: ../src/ui/theme-parser.c:802
#: ../src/ui/theme-parser.c:798
#, c-format
msgid "Alpha must be between 0.0 (invisible) and 1.0 (fully opaque), was %g\n"
msgstr ""
"El valor de alfa debe estar entre 0.0 (invisible) y 1.0 (completamente "
"opaco), fue %g\n"
#: ../src/ui/theme-parser.c:867
#: ../src/ui/theme-parser.c:863
#, c-format
msgid ""
"Invalid title scale \"%s\" (must be one of xx-small,x-small,small,medium,"
@@ -1325,59 +1317,59 @@ msgstr ""
"Escala de título no válida «%s» (debe ser una de xx-small,x-small,small,"
"medium,large,x-large,xx-large)\n"
#: ../src/ui/theme-parser.c:1023 ../src/ui/theme-parser.c:1086
#: ../src/ui/theme-parser.c:1120 ../src/ui/theme-parser.c:1223
#: ../src/ui/theme-parser.c:1019 ../src/ui/theme-parser.c:1082
#: ../src/ui/theme-parser.c:1116 ../src/ui/theme-parser.c:1219
#, c-format
msgid "<%s> name \"%s\" used a second time"
msgstr "<%s> nombre «%s» usado una segunda vez"
#: ../src/ui/theme-parser.c:1035 ../src/ui/theme-parser.c:1132
#: ../src/ui/theme-parser.c:1235
#: ../src/ui/theme-parser.c:1031 ../src/ui/theme-parser.c:1128
#: ../src/ui/theme-parser.c:1231
#, c-format
msgid "<%s> parent \"%s\" has not been defined"
msgstr "El <%s> padre «%s» no ha sido definido"
#: ../src/ui/theme-parser.c:1145
#: ../src/ui/theme-parser.c:1141
#, c-format
msgid "<%s> geometry \"%s\" has not been defined"
msgstr "La <%s> geometría «%s» no ha sido definida"
#: ../src/ui/theme-parser.c:1158
#: ../src/ui/theme-parser.c:1154
#, c-format
msgid "<%s> must specify either a geometry or a parent that has a geometry"
msgstr ""
"<%s> debe especificar o una geometría o un padre para tenga una geometría"
#: ../src/ui/theme-parser.c:1200
#: ../src/ui/theme-parser.c:1196
msgid "You must specify a background for an alpha value to be meaningful"
msgstr "Debe especificar un fondo para un valor alfa para que tenga sentido"
#: ../src/ui/theme-parser.c:1268
#: ../src/ui/theme-parser.c:1264
#, c-format
msgid "Unknown type \"%s\" on <%s> element"
msgstr "Tipo «%s» desconocido en el elemento <%s>"
#: ../src/ui/theme-parser.c:1279
#: ../src/ui/theme-parser.c:1275
#, c-format
msgid "Unknown style_set \"%s\" on <%s> element"
msgstr "style_set «%s» desconocido en el elemento <%s>"
#: ../src/ui/theme-parser.c:1287
#: ../src/ui/theme-parser.c:1283
#, c-format
msgid "Window type \"%s\" has already been assigned a style set"
msgstr "El tipo de ventana «%s» ya ha sido asignado a un conjunto de estilo"
#: ../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
#: ../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
#, c-format
msgid "Element <%s> is not allowed below <%s>"
msgstr "El elemento <%s> no está permitido debajo de <%s>"
#: ../src/ui/theme-parser.c:1431 ../src/ui/theme-parser.c:1445
#: ../src/ui/theme-parser.c:1490
#: ../src/ui/theme-parser.c:1427 ../src/ui/theme-parser.c:1441
#: ../src/ui/theme-parser.c:1486
msgid ""
"Cannot specify both \"button_width\"/\"button_height\" and \"aspect_ratio\" "
"for buttons"
@@ -1385,123 +1377,123 @@ msgstr ""
"No se puede especificar ambos «button_width»/«button_height» y «aspect "
"ratio» para los botones"
#: ../src/ui/theme-parser.c:1454
#: ../src/ui/theme-parser.c:1450
#, c-format
msgid "Distance \"%s\" is unknown"
msgstr "La distancia «%s» es desconocida"
#: ../src/ui/theme-parser.c:1499
#: ../src/ui/theme-parser.c:1495
#, c-format
msgid "Aspect ratio \"%s\" is unknown"
msgstr "La proporción «%s» es desconocido"
#: ../src/ui/theme-parser.c:1561
#: ../src/ui/theme-parser.c:1557
#, c-format
msgid "Border \"%s\" is unknown"
msgstr "El borde «%s» es desconocido"
#: ../src/ui/theme-parser.c:1872
#: ../src/ui/theme-parser.c:1868
#, c-format
msgid "No \"start_angle\" or \"from\" attribute on element <%s>"
msgstr "No hay atributo «start_angle» o «from» en el elemento <%s>"
#: ../src/ui/theme-parser.c:1879
#: ../src/ui/theme-parser.c:1875
#, c-format
msgid "No \"extent_angle\" or \"to\" attribute on element <%s>"
msgstr "No hay atributo «extent_angle» o «to» en el elemento <%s>"
#: ../src/ui/theme-parser.c:2119
#: ../src/ui/theme-parser.c:2115
#, c-format
msgid "Did not understand value \"%s\" for type of gradient"
msgstr "No se entendió el valor «%s» para el tipo de degradado"
#: ../src/ui/theme-parser.c:2197 ../src/ui/theme-parser.c:2572
#: ../src/ui/theme-parser.c:2193 ../src/ui/theme-parser.c:2568
#, c-format
msgid "Did not understand fill type \"%s\" for <%s> element"
msgstr "No se entendió en tipo de relleno «%s» para el elemento <%s>"
#: ../src/ui/theme-parser.c:2364 ../src/ui/theme-parser.c:2447
#: ../src/ui/theme-parser.c:2510
#: ../src/ui/theme-parser.c:2360 ../src/ui/theme-parser.c:2443
#: ../src/ui/theme-parser.c:2506
#, c-format
msgid "Did not understand state \"%s\" for <%s> element"
msgstr "No se entendió estado «%s» para el elemento <%s>"
#: ../src/ui/theme-parser.c:2374 ../src/ui/theme-parser.c:2457
#: ../src/ui/theme-parser.c:2370 ../src/ui/theme-parser.c:2453
#, c-format
msgid "Did not understand shadow \"%s\" for <%s> element"
msgstr "No se entendió enrollar «%s» para el elemento <%s>"
#: ../src/ui/theme-parser.c:2384
#: ../src/ui/theme-parser.c:2380
#, c-format
msgid "Did not understand arrow \"%s\" for <%s> element"
msgstr "No se entendió la flecha «%s» para el elemento <%s>"
#: ../src/ui/theme-parser.c:2698 ../src/ui/theme-parser.c:2794
#: ../src/ui/theme-parser.c:2694 ../src/ui/theme-parser.c:2790
#, c-format
msgid "No <draw_ops> called \"%s\" has been defined"
msgstr "No se ha definido una <draw_ops> llamada «%s»"
#: ../src/ui/theme-parser.c:2710 ../src/ui/theme-parser.c:2806
#: ../src/ui/theme-parser.c:2706 ../src/ui/theme-parser.c:2802
#, c-format
msgid "Including draw_ops \"%s\" here would create a circular reference"
msgstr "Incluir el draw_ops «%s» aquí podría crear una referencia circular"
#: ../src/ui/theme-parser.c:2921
#: ../src/ui/theme-parser.c:2917
#, c-format
msgid "Unknown position \"%s\" for frame piece"
msgstr "Posición desconocida «%s» para la pieza del marco"
#: ../src/ui/theme-parser.c:2929
#: ../src/ui/theme-parser.c:2925
#, c-format
msgid "Frame style already has a piece at position %s"
msgstr "El estilo del marco ya tiene una pieza en la posición %s"
#: ../src/ui/theme-parser.c:2946 ../src/ui/theme-parser.c:3023
#: ../src/ui/theme-parser.c:2942 ../src/ui/theme-parser.c:3019
#, c-format
msgid "No <draw_ops> with the name \"%s\" has been defined"
msgstr "No se ha definido ninguna <draw_ops> con el nombre «%s»"
#: ../src/ui/theme-parser.c:2976
#: ../src/ui/theme-parser.c:2972
#, c-format
msgid "Unknown function \"%s\" for button"
msgstr "Función desconocida «%s» para el botón"
#: ../src/ui/theme-parser.c:2986
#: ../src/ui/theme-parser.c:2982
#, c-format
msgid "Button function \"%s\" does not exist in this version (%d, need %d)"
msgstr "La función del botón «%s» no existe en esta versión (%d, necesita %d)"
#: ../src/ui/theme-parser.c:2998
#: ../src/ui/theme-parser.c:2994
#, c-format
msgid "Unknown state \"%s\" for button"
msgstr "Estado desconocido «%s» para el botón"
#: ../src/ui/theme-parser.c:3006
#: ../src/ui/theme-parser.c:3002
#, c-format
msgid "Frame style already has a button for function %s state %s"
msgstr "El estilo del marcos ya tiene un botón para la función %s estado %s"
#: ../src/ui/theme-parser.c:3077
#: ../src/ui/theme-parser.c:3073
#, c-format
msgid "\"%s\" is not a valid value for focus attribute"
msgstr "«%s» no es valor válido para el atributo foco"
#: ../src/ui/theme-parser.c:3086
#: ../src/ui/theme-parser.c:3082
#, c-format
msgid "\"%s\" is not a valid value for state attribute"
msgstr "«%s» no es un valor válido para el atributo estado"
#: ../src/ui/theme-parser.c:3096
#: ../src/ui/theme-parser.c:3092
#, c-format
msgid "A style called \"%s\" has not been defined"
msgstr "No se ha definido ningún estilo llamado «%s»"
#: ../src/ui/theme-parser.c:3117 ../src/ui/theme-parser.c:3140
#: ../src/ui/theme-parser.c:3113 ../src/ui/theme-parser.c:3136
#, c-format
msgid "\"%s\" is not a valid value for resize attribute"
msgstr "«%s» no es un estado válido para el atributo resize"
#: ../src/ui/theme-parser.c:3151
#: ../src/ui/theme-parser.c:3147
#, c-format
msgid ""
"Should not have \"resize\" attribute on <%s> element for maximized/shaded "
@@ -1510,7 +1502,7 @@ msgstr ""
"No debería tener un atributo «resize» en el elemento <%s> para los estados "
"maximizado/enrollado"
#: ../src/ui/theme-parser.c:3165
#: ../src/ui/theme-parser.c:3161
#, c-format
msgid ""
"Should not have \"resize\" attribute on <%s> element for maximized states"
@@ -1518,20 +1510,20 @@ msgstr ""
"No debería tener un atributo «resize» en el elemento <%s> para los estados "
"maximizados."
#: ../src/ui/theme-parser.c:3179 ../src/ui/theme-parser.c:3223
#: ../src/ui/theme-parser.c:3175 ../src/ui/theme-parser.c:3222
#, c-format
msgid "Style has already been specified for state %s resize %s focus %s"
msgstr ""
"El estilo ya ha sido especificado para estado %s redimensionado %s foco %s"
#: ../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
#: ../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
#, c-format
msgid "Style has already been specified for state %s focus %s"
msgstr "El estilo ya ha sido especificado para estado %s foco %s"
#: ../src/ui/theme-parser.c:3295
#: ../src/ui/theme-parser.c:3294
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)"
@@ -1540,7 +1532,7 @@ msgstr ""
"especificado un atributo draw_ops y también un elemento <draw_ops> o ha "
"especificado los dos elementos)"
#: ../src/ui/theme-parser.c:3333
#: ../src/ui/theme-parser.c:3332
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)"
@@ -1549,7 +1541,7 @@ msgstr ""
"especificado un atributo draw_ops y también un elemento <draw_ops> o ha "
"especificado los dos elementos)"
#: ../src/ui/theme-parser.c:3371
#: ../src/ui/theme-parser.c:3370
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)"
@@ -1558,12 +1550,12 @@ msgstr ""
"especificado un atributo draw_ops y también un elemento <draw_ops> o ha "
"especificado los dos elementos)"
#: ../src/ui/theme-parser.c:3435
#: ../src/ui/theme-parser.c:3434
#, c-format
msgid "Bad version specification '%s'"
msgstr "Especificación de versión «%s» errónea"
#: ../src/ui/theme-parser.c:3508
#: ../src/ui/theme-parser.c:3507
msgid ""
"\"version\" attribute cannot be used in metacity-theme-1.xml or metacity-"
"theme-2.xml"
@@ -1571,19 +1563,19 @@ msgstr ""
"No se puede usar el atributo «version» con metacity-theme-1.xml o metacity-"
"theme-2.xml"
#: ../src/ui/theme-parser.c:3531
#: ../src/ui/theme-parser.c:3530
#, c-format
msgid "Theme requires version %s but latest supported theme version is %d.%d"
msgstr ""
"El tema requiere la versión %s pero la última versión soportada del tema es "
"la %d.%d"
#: ../src/ui/theme-parser.c:3563
#: ../src/ui/theme-parser.c:3562
#, c-format
msgid "Outermost element in theme must be <metacity_theme> not <%s>"
msgstr "El elemento mas externo en un tema debe ser <metacity_theme> no <%s>"
#: ../src/ui/theme-parser.c:3583
#: ../src/ui/theme-parser.c:3582
#, c-format
msgid ""
"Element <%s> is not allowed inside a name/author/date/description element"
@@ -1591,12 +1583,12 @@ msgstr ""
"El elemento <%s> no esta permitido dentro de un elemento name/author/date/"
"description"
#: ../src/ui/theme-parser.c:3588
#: ../src/ui/theme-parser.c:3587
#, c-format
msgid "Element <%s> is not allowed inside a <constant> element"
msgstr "El elemento <%s> no esta permitido dentro de un elemento <constant>"
#: ../src/ui/theme-parser.c:3600
#: ../src/ui/theme-parser.c:3599
#, c-format
msgid ""
"Element <%s> is not allowed inside a distance/border/aspect_ratio element"
@@ -1604,40 +1596,40 @@ msgstr ""
"El elemento <%s> no esta permitido dentro de un elemento distance/border/"
"aspect_ratio"
#: ../src/ui/theme-parser.c:3622
#: ../src/ui/theme-parser.c:3621
#, c-format
msgid "Element <%s> is not allowed inside a draw operation element"
msgstr ""
"El elemento <%s> no esta permitido dentro de un elemento de operación de "
"dibujo"
#: ../src/ui/theme-parser.c:3632 ../src/ui/theme-parser.c:3662
#: ../src/ui/theme-parser.c:3667 ../src/ui/theme-parser.c:3672
#: ../src/ui/theme-parser.c:3631 ../src/ui/theme-parser.c:3661
#: ../src/ui/theme-parser.c:3666 ../src/ui/theme-parser.c:3671
#, c-format
msgid "Element <%s> is not allowed inside a <%s> element"
msgstr "El elemento <%s> no esta permitido dentro del elemento <%s>"
#: ../src/ui/theme-parser.c:3900
#: ../src/ui/theme-parser.c:3899
msgid "No draw_ops provided for frame piece"
msgstr "No se dio draw_ops para la pieza del cuadro"
#: ../src/ui/theme-parser.c:3915
#: ../src/ui/theme-parser.c:3914
msgid "No draw_ops provided for button"
msgstr "No se dio draw_ops para botón"
#: ../src/ui/theme-parser.c:3969
#: ../src/ui/theme-parser.c:3968
#, c-format
msgid "No text is allowed inside element <%s>"
msgstr "No se permite texto dentro del elemento <%s>"
#: ../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
#: ../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
#, c-format
msgid "<%s> specified twice for this theme"
msgstr "<%s> especificado dos veces para este tema"
#: ../src/ui/theme-parser.c:4337
#: ../src/ui/theme-parser.c:4336
#, c-format
msgid "Failed to find a valid file for theme %s\n"
msgstr "Falló al encontrar un archivo válido para el tema%s\n"

220
po/it.po
View File

@@ -1,18 +1,19 @@
# Italian translation for Mutter.
# Based on Italian translation for Metacity
# This file is distributed under the same license as metacity package
# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
# Copyright (C) 2012 the mutter's copyright holder.
# Pier Luigi Fiorini <plfiorini@libero.it>, 2002.
# Lapo Calamandrei <lapo.calamandrei@virgilio.it>, 2003.
# Luca Ferretti <lferrett@gnome.org>, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012.
# Milo Casagrande <milo@ubuntu.com>, 2012, 2013, 2014.
# Milo Casagrande <milo@ubuntu.com>, 2012, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: mutter\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-10 08:54+0100\n"
"PO-Revision-Date: 2014-01-10 08:54+0100\n"
"POT-Creation-Date: 2013-08-24 19:11+0200\n"
"PO-Revision-Date: 2013-08-24 19:11+0200\n"
"Last-Translator: Milo Casagrande <milo@ubuntu.com>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
"Language: it\n"
@@ -216,7 +217,7 @@ msgstr "Massimizza a destra"
#. 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:571
#: ../src/compositor/compositor.c:596
#, c-format
msgid ""
"Another compositing manager is already running on screen %i on display \"%s"
@@ -225,7 +226,7 @@ msgstr ""
"Un altro compositing manager è già in esecuzione sullo schermo %i sul "
"display «%s»."
#: ../src/compositor/meta-background.c:1075
#: ../src/compositor/meta-background.c:1076
msgid "background texture could not be created from file"
msgstr "La texture dello sfondo non può essere creata dal file"
@@ -265,17 +266,17 @@ msgstr "_Attendi"
msgid "_Force Quit"
msgstr "_Forza uscita"
#: ../src/core/display.c:415
#: ../src/core/display.c:422
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "Estensione %s richiesta per il compositing mancante"
#: ../src/core/display.c:507
#: ../src/core/display.c:514
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "Apertura del display «%s» di X Window System non riuscita\n"
#: ../src/core/keybindings.c:1137
#: ../src/core/keybindings.c:1136
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
@@ -284,7 +285,7 @@ msgstr ""
"Qualche altro programma sta già usando il tasto %s con i modificatori %x "
"come una associazione di tasti\n"
#: ../src/core/keybindings.c:1334
#: ../src/core/keybindings.c:1333
#, c-format
msgid "\"%s\" is not a valid accelerator\n"
msgstr "«%s» non è una scorciatoia valida\n"
@@ -326,25 +327,18 @@ msgstr ""
"Non è stato trovato alcun tema. Assicurarsi che %s esista e contenga i temi "
"standard.\n"
#: ../src/core/monitor.c:701
#: ../src/core/monitor.c:702
msgid "Built-in display"
msgstr "Display integrato"
#: ../src/core/monitor.c:726
msgid "Unknown"
msgstr "Sconosciuto"
#: ../src/core/monitor.c:728
msgid "Unknown Display"
msgstr "Display sconosciuto"
#. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"'
#. 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:736
#: ../src/core/monitor.c:730
#, c-format
msgid "%s %s"
msgstr "%s %s"
msgid "Unknown %s"
msgstr "Sconosciuto %s"
#: ../src/core/mutter.c:40
#, c-format
@@ -407,12 +401,12 @@ msgstr ""
msgid "Workspace %d"
msgstr "Spazio di lavoro %d"
#: ../src/core/screen.c:540
#: ../src/core/screen.c:537
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "Lo schermo %d nel display «%s» non è valido\n"
#: ../src/core/screen.c:556
#: ../src/core/screen.c:553
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@@ -421,7 +415,7 @@ msgstr ""
"Lo schermo %d sul display «%s» ha già un window manager; provare a "
"utilizzare l'opzione --replace per sostituirlo.\n"
#: ../src/core/screen.c:583
#: ../src/core/screen.c:580
#, c-format
msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n"
@@ -429,12 +423,12 @@ msgstr ""
"Impossibile acquisire la selezione del window manager per lo schermo %d nel "
"display «%s»\n"
#: ../src/core/screen.c:661
#: ../src/core/screen.c:658
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "Lo schermo %d sul display «%s» ha già un window manager\n"
#: ../src/core/screen.c:853
#: ../src/core/screen.c:850
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "Impossibile rilasciare lo schermo %d sul display «%s»\n"
@@ -533,7 +527,7 @@ msgid "Window manager error: "
msgstr "Errore del window manager: "
#. first time through
#: ../src/core/window.c:7590
#: ../src/core/window.c:7533
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@@ -549,7 +543,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:8512
#: ../src/core/window.c:8257
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@@ -559,26 +553,26 @@ msgstr ""
"ridimensionabile, ma ha impostato la dimensione minima %d x %d e la "
"dimensione massima %d x %d; ciò non ha senso.\n"
#: ../src/core/window-props.c:350
#: ../src/core/window-props.c:347
#, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n"
msgstr "L'applicazione ha impostato un _NET_WM_PID errato %lu\n"
#: ../src/core/window-props.c:466
#: ../src/core/window-props.c:463
#, c-format
msgid "%s (on %s)"
msgstr "%s (su %s)"
# Sì, direi che è oscuro -Luca
#
#: ../src/core/window-props.c:1549
#: ../src/core/window-props.c:1546
#, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "Specificato un WM_TRANSIENT_FOR finestra 0x%lx non valido per %s.\n"
# Sì, direi che è oscuro -Luca
#
#: ../src/core/window-props.c:1560
#: ../src/core/window-props.c:1557
#, c-format
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
msgstr "WM_TRANSIENT_FOR finestra 0x%lx per %s potrebbe creare un loop.\n"
@@ -1290,60 +1284,60 @@ msgstr "Nessun attributo «%s» nell'elemento <%s>"
msgid "Line %d character %d: %s"
msgstr "Riga %d carattere %d: %s"
#: ../src/ui/theme-parser.c:483
#: ../src/ui/theme-parser.c:479
#, c-format
msgid "Attribute \"%s\" repeated twice on the same <%s> element"
msgstr "L'attributo «%s» è ripetuto due volte nello stesso elemento <%s>"
#: ../src/ui/theme-parser.c:507 ../src/ui/theme-parser.c:556
#: ../src/ui/theme-parser.c:503 ../src/ui/theme-parser.c:552
#, c-format
msgid "Attribute \"%s\" is invalid on <%s> element in this context"
msgstr "L'attributo «%s» non è valido nell'elemento <%s> in questo contesto"
#: ../src/ui/theme-parser.c:598
#: ../src/ui/theme-parser.c:594
#, c-format
msgid "Could not parse \"%s\" as an integer"
msgstr "Impossibile analizzare «%s» come un intero"
#: ../src/ui/theme-parser.c:607 ../src/ui/theme-parser.c:662
#: ../src/ui/theme-parser.c:603 ../src/ui/theme-parser.c:658
#, c-format
msgid "Did not understand trailing characters \"%s\" in string \"%s\""
msgstr ""
"Non sono stati compresi i caratteri di chiusura «%s» nella stringa «%s»"
#: ../src/ui/theme-parser.c:617
#: ../src/ui/theme-parser.c:613
#, c-format
msgid "Integer %ld must be positive"
msgstr "L'intero %ld deve essere positivo"
#: ../src/ui/theme-parser.c:625
#: ../src/ui/theme-parser.c:621
#, c-format
msgid "Integer %ld is too large, current max is %d"
msgstr "L'intero %ld è troppo grande, il massimo corrente è %d"
#: ../src/ui/theme-parser.c:653 ../src/ui/theme-parser.c:769
#: ../src/ui/theme-parser.c:649 ../src/ui/theme-parser.c:765
#, c-format
msgid "Could not parse \"%s\" as a floating point number"
msgstr "Impossibile analizzare «%s» come numero in virgola mobile"
#: ../src/ui/theme-parser.c:684 ../src/ui/theme-parser.c:712
#: ../src/ui/theme-parser.c:680 ../src/ui/theme-parser.c:708
#, c-format
msgid "Boolean values must be \"true\" or \"false\" not \"%s\""
msgstr "I valori booleani devono essere «true» o «false», non «%s»"
# cambiato il finale, ma se è errore, vuol dire che %g è sbagliato..
#: ../src/ui/theme-parser.c:739
#: ../src/ui/theme-parser.c:735
#, c-format
msgid "Angle must be between 0.0 and 360.0, was %g\n"
msgstr "L'angolo deve essere tra 0.0 e 360.0, non %g\n"
# come sopra
#: ../src/ui/theme-parser.c:802
#: ../src/ui/theme-parser.c:798
#, c-format
msgid "Alpha must be between 0.0 (invisible) and 1.0 (fully opaque), was %g\n"
msgstr "Alpha deve essere tra 0.0 (trasparente) e 1.0 (opaco), non %g\n"
#: ../src/ui/theme-parser.c:867
#: ../src/ui/theme-parser.c:863
#, c-format
msgid ""
"Invalid title scale \"%s\" (must be one of xx-small,x-small,small,medium,"
@@ -1353,64 +1347,64 @@ msgstr ""
"medium,large, x-large, o xx-large)\n"
# element_name, name
#: ../src/ui/theme-parser.c:1023 ../src/ui/theme-parser.c:1086
#: ../src/ui/theme-parser.c:1120 ../src/ui/theme-parser.c:1223
#: ../src/ui/theme-parser.c:1019 ../src/ui/theme-parser.c:1082
#: ../src/ui/theme-parser.c:1116 ../src/ui/theme-parser.c:1219
#, c-format
msgid "<%s> name \"%s\" used a second time"
msgstr "Nome «%2$s» di <%1$s> usato una seconda volta"
# element_name, parent
#: ../src/ui/theme-parser.c:1035 ../src/ui/theme-parser.c:1132
#: ../src/ui/theme-parser.c:1235
#: ../src/ui/theme-parser.c:1031 ../src/ui/theme-parser.c:1128
#: ../src/ui/theme-parser.c:1231
#, c-format
msgid "<%s> parent \"%s\" has not been defined"
msgstr "Il genitore «%2$s» di <%1$s> non è stato definito"
# element_name, geometry
#: ../src/ui/theme-parser.c:1145
#: ../src/ui/theme-parser.c:1141
#, c-format
msgid "<%s> geometry \"%s\" has not been defined"
msgstr "La geometria «%2$s» di <%1$s> non è stata definita"
#: ../src/ui/theme-parser.c:1158
#: ../src/ui/theme-parser.c:1154
#, c-format
msgid "<%s> must specify either a geometry or a parent that has a geometry"
msgstr "<%s> deve specificare una geometria o un genitore che ha una geometria"
#: ../src/ui/theme-parser.c:1200
#: ../src/ui/theme-parser.c:1196
msgid "You must specify a background for an alpha value to be meaningful"
msgstr ""
"È necessario specificare uno sfondo per un valore alpha affinché sia "
"significativo"
# in base al successivo, type dovrebbe essere parola chiave....
#: ../src/ui/theme-parser.c:1268
#: ../src/ui/theme-parser.c:1264
#, c-format
msgid "Unknown type \"%s\" on <%s> element"
msgstr "type «%s» sconosciuto nell'elemento <%s>"
#: ../src/ui/theme-parser.c:1279
#: ../src/ui/theme-parser.c:1275
#, c-format
msgid "Unknown style_set \"%s\" on <%s> element"
msgstr "style_set «%s» sconosciuto nell'elemento <%s>"
#: ../src/ui/theme-parser.c:1287
#: ../src/ui/theme-parser.c:1283
#, c-format
msgid "Window type \"%s\" has already been assigned a style set"
msgstr ""
"Al tipo di finestra «%s» è stata già assegnata una impostazione di stile"
#: ../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
#: ../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
#, c-format
msgid "Element <%s> is not allowed below <%s>"
msgstr "L'elemento <%s> non è consentito all'interno di <%s>"
#: ../src/ui/theme-parser.c:1431 ../src/ui/theme-parser.c:1445
#: ../src/ui/theme-parser.c:1490
#: ../src/ui/theme-parser.c:1427 ../src/ui/theme-parser.c:1441
#: ../src/ui/theme-parser.c:1486
msgid ""
"Cannot specify both \"button_width\"/\"button_height\" and \"aspect_ratio\" "
"for buttons"
@@ -1418,128 +1412,128 @@ msgstr ""
"Non è possibile specificare sia \"button_width\"/\"button_height\" che "
"\"aspect_ratio\" per i pulsanti"
#: ../src/ui/theme-parser.c:1454
#: ../src/ui/theme-parser.c:1450
#, c-format
msgid "Distance \"%s\" is unknown"
msgstr "La distanza «%s» è sconosciuta"
#: ../src/ui/theme-parser.c:1499
#: ../src/ui/theme-parser.c:1495
#, c-format
msgid "Aspect ratio \"%s\" is unknown"
msgstr "Le proporzioni «%s» sono sconosciute"
#: ../src/ui/theme-parser.c:1561
#: ../src/ui/theme-parser.c:1557
#, c-format
msgid "Border \"%s\" is unknown"
msgstr "Il bordo «%s» è sconosciuto"
#: ../src/ui/theme-parser.c:1872
#: ../src/ui/theme-parser.c:1868
#, c-format
msgid "No \"start_angle\" or \"from\" attribute on element <%s>"
msgstr "Nessun attributo «start_angle» o «from» nell'elemento <%s>"
#: ../src/ui/theme-parser.c:1879
#: ../src/ui/theme-parser.c:1875
#, c-format
msgid "No \"extent_angle\" or \"to\" attribute on element <%s>"
msgstr "Nessun attributo «extent_angle» o «to» nell'elemento <%s>"
#: ../src/ui/theme-parser.c:2119
#: ../src/ui/theme-parser.c:2115
#, c-format
msgid "Did not understand value \"%s\" for type of gradient"
msgstr "Valore «%s» incomprensibile per il tipo di gradiente"
#: ../src/ui/theme-parser.c:2197 ../src/ui/theme-parser.c:2572
#: ../src/ui/theme-parser.c:2193 ../src/ui/theme-parser.c:2568
#, c-format
msgid "Did not understand fill type \"%s\" for <%s> element"
msgstr "Tipo di riempimento «%s» incomprensibile per l'elemento <%s>"
#: ../src/ui/theme-parser.c:2364 ../src/ui/theme-parser.c:2447
#: ../src/ui/theme-parser.c:2510
#: ../src/ui/theme-parser.c:2360 ../src/ui/theme-parser.c:2443
#: ../src/ui/theme-parser.c:2506
#, c-format
msgid "Did not understand state \"%s\" for <%s> element"
msgstr "Stato «%s» incomprensibile per l'elemento <%s>"
#: ../src/ui/theme-parser.c:2374 ../src/ui/theme-parser.c:2457
#: ../src/ui/theme-parser.c:2370 ../src/ui/theme-parser.c:2453
#, c-format
msgid "Did not understand shadow \"%s\" for <%s> element"
msgstr "Ombra «%s» incomprensibile per l'elemento <%s>"
#: ../src/ui/theme-parser.c:2384
#: ../src/ui/theme-parser.c:2380
#, c-format
msgid "Did not understand arrow \"%s\" for <%s> element"
msgstr "Freccia «%s» incomprensibile per l'elemento <%s>"
#: ../src/ui/theme-parser.c:2698 ../src/ui/theme-parser.c:2794
#: ../src/ui/theme-parser.c:2694 ../src/ui/theme-parser.c:2790
#, c-format
msgid "No <draw_ops> called \"%s\" has been defined"
msgstr "Non è stato definito alcun <draw_ops> di nome «%s»"
#: ../src/ui/theme-parser.c:2710 ../src/ui/theme-parser.c:2806
#: ../src/ui/theme-parser.c:2706 ../src/ui/theme-parser.c:2802
#, c-format
msgid "Including draw_ops \"%s\" here would create a circular reference"
msgstr ""
"Includendo draw_ops «%s» qui si potrebbe creare un riferimento circolare"
# piece dovrebbe essere parola chiave
#: ../src/ui/theme-parser.c:2921
#: ../src/ui/theme-parser.c:2917
#, c-format
msgid "Unknown position \"%s\" for frame piece"
msgstr "Posizione «%s» sconosciuta per il piece di cornice"
# piece dovrebbe essere parola chiave
#: ../src/ui/theme-parser.c:2929
#: ../src/ui/theme-parser.c:2925
#, c-format
msgid "Frame style already has a piece at position %s"
msgstr "Lo stile della cornice ha già una piece alla posizione %s"
#: ../src/ui/theme-parser.c:2946 ../src/ui/theme-parser.c:3023
#: ../src/ui/theme-parser.c:2942 ../src/ui/theme-parser.c:3019
#, c-format
msgid "No <draw_ops> with the name \"%s\" has been defined"
msgstr "Non è stato definito alcun <draw_ops> con il nome «%s»"
#: ../src/ui/theme-parser.c:2976
#: ../src/ui/theme-parser.c:2972
#, c-format
msgid "Unknown function \"%s\" for button"
msgstr "Funzione «%s» sconosciuta per il pulsante"
#: ../src/ui/theme-parser.c:2986
#: ../src/ui/theme-parser.c:2982
#, c-format
msgid "Button function \"%s\" does not exist in this version (%d, need %d)"
msgstr ""
"La funzione di pulsante «%s» non esiste in questa versione (%d, necessaria "
"%d)"
#: ../src/ui/theme-parser.c:2998
#: ../src/ui/theme-parser.c:2994
#, c-format
msgid "Unknown state \"%s\" for button"
msgstr "Stato «%s» sconosciuto per il pulsate"
#: ../src/ui/theme-parser.c:3006
#: ../src/ui/theme-parser.c:3002
#, c-format
msgid "Frame style already has a button for function %s state %s"
msgstr "Lo stile della cornice ha già un pulsante per la funzione %s stato %s"
#: ../src/ui/theme-parser.c:3077
#: ../src/ui/theme-parser.c:3073
#, c-format
msgid "\"%s\" is not a valid value for focus attribute"
msgstr "«%s» non è un valore valido per l'attributo focus"
#: ../src/ui/theme-parser.c:3086
#: ../src/ui/theme-parser.c:3082
#, c-format
msgid "\"%s\" is not a valid value for state attribute"
msgstr "«%s» non è un valore valido per l'attributo state"
#: ../src/ui/theme-parser.c:3096
#: ../src/ui/theme-parser.c:3092
#, c-format
msgid "A style called \"%s\" has not been defined"
msgstr "Uno stile chiamato «%s» non è stato definito"
#: ../src/ui/theme-parser.c:3117 ../src/ui/theme-parser.c:3140
#: ../src/ui/theme-parser.c:3113 ../src/ui/theme-parser.c:3136
#, c-format
msgid "\"%s\" is not a valid value for resize attribute"
msgstr "«%s» non è un valore valido per l'attributo resize"
#: ../src/ui/theme-parser.c:3151
#: ../src/ui/theme-parser.c:3147
#, c-format
msgid ""
"Should not have \"resize\" attribute on <%s> element for maximized/shaded "
@@ -1548,7 +1542,7 @@ msgstr ""
"Non si dovrebbe avere l'attributo «resize» nell'elemento <%s> per gli stati "
"maximized/shaded"
#: ../src/ui/theme-parser.c:3165
#: ../src/ui/theme-parser.c:3161
#, c-format
msgid ""
"Should not have \"resize\" attribute on <%s> element for maximized states"
@@ -1556,19 +1550,19 @@ msgstr ""
"Non si dovrebbe avere l'attributo «resize» nell'elemento <%s> per gli stati "
"maximized"
#: ../src/ui/theme-parser.c:3179 ../src/ui/theme-parser.c:3223
#: ../src/ui/theme-parser.c:3175 ../src/ui/theme-parser.c:3222
#, c-format
msgid "Style has already been specified for state %s resize %s focus %s"
msgstr "Lo stile è stato già specificato per lo stato %s resize %s focus %s"
#: ../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
#: ../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
#, c-format
msgid "Style has already been specified for state %s focus %s"
msgstr "Lo stile è stato già specificato per lo stato %s focus %s"
#: ../src/ui/theme-parser.c:3295
#: ../src/ui/theme-parser.c:3294
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)"
@@ -1577,7 +1571,7 @@ msgstr ""
"specificato un attributo draw_ops e anche un elemento <draw_ops>, o ha "
"specificato due elementi)"
#: ../src/ui/theme-parser.c:3333
#: ../src/ui/theme-parser.c:3332
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)"
@@ -1586,7 +1580,7 @@ msgstr ""
"specificato un attributo draw_ops e anche un elemento <draw_ops>, o ha "
"specificato due elementi)"
#: ../src/ui/theme-parser.c:3371
#: ../src/ui/theme-parser.c:3370
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)"
@@ -1595,12 +1589,12 @@ msgstr ""
"specificato un attributo draw_ops e anche un elemento <draw_ops>, o ha "
"specificato due elementi)"
#: ../src/ui/theme-parser.c:3435
#: ../src/ui/theme-parser.c:3434
#, c-format
msgid "Bad version specification '%s'"
msgstr "Specificazione di versione «%s» errata"
#: ../src/ui/theme-parser.c:3508
#: ../src/ui/theme-parser.c:3507
msgid ""
"\"version\" attribute cannot be used in metacity-theme-1.xml or metacity-"
"theme-2.xml"
@@ -1608,19 +1602,19 @@ msgstr ""
"L'attributo «version» non può essere usato in metacity-theme-1.xml o "
"metacity-theme-2.xml"
#: ../src/ui/theme-parser.c:3531
#: ../src/ui/theme-parser.c:3530
#, c-format
msgid "Theme requires version %s but latest supported theme version is %d.%d"
msgstr ""
"Il tema richiede la versione %s, ma la versione di tema supportata più "
"recente è la %d.%d"
#: ../src/ui/theme-parser.c:3563
#: ../src/ui/theme-parser.c:3562
#, c-format
msgid "Outermost element in theme must be <metacity_theme> not <%s>"
msgstr "L'elemento più esterno nel tema deve essere <metacity_theme> not <%s>"
#: ../src/ui/theme-parser.c:3583
#: ../src/ui/theme-parser.c:3582
#, c-format
msgid ""
"Element <%s> is not allowed inside a name/author/date/description element"
@@ -1628,12 +1622,12 @@ msgstr ""
"L'elemento <%s> non è consentito all'interno di un elemento name/author/date/"
"description"
#: ../src/ui/theme-parser.c:3588
#: ../src/ui/theme-parser.c:3587
#, c-format
msgid "Element <%s> is not allowed inside a <constant> element"
msgstr "L'elemento <%s> non è consentito all'interno di un elemento <constant>"
#: ../src/ui/theme-parser.c:3600
#: ../src/ui/theme-parser.c:3599
#, c-format
msgid ""
"Element <%s> is not allowed inside a distance/border/aspect_ratio element"
@@ -1641,41 +1635,41 @@ msgstr ""
"L'elemento <%s> non è consentito all'interno di un elemento distance/border/"
"aspect_ratio"
#: ../src/ui/theme-parser.c:3622
#: ../src/ui/theme-parser.c:3621
#, c-format
msgid "Element <%s> is not allowed inside a draw operation element"
msgstr ""
"L'elemento <%s> non è consentito all'interno di un elemento relativo "
"un'operazione di disegno"
#: ../src/ui/theme-parser.c:3632 ../src/ui/theme-parser.c:3662
#: ../src/ui/theme-parser.c:3667 ../src/ui/theme-parser.c:3672
#: ../src/ui/theme-parser.c:3631 ../src/ui/theme-parser.c:3661
#: ../src/ui/theme-parser.c:3666 ../src/ui/theme-parser.c:3671
#, c-format
msgid "Element <%s> is not allowed inside a <%s> element"
msgstr "L'elemento <%s> non è consentito all'interno di un elemento <%s>"
# piece dovrebbe essere parola chiave
#: ../src/ui/theme-parser.c:3900
#: ../src/ui/theme-parser.c:3899
msgid "No draw_ops provided for frame piece"
msgstr "Nessun draw_ops fornito per il piece di cornice"
#: ../src/ui/theme-parser.c:3915
#: ../src/ui/theme-parser.c:3914
msgid "No draw_ops provided for button"
msgstr "Nessun draw_ops fornito per il pulsante"
#: ../src/ui/theme-parser.c:3969
#: ../src/ui/theme-parser.c:3968
#, c-format
msgid "No text is allowed inside element <%s>"
msgstr "Il testo non è consentito all'interno dell'elemento <%s>"
#: ../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
#: ../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
#, c-format
msgid "<%s> specified twice for this theme"
msgstr "<%s> specificato due volte per questo tema"
#: ../src/ui/theme-parser.c:4337
#: ../src/ui/theme-parser.c:4336
#, c-format
msgid "Failed to find a valid file for theme %s\n"
msgstr "Ricerca di un file valido per il tema «%s» non riuscita\n"

View File

@@ -1,5 +1,5 @@
# Brazilian Portuguese translation of mutter.
# Copyright (C) 2002-2014 Free Software Foundation, Inc.
# Copyright (C) 2002-2012 Free Software Foundation, Inc.
# This file is distributed under the same license as the mutter package.
# Sun G11n <gnome_int_l10n@ireland.sun.com>, 2002.
# Evandro Fernandes Giovanini <evandrofg@ig.com.br>, 2002, 2003, 2006.
@@ -14,15 +14,15 @@
# Antonio Fernandes C. Neto <fernandes@pelivre.org>, 2010.
# Rodrigo Padula de Oliveira <contato@rodrigopadula.com>, 2011.
# Enrico Nicoletto <liverig@gmail.com>, 2012.
# Rafael Ferreira <rafael.f.f1@gmail.co>, 2013, 2014.
# Rafael Ferreira <rafael.f.f1@gmail.co>, 2013.
#
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-12-19 15:30+0000\n"
"PO-Revision-Date: 2014-01-05 03:08-0300\n"
"POT-Creation-Date: 2013-08-20 12:22+0000\n"
"PO-Revision-Date: 2013-08-18 21:39-0300\n"
"Last-Translator: Rafael Ferreira <rafael.f.f1@gmail.com>\n"
"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
"Language: pt_BR\n"
@@ -30,7 +30,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 1.6.3\n"
"X-Generator: Poedit 1.5.7\n"
#: ../src/50-mutter-navigation.xml.in.h:1
msgid "Navigation"
@@ -222,7 +222,7 @@ msgstr "Visualizar divisão à direita"
#. 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:571
#: ../src/compositor/compositor.c:596
#, c-format
msgid ""
"Another compositing manager is already running on screen %i on display \"%s"
@@ -230,7 +230,7 @@ msgid ""
msgstr ""
"Outro compositor de janelas está em execução na tela %i na área \"%s\"."
#: ../src/compositor/meta-background.c:1075
#: ../src/compositor/meta-background.c:1076
msgid "background texture could not be created from file"
msgstr "textura de plano de fundo não pôde ser criado de arquivo"
@@ -268,17 +268,17 @@ msgstr "_Esperar"
msgid "_Force Quit"
msgstr "_Forçar sair"
#: ../src/core/display.c:415
#: ../src/core/display.c:421
#, c-format
msgid "Missing %s extension required for compositing"
msgstr "Faltando extensão %s necessária para composição"
#: ../src/core/display.c:507
#: ../src/core/display.c:513
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "Falha ao abrir a exibição \"%s\" do X Window System\n"
#: ../src/core/keybindings.c:1137
#: ../src/core/keybindings.c:1136
#, c-format
msgid ""
"Some other program is already using the key %s with modifiers %x as a "
@@ -287,7 +287,7 @@ msgstr ""
"Algum outro programa já está usando a chave %s com modificadores %x como uma "
"tecla de atalho\n"
#: ../src/core/keybindings.c:1334
#: ../src/core/keybindings.c:1333
#, c-format
msgid "\"%s\" is not a valid accelerator\n"
msgstr "\"%s\" não é um acelerador válido\n"
@@ -329,7 +329,7 @@ msgstr ""
"Não foi possível localizar um tema! Verifique se %s existe e contém os temas "
"comuns.\n"
#: ../src/core/monitor.c:696
#: ../src/core/monitor.c:702
msgid "Built-in display"
msgstr "Tela embutida"
@@ -337,7 +337,7 @@ msgstr "Tela embutida"
#. the vendor), it's Unknown followed by a size in inches,
#. like 'Unknown 15"'
#.
#: ../src/core/monitor.c:724
#: ../src/core/monitor.c:730
#, c-format
msgid "Unknown %s"
msgstr "%s desconhecido"
@@ -404,12 +404,12 @@ msgstr ""
msgid "Workspace %d"
msgstr "Espaço de trabalho %d"
#: ../src/core/screen.c:540
#: ../src/core/screen.c:535
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "A tela %d na exibição \"%s\" é inválida\n"
#: ../src/core/screen.c:556
#: ../src/core/screen.c:551
#, c-format
msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --"
@@ -418,7 +418,7 @@ msgstr ""
"A tela %d na exibição \"%s\" já possui um gerenciador de janelas; tente usar "
"a opção --replace para substituir o gerenciador de janelas atual.\n"
#: ../src/core/screen.c:583
#: ../src/core/screen.c:578
#, c-format
msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n"
@@ -426,12 +426,12 @@ msgstr ""
"Não foi possível obter a seleção do gerenciador de janelas na exibição \"%2$s"
"\" da tela %1$d\n"
#: ../src/core/screen.c:661
#: ../src/core/screen.c:656
#, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "A tela %d na exibição \"%s\" já possui um gerenciador de janelas\n"
#: ../src/core/screen.c:853
#: ../src/core/screen.c:848
#, c-format
msgid "Could not release screen %d on display \"%s\"\n"
msgstr "Não foi possível liberar a tela %d na exibição \"%s\"\n"
@@ -528,7 +528,7 @@ msgid "Window manager error: "
msgstr "Erro do gerenciador de janelas: "
#. first time through
#: ../src/core/window.c:7620
#: ../src/core/window.c:7533
#, c-format
msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@@ -544,7 +544,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work.
#.
#: ../src/core/window.c:8542
#: ../src/core/window.c:8257
#, c-format
msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@@ -554,22 +554,22 @@ msgstr ""
"define o tamanho mínimo %d x %d e máximo %d x %d; isso não faz muito "
"sentido.\n"
#: ../src/core/window-props.c:350
#: ../src/core/window-props.c:347
#, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n"
msgstr "O aplicativo definiu um _NET_WM_PID %lu inválido\n"
#: ../src/core/window-props.c:466
#: ../src/core/window-props.c:463
#, c-format
msgid "%s (on %s)"
msgstr "%s (em %s)"
#: ../src/core/window-props.c:1549
#: ../src/core/window-props.c:1546
#, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "Janela WM_TRANSIENT_FOR inválida 0x%lx especificada para %s.\n"
#: ../src/core/window-props.c:1560
#: ../src/core/window-props.c:1557
#, c-format
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
msgstr "Janela WM_TRANSIENT_FOR 0x%lx especificada para %s iriar criar loop.\n"
@@ -977,7 +977,7 @@ msgstr "A geometria do quadro não especifica o tamanho dos botões"
#: ../src/ui/theme.c:1051
#, c-format
msgid "Gradients should have at least two colors"
msgstr "Os degradês devem ter pelo menos duas cores"
msgstr "Os gradientes devem ter pelo menos duas cores"
#: ../src/ui/theme.c:1203
#, c-format
@@ -1252,59 +1252,59 @@ msgstr "Nenhum atributo \"%s\" no elemento <%s>"
msgid "Line %d character %d: %s"
msgstr "Caractere %d da linha %d: %s"
#: ../src/ui/theme-parser.c:483
#: ../src/ui/theme-parser.c:479
#, c-format
msgid "Attribute \"%s\" repeated twice on the same <%s> element"
msgstr "O atributo \"%s\" foi repetido duas vezes no mesmo elemento <%s>"
#: ../src/ui/theme-parser.c:507 ../src/ui/theme-parser.c:556
#: ../src/ui/theme-parser.c:503 ../src/ui/theme-parser.c:552
#, c-format
msgid "Attribute \"%s\" is invalid on <%s> element in this context"
msgstr "O atributo \"%s\" é inválido no elemento <%s> neste contexto"
#: ../src/ui/theme-parser.c:598
#: ../src/ui/theme-parser.c:594
#, c-format
msgid "Could not parse \"%s\" as an integer"
msgstr "Não foi possível analisar \"%s\" como um inteiro"
#: ../src/ui/theme-parser.c:607 ../src/ui/theme-parser.c:662
#: ../src/ui/theme-parser.c:603 ../src/ui/theme-parser.c:658
#, c-format
msgid "Did not understand trailing characters \"%s\" in string \"%s\""
msgstr ""
"Os caracteres à direita \"%s\" na string \"%s\" não foram compreendidos"
#: ../src/ui/theme-parser.c:617
#: ../src/ui/theme-parser.c:613
#, c-format
msgid "Integer %ld must be positive"
msgstr "O inteiro %ld deve ser positivo"
#: ../src/ui/theme-parser.c:625
#: ../src/ui/theme-parser.c:621
#, c-format
msgid "Integer %ld is too large, current max is %d"
msgstr "O inteiro %ld é muito grande; o valor máximo atual é %d"
#: ../src/ui/theme-parser.c:653 ../src/ui/theme-parser.c:769
#: ../src/ui/theme-parser.c:649 ../src/ui/theme-parser.c:765
#, c-format
msgid "Could not parse \"%s\" as a floating point number"
msgstr "Não foi possível analisar \"%s\" como um número de ponto flutuante"
#: ../src/ui/theme-parser.c:684 ../src/ui/theme-parser.c:712
#: ../src/ui/theme-parser.c:680 ../src/ui/theme-parser.c:708
#, c-format
msgid "Boolean values must be \"true\" or \"false\" not \"%s\""
msgstr "Os valores booleanos devem ser \"true\" ou \"false\" e não \"%s\""
#: ../src/ui/theme-parser.c:739
#: ../src/ui/theme-parser.c:735
#, c-format
msgid "Angle must be between 0.0 and 360.0, was %g\n"
msgstr "O ângulo deve estar entre 0,0 e 360,0 e era %g\n"
#: ../src/ui/theme-parser.c:802
#: ../src/ui/theme-parser.c:798
#, c-format
msgid "Alpha must be between 0.0 (invisible) and 1.0 (fully opaque), was %g\n"
msgstr ""
"Alfa deve estar entre 0,0 (invisível) e 1,0 (totalmente opaco) e era %g\n"
#: ../src/ui/theme-parser.c:867
#: ../src/ui/theme-parser.c:863
#, c-format
msgid ""
"Invalid title scale \"%s\" (must be one of xx-small,x-small,small,medium,"
@@ -1313,59 +1313,59 @@ msgstr ""
"Escala de título \"%s\" inválida (deve ser super pequena, extra pequena, "
"pequena, média, grande, extra grande ou super grande)\n"
#: ../src/ui/theme-parser.c:1023 ../src/ui/theme-parser.c:1086
#: ../src/ui/theme-parser.c:1120 ../src/ui/theme-parser.c:1223
#: ../src/ui/theme-parser.c:1019 ../src/ui/theme-parser.c:1082
#: ../src/ui/theme-parser.c:1116 ../src/ui/theme-parser.c:1219
#, c-format
msgid "<%s> name \"%s\" used a second time"
msgstr "<%s> nome \"%s\" usado uma segunda vez"
#: ../src/ui/theme-parser.c:1035 ../src/ui/theme-parser.c:1132
#: ../src/ui/theme-parser.c:1235
#: ../src/ui/theme-parser.c:1031 ../src/ui/theme-parser.c:1128
#: ../src/ui/theme-parser.c:1231
#, c-format
msgid "<%s> parent \"%s\" has not been defined"
msgstr "<%s> pai \"%s\" não foi definido"
#: ../src/ui/theme-parser.c:1145
#: ../src/ui/theme-parser.c:1141
#, c-format
msgid "<%s> geometry \"%s\" has not been defined"
msgstr "<%s> geometria \"%s\" não foi definida"
#: ../src/ui/theme-parser.c:1158
#: ../src/ui/theme-parser.c:1154
#, c-format
msgid "<%s> must specify either a geometry or a parent that has a geometry"
msgstr "<%s> deve especificar uma geometria ou um pai que tenha uma geometria"
#: ../src/ui/theme-parser.c:1200
#: ../src/ui/theme-parser.c:1196
msgid "You must specify a background for an alpha value to be meaningful"
msgstr ""
"Você pode especificar um plano de fundo para que um valor alfa faça sentido"
#: ../src/ui/theme-parser.c:1268
#: ../src/ui/theme-parser.c:1264
#, c-format
msgid "Unknown type \"%s\" on <%s> element"
msgstr "Tipo \"%s\" desconhecido no elemento <%s>"
#: ../src/ui/theme-parser.c:1279
#: ../src/ui/theme-parser.c:1275
#, c-format
msgid "Unknown style_set \"%s\" on <%s> element"
msgstr "conjunto_de_estilo \"%s\" desconhecido no elemento <%s>"
#: ../src/ui/theme-parser.c:1287
#: ../src/ui/theme-parser.c:1283
#, c-format
msgid "Window type \"%s\" has already been assigned a style set"
msgstr "O tipo de janela \"%s\" já foi atribuído a um estilo definido"
#: ../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
#: ../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
#, c-format
msgid "Element <%s> is not allowed below <%s>"
msgstr "O elemento <%s> não é permitido abaixo de <%s>"
#: ../src/ui/theme-parser.c:1431 ../src/ui/theme-parser.c:1445
#: ../src/ui/theme-parser.c:1490
#: ../src/ui/theme-parser.c:1427 ../src/ui/theme-parser.c:1441
#: ../src/ui/theme-parser.c:1486
msgid ""
"Cannot specify both \"button_width\"/\"button_height\" and \"aspect_ratio\" "
"for buttons"
@@ -1373,124 +1373,124 @@ msgstr ""
"Não foi possível especificar \"button_width\"/\"button_height\" e "
"\"aspect_ratio\" para os botões"
#: ../src/ui/theme-parser.c:1454
#: ../src/ui/theme-parser.c:1450
#, c-format
msgid "Distance \"%s\" is unknown"
msgstr "A distância \"%s\" é desconhecida"
#: ../src/ui/theme-parser.c:1499
#: ../src/ui/theme-parser.c:1495
#, c-format
msgid "Aspect ratio \"%s\" is unknown"
msgstr "A taxa de proporção \"%s\" é desconhecida"
#: ../src/ui/theme-parser.c:1561
#: ../src/ui/theme-parser.c:1557
#, c-format
msgid "Border \"%s\" is unknown"
msgstr "A borda \"%s\" é desconhecida"
#: ../src/ui/theme-parser.c:1872
#: ../src/ui/theme-parser.c:1868
#, c-format
msgid "No \"start_angle\" or \"from\" attribute on element <%s>"
msgstr "Nenhum atributo \"start_angle\" ou \"from\" no elemento <%s>"
#: ../src/ui/theme-parser.c:1879
#: ../src/ui/theme-parser.c:1875
#, c-format
msgid "No \"extent_angle\" or \"to\" attribute on element <%s>"
msgstr "Nenhum atributo \"extent_angle\" ou \"to\" no elemento <%s>"
#: ../src/ui/theme-parser.c:2119
#: ../src/ui/theme-parser.c:2115
#, c-format
msgid "Did not understand value \"%s\" for type of gradient"
msgstr "O valor \"%s\" não foi compreendido para o tipo de degradê"
msgstr "O valor \"%s\" não foi compreendido para o tipo de gradiente"
#: ../src/ui/theme-parser.c:2197 ../src/ui/theme-parser.c:2572
#: ../src/ui/theme-parser.c:2193 ../src/ui/theme-parser.c:2568
#, c-format
msgid "Did not understand fill type \"%s\" for <%s> element"
msgstr ""
"O tipo de preenchimento \"%s\" não foi compreendido para o elemento <%s>"
#: ../src/ui/theme-parser.c:2364 ../src/ui/theme-parser.c:2447
#: ../src/ui/theme-parser.c:2510
#: ../src/ui/theme-parser.c:2360 ../src/ui/theme-parser.c:2443
#: ../src/ui/theme-parser.c:2506
#, c-format
msgid "Did not understand state \"%s\" for <%s> element"
msgstr "O estado \"%s\" não foi compreendido para o elemento <%s>"
#: ../src/ui/theme-parser.c:2374 ../src/ui/theme-parser.c:2457
#: ../src/ui/theme-parser.c:2370 ../src/ui/theme-parser.c:2453
#, c-format
msgid "Did not understand shadow \"%s\" for <%s> element"
msgstr "A sombra \"%s\" não foi compreendida para o elemento <%s>"
#: ../src/ui/theme-parser.c:2384
#: ../src/ui/theme-parser.c:2380
#, c-format
msgid "Did not understand arrow \"%s\" for <%s> element"
msgstr "A seta \"%s\" não foi compreendida para o elemento <%s>"
#: ../src/ui/theme-parser.c:2698 ../src/ui/theme-parser.c:2794
#: ../src/ui/theme-parser.c:2694 ../src/ui/theme-parser.c:2790
#, c-format
msgid "No <draw_ops> called \"%s\" has been defined"
msgstr "Nenhum <draw_ops> chamado \"%s\" foi definido"
#: ../src/ui/theme-parser.c:2710 ../src/ui/theme-parser.c:2806
#: ../src/ui/theme-parser.c:2706 ../src/ui/theme-parser.c:2802
#, c-format
msgid "Including draw_ops \"%s\" here would create a circular reference"
msgstr "A inclusão do draw_ops \"%s\" aqui criaria uma referência circular"
#: ../src/ui/theme-parser.c:2921
#: ../src/ui/theme-parser.c:2917
#, c-format
msgid "Unknown position \"%s\" for frame piece"
msgstr "Posição \"%s\" desconhecida para a parte do quadro"
#: ../src/ui/theme-parser.c:2929
#: ../src/ui/theme-parser.c:2925
#, c-format
msgid "Frame style already has a piece at position %s"
msgstr "O estilo de quadro já tem uma parte na posição %s"
#: ../src/ui/theme-parser.c:2946 ../src/ui/theme-parser.c:3023
#: ../src/ui/theme-parser.c:2942 ../src/ui/theme-parser.c:3019
#, c-format
msgid "No <draw_ops> with the name \"%s\" has been defined"
msgstr "Nenhum <draw_ops> com o nome \"%s\" foi definido"
#: ../src/ui/theme-parser.c:2976
#: ../src/ui/theme-parser.c:2972
#, c-format
msgid "Unknown function \"%s\" for button"
msgstr "Função \"%s\" desconhecida para o botão"
#: ../src/ui/theme-parser.c:2986
#: ../src/ui/theme-parser.c:2982
#, c-format
msgid "Button function \"%s\" does not exist in this version (%d, need %d)"
msgstr "A função \"%s\" de botão não existe nesta versão (%d, necessário %d)"
#: ../src/ui/theme-parser.c:2998
#: ../src/ui/theme-parser.c:2994
#, c-format
msgid "Unknown state \"%s\" for button"
msgstr "Estado \"%s\" desconhecido para o botão"
#: ../src/ui/theme-parser.c:3006
#: ../src/ui/theme-parser.c:3002
#, c-format
msgid "Frame style already has a button for function %s state %s"
msgstr "O estilo de quadro já possui um botão para o estado %s da função %s"
#: ../src/ui/theme-parser.c:3077
#: ../src/ui/theme-parser.c:3073
#, c-format
msgid "\"%s\" is not a valid value for focus attribute"
msgstr "\"%s\" não é um valor válido para o atributo de foco"
#: ../src/ui/theme-parser.c:3086
#: ../src/ui/theme-parser.c:3082
#, c-format
msgid "\"%s\" is not a valid value for state attribute"
msgstr "\"%s\" não é um valor válido para o atributo de estado"
#: ../src/ui/theme-parser.c:3096
#: ../src/ui/theme-parser.c:3092
#, c-format
msgid "A style called \"%s\" has not been defined"
msgstr "Um estilo chamado \"%s\" não foi definido"
#: ../src/ui/theme-parser.c:3117 ../src/ui/theme-parser.c:3140
#: ../src/ui/theme-parser.c:3113 ../src/ui/theme-parser.c:3136
#, c-format
msgid "\"%s\" is not a valid value for resize attribute"
msgstr "\"%s\" não é um valor válido para o atributo de redimensionamento"
#: ../src/ui/theme-parser.c:3151
#: ../src/ui/theme-parser.c:3147
#, c-format
msgid ""
"Should not have \"resize\" attribute on <%s> element for maximized/shaded "
@@ -1499,7 +1499,7 @@ msgstr ""
"Não deve haver o atributo \"resize\" no elemento <%s> para os estados "
"maximizado/sombreado"
#: ../src/ui/theme-parser.c:3165
#: ../src/ui/theme-parser.c:3161
#, c-format
msgid ""
"Should not have \"resize\" attribute on <%s> element for maximized states"
@@ -1507,21 +1507,21 @@ msgstr ""
"Não deve haver o atributo \"resize\" no elemento <%s> para os estados "
"maximizados"
#: ../src/ui/theme-parser.c:3179 ../src/ui/theme-parser.c:3223
#: ../src/ui/theme-parser.c:3175 ../src/ui/theme-parser.c:3222
#, c-format
msgid "Style has already been specified for state %s resize %s focus %s"
msgstr ""
"O estilo já foi especificado para o foco %s de redimensionamento %s do "
"estado %s"
#: ../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
#: ../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
#, c-format
msgid "Style has already been specified for state %s focus %s"
msgstr "O estilo já foi especificado para o foco %s do estado %s"
#: ../src/ui/theme-parser.c:3295
#: ../src/ui/theme-parser.c:3294
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)"
@@ -1530,7 +1530,7 @@ msgstr ""
"especificou um atributo draw_ops e um elemento <draw_ops> ou especificou "
"dois elementos)"
#: ../src/ui/theme-parser.c:3333
#: ../src/ui/theme-parser.c:3332
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)"
@@ -1539,7 +1539,7 @@ msgstr ""
"especificou um atributo draw_ops e um elemento <draw_ops> ou especificou "
"dois elementos)"
#: ../src/ui/theme-parser.c:3371
#: ../src/ui/theme-parser.c:3370
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)"
@@ -1548,12 +1548,12 @@ msgstr ""
"especificou um atributo draw_ops e um elemento <draw_ops> ou especificou "
"dois elementos)"
#: ../src/ui/theme-parser.c:3435
#: ../src/ui/theme-parser.c:3434
#, c-format
msgid "Bad version specification '%s'"
msgstr "Especificação da versão inválida \"%s\""
#: ../src/ui/theme-parser.c:3508
#: ../src/ui/theme-parser.c:3507
msgid ""
"\"version\" attribute cannot be used in metacity-theme-1.xml or metacity-"
"theme-2.xml"
@@ -1561,29 +1561,29 @@ msgstr ""
"O atributo \"versão\" não pode ser usado em metacity-theme-1.xml ou metacity-"
"theme-2.xml"
#: ../src/ui/theme-parser.c:3531
#: ../src/ui/theme-parser.c:3530
#, c-format
msgid "Theme requires version %s but latest supported theme version is %d.%d"
msgstr "Tema requer versão %s, mas a última versão que o tema suporta é %d.%d"
#: ../src/ui/theme-parser.c:3563
#: ../src/ui/theme-parser.c:3562
#, c-format
msgid "Outermost element in theme must be <metacity_theme> not <%s>"
msgstr "O elemento mais externo no tema deve ser <metacity_theme> e não <%s>"
#: ../src/ui/theme-parser.c:3583
#: ../src/ui/theme-parser.c:3582
#, c-format
msgid ""
"Element <%s> is not allowed inside a name/author/date/description element"
msgstr ""
"O elemento <%s> não é permitido em um elemento nome/autor/data/descrição"
#: ../src/ui/theme-parser.c:3588
#: ../src/ui/theme-parser.c:3587
#, c-format
msgid "Element <%s> is not allowed inside a <constant> element"
msgstr "O elemento <%s> não é permitido em um elemento <constant>"
#: ../src/ui/theme-parser.c:3600
#: ../src/ui/theme-parser.c:3599
#, c-format
msgid ""
"Element <%s> is not allowed inside a distance/border/aspect_ratio element"
@@ -1591,38 +1591,38 @@ msgstr ""
"O elemento <%s> não é permitido em um elemento distância/borda/"
"taxa_de_proporção"
#: ../src/ui/theme-parser.c:3622
#: ../src/ui/theme-parser.c:3621
#, c-format
msgid "Element <%s> is not allowed inside a draw operation element"
msgstr "O elemento <%s> não é permitido em um elemento de operação de desenho"
#: ../src/ui/theme-parser.c:3632 ../src/ui/theme-parser.c:3662
#: ../src/ui/theme-parser.c:3667 ../src/ui/theme-parser.c:3672
#: ../src/ui/theme-parser.c:3631 ../src/ui/theme-parser.c:3661
#: ../src/ui/theme-parser.c:3666 ../src/ui/theme-parser.c:3671
#, c-format
msgid "Element <%s> is not allowed inside a <%s> element"
msgstr "O elemento <%s> não é permitido em um elemento <%s>"
#: ../src/ui/theme-parser.c:3900
#: ../src/ui/theme-parser.c:3899
msgid "No draw_ops provided for frame piece"
msgstr "Nenhum draw_ops foi fornecido para a parte do quadro"
#: ../src/ui/theme-parser.c:3915
#: ../src/ui/theme-parser.c:3914
msgid "No draw_ops provided for button"
msgstr "Nenhum draw_ops foi fornecido para o botão"
#: ../src/ui/theme-parser.c:3969
#: ../src/ui/theme-parser.c:3968
#, c-format
msgid "No text is allowed inside element <%s>"
msgstr "Nenhum texto é permitido no elemento <%s>"
#: ../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
#: ../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
#, c-format
msgid "<%s> specified twice for this theme"
msgstr "<%s> especificado duas vezes para este tema"
#: ../src/ui/theme-parser.c:4337
#: ../src/ui/theme-parser.c:4336
#, c-format
msgid "Failed to find a valid file for theme %s\n"
msgstr "Falha ao localizar um arquivo válido para o tema %s\n"

View File

@@ -42,15 +42,6 @@
* the call, so it may be necessary to readjust the display based on the
* old_rect to start the animation.
*
* meta_compositor_window_mapped() and meta_compositor_window_unmapped() are
* notifications when the toplevel window (frame or client window) is mapped or
* unmapped. That is, when the result of meta_window_toplevel_is_mapped()
* changes. The main use of this is to drop resources when a window is unmapped.
* A window will always be mapped before meta_compositor_show_window()
* is called and will not be unmapped until after meta_compositor_hide_window()
* is called. If the live_hidden_windows preference is set, windows will never
* be unmapped.
*
* # Containers #
*
* There's two containers in the stage that are used to place window actors, here
@@ -1282,30 +1273,6 @@ meta_compositor_sync_stack (MetaCompositor *compositor,
sync_actor_stacking (info);
}
void
meta_compositor_window_mapped (MetaCompositor *compositor,
MetaWindow *window)
{
MetaWindowActor *window_actor = META_WINDOW_ACTOR (meta_window_get_compositor_private (window));
DEBUG_TRACE ("meta_compositor_window_mapped\n");
if (!window_actor)
return;
meta_window_actor_mapped (window_actor);
}
void
meta_compositor_window_unmapped (MetaCompositor *compositor,
MetaWindow *window)
{
MetaWindowActor *window_actor = META_WINDOW_ACTOR (meta_window_get_compositor_private (window));
DEBUG_TRACE ("meta_compositor_window_unmapped\n");
if (!window_actor)
return;
meta_window_actor_unmapped (window_actor);
}
void
meta_compositor_sync_window_geometry (MetaCompositor *compositor,
MetaWindow *window,

View File

@@ -109,7 +109,6 @@ struct _MetaWindowActorPrivate
GList *frames;
guint visible : 1;
guint mapped : 1;
guint argb32 : 1;
guint disposed : 1;
guint redecorating : 1;
@@ -695,11 +694,7 @@ meta_window_actor_get_paint_volume (ClutterActor *actor,
}
if (priv->unobscured_region)
{
cairo_rectangle_int_t unobscured_bounds;
cairo_region_get_extents (priv->unobscured_region, &unobscured_bounds);
gdk_rectangle_intersect (&bounds, &unobscured_bounds, &bounds);
}
cairo_region_intersect_rectangle (priv->unobscured_region, &bounds);
origin.x = bounds.x;
origin.y = bounds.y;
@@ -944,7 +939,7 @@ meta_window_actor_damage_all (MetaWindowActor *self)
texture = meta_shaped_texture_get_texture (META_SHAPED_TEXTURE (priv->actor));
if (!priv->mapped || priv->needs_pixmap)
if (priv->needs_pixmap)
return;
redraw_queued = meta_shaped_texture_update_area (META_SHAPED_TEXTURE (priv->actor),
@@ -1033,7 +1028,7 @@ meta_window_actor_queue_frame_drawn (MetaWindowActor *self,
{
queue_send_frame_messages_timeout (self);
}
else if (priv->mapped && !priv->needs_pixmap)
else
{
const cairo_rectangle_int_t clip = { 0, 0, 1, 1 };
clutter_actor_queue_redraw_with_clip (priv->actor, &clip);
@@ -1065,9 +1060,6 @@ meta_window_actor_queue_create_pixmap (MetaWindowActor *self)
priv->needs_pixmap = TRUE;
if (!priv->mapped)
return;
if (is_frozen (self))
return;
@@ -1577,10 +1569,6 @@ meta_window_actor_new (MetaWindow *window)
priv->last_width = -1;
priv->last_height = -1;
priv->mapped = meta_window_toplevel_is_mapped (priv->window);
if (priv->mapped)
meta_window_actor_queue_create_pixmap (self);
meta_window_actor_set_updates_frozen (self,
meta_window_updates_are_frozen (priv->window));
@@ -1614,34 +1602,6 @@ meta_window_actor_new (MetaWindow *window)
return self;
}
void
meta_window_actor_mapped (MetaWindowActor *self)
{
MetaWindowActorPrivate *priv = self->priv;
g_return_if_fail (!priv->mapped);
priv->mapped = TRUE;
meta_window_actor_queue_create_pixmap (self);
}
void
meta_window_actor_unmapped (MetaWindowActor *self)
{
MetaWindowActorPrivate *priv = self->priv;
g_return_if_fail (priv->mapped);
priv->mapped = FALSE;
if (meta_window_actor_effect_in_progress (self))
return;
meta_window_actor_detach (self);
priv->needs_pixmap = FALSE;
}
/**
* meta_window_actor_get_obscured_region:
* @self: a #MetaWindowActor
@@ -1844,9 +1804,6 @@ check_needs_pixmap (MetaWindowActor *self)
if (!priv->needs_pixmap)
return;
if (!priv->mapped)
return;
if (xwindow == meta_screen_get_xroot (screen) ||
xwindow == clutter_x11_get_stage_window (CLUTTER_STAGE (info->stage)))
return;
@@ -1932,9 +1889,6 @@ check_needs_shadow (MetaWindowActor *self)
gboolean should_have_shadow;
gboolean appears_focused;
if (!priv->mapped)
return;
/* Calling meta_window_actor_has_shadow() here at every pre-paint is cheap
* and avoids the need to explicitly handle window type changes, which
* we would do if tried to keep track of when we might be adding or removing
@@ -2038,7 +1992,7 @@ meta_window_actor_process_damage (MetaWindowActor *self,
return;
}
if (!priv->mapped || priv->needs_pixmap)
if (priv->needs_pixmap)
return;
redraw_queued = meta_shaped_texture_update_area (META_SHAPED_TEXTURE (priv->actor),
@@ -2307,9 +2261,6 @@ check_needs_reshape (MetaWindowActor *self)
MetaFrameBorders borders;
cairo_rectangle_int_t client_area;
if (!priv->mapped)
return;
if (!priv->needs_reshape)
return;

View File

@@ -138,14 +138,6 @@ 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 >*/

View File

@@ -918,6 +918,8 @@ 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)
@@ -969,6 +971,8 @@ meta_display_open (void)
meta_idle_monitor_init_dbus ();
meta_display_ungrab (the_display);
/* Done opening new display */
the_display->display_opening = FALSE;
@@ -1213,18 +1217,7 @@ meta_display_screen_for_x_screen (MetaDisplay *display,
return NULL;
}
/* 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).
*/
/* Grab/ungrab routines taken from fvwm */
void
meta_display_grab (MetaDisplay *display)
{
@@ -1872,11 +1865,9 @@ static void
update_focus_window (MetaDisplay *display,
MetaWindow *window,
Window xwindow,
gulong serial,
gboolean focused_by_us)
gulong serial)
{
display->focus_serial = serial;
display->focused_by_us = focused_by_us;
if (display->focus_xwindow == xwindow)
return;
@@ -1987,8 +1978,7 @@ request_xserver_input_focus_change (MetaDisplay *display,
update_focus_window (display,
meta_window,
xwindow,
serial,
TRUE);
serial);
meta_error_trap_pop (display);
@@ -2102,20 +2092,12 @@ handle_window_focus_event (MetaDisplay *display,
else
g_return_if_reached ();
/* 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))
if (display->server_focus_serial > display->focus_serial)
{
update_focus_window (display,
focus_window,
focus_window ? focus_window->xwindow : None,
display->server_focus_serial,
FALSE);
display->server_focus_serial);
}
}
@@ -2185,8 +2167,7 @@ event_callback (XEvent *event,
display->current_time = event_get_time (display, event);
display->monitor_cache_invalidated = TRUE;
if (display->focused_by_us &&
event->xany.serial > display->focus_serial &&
if (event->xany.serial > display->focus_serial &&
display->focus_window &&
!window_has_xwindow (display->focus_window, display->server_focus_window))
{
@@ -2195,8 +2176,7 @@ 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,
FALSE);
display->server_focus_serial);
}
screen = meta_display_screen_for_root (display, event->xany.window);
@@ -2782,14 +2762,14 @@ event_callback (XEvent *event,
&& meta_display_screen_for_root (display, event->xmap.event))
{
window = meta_window_new (display, event->xmap.window,
FALSE, META_COMP_EFFECT_CREATE);
FALSE);
}
break;
case MapRequest:
if (window == NULL)
{
window = meta_window_new (display, event->xmaprequest.window,
FALSE, META_COMP_EFFECT_CREATE);
FALSE);
}
/* if frame was receiver it's some malicious send event or something */
else if (!frame_was_receiver && window)

View File

@@ -51,6 +51,9 @@ 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;
@@ -114,6 +117,14 @@ 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)
{
@@ -155,6 +166,8 @@ meta_window_ensure_frame (MetaWindow *window)
/* Move keybindings to frame instead of window */
meta_window_grab_keys (window);
meta_display_ungrab (window->display);
}
void

View File

@@ -41,7 +41,6 @@
#include "ui.h"
#include "frame.h"
#include "place.h"
#include "screen-private.h"
#include <meta/prefs.h>
#include <meta/util.h>
@@ -3974,26 +3973,6 @@ handle_move_to_workspace (MetaDisplay *display,
}
}
static void
handle_move_to_monitor (MetaDisplay *display,
MetaScreen *screen,
MetaWindow *window,
XIDeviceEvent *event,
MetaKeyBinding *binding,
gpointer dummy)
{
gint which = binding->handler->data;
const MetaMonitorInfo *current, *new;
current = meta_screen_get_monitor_for_window (screen, window);
new = meta_screen_get_monitor_neighbor (screen, current->number, which);
if (new == NULL)
return;
meta_window_move_to_monitor (window, new->number);
}
static void
handle_raise_or_lower (MetaDisplay *display,
MetaScreen *screen,
@@ -4650,34 +4629,6 @@ init_builtin_key_bindings (MetaDisplay *display)
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_DOWN,
handle_move_to_workspace, META_MOTION_DOWN);
add_builtin_keybinding (display,
"move-to-monitor-left",
common_keybindings,
META_KEY_BINDING_PER_WINDOW,
META_KEYBINDING_ACTION_MOVE_TO_MONITOR_LEFT,
handle_move_to_monitor, META_SCREEN_LEFT);
add_builtin_keybinding (display,
"move-to-monitor-right",
common_keybindings,
META_KEY_BINDING_PER_WINDOW,
META_KEYBINDING_ACTION_MOVE_TO_MONITOR_RIGHT,
handle_move_to_monitor, META_SCREEN_RIGHT);
add_builtin_keybinding (display,
"move-to-monitor-down",
common_keybindings,
META_KEY_BINDING_PER_WINDOW,
META_KEYBINDING_ACTION_MOVE_TO_MONITOR_DOWN,
handle_move_to_monitor, META_SCREEN_DOWN);
add_builtin_keybinding (display,
"move-to-monitor-up",
common_keybindings,
META_KEY_BINDING_PER_WINDOW,
META_KEYBINDING_ACTION_MOVE_TO_MONITOR_UP,
handle_move_to_monitor, META_SCREEN_UP);
add_builtin_keybinding (display,
"raise-or-lower",
common_keybindings,

View File

@@ -691,60 +691,46 @@ static char *
make_display_name (MetaMonitorManager *manager,
MetaOutput *output)
{
char *inches = NULL;
char *vendor_name = NULL;
char *ret;
if (g_str_has_prefix (output->name, "LVDS") ||
g_str_has_prefix (output->name, "eDP"))
{
ret = g_strdup (_("Built-in display"));
goto out;
}
return g_strdup (_("Built-in display"));
if (output->width_mm > 0 && output->height_mm > 0)
if (output->width_mm != -1 && output->height_mm != -1)
{
double d = sqrt (output->width_mm * output->width_mm +
output->height_mm * output->height_mm);
inches = diagonal_to_str (d / 25.4);
}
char *inches = diagonal_to_str (d / 25.4);
char *vendor_name;
char *ret;
if (g_strcmp0 (output->vendor, "unknown") != 0)
{
if (!manager->pnp_ids)
manager->pnp_ids = gnome_pnp_ids_new ();
if (g_strcmp0 (output->vendor, "unknown") != 0)
{
if (!manager->pnp_ids)
manager->pnp_ids = gnome_pnp_ids_new ();
vendor_name = gnome_pnp_ids_get_pnp_id (manager->pnp_ids,
output->vendor);
vendor_name = gnome_pnp_ids_get_pnp_id (manager->pnp_ids,
output->vendor);
if (!vendor_name)
vendor_name = g_strdup (output->vendor);
}
else
{
if (inches != NULL)
vendor_name = g_strdup (_("Unknown"));
ret = g_strdup_printf ("%s %s", vendor_name, inches);
g_free (vendor_name);
}
else
vendor_name = g_strdup (_("Unknown Display"));
}
{
/* 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"'
*/
ret = g_strdup_printf (_("Unknown %s"), inches);
}
if (inches != NULL)
{
/* TRANSLATORS: this is a monitor vendor name, followed by a
* size in inches, like 'Dell 15"'
*/
ret = g_strdup_printf (_("%s %s"), vendor_name, inches);
g_free (inches);
return ret;
}
else
{
ret = g_strdup (vendor_name);
return g_strdup (output->vendor);
}
out:
g_free (inches);
g_free (vendor_name);
return ret;
}
static gboolean

View File

@@ -880,31 +880,83 @@ 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)
{
Window *_children;
Window *children;
int n_children, i;
GList *windows;
GList *list;
meta_display_grab (screen->display);
if (screen->guard_window == None)
screen->guard_window = create_guard_window (screen->display->xdisplay,
screen);
windows = list_windows (screen);
meta_stack_freeze (screen->stack);
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)
for (list = windows; list != NULL; list = list->next)
{
meta_window_new (screen->display, children[i], TRUE,
META_COMP_EFFECT_NONE);
}
WindowInfo *info = list->data;
g_free (children);
meta_window_new_with_attrs (screen->display, info->xwindow, TRUE,
META_COMP_EFFECT_NONE,
&info->attrs);
}
meta_stack_thaw (screen->stack);
g_list_foreach (windows, (GFunc)g_free, NULL);
g_list_free (windows);
meta_display_ungrab (screen->display);
}
/**

View File

@@ -490,8 +490,12 @@ struct _MetaWindowClass
MetaWindow* meta_window_new (MetaDisplay *display,
Window xwindow,
gboolean must_be_viewable,
MetaCompEffect effect);
gboolean must_be_viewable);
MetaWindow* meta_window_new_with_attrs (MetaDisplay *display,
Window xwindow,
gboolean must_be_viewable,
MetaCompEffect effect,
XWindowAttributes *attrs);
void meta_window_unmanage (MetaWindow *window,
guint32 timestamp);
void meta_window_calc_showing (MetaWindow *window);

View File

@@ -659,6 +659,53 @@ 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
@@ -769,12 +816,12 @@ meta_window_should_attach_to_parent (MetaWindow *window)
}
MetaWindow*
meta_window_new (MetaDisplay *display,
Window xwindow,
gboolean must_be_viewable,
MetaCompEffect effect)
meta_window_new_with_attrs (MetaDisplay *display,
Window xwindow,
gboolean must_be_viewable,
MetaCompEffect effect,
XWindowAttributes *attrs)
{
XWindowAttributes attrs;
MetaWindow *window;
GSList *tmp;
MetaWorkspace *space;
@@ -783,6 +830,8 @@ meta_window_new (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))
@@ -792,28 +841,12 @@ meta_window_new (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;
@@ -823,14 +856,14 @@ meta_window_new (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 &&
@@ -840,28 +873,34 @@ meta_window_new (MetaDisplay *display,
)
) {
meta_verbose ("Not managing our own windows\n");
goto error;
return NULL;
}
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");
goto error;
return NULL;
}
meta_verbose ("must_be_viewable = %d attrs.map_state = %d (%s)\n",
/* 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",
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;
@@ -874,7 +913,9 @@ meta_window_new (MetaDisplay *display,
(state == IconicState || state == NormalState)))
{
meta_verbose ("Deciding not to manage unmapped or unviewable window 0x%lx\n", xwindow);
goto error;
meta_error_trap_pop (display);
meta_display_ungrab (display);
return NULL;
}
existing_wm_state = state;
@@ -882,26 +923,29 @@ meta_window_new (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). 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.
* 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).
*/
XAddToSaveSet (display->xdisplay, xwindow);
meta_error_trap_push_with_return (display);
XAddToSaveSet (display->xdisplay, xwindow);
meta_error_trap_pop_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 };
@@ -923,11 +967,11 @@ meta_window_new (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;
@@ -943,7 +987,9 @@ meta_window_new (MetaDisplay *display,
{
meta_verbose ("Window 0x%lx disappeared just as we tried to manage it\n",
xwindow);
goto error;
meta_error_trap_pop (display);
meta_display_ungrab (display);
return NULL;
}
@@ -972,22 +1018,22 @@ meta_window_new (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);
@@ -995,9 +1041,9 @@ meta_window_new (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;
@@ -1032,7 +1078,7 @@ meta_window_new (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;
@@ -1401,9 +1447,6 @@ meta_window_new (MetaDisplay *display,
set_net_wm_state (window);
}
if (screen->display->compositor)
meta_compositor_add_window (screen->display->compositor, window);
/* Sync stack changes */
meta_stack_thaw (window->screen->stack);
@@ -1440,6 +1483,7 @@ meta_window_new (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;
@@ -1452,10 +1496,6 @@ meta_window_new (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 () */
@@ -1629,8 +1669,6 @@ meta_window_unmanage (MetaWindow *window,
if (window->visible_to_compositor)
meta_compositor_hide_window (window->display->compositor, window,
META_COMP_EFFECT_DESTROY);
meta_compositor_remove_window (window->display->compositor, window);
}
if (window->display->window_with_menu == window)
@@ -2254,6 +2292,7 @@ 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);
@@ -2306,6 +2345,10 @@ 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)
{
@@ -2378,6 +2421,8 @@ idle_calc_showing (gpointer data)
}
}
meta_display_ungrab (first_window->display);
g_slist_free (copy);
g_slist_free (unplaced);
@@ -3093,7 +3138,7 @@ meta_window_show (MetaWindow *window)
if (toplevel_now_mapped != toplevel_was_mapped)
{
if (window->display->compositor)
meta_compositor_window_mapped (window->display->compositor, window);
meta_compositor_add_window (window->display->compositor, window);
}
if (!window->visible_to_compositor)
@@ -3242,13 +3287,7 @@ meta_window_hide (MetaWindow *window)
if (toplevel_now_mapped != toplevel_was_mapped)
{
if (window->display->compositor)
{
/* As above, we may be *mapping* live hidden windows */
if (toplevel_now_mapped)
meta_compositor_window_mapped (window->display->compositor, window);
else
meta_compositor_window_unmapped (window->display->compositor, window);
}
meta_compositor_remove_window (window->display->compositor, window);
}
set_net_wm_state (window);
@@ -4933,11 +4972,6 @@ meta_window_move_resize_internal (MetaWindow *window,
&old_rect,
&new_rect);
/* meta_window_constrain() might have maximized the window after placement,
* changing the borders.
*/
meta_frame_calc_borders (window->frame, &borders);
w = new_rect.width;
h = new_rect.height;
root_x_nw = new_rect.x;
@@ -5727,32 +5761,6 @@ meta_window_get_input_rect (const MetaWindow *window,
*rect = window->rect;
}
static void
get_custom_frame_extents (MetaWindow *window,
GtkBorder *extents)
{
if (!window->has_custom_frame_extents)
return;
*extents = window->custom_frame_extents;
if (META_WINDOW_MAXIMIZED_HORIZONTALLY (window))
{
extents->left = 0;
extents->right = 0;
}
else if (META_WINDOW_TILED_LEFT (window))
extents->left = 0;
else if (META_WINDOW_TILED_RIGHT (window))
extents->right = 0;
if (META_WINDOW_MAXIMIZED_VERTICALLY (window))
{
extents->top = 0;
extents->bottom = 0;
}
}
/**
* meta_window_client_rect_to_frame_rect:
* @window: a #MetaWindow
@@ -5791,15 +5799,16 @@ meta_window_client_rect_to_frame_rect (MetaWindow *window,
}
else
{
GtkBorder extents = { 0 };
get_custom_frame_extents (window, &extents);
frame_rect->x += extents.left;
frame_rect->y += extents.top;
if (frame_rect->width != G_MAXINT)
frame_rect->width -= extents.left + extents.right;
if (frame_rect->height != G_MAXINT)
frame_rect->height -= extents.top + extents.bottom;
if (window->has_custom_frame_extents)
{
const GtkBorder *extents = &window->custom_frame_extents;
frame_rect->x += extents->left;
frame_rect->y += extents->top;
if (frame_rect->width != G_MAXINT)
frame_rect->width -= extents->left + extents->right;
if (frame_rect->height != G_MAXINT)
frame_rect->height -= extents->top + extents->bottom;
}
}
}
@@ -5834,13 +5843,14 @@ meta_window_frame_rect_to_client_rect (MetaWindow *window,
}
else
{
GtkBorder extents = { 0 };
get_custom_frame_extents (window, &extents);
client_rect->x -= extents.left;
client_rect->y -= extents.top;
client_rect->width += extents.left + extents.right;
client_rect->height += extents.top + extents.bottom;
if (window->has_custom_frame_extents)
{
const GtkBorder *extents = &window->custom_frame_extents;
client_rect->x -= extents->left;
client_rect->y -= extents->top;
client_rect->width += extents->left + extents->right;
client_rect->height += extents->top + extents->bottom;
}
}
}
@@ -5971,8 +5981,7 @@ 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->unmanaging)
window->display->grab_window->all_keys_grabbed)
{
meta_topic (META_DEBUG_FOCUS,
"Current focus window %s has global keygrab, not focusing window %s after all\n",
@@ -6043,25 +6052,6 @@ 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);

View File

@@ -77,11 +77,10 @@ gboolean meta_compositor_filter_keybinding (MetaCompositor *compositor,
MetaScreen *screen,
MetaKeyBinding *binding);
void meta_compositor_add_window (MetaCompositor *compositor,
MetaWindow *window);
void meta_compositor_remove_window (MetaCompositor *compositor,
MetaWindow *window);
void meta_compositor_add_window (MetaCompositor *compositor,
MetaWindow *window);
void meta_compositor_remove_window (MetaCompositor *compositor,
MetaWindow *window);
void meta_compositor_show_window (MetaCompositor *compositor,
MetaWindow *window,
MetaCompEffect effect);
@@ -103,10 +102,6 @@ void meta_compositor_unmaximize_window (MetaCompositor *compositor,
MetaRectangle *old_rect,
MetaRectangle *new_rect);
void meta_compositor_window_mapped (MetaCompositor *compositor,
MetaWindow *window);
void meta_compositor_window_unmapped (MetaCompositor *compositor,
MetaWindow *window);
void meta_compositor_sync_window_geometry (MetaCompositor *compositor,
MetaWindow *window,
gboolean did_placement);

View File

@@ -243,10 +243,6 @@ void meta_prefs_set_ignore_request_hide_titlebar (gboolean whether);
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_RIGHT: FILLME
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_UP: FILLME
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_DOWN: FILLME
* @META_KEYBINDING_ACTION_MOVE_TO_MONITOR_LEFT: FILLME
* @META_KEYBINDING_ACTION_MOVE_TO_MONITOR_RIGHT: FILLME
* @META_KEYBINDING_ACTION_MOVE_TO_MONITOR_UP: FILLME
* @META_KEYBINDING_ACTION_MOVE_TO_MONITOR_DOWN: FILLME
* @META_KEYBINDING_ACTION_RAISE_OR_LOWER: FILLME
* @META_KEYBINDING_ACTION_RAISE: FILLME
* @META_KEYBINDING_ACTION_LOWER: FILLME
@@ -340,10 +336,6 @@ typedef enum _MetaKeyBindingAction
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_RIGHT,
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_UP,
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_DOWN,
META_KEYBINDING_ACTION_MOVE_TO_MONITOR_LEFT,
META_KEYBINDING_ACTION_MOVE_TO_MONITOR_RIGHT,
META_KEYBINDING_ACTION_MOVE_TO_MONITOR_UP,
META_KEYBINDING_ACTION_MOVE_TO_MONITOR_DOWN,
META_KEYBINDING_ACTION_RAISE_OR_LOWER,
META_KEYBINDING_ACTION_RAISE,
META_KEYBINDING_ACTION_LOWER,