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
149 changed files with 1736 additions and 1527 deletions

41
COPYING
View File

@@ -1,12 +1,12 @@
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 2, June 1991 Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc., Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.
Preamble Preamble
The licenses for most software are designed to take away your The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public freedom to share and change it. By contrast, the GNU General Public
@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to the GNU Library General Public License instead.) You can apply it to
your programs, too. your programs, too.
When we speak of free software, we are referring to freedom, not When we speak of free software, we are referring to freedom, not
@@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and The precise terms and conditions for copying, distribution and
modification follow. modification follow.
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains 0. This License applies to any program or other work which contains
@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on does not normally print such an announcement, your work based on
the Program is not required to print an announcement.) the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program, identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in and can be reasonably considered independent and separate works in
@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not distribution of the source code, even though third parties are not
compelled to copy the source along with the object code. compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program 4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is otherwise to copy, modify, sublicense or distribute the Program is
@@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License. be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in 8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License original copyright holder who places the Program under this License
@@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally. of promoting the sharing and reuse of software generally.
NO WARRANTY NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it possible use to the public, the best way to achieve this is to make it
@@ -303,16 +303,17 @@ the "copyright" line and a pointer to where the full notice is found.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License along You should have received a copy of the GNU General Public License
with this program; if not, write to the Free Software Foundation, Inc., along with this program; if not, write to the Free Software
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail. Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this If the program is interactive, make it output a short notice like this
when it starts in an interactive mode: when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details. under certain conditions; type `show c' for details.
@@ -335,5 +336,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General library. If this is what you want to do, use the GNU Library General
Public License instead of this License. Public License instead of this License.

37
NEWS
View File

@@ -1,40 +1,3 @@
3.11.4
======
* Don't leave focus on windows that are being unmanaged [Owen; #711618]
* Reduce server grabs [Daniel Drake; #721345, #721709]
* Improve heuristic to determine display output name [Cosimo Cecchi; #721674]
* Atomically unmaximize both directions [Jasper; #722108]
* Misc bug fixes [Debarshi, Andika; #721517, #721674]
Contributors:
Cosimo Cecchi, Daniel Drake, Debarshi Ray, Jasper St. Pierre,
Andika Triwidada, Owen W. Taylor
Translations:
Rafael Ferreira [pt_BR], Dimitris Spingos [el], Daniel Mustieles [es],
Milo Casagrande [it], Yosef Or Boczko [he]
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 3.11.2
====== ======
* Fix resize operations using mouse-button-modifier [Lionel; #710251] * 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_major_version], [3])
m4_define([mutter_minor_version], [11]) m4_define([mutter_minor_version], [11])
m4_define([mutter_micro_version], [4]) m4_define([mutter_micro_version], [2])
m4_define([mutter_version], m4_define([mutter_version],
[mutter_major_version.mutter_minor_version.mutter_micro_version]) [mutter_major_version.mutter_minor_version.mutter_micro_version])
@@ -76,7 +76,7 @@ MUTTER_PC_MODULES="
gsettings-desktop-schemas >= 3.7.3 gsettings-desktop-schemas >= 3.7.3
xcomposite >= 0.2 xfixes xrender xdamage xi >= 1.6.0 xcomposite >= 0.2 xfixes xrender xdamage xi >= 1.6.0
$CLUTTER_PACKAGE >= 1.15.90 $CLUTTER_PACKAGE >= 1.15.90
cogl-1.0 >= 1.17.1 cogl-1.0 >= 1.15.6
upower-glib >= 0.99.0 upower-glib >= 0.99.0
gnome-desktop-3.0 gnome-desktop-3.0
" "

View File

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

View File

@@ -10,8 +10,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: metacity.HEAD\n" "Project-Id-Version: metacity.HEAD\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-11 06:55+0200\n" "POT-Creation-Date: 2013-10-07 17:09+0200\n"
"PO-Revision-Date: 2013-12-11 06:57+0200\n" "PO-Revision-Date: 2013-10-07 17:09+0200\n"
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n" "Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
"Language-Team: Arabic <doc@arabeyes.org>\n" "Language-Team: Arabic <doc@arabeyes.org>\n"
"Language: ar\n" "Language: ar\n"
@@ -212,7 +212,7 @@ msgstr "المنظور مقسوم على اليسار"
#. This probably means that a non-WM compositor like xcompmgr is running; #. This probably means that a non-WM compositor like xcompmgr is running;
#. * we have no way to get it to exit #. * we have no way to get it to exit
#: ../src/compositor/compositor.c:571 #: ../src/compositor/compositor.c:596
#, c-format #, c-format
msgid "" msgid ""
"Another compositing manager is already running on screen %i on display \"%s" "Another compositing manager is already running on screen %i on display \"%s"
@@ -255,12 +255,12 @@ msgstr "ا_نتظر"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "أ_جبر الإنهاء" msgstr "أ_جبر الإنهاء"
#: ../src/core/display.c:415 #: ../src/core/display.c:422
#, c-format #, c-format
msgid "Missing %s extension required for compositing" msgid "Missing %s extension required for compositing"
msgstr "الامتداد %s مفقود، لكنه مطلوب للتركيب" msgstr "الامتداد %s مفقود، لكنه مطلوب للتركيب"
#: ../src/core/display.c:507 #: ../src/core/display.c:514
#, c-format #, c-format
msgid "Failed to open X Window System display '%s'\n" msgid "Failed to open X Window System display '%s'\n"
msgstr "فشل فتح عرض نظام نوافذ إكس '%s'\n" msgstr "فشل فتح عرض نظام نوافذ إكس '%s'\n"
@@ -314,16 +314,16 @@ msgstr "تعذّر إيجاد سِمة! تأكد من وجود %s و احتوا
#: ../src/core/monitor.c:696 #: ../src/core/monitor.c:696
msgid "Built-in display" msgid "Built-in display"
msgstr "شاشة مدمجة" msgstr ""
#. TRANSLATORS: this is a monitor name (in case we don't know #. TRANSLATORS: this is a monitor name (in case we don't know
#. the vendor), it's Unknown followed by a size in inches, #. the vendor), it's Unknown followed by a size in inches,
#. like 'Unknown 15"' #. like 'Unknown 15"'
#. #.
#: ../src/core/monitor.c:724 #: ../src/core/monitor.c:724
#, c-format #, fuzzy, c-format
msgid "Unknown %s" msgid "Unknown %s"
msgstr "غير معروفة %s" msgstr "عنصر مجهول %s"
#: ../src/core/mutter.c:40 #: ../src/core/mutter.c:40
#, c-format #, c-format
@@ -382,12 +382,12 @@ msgstr ""
msgid "Workspace %d" msgid "Workspace %d"
msgstr "مساحة العمل %d" msgstr "مساحة العمل %d"
#: ../src/core/screen.c:540 #: ../src/core/screen.c:537
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "الشاشة %d على العرض '%s' غير صحيحة\n" msgstr "الشاشة %d على العرض '%s' غير صحيحة\n"
#: ../src/core/screen.c:556 #: ../src/core/screen.c:553
#, c-format #, c-format
msgid "" msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --" "Screen %d on display \"%s\" already has a window manager; try using the --"
@@ -396,18 +396,18 @@ msgstr ""
"الشاشة %d على العرض \"%s\" لها مدير نوافذ بالفعل، حاول استعمال خيار التبديل " "الشاشة %d على العرض \"%s\" لها مدير نوافذ بالفعل، حاول استعمال خيار التبديل "
"--replace لتحُلّ محلّ مدير النوافذ الحالي.\n" "--replace لتحُلّ محلّ مدير النوافذ الحالي.\n"
#: ../src/core/screen.c:583 #: ../src/core/screen.c:580
#, c-format #, c-format
msgid "" msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n" "Could not acquire window manager selection on screen %d display \"%s\"\n"
msgstr "لا يمكن الحصول على اختيار مدير النوافذ على الشاشة %d العرض \"%s\"\n" msgstr "لا يمكن الحصول على اختيار مدير النوافذ على الشاشة %d العرض \"%s\"\n"
#: ../src/core/screen.c:661 #: ../src/core/screen.c:658
#, c-format #, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n" msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "الشاشة %d على العرض \"%s\" لها مدير نوافذ بالفعل\n" msgstr "الشاشة %d على العرض \"%s\" لها مدير نوافذ بالفعل\n"
#: ../src/core/screen.c:853 #: ../src/core/screen.c:850
#, c-format #, c-format
msgid "Could not release screen %d on display \"%s\"\n" msgid "Could not release screen %d on display \"%s\"\n"
msgstr "لا يمكن ترك الشاشة %d على العرض \"%s\"\n" msgstr "لا يمكن ترك الشاشة %d على العرض \"%s\"\n"
@@ -503,7 +503,7 @@ msgid "Window manager error: "
msgstr "خطأ مدير النوافذ: " msgstr "خطأ مدير النوافذ: "
#. first time through #. first time through
#: ../src/core/window.c:7615 #: ../src/core/window.c:7515
#, c-format #, c-format
msgid "" msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER " "Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@@ -519,7 +519,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain #. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work. #. * about these apps but make them work.
#. #.
#: ../src/core/window.c:8537 #: ../src/core/window.c:8345
#, c-format #, c-format
msgid "" msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size " "Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@@ -528,22 +528,22 @@ msgstr ""
"ضبطت النافذة %s تلميحة MWM يدل على انه لا يمكن تحجيمها، لكنها تضبط الحجم " "ضبطت النافذة %s تلميحة MWM يدل على انه لا يمكن تحجيمها، لكنها تضبط الحجم "
"الأدنى %d x %d و الحجم الأقصى %d x %d، هذا ليس له أي معنى.\n" "الأدنى %d x %d و الحجم الأقصى %d x %d، هذا ليس له أي معنى.\n"
#: ../src/core/window-props.c:350 #: ../src/core/window-props.c:347
#, c-format #, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n" msgid "Application set a bogus _NET_WM_PID %lu\n"
msgstr "ضبط التطبيق رمز 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 #, c-format
msgid "%s (on %s)" msgid "%s (on %s)"
msgstr "%s (على %s)" msgstr "%s (على %s)"
#: ../src/core/window-props.c:1549 #: ../src/core/window-props.c:1546
#, c-format #, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n" msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "نافذة WM_TRANSIENT_FOR 0x%lx غير صحيحة ل %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 #, fuzzy, c-format
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n" msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
msgstr "نافذة WM_TRANSIENT_FOR 0x%lx غير صحيحة ل %s.\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 " "GTK custom color specification must have color name and fallback in "
"parentheses, e.g. gtk:custom(foo,bar); could not parse \"%s\"" "parentheses, e.g. gtk:custom(foo,bar); could not parse \"%s\""
msgstr "" msgstr ""
"يحب أن يكون لتخصيص حالة ألوان جتك قوس غلق قائم بعد الحالة/ مثال " "يحب أن يكون لتخصيص حالة ألوان جتك قوس غلق قائم بعد الحالة/ مثال gtk:"
"gtk:fg[NORMAL]، NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\"" "fg[NORMAL]، NORMAL هنا هو الحالة، لا يمكن تحليل \"%s\""
#: ../src/ui/theme.c:1219 #: ../src/ui/theme.c:1219
#, c-format #, c-format

745
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. # Pablo Gonzalo del Campo <pablodc@bigfoot.com>,2002,2003.
# Francisco Javier F. Serrador <serrador@cvs.gnome.org>, 2004, 2005, 2006. # Francisco Javier F. Serrador <serrador@cvs.gnome.org>, 2004, 2005, 2006.
# Jorge González <jorgegonz@svn.gnome.org>, 2007, 2008, 2009, 2010, 2011. # 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 "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: mutter.master\n" "Project-Id-Version: mutter.master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=mutter&keywords=I18N+L10N&component=general\n" "product=mutter&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-01-07 17:48+0000\n" "POT-Creation-Date: 2013-08-20 15:46+0000\n"
"PO-Revision-Date: 2014-01-08 10:37+0100\n" "PO-Revision-Date: 2013-08-27 18:27+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\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" "Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Gtranslator 2.91.5\n" "X-Generator: Gtranslator 2.91.6\n"
#: ../src/50-mutter-navigation.xml.in.h:1 #: ../src/50-mutter-navigation.xml.in.h:1
msgid "Navigation" 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; #. This probably means that a non-WM compositor like xcompmgr is running;
#. * we have no way to get it to exit #. * we have no way to get it to exit
#: ../src/compositor/compositor.c:571 #: ../src/compositor/compositor.c:596
#, c-format #, c-format
msgid "" msgid ""
"Another compositing manager is already running on screen %i on display \"%s" "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 " "Ya existe un gestor de composición ejecutándose en la monitor %i, pantalla "
"«%s»." "«%s»."
#: ../src/compositor/meta-background.c:1075 #: ../src/compositor/meta-background.c:1076
msgid "background texture could not be created from file" msgid "background texture could not be created from file"
msgstr "no se pudo crear la textura de fondo a partir de archivo" msgstr "no se pudo crear la textura de fondo a partir de archivo"
@@ -262,17 +262,17 @@ msgstr "_Esperar"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Forzar la salida" msgstr "_Forzar la salida"
#: ../src/core/display.c:415 #: ../src/core/display.c:421
#, c-format #, c-format
msgid "Missing %s extension required for compositing" msgid "Missing %s extension required for compositing"
msgstr "Falta la extensión %s requerida para la composición" msgstr "Falta la extensión %s requerida para la composición"
#: ../src/core/display.c:507 #: ../src/core/display.c:513
#, c-format #, c-format
msgid "Failed to open X Window System display '%s'\n" msgid "Failed to open X Window System display '%s'\n"
msgstr "Ocurrió un error al abrir la pantalla de X Window System «%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 #, c-format
msgid "" msgid ""
"Some other program is already using the key %s with modifiers %x as a " "Some other program is already using the key %s with modifiers %x as a "
@@ -281,7 +281,7 @@ msgstr ""
"Algún otro programa ya está usando la clave %s con el modificador %x como " "Algún otro programa ya está usando la clave %s con el modificador %x como "
"una vinculación\n" "una vinculación\n"
#: ../src/core/keybindings.c:1334 #: ../src/core/keybindings.c:1333
#, c-format #, c-format
msgid "\"%s\" is not a valid accelerator\n" msgid "\"%s\" is not a valid accelerator\n"
msgstr "«%s» no es un acelerador válido\n" msgstr "«%s» no es un acelerador válido\n"
@@ -327,23 +327,15 @@ msgstr ""
msgid "Built-in display" msgid "Built-in display"
msgstr "Pantalla integrada" msgstr "Pantalla integrada"
#: ../src/core/monitor.c:727 #. TRANSLATORS: this is a monitor name (in case we don't know
#| msgid "Unknown %s" #. the vendor), it's Unknown followed by a size in inches,
msgid "Unknown" #. like 'Unknown 15"'
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"'
#. #.
#: ../src/core/monitor.c:737 #: ../src/core/monitor.c:730
#, c-format #, c-format
msgid "%s %s" #| msgid "Unknown element %s"
msgstr "%s %s" msgid "Unknown %s"
msgstr "Pantalla de %s desconocida"
#: ../src/core/mutter.c:40 #: ../src/core/mutter.c:40
#, c-format #, c-format
@@ -406,12 +398,12 @@ msgstr ""
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Área de trabajo %d" msgstr "Área de trabajo %d"
#: ../src/core/screen.c:540 #: ../src/core/screen.c:535
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "La ventana %d en la pantalla «%s» no es válida\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 #, c-format
msgid "" msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --" "Screen %d on display \"%s\" already has a window manager; try using the --"
@@ -420,7 +412,7 @@ msgstr ""
"La ventana %d en la pantalla «%s» ya tiene un gestor de ventanas, intente " "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" "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 #, c-format
msgid "" msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n" "Could not acquire window manager selection on screen %d display \"%s\"\n"
@@ -428,12 +420,12 @@ msgstr ""
"No se ha podido obtener la selección del gestor de ventanas en la ventana %d " "No se ha podido obtener la selección del gestor de ventanas en la ventana %d "
"en la pantalla «%s»\n" "en la pantalla «%s»\n"
#: ../src/core/screen.c:661 #: ../src/core/screen.c:656
#, c-format #, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n" msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "La ventana %d en la pantalla «%s» ya tiene un gestor de ventanas\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 #, c-format
msgid "Could not release screen %d on display \"%s\"\n" msgid "Could not release screen %d on display \"%s\"\n"
msgstr "No se ha podido liberar el monitor %d en la pantalla «%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: " msgstr "Error del gestor de ventanas: "
#. first time through #. first time through
#: ../src/core/window.c:7597 #: ../src/core/window.c:7533
#, c-format #, c-format
msgid "" msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER " "Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@@ -547,7 +539,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain #. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work. #. * about these apps but make them work.
#. #.
#: ../src/core/window.c:8519 #: ../src/core/window.c:8257
#, c-format #, c-format
msgid "" msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size " "Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@@ -557,23 +549,23 @@ msgstr ""
"redimensionable, pero configuró el tamaño mínimo a %d x %d y el tamaño " "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" "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 #, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n" msgid "Application set a bogus _NET_WM_PID %lu\n"
msgstr "La aplicación establecio un _NET_WM_PID %lu erróneo\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 #, c-format
msgid "%s (on %s)" msgid "%s (on %s)"
msgstr "%s (on %s)" msgstr "%s (on %s)"
#: ../src/core/window-props.c:1549 #: ../src/core/window-props.c:1546
#, c-format #, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n" msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "" msgstr ""
"WM_TRANSIENT_FOR no válido para la ventana 0x%lx especificada para %s.\n" "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 #, c-format
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n" msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
msgstr "WM_TRANSIENT_FOR ventana 0x%lx para %s crearía un bucle.\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" msgid "Line %d character %d: %s"
msgstr "Línea %d carácter %d: %s" msgstr "Línea %d carácter %d: %s"
#: ../src/ui/theme-parser.c:483 #: ../src/ui/theme-parser.c:479
#, c-format #, c-format
msgid "Attribute \"%s\" repeated twice on the same <%s> element" msgid "Attribute \"%s\" repeated twice on the same <%s> element"
msgstr "El atributo «%s» se ha repetido dos veces en el mismo elemento <%s>" 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 #, c-format
msgid "Attribute \"%s\" is invalid on <%s> element in this context" 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" 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 #, c-format
msgid "Could not parse \"%s\" as an integer" msgid "Could not parse \"%s\" as an integer"
msgstr "No se ha podido interpretar «%s» como un entero" 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 #, c-format
msgid "Did not understand trailing characters \"%s\" in string \"%s\"" msgid "Did not understand trailing characters \"%s\" in string \"%s\""
msgstr "No se comprenden los caracteres sobrantes «%s» en la cadena «%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 #, c-format
msgid "Integer %ld must be positive" msgid "Integer %ld must be positive"
msgstr "El entero %ld debe ser positivo" msgstr "El entero %ld debe ser positivo"
#: ../src/ui/theme-parser.c:625 #: ../src/ui/theme-parser.c:621
#, c-format #, c-format
msgid "Integer %ld is too large, current max is %d" msgid "Integer %ld is too large, current max is %d"
msgstr "El entero %ld es demasiado grande, el máximo actual es %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 #, c-format
msgid "Could not parse \"%s\" as a floating point number" msgid "Could not parse \"%s\" as a floating point number"
msgstr "No se ha podido interpretar «%s» como un número de coma flotante" 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 #, c-format
msgid "Boolean values must be \"true\" or \"false\" not \"%s\"" msgid "Boolean values must be \"true\" or \"false\" not \"%s\""
msgstr "Los valores booleanos deben ser «true» o «false» no «%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 #, c-format
msgid "Angle must be between 0.0 and 360.0, was %g\n" 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" 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 #, c-format
msgid "Alpha must be between 0.0 (invisible) and 1.0 (fully opaque), was %g\n" msgid "Alpha must be between 0.0 (invisible) and 1.0 (fully opaque), was %g\n"
msgstr "" msgstr ""
"El valor de alfa debe estar entre 0.0 (invisible) y 1.0 (completamente " "El valor de alfa debe estar entre 0.0 (invisible) y 1.0 (completamente "
"opaco), fue %g\n" "opaco), fue %g\n"
#: ../src/ui/theme-parser.c:867 #: ../src/ui/theme-parser.c:863
#, c-format #, c-format
msgid "" msgid ""
"Invalid title scale \"%s\" (must be one of xx-small,x-small,small,medium," "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," "Escala de título no válida «%s» (debe ser una de xx-small,x-small,small,"
"medium,large,x-large,xx-large)\n" "medium,large,x-large,xx-large)\n"
#: ../src/ui/theme-parser.c:1023 ../src/ui/theme-parser.c:1086 #: ../src/ui/theme-parser.c:1019 ../src/ui/theme-parser.c:1082
#: ../src/ui/theme-parser.c:1120 ../src/ui/theme-parser.c:1223 #: ../src/ui/theme-parser.c:1116 ../src/ui/theme-parser.c:1219
#, c-format #, c-format
msgid "<%s> name \"%s\" used a second time" msgid "<%s> name \"%s\" used a second time"
msgstr "<%s> nombre «%s» usado una segunda vez" 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:1031 ../src/ui/theme-parser.c:1128
#: ../src/ui/theme-parser.c:1235 #: ../src/ui/theme-parser.c:1231
#, c-format #, c-format
msgid "<%s> parent \"%s\" has not been defined" msgid "<%s> parent \"%s\" has not been defined"
msgstr "El <%s> padre «%s» no ha sido definido" msgstr "El <%s> padre «%s» no ha sido definido"
#: ../src/ui/theme-parser.c:1145 #: ../src/ui/theme-parser.c:1141
#, c-format #, c-format
msgid "<%s> geometry \"%s\" has not been defined" msgid "<%s> geometry \"%s\" has not been defined"
msgstr "La <%s> geometría «%s» no ha sido definida" msgstr "La <%s> geometría «%s» no ha sido definida"
#: ../src/ui/theme-parser.c:1158 #: ../src/ui/theme-parser.c:1154
#, c-format #, c-format
msgid "<%s> must specify either a geometry or a parent that has a geometry" msgid "<%s> must specify either a geometry or a parent that has a geometry"
msgstr "" msgstr ""
"<%s> debe especificar o una geometría o un padre para tenga una geometría" "<%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" 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" 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 #, c-format
msgid "Unknown type \"%s\" on <%s> element" msgid "Unknown type \"%s\" on <%s> element"
msgstr "Tipo «%s» desconocido en el elemento <%s>" msgstr "Tipo «%s» desconocido en el elemento <%s>"
#: ../src/ui/theme-parser.c:1279 #: ../src/ui/theme-parser.c:1275
#, c-format #, c-format
msgid "Unknown style_set \"%s\" on <%s> element" msgid "Unknown style_set \"%s\" on <%s> element"
msgstr "style_set «%s» desconocido en el elemento <%s>" msgstr "style_set «%s» desconocido en el elemento <%s>"
#: ../src/ui/theme-parser.c:1287 #: ../src/ui/theme-parser.c:1283
#, c-format #, c-format
msgid "Window type \"%s\" has already been assigned a style set" 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" 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:1313 ../src/ui/theme-parser.c:1377
#: ../src/ui/theme-parser.c:1607 ../src/ui/theme-parser.c:2842 #: ../src/ui/theme-parser.c:1603 ../src/ui/theme-parser.c:2838
#: ../src/ui/theme-parser.c:2888 ../src/ui/theme-parser.c:3038 #: ../src/ui/theme-parser.c:2884 ../src/ui/theme-parser.c:3034
#: ../src/ui/theme-parser.c:3274 ../src/ui/theme-parser.c:3312 #: ../src/ui/theme-parser.c:3273 ../src/ui/theme-parser.c:3311
#: ../src/ui/theme-parser.c:3350 ../src/ui/theme-parser.c:3388 #: ../src/ui/theme-parser.c:3349 ../src/ui/theme-parser.c:3387
#, c-format #, c-format
msgid "Element <%s> is not allowed below <%s>" msgid "Element <%s> is not allowed below <%s>"
msgstr "El elemento <%s> no está permitido debajo de <%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:1427 ../src/ui/theme-parser.c:1441
#: ../src/ui/theme-parser.c:1490 #: ../src/ui/theme-parser.c:1486
msgid "" msgid ""
"Cannot specify both \"button_width\"/\"button_height\" and \"aspect_ratio\" " "Cannot specify both \"button_width\"/\"button_height\" and \"aspect_ratio\" "
"for buttons" "for buttons"
@@ -1385,123 +1377,123 @@ msgstr ""
"No se puede especificar ambos «button_width»/«button_height» y «aspect " "No se puede especificar ambos «button_width»/«button_height» y «aspect "
"ratio» para los botones" "ratio» para los botones"
#: ../src/ui/theme-parser.c:1454 #: ../src/ui/theme-parser.c:1450
#, c-format #, c-format
msgid "Distance \"%s\" is unknown" msgid "Distance \"%s\" is unknown"
msgstr "La distancia «%s» es desconocida" msgstr "La distancia «%s» es desconocida"
#: ../src/ui/theme-parser.c:1499 #: ../src/ui/theme-parser.c:1495
#, c-format #, c-format
msgid "Aspect ratio \"%s\" is unknown" msgid "Aspect ratio \"%s\" is unknown"
msgstr "La proporción «%s» es desconocido" msgstr "La proporción «%s» es desconocido"
#: ../src/ui/theme-parser.c:1561 #: ../src/ui/theme-parser.c:1557
#, c-format #, c-format
msgid "Border \"%s\" is unknown" msgid "Border \"%s\" is unknown"
msgstr "El borde «%s» es desconocido" msgstr "El borde «%s» es desconocido"
#: ../src/ui/theme-parser.c:1872 #: ../src/ui/theme-parser.c:1868
#, c-format #, c-format
msgid "No \"start_angle\" or \"from\" attribute on element <%s>" msgid "No \"start_angle\" or \"from\" attribute on element <%s>"
msgstr "No hay atributo «start_angle» o «from» en el elemento <%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 #, c-format
msgid "No \"extent_angle\" or \"to\" attribute on element <%s>" msgid "No \"extent_angle\" or \"to\" attribute on element <%s>"
msgstr "No hay atributo «extent_angle» o «to» en el elemento <%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 #, c-format
msgid "Did not understand value \"%s\" for type of gradient" msgid "Did not understand value \"%s\" for type of gradient"
msgstr "No se entendió el valor «%s» para el tipo de degradado" 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 #, c-format
msgid "Did not understand fill type \"%s\" for <%s> element" msgid "Did not understand fill type \"%s\" for <%s> element"
msgstr "No se entendió en tipo de relleno «%s» para el elemento <%s>" 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:2360 ../src/ui/theme-parser.c:2443
#: ../src/ui/theme-parser.c:2510 #: ../src/ui/theme-parser.c:2506
#, c-format #, c-format
msgid "Did not understand state \"%s\" for <%s> element" msgid "Did not understand state \"%s\" for <%s> element"
msgstr "No se entendió estado «%s» para el elemento <%s>" 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 #, c-format
msgid "Did not understand shadow \"%s\" for <%s> element" msgid "Did not understand shadow \"%s\" for <%s> element"
msgstr "No se entendió enrollar «%s» para el elemento <%s>" msgstr "No se entendió enrollar «%s» para el elemento <%s>"
#: ../src/ui/theme-parser.c:2384 #: ../src/ui/theme-parser.c:2380
#, c-format #, c-format
msgid "Did not understand arrow \"%s\" for <%s> element" msgid "Did not understand arrow \"%s\" for <%s> element"
msgstr "No se entendió la flecha «%s» para el elemento <%s>" 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 #, c-format
msgid "No <draw_ops> called \"%s\" has been defined" msgid "No <draw_ops> called \"%s\" has been defined"
msgstr "No se ha definido una <draw_ops> llamada «%s»" 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 #, c-format
msgid "Including draw_ops \"%s\" here would create a circular reference" msgid "Including draw_ops \"%s\" here would create a circular reference"
msgstr "Incluir el draw_ops «%s» aquí podría crear una referencia circular" 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 #, c-format
msgid "Unknown position \"%s\" for frame piece" msgid "Unknown position \"%s\" for frame piece"
msgstr "Posición desconocida «%s» para la pieza del marco" msgstr "Posición desconocida «%s» para la pieza del marco"
#: ../src/ui/theme-parser.c:2929 #: ../src/ui/theme-parser.c:2925
#, c-format #, c-format
msgid "Frame style already has a piece at position %s" msgid "Frame style already has a piece at position %s"
msgstr "El estilo del marco ya tiene una pieza en la posición %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 #, c-format
msgid "No <draw_ops> with the name \"%s\" has been defined" msgid "No <draw_ops> with the name \"%s\" has been defined"
msgstr "No se ha definido ninguna <draw_ops> con el nombre «%s»" 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 #, c-format
msgid "Unknown function \"%s\" for button" msgid "Unknown function \"%s\" for button"
msgstr "Función desconocida «%s» para el botón" msgstr "Función desconocida «%s» para el botón"
#: ../src/ui/theme-parser.c:2986 #: ../src/ui/theme-parser.c:2982
#, c-format #, c-format
msgid "Button function \"%s\" does not exist in this version (%d, need %d)" 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)" 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 #, c-format
msgid "Unknown state \"%s\" for button" msgid "Unknown state \"%s\" for button"
msgstr "Estado desconocido «%s» para el botón" msgstr "Estado desconocido «%s» para el botón"
#: ../src/ui/theme-parser.c:3006 #: ../src/ui/theme-parser.c:3002
#, c-format #, c-format
msgid "Frame style already has a button for function %s state %s" 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" 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 #, c-format
msgid "\"%s\" is not a valid value for focus attribute" msgid "\"%s\" is not a valid value for focus attribute"
msgstr "«%s» no es valor válido para el atributo foco" 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 #, c-format
msgid "\"%s\" is not a valid value for state attribute" msgid "\"%s\" is not a valid value for state attribute"
msgstr "«%s» no es un valor válido para el atributo estado" 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 #, c-format
msgid "A style called \"%s\" has not been defined" msgid "A style called \"%s\" has not been defined"
msgstr "No se ha definido ningún estilo llamado «%s»" 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 #, c-format
msgid "\"%s\" is not a valid value for resize attribute" msgid "\"%s\" is not a valid value for resize attribute"
msgstr "«%s» no es un estado válido para el atributo resize" 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 #, c-format
msgid "" msgid ""
"Should not have \"resize\" attribute on <%s> element for maximized/shaded " "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 " "No debería tener un atributo «resize» en el elemento <%s> para los estados "
"maximizado/enrollado" "maximizado/enrollado"
#: ../src/ui/theme-parser.c:3165 #: ../src/ui/theme-parser.c:3161
#, c-format #, c-format
msgid "" msgid ""
"Should not have \"resize\" attribute on <%s> element for maximized states" "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 " "No debería tener un atributo «resize» en el elemento <%s> para los estados "
"maximizados." "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 #, c-format
msgid "Style has already been specified for state %s resize %s focus %s" msgid "Style has already been specified for state %s resize %s focus %s"
msgstr "" msgstr ""
"El estilo ya ha sido especificado para estado %s redimensionado %s foco %s" "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:3186 ../src/ui/theme-parser.c:3197
#: ../src/ui/theme-parser.c:3212 ../src/ui/theme-parser.c:3234 #: ../src/ui/theme-parser.c:3208 ../src/ui/theme-parser.c:3233
#: ../src/ui/theme-parser.c:3245 ../src/ui/theme-parser.c:3256 #: ../src/ui/theme-parser.c:3244 ../src/ui/theme-parser.c:3255
#, c-format #, c-format
msgid "Style has already been specified for state %s focus %s" msgid "Style has already been specified for state %s focus %s"
msgstr "El estilo ya ha sido especificado para estado %s foco %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 "" msgid ""
"Can't have a two draw_ops for a <piece> element (theme specified a draw_ops " "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)" "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 un atributo draw_ops y también un elemento <draw_ops> o ha "
"especificado los dos elementos)" "especificado los dos elementos)"
#: ../src/ui/theme-parser.c:3333 #: ../src/ui/theme-parser.c:3332
msgid "" msgid ""
"Can't have a two draw_ops for a <button> element (theme specified a draw_ops " "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)" "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 un atributo draw_ops y también un elemento <draw_ops> o ha "
"especificado los dos elementos)" "especificado los dos elementos)"
#: ../src/ui/theme-parser.c:3371 #: ../src/ui/theme-parser.c:3370
msgid "" msgid ""
"Can't have a two draw_ops for a <menu_icon> element (theme specified a " "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)" "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 un atributo draw_ops y también un elemento <draw_ops> o ha "
"especificado los dos elementos)" "especificado los dos elementos)"
#: ../src/ui/theme-parser.c:3435 #: ../src/ui/theme-parser.c:3434
#, c-format #, c-format
msgid "Bad version specification '%s'" msgid "Bad version specification '%s'"
msgstr "Especificación de versión «%s» errónea" msgstr "Especificación de versión «%s» errónea"
#: ../src/ui/theme-parser.c:3508 #: ../src/ui/theme-parser.c:3507
msgid "" msgid ""
"\"version\" attribute cannot be used in metacity-theme-1.xml or metacity-" "\"version\" attribute cannot be used in metacity-theme-1.xml or metacity-"
"theme-2.xml" "theme-2.xml"
@@ -1571,19 +1563,19 @@ msgstr ""
"No se puede usar el atributo «version» con metacity-theme-1.xml o metacity-" "No se puede usar el atributo «version» con metacity-theme-1.xml o metacity-"
"theme-2.xml" "theme-2.xml"
#: ../src/ui/theme-parser.c:3531 #: ../src/ui/theme-parser.c:3530
#, c-format #, c-format
msgid "Theme requires version %s but latest supported theme version is %d.%d" msgid "Theme requires version %s but latest supported theme version is %d.%d"
msgstr "" msgstr ""
"El tema requiere la versión %s pero la última versión soportada del tema es " "El tema requiere la versión %s pero la última versión soportada del tema es "
"la %d.%d" "la %d.%d"
#: ../src/ui/theme-parser.c:3563 #: ../src/ui/theme-parser.c:3562
#, c-format #, c-format
msgid "Outermost element in theme must be <metacity_theme> not <%s>" 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>" 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 #, c-format
msgid "" msgid ""
"Element <%s> is not allowed inside a name/author/date/description element" "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/" "El elemento <%s> no esta permitido dentro de un elemento name/author/date/"
"description" "description"
#: ../src/ui/theme-parser.c:3588 #: ../src/ui/theme-parser.c:3587
#, c-format #, c-format
msgid "Element <%s> is not allowed inside a <constant> element" msgid "Element <%s> is not allowed inside a <constant> element"
msgstr "El elemento <%s> no esta permitido dentro de un elemento <constant>" 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 #, c-format
msgid "" msgid ""
"Element <%s> is not allowed inside a distance/border/aspect_ratio element" "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/" "El elemento <%s> no esta permitido dentro de un elemento distance/border/"
"aspect_ratio" "aspect_ratio"
#: ../src/ui/theme-parser.c:3622 #: ../src/ui/theme-parser.c:3621
#, c-format #, c-format
msgid "Element <%s> is not allowed inside a draw operation element" msgid "Element <%s> is not allowed inside a draw operation element"
msgstr "" msgstr ""
"El elemento <%s> no esta permitido dentro de un elemento de operación de " "El elemento <%s> no esta permitido dentro de un elemento de operación de "
"dibujo" "dibujo"
#: ../src/ui/theme-parser.c:3632 ../src/ui/theme-parser.c:3662 #: ../src/ui/theme-parser.c:3631 ../src/ui/theme-parser.c:3661
#: ../src/ui/theme-parser.c:3667 ../src/ui/theme-parser.c:3672 #: ../src/ui/theme-parser.c:3666 ../src/ui/theme-parser.c:3671
#, c-format #, c-format
msgid "Element <%s> is not allowed inside a <%s> element" msgid "Element <%s> is not allowed inside a <%s> element"
msgstr "El elemento <%s> no esta permitido dentro del elemento <%s>" 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" msgid "No draw_ops provided for frame piece"
msgstr "No se dio draw_ops para la pieza del cuadro" 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" msgid "No draw_ops provided for button"
msgstr "No se dio draw_ops para botón" msgstr "No se dio draw_ops para botón"
#: ../src/ui/theme-parser.c:3969 #: ../src/ui/theme-parser.c:3968
#, c-format #, c-format
msgid "No text is allowed inside element <%s>" msgid "No text is allowed inside element <%s>"
msgstr "No se permite texto dentro del elemento <%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:4026 ../src/ui/theme-parser.c:4038
#: ../src/ui/theme-parser.c:4051 ../src/ui/theme-parser.c:4063 #: ../src/ui/theme-parser.c:4050 ../src/ui/theme-parser.c:4062
#: ../src/ui/theme-parser.c:4075 #: ../src/ui/theme-parser.c:4074
#, c-format #, c-format
msgid "<%s> specified twice for this theme" msgid "<%s> specified twice for this theme"
msgstr "<%s> especificado dos veces para este tema" msgstr "<%s> especificado dos veces para este tema"
#: ../src/ui/theme-parser.c:4337 #: ../src/ui/theme-parser.c:4336
#, c-format #, c-format
msgid "Failed to find a valid file for theme %s\n" msgid "Failed to find a valid file for theme %s\n"
msgstr "Falló al encontrar un archivo válido para el tema%s\n" msgstr "Falló al encontrar un archivo válido para el tema%s\n"

471
po/he.po

File diff suppressed because it is too large Load Diff

220
po/it.po
View File

@@ -1,18 +1,19 @@
# Italian translation for Mutter. # Italian translation for Mutter.
# Based on Italian translation for Metacity # Based on Italian translation for Metacity
# This file is distributed under the same license as metacity package # 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. # Pier Luigi Fiorini <plfiorini@libero.it>, 2002.
# Lapo Calamandrei <lapo.calamandrei@virgilio.it>, 2003. # Lapo Calamandrei <lapo.calamandrei@virgilio.it>, 2003.
# Luca Ferretti <lferrett@gnome.org>, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012. # 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 "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: mutter\n" "Project-Id-Version: mutter\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-10 08:54+0100\n" "POT-Creation-Date: 2013-08-24 19:11+0200\n"
"PO-Revision-Date: 2014-01-10 08:54+0100\n" "PO-Revision-Date: 2013-08-24 19:11+0200\n"
"Last-Translator: Milo Casagrande <milo@ubuntu.com>\n" "Last-Translator: Milo Casagrande <milo@ubuntu.com>\n"
"Language-Team: Italian <tp@lists.linux.it>\n" "Language-Team: Italian <tp@lists.linux.it>\n"
"Language: 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; #. This probably means that a non-WM compositor like xcompmgr is running;
#. * we have no way to get it to exit #. * we have no way to get it to exit
#: ../src/compositor/compositor.c:571 #: ../src/compositor/compositor.c:596
#, c-format #, c-format
msgid "" msgid ""
"Another compositing manager is already running on screen %i on display \"%s" "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 " "Un altro compositing manager è già in esecuzione sullo schermo %i sul "
"display «%s»." "display «%s»."
#: ../src/compositor/meta-background.c:1075 #: ../src/compositor/meta-background.c:1076
msgid "background texture could not be created from file" msgid "background texture could not be created from file"
msgstr "La texture dello sfondo non può essere creata dal file" msgstr "La texture dello sfondo non può essere creata dal file"
@@ -265,17 +266,17 @@ msgstr "_Attendi"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Forza uscita" msgstr "_Forza uscita"
#: ../src/core/display.c:415 #: ../src/core/display.c:422
#, c-format #, c-format
msgid "Missing %s extension required for compositing" msgid "Missing %s extension required for compositing"
msgstr "Estensione %s richiesta per il compositing mancante" msgstr "Estensione %s richiesta per il compositing mancante"
#: ../src/core/display.c:507 #: ../src/core/display.c:514
#, c-format #, c-format
msgid "Failed to open X Window System display '%s'\n" msgid "Failed to open X Window System display '%s'\n"
msgstr "Apertura del display «%s» di X Window System non riuscita\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 #, c-format
msgid "" msgid ""
"Some other program is already using the key %s with modifiers %x as a " "Some other program is already using the key %s with modifiers %x as a "
@@ -284,7 +285,7 @@ msgstr ""
"Qualche altro programma sta già usando il tasto %s con i modificatori %x " "Qualche altro programma sta già usando il tasto %s con i modificatori %x "
"come una associazione di tasti\n" "come una associazione di tasti\n"
#: ../src/core/keybindings.c:1334 #: ../src/core/keybindings.c:1333
#, c-format #, c-format
msgid "\"%s\" is not a valid accelerator\n" msgid "\"%s\" is not a valid accelerator\n"
msgstr "«%s» non è una scorciatoia valida\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 " "Non è stato trovato alcun tema. Assicurarsi che %s esista e contenga i temi "
"standard.\n" "standard.\n"
#: ../src/core/monitor.c:701 #: ../src/core/monitor.c:702
msgid "Built-in display" msgid "Built-in display"
msgstr "Display integrato" msgstr "Display integrato"
#: ../src/core/monitor.c:726 #. TRANSLATORS: this is a monitor name (in case we don't know
msgid "Unknown" #. the vendor), it's Unknown followed by a size in inches,
msgstr "Sconosciuto" #. like 'Unknown 15"'
#: ../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"'
#. #.
#: ../src/core/monitor.c:736 #: ../src/core/monitor.c:730
#, c-format #, c-format
msgid "%s %s" msgid "Unknown %s"
msgstr "%s %s" msgstr "Sconosciuto %s"
#: ../src/core/mutter.c:40 #: ../src/core/mutter.c:40
#, c-format #, c-format
@@ -407,12 +401,12 @@ msgstr ""
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Spazio di lavoro %d" msgstr "Spazio di lavoro %d"
#: ../src/core/screen.c:540 #: ../src/core/screen.c:537
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "Lo schermo %d nel display «%s» non è valido\n" msgstr "Lo schermo %d nel display «%s» non è valido\n"
#: ../src/core/screen.c:556 #: ../src/core/screen.c:553
#, c-format #, c-format
msgid "" msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --" "Screen %d on display \"%s\" already has a window manager; try using the --"
@@ -421,7 +415,7 @@ msgstr ""
"Lo schermo %d sul display «%s» ha già un window manager; provare a " "Lo schermo %d sul display «%s» ha già un window manager; provare a "
"utilizzare l'opzione --replace per sostituirlo.\n" "utilizzare l'opzione --replace per sostituirlo.\n"
#: ../src/core/screen.c:583 #: ../src/core/screen.c:580
#, c-format #, c-format
msgid "" msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n" "Could not acquire window manager selection on screen %d display \"%s\"\n"
@@ -429,12 +423,12 @@ msgstr ""
"Impossibile acquisire la selezione del window manager per lo schermo %d nel " "Impossibile acquisire la selezione del window manager per lo schermo %d nel "
"display «%s»\n" "display «%s»\n"
#: ../src/core/screen.c:661 #: ../src/core/screen.c:658
#, c-format #, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n" msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "Lo schermo %d sul display «%s» ha già un 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 #, c-format
msgid "Could not release screen %d on display \"%s\"\n" msgid "Could not release screen %d on display \"%s\"\n"
msgstr "Impossibile rilasciare lo schermo %d sul 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: " msgstr "Errore del window manager: "
#. first time through #. first time through
#: ../src/core/window.c:7590 #: ../src/core/window.c:7533
#, c-format #, c-format
msgid "" msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER " "Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@@ -549,7 +543,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain #. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work. #. * about these apps but make them work.
#. #.
#: ../src/core/window.c:8512 #: ../src/core/window.c:8257
#, c-format #, c-format
msgid "" msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size " "Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@@ -559,26 +553,26 @@ msgstr ""
"ridimensionabile, ma ha impostato la dimensione minima %d x %d e la " "ridimensionabile, ma ha impostato la dimensione minima %d x %d e la "
"dimensione massima %d x %d; ciò non ha senso.\n" "dimensione massima %d x %d; ciò non ha senso.\n"
#: ../src/core/window-props.c:350 #: ../src/core/window-props.c:347
#, c-format #, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n" msgid "Application set a bogus _NET_WM_PID %lu\n"
msgstr "L'applicazione ha impostato un _NET_WM_PID errato %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 #, c-format
msgid "%s (on %s)" msgid "%s (on %s)"
msgstr "%s (su %s)" msgstr "%s (su %s)"
# Sì, direi che è oscuro -Luca # Sì, direi che è oscuro -Luca
# #
#: ../src/core/window-props.c:1549 #: ../src/core/window-props.c:1546
#, c-format #, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n" msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "Specificato un WM_TRANSIENT_FOR finestra 0x%lx non valido per %s.\n" msgstr "Specificato un WM_TRANSIENT_FOR finestra 0x%lx non valido per %s.\n"
# Sì, direi che è oscuro -Luca # Sì, direi che è oscuro -Luca
# #
#: ../src/core/window-props.c:1560 #: ../src/core/window-props.c:1557
#, c-format #, c-format
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n" msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
msgstr "WM_TRANSIENT_FOR finestra 0x%lx per %s potrebbe creare un 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" msgid "Line %d character %d: %s"
msgstr "Riga %d carattere %d: %s" msgstr "Riga %d carattere %d: %s"
#: ../src/ui/theme-parser.c:483 #: ../src/ui/theme-parser.c:479
#, c-format #, c-format
msgid "Attribute \"%s\" repeated twice on the same <%s> element" msgid "Attribute \"%s\" repeated twice on the same <%s> element"
msgstr "L'attributo «%s» è ripetuto due volte nello stesso elemento <%s>" 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 #, c-format
msgid "Attribute \"%s\" is invalid on <%s> element in this context" msgid "Attribute \"%s\" is invalid on <%s> element in this context"
msgstr "L'attributo «%s» non è valido nell'elemento <%s> in questo contesto" 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 #, c-format
msgid "Could not parse \"%s\" as an integer" msgid "Could not parse \"%s\" as an integer"
msgstr "Impossibile analizzare «%s» come un intero" 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 #, c-format
msgid "Did not understand trailing characters \"%s\" in string \"%s\"" msgid "Did not understand trailing characters \"%s\" in string \"%s\""
msgstr "" msgstr ""
"Non sono stati compresi i caratteri di chiusura «%s» nella stringa «%s»" "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 #, c-format
msgid "Integer %ld must be positive" msgid "Integer %ld must be positive"
msgstr "L'intero %ld deve essere positivo" msgstr "L'intero %ld deve essere positivo"
#: ../src/ui/theme-parser.c:625 #: ../src/ui/theme-parser.c:621
#, c-format #, c-format
msgid "Integer %ld is too large, current max is %d" msgid "Integer %ld is too large, current max is %d"
msgstr "L'intero %ld è troppo grande, il massimo corrente è %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 #, c-format
msgid "Could not parse \"%s\" as a floating point number" msgid "Could not parse \"%s\" as a floating point number"
msgstr "Impossibile analizzare «%s» come numero in virgola mobile" 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 #, c-format
msgid "Boolean values must be \"true\" or \"false\" not \"%s\"" msgid "Boolean values must be \"true\" or \"false\" not \"%s\""
msgstr "I valori booleani devono essere «true» o «false», non «%s»" msgstr "I valori booleani devono essere «true» o «false», non «%s»"
# cambiato il finale, ma se è errore, vuol dire che %g è sbagliato.. # 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 #, c-format
msgid "Angle must be between 0.0 and 360.0, was %g\n" 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" msgstr "L'angolo deve essere tra 0.0 e 360.0, non %g\n"
# come sopra # come sopra
#: ../src/ui/theme-parser.c:802 #: ../src/ui/theme-parser.c:798
#, c-format #, c-format
msgid "Alpha must be between 0.0 (invisible) and 1.0 (fully opaque), was %g\n" 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" 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 #, c-format
msgid "" msgid ""
"Invalid title scale \"%s\" (must be one of xx-small,x-small,small,medium," "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" "medium,large, x-large, o xx-large)\n"
# element_name, name # element_name, name
#: ../src/ui/theme-parser.c:1023 ../src/ui/theme-parser.c:1086 #: ../src/ui/theme-parser.c:1019 ../src/ui/theme-parser.c:1082
#: ../src/ui/theme-parser.c:1120 ../src/ui/theme-parser.c:1223 #: ../src/ui/theme-parser.c:1116 ../src/ui/theme-parser.c:1219
#, c-format #, c-format
msgid "<%s> name \"%s\" used a second time" msgid "<%s> name \"%s\" used a second time"
msgstr "Nome «%2$s» di <%1$s> usato una seconda volta" msgstr "Nome «%2$s» di <%1$s> usato una seconda volta"
# element_name, parent # element_name, parent
#: ../src/ui/theme-parser.c:1035 ../src/ui/theme-parser.c:1132 #: ../src/ui/theme-parser.c:1031 ../src/ui/theme-parser.c:1128
#: ../src/ui/theme-parser.c:1235 #: ../src/ui/theme-parser.c:1231
#, c-format #, c-format
msgid "<%s> parent \"%s\" has not been defined" msgid "<%s> parent \"%s\" has not been defined"
msgstr "Il genitore «%2$s» di <%1$s> non è stato definito" msgstr "Il genitore «%2$s» di <%1$s> non è stato definito"
# element_name, geometry # element_name, geometry
#: ../src/ui/theme-parser.c:1145 #: ../src/ui/theme-parser.c:1141
#, c-format #, c-format
msgid "<%s> geometry \"%s\" has not been defined" msgid "<%s> geometry \"%s\" has not been defined"
msgstr "La geometria «%2$s» di <%1$s> non è stata definita" 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 #, c-format
msgid "<%s> must specify either a geometry or a parent that has a geometry" 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" 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" msgid "You must specify a background for an alpha value to be meaningful"
msgstr "" msgstr ""
"È necessario specificare uno sfondo per un valore alpha affinché sia " "È necessario specificare uno sfondo per un valore alpha affinché sia "
"significativo" "significativo"
# in base al successivo, type dovrebbe essere parola chiave.... # in base al successivo, type dovrebbe essere parola chiave....
#: ../src/ui/theme-parser.c:1268 #: ../src/ui/theme-parser.c:1264
#, c-format #, c-format
msgid "Unknown type \"%s\" on <%s> element" msgid "Unknown type \"%s\" on <%s> element"
msgstr "type «%s» sconosciuto nell'elemento <%s>" msgstr "type «%s» sconosciuto nell'elemento <%s>"
#: ../src/ui/theme-parser.c:1279 #: ../src/ui/theme-parser.c:1275
#, c-format #, c-format
msgid "Unknown style_set \"%s\" on <%s> element" msgid "Unknown style_set \"%s\" on <%s> element"
msgstr "style_set «%s» sconosciuto nell'elemento <%s>" msgstr "style_set «%s» sconosciuto nell'elemento <%s>"
#: ../src/ui/theme-parser.c:1287 #: ../src/ui/theme-parser.c:1283
#, c-format #, c-format
msgid "Window type \"%s\" has already been assigned a style set" msgid "Window type \"%s\" has already been assigned a style set"
msgstr "" msgstr ""
"Al tipo di finestra «%s» è stata già assegnata una impostazione di stile" "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:1313 ../src/ui/theme-parser.c:1377
#: ../src/ui/theme-parser.c:1607 ../src/ui/theme-parser.c:2842 #: ../src/ui/theme-parser.c:1603 ../src/ui/theme-parser.c:2838
#: ../src/ui/theme-parser.c:2888 ../src/ui/theme-parser.c:3038 #: ../src/ui/theme-parser.c:2884 ../src/ui/theme-parser.c:3034
#: ../src/ui/theme-parser.c:3274 ../src/ui/theme-parser.c:3312 #: ../src/ui/theme-parser.c:3273 ../src/ui/theme-parser.c:3311
#: ../src/ui/theme-parser.c:3350 ../src/ui/theme-parser.c:3388 #: ../src/ui/theme-parser.c:3349 ../src/ui/theme-parser.c:3387
#, c-format #, c-format
msgid "Element <%s> is not allowed below <%s>" msgid "Element <%s> is not allowed below <%s>"
msgstr "L'elemento <%s> non è consentito all'interno di <%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:1427 ../src/ui/theme-parser.c:1441
#: ../src/ui/theme-parser.c:1490 #: ../src/ui/theme-parser.c:1486
msgid "" msgid ""
"Cannot specify both \"button_width\"/\"button_height\" and \"aspect_ratio\" " "Cannot specify both \"button_width\"/\"button_height\" and \"aspect_ratio\" "
"for buttons" "for buttons"
@@ -1418,128 +1412,128 @@ msgstr ""
"Non è possibile specificare sia \"button_width\"/\"button_height\" che " "Non è possibile specificare sia \"button_width\"/\"button_height\" che "
"\"aspect_ratio\" per i pulsanti" "\"aspect_ratio\" per i pulsanti"
#: ../src/ui/theme-parser.c:1454 #: ../src/ui/theme-parser.c:1450
#, c-format #, c-format
msgid "Distance \"%s\" is unknown" msgid "Distance \"%s\" is unknown"
msgstr "La distanza «%s» è sconosciuta" msgstr "La distanza «%s» è sconosciuta"
#: ../src/ui/theme-parser.c:1499 #: ../src/ui/theme-parser.c:1495
#, c-format #, c-format
msgid "Aspect ratio \"%s\" is unknown" msgid "Aspect ratio \"%s\" is unknown"
msgstr "Le proporzioni «%s» sono sconosciute" msgstr "Le proporzioni «%s» sono sconosciute"
#: ../src/ui/theme-parser.c:1561 #: ../src/ui/theme-parser.c:1557
#, c-format #, c-format
msgid "Border \"%s\" is unknown" msgid "Border \"%s\" is unknown"
msgstr "Il bordo «%s» è sconosciuto" msgstr "Il bordo «%s» è sconosciuto"
#: ../src/ui/theme-parser.c:1872 #: ../src/ui/theme-parser.c:1868
#, c-format #, c-format
msgid "No \"start_angle\" or \"from\" attribute on element <%s>" msgid "No \"start_angle\" or \"from\" attribute on element <%s>"
msgstr "Nessun attributo «start_angle» o «from» nell'elemento <%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 #, c-format
msgid "No \"extent_angle\" or \"to\" attribute on element <%s>" msgid "No \"extent_angle\" or \"to\" attribute on element <%s>"
msgstr "Nessun attributo «extent_angle» o «to» nell'elemento <%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 #, c-format
msgid "Did not understand value \"%s\" for type of gradient" msgid "Did not understand value \"%s\" for type of gradient"
msgstr "Valore «%s» incomprensibile per il tipo di gradiente" 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 #, c-format
msgid "Did not understand fill type \"%s\" for <%s> element" msgid "Did not understand fill type \"%s\" for <%s> element"
msgstr "Tipo di riempimento «%s» incomprensibile per l'elemento <%s>" 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:2360 ../src/ui/theme-parser.c:2443
#: ../src/ui/theme-parser.c:2510 #: ../src/ui/theme-parser.c:2506
#, c-format #, c-format
msgid "Did not understand state \"%s\" for <%s> element" msgid "Did not understand state \"%s\" for <%s> element"
msgstr "Stato «%s» incomprensibile per l'elemento <%s>" 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 #, c-format
msgid "Did not understand shadow \"%s\" for <%s> element" msgid "Did not understand shadow \"%s\" for <%s> element"
msgstr "Ombra «%s» incomprensibile per l'elemento <%s>" msgstr "Ombra «%s» incomprensibile per l'elemento <%s>"
#: ../src/ui/theme-parser.c:2384 #: ../src/ui/theme-parser.c:2380
#, c-format #, c-format
msgid "Did not understand arrow \"%s\" for <%s> element" msgid "Did not understand arrow \"%s\" for <%s> element"
msgstr "Freccia «%s» incomprensibile per l'elemento <%s>" 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 #, c-format
msgid "No <draw_ops> called \"%s\" has been defined" msgid "No <draw_ops> called \"%s\" has been defined"
msgstr "Non è stato definito alcun <draw_ops> di nome «%s»" 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 #, c-format
msgid "Including draw_ops \"%s\" here would create a circular reference" msgid "Including draw_ops \"%s\" here would create a circular reference"
msgstr "" msgstr ""
"Includendo draw_ops «%s» qui si potrebbe creare un riferimento circolare" "Includendo draw_ops «%s» qui si potrebbe creare un riferimento circolare"
# piece dovrebbe essere parola chiave # piece dovrebbe essere parola chiave
#: ../src/ui/theme-parser.c:2921 #: ../src/ui/theme-parser.c:2917
#, c-format #, c-format
msgid "Unknown position \"%s\" for frame piece" msgid "Unknown position \"%s\" for frame piece"
msgstr "Posizione «%s» sconosciuta per il piece di cornice" msgstr "Posizione «%s» sconosciuta per il piece di cornice"
# piece dovrebbe essere parola chiave # piece dovrebbe essere parola chiave
#: ../src/ui/theme-parser.c:2929 #: ../src/ui/theme-parser.c:2925
#, c-format #, c-format
msgid "Frame style already has a piece at position %s" msgid "Frame style already has a piece at position %s"
msgstr "Lo stile della cornice ha già una piece alla posizione %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 #, c-format
msgid "No <draw_ops> with the name \"%s\" has been defined" msgid "No <draw_ops> with the name \"%s\" has been defined"
msgstr "Non è stato definito alcun <draw_ops> con il nome «%s»" 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 #, c-format
msgid "Unknown function \"%s\" for button" msgid "Unknown function \"%s\" for button"
msgstr "Funzione «%s» sconosciuta per il pulsante" msgstr "Funzione «%s» sconosciuta per il pulsante"
#: ../src/ui/theme-parser.c:2986 #: ../src/ui/theme-parser.c:2982
#, c-format #, c-format
msgid "Button function \"%s\" does not exist in this version (%d, need %d)" msgid "Button function \"%s\" does not exist in this version (%d, need %d)"
msgstr "" msgstr ""
"La funzione di pulsante «%s» non esiste in questa versione (%d, necessaria " "La funzione di pulsante «%s» non esiste in questa versione (%d, necessaria "
"%d)" "%d)"
#: ../src/ui/theme-parser.c:2998 #: ../src/ui/theme-parser.c:2994
#, c-format #, c-format
msgid "Unknown state \"%s\" for button" msgid "Unknown state \"%s\" for button"
msgstr "Stato «%s» sconosciuto per il pulsate" msgstr "Stato «%s» sconosciuto per il pulsate"
#: ../src/ui/theme-parser.c:3006 #: ../src/ui/theme-parser.c:3002
#, c-format #, c-format
msgid "Frame style already has a button for function %s state %s" 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" 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 #, c-format
msgid "\"%s\" is not a valid value for focus attribute" msgid "\"%s\" is not a valid value for focus attribute"
msgstr "«%s» non è un valore valido per l'attributo focus" msgstr "«%s» non è un valore valido per l'attributo focus"
#: ../src/ui/theme-parser.c:3086 #: ../src/ui/theme-parser.c:3082
#, c-format #, c-format
msgid "\"%s\" is not a valid value for state attribute" msgid "\"%s\" is not a valid value for state attribute"
msgstr "«%s» non è un valore valido per l'attributo state" msgstr "«%s» non è un valore valido per l'attributo state"
#: ../src/ui/theme-parser.c:3096 #: ../src/ui/theme-parser.c:3092
#, c-format #, c-format
msgid "A style called \"%s\" has not been defined" msgid "A style called \"%s\" has not been defined"
msgstr "Uno stile chiamato «%s» non è stato definito" 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 #, c-format
msgid "\"%s\" is not a valid value for resize attribute" msgid "\"%s\" is not a valid value for resize attribute"
msgstr "«%s» non è un valore valido per l'attributo resize" msgstr "«%s» non è un valore valido per l'attributo resize"
#: ../src/ui/theme-parser.c:3151 #: ../src/ui/theme-parser.c:3147
#, c-format #, c-format
msgid "" msgid ""
"Should not have \"resize\" attribute on <%s> element for maximized/shaded " "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 " "Non si dovrebbe avere l'attributo «resize» nell'elemento <%s> per gli stati "
"maximized/shaded" "maximized/shaded"
#: ../src/ui/theme-parser.c:3165 #: ../src/ui/theme-parser.c:3161
#, c-format #, c-format
msgid "" msgid ""
"Should not have \"resize\" attribute on <%s> element for maximized states" "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 " "Non si dovrebbe avere l'attributo «resize» nell'elemento <%s> per gli stati "
"maximized" "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 #, c-format
msgid "Style has already been specified for state %s resize %s focus %s" 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" 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:3186 ../src/ui/theme-parser.c:3197
#: ../src/ui/theme-parser.c:3212 ../src/ui/theme-parser.c:3234 #: ../src/ui/theme-parser.c:3208 ../src/ui/theme-parser.c:3233
#: ../src/ui/theme-parser.c:3245 ../src/ui/theme-parser.c:3256 #: ../src/ui/theme-parser.c:3244 ../src/ui/theme-parser.c:3255
#, c-format #, c-format
msgid "Style has already been specified for state %s focus %s" msgid "Style has already been specified for state %s focus %s"
msgstr "Lo stile è stato già specificato per lo stato %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 "" msgid ""
"Can't have a two draw_ops for a <piece> element (theme specified a draw_ops " "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)" "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 un attributo draw_ops e anche un elemento <draw_ops>, o ha "
"specificato due elementi)" "specificato due elementi)"
#: ../src/ui/theme-parser.c:3333 #: ../src/ui/theme-parser.c:3332
msgid "" msgid ""
"Can't have a two draw_ops for a <button> element (theme specified a draw_ops " "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)" "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 un attributo draw_ops e anche un elemento <draw_ops>, o ha "
"specificato due elementi)" "specificato due elementi)"
#: ../src/ui/theme-parser.c:3371 #: ../src/ui/theme-parser.c:3370
msgid "" msgid ""
"Can't have a two draw_ops for a <menu_icon> element (theme specified a " "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)" "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 un attributo draw_ops e anche un elemento <draw_ops>, o ha "
"specificato due elementi)" "specificato due elementi)"
#: ../src/ui/theme-parser.c:3435 #: ../src/ui/theme-parser.c:3434
#, c-format #, c-format
msgid "Bad version specification '%s'" msgid "Bad version specification '%s'"
msgstr "Specificazione di versione «%s» errata" msgstr "Specificazione di versione «%s» errata"
#: ../src/ui/theme-parser.c:3508 #: ../src/ui/theme-parser.c:3507
msgid "" msgid ""
"\"version\" attribute cannot be used in metacity-theme-1.xml or metacity-" "\"version\" attribute cannot be used in metacity-theme-1.xml or metacity-"
"theme-2.xml" "theme-2.xml"
@@ -1608,19 +1602,19 @@ msgstr ""
"L'attributo «version» non può essere usato in metacity-theme-1.xml o " "L'attributo «version» non può essere usato in metacity-theme-1.xml o "
"metacity-theme-2.xml" "metacity-theme-2.xml"
#: ../src/ui/theme-parser.c:3531 #: ../src/ui/theme-parser.c:3530
#, c-format #, c-format
msgid "Theme requires version %s but latest supported theme version is %d.%d" msgid "Theme requires version %s but latest supported theme version is %d.%d"
msgstr "" msgstr ""
"Il tema richiede la versione %s, ma la versione di tema supportata più " "Il tema richiede la versione %s, ma la versione di tema supportata più "
"recente è la %d.%d" "recente è la %d.%d"
#: ../src/ui/theme-parser.c:3563 #: ../src/ui/theme-parser.c:3562
#, c-format #, c-format
msgid "Outermost element in theme must be <metacity_theme> not <%s>" msgid "Outermost element in theme must be <metacity_theme> not <%s>"
msgstr "L'elemento più esterno nel tema deve essere <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 #, c-format
msgid "" msgid ""
"Element <%s> is not allowed inside a name/author/date/description element" "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/" "L'elemento <%s> non è consentito all'interno di un elemento name/author/date/"
"description" "description"
#: ../src/ui/theme-parser.c:3588 #: ../src/ui/theme-parser.c:3587
#, c-format #, c-format
msgid "Element <%s> is not allowed inside a <constant> element" msgid "Element <%s> is not allowed inside a <constant> element"
msgstr "L'elemento <%s> non è consentito all'interno di un elemento <constant>" 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 #, c-format
msgid "" msgid ""
"Element <%s> is not allowed inside a distance/border/aspect_ratio element" "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/" "L'elemento <%s> non è consentito all'interno di un elemento distance/border/"
"aspect_ratio" "aspect_ratio"
#: ../src/ui/theme-parser.c:3622 #: ../src/ui/theme-parser.c:3621
#, c-format #, c-format
msgid "Element <%s> is not allowed inside a draw operation element" msgid "Element <%s> is not allowed inside a draw operation element"
msgstr "" msgstr ""
"L'elemento <%s> non è consentito all'interno di un elemento relativo " "L'elemento <%s> non è consentito all'interno di un elemento relativo "
"un'operazione di disegno" "un'operazione di disegno"
#: ../src/ui/theme-parser.c:3632 ../src/ui/theme-parser.c:3662 #: ../src/ui/theme-parser.c:3631 ../src/ui/theme-parser.c:3661
#: ../src/ui/theme-parser.c:3667 ../src/ui/theme-parser.c:3672 #: ../src/ui/theme-parser.c:3666 ../src/ui/theme-parser.c:3671
#, c-format #, c-format
msgid "Element <%s> is not allowed inside a <%s> element" msgid "Element <%s> is not allowed inside a <%s> element"
msgstr "L'elemento <%s> non è consentito all'interno di un elemento <%s>" msgstr "L'elemento <%s> non è consentito all'interno di un elemento <%s>"
# piece dovrebbe essere parola chiave # 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" msgid "No draw_ops provided for frame piece"
msgstr "Nessun draw_ops fornito per il piece di cornice" 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" msgid "No draw_ops provided for button"
msgstr "Nessun draw_ops fornito per il pulsante" msgstr "Nessun draw_ops fornito per il pulsante"
#: ../src/ui/theme-parser.c:3969 #: ../src/ui/theme-parser.c:3968
#, c-format #, c-format
msgid "No text is allowed inside element <%s>" msgid "No text is allowed inside element <%s>"
msgstr "Il testo non è consentito all'interno dell'elemento <%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:4026 ../src/ui/theme-parser.c:4038
#: ../src/ui/theme-parser.c:4051 ../src/ui/theme-parser.c:4063 #: ../src/ui/theme-parser.c:4050 ../src/ui/theme-parser.c:4062
#: ../src/ui/theme-parser.c:4075 #: ../src/ui/theme-parser.c:4074
#, c-format #, c-format
msgid "<%s> specified twice for this theme" msgid "<%s> specified twice for this theme"
msgstr "<%s> specificato due volte per questo tema" msgstr "<%s> specificato due volte per questo tema"
#: ../src/ui/theme-parser.c:4337 #: ../src/ui/theme-parser.c:4336
#, c-format #, c-format
msgid "Failed to find a valid file for theme %s\n" msgid "Failed to find a valid file for theme %s\n"
msgstr "Ricerca di un file valido per il tema «%s» non riuscita\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. # 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. # This file is distributed under the same license as the mutter package.
# Sun G11n <gnome_int_l10n@ireland.sun.com>, 2002. # Sun G11n <gnome_int_l10n@ireland.sun.com>, 2002.
# Evandro Fernandes Giovanini <evandrofg@ig.com.br>, 2002, 2003, 2006. # Evandro Fernandes Giovanini <evandrofg@ig.com.br>, 2002, 2003, 2006.
@@ -14,15 +14,15 @@
# Antonio Fernandes C. Neto <fernandes@pelivre.org>, 2010. # Antonio Fernandes C. Neto <fernandes@pelivre.org>, 2010.
# Rodrigo Padula de Oliveira <contato@rodrigopadula.com>, 2011. # Rodrigo Padula de Oliveira <contato@rodrigopadula.com>, 2011.
# Enrico Nicoletto <liverig@gmail.com>, 2012. # Enrico Nicoletto <liverig@gmail.com>, 2012.
# Rafael Ferreira <rafael.f.f1@gmail.co>, 2013, 2014. # Rafael Ferreira <rafael.f.f1@gmail.co>, 2013.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: mutter\n" "Project-Id-Version: mutter\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=mutter&keywords=I18N+L10N&component=general\n" "product=mutter&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2013-12-19 15:30+0000\n" "POT-Creation-Date: 2013-08-20 12:22+0000\n"
"PO-Revision-Date: 2014-01-05 03:08-0300\n" "PO-Revision-Date: 2013-08-18 21:39-0300\n"
"Last-Translator: Rafael Ferreira <rafael.f.f1@gmail.com>\n" "Last-Translator: Rafael Ferreira <rafael.f.f1@gmail.com>\n"
"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n" "Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
"Language: pt_BR\n" "Language: pt_BR\n"
@@ -30,7 +30,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\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 #: ../src/50-mutter-navigation.xml.in.h:1
msgid "Navigation" msgid "Navigation"
@@ -222,7 +222,7 @@ msgstr "Visualizar divisão à direita"
#. This probably means that a non-WM compositor like xcompmgr is running; #. This probably means that a non-WM compositor like xcompmgr is running;
#. * we have no way to get it to exit #. * we have no way to get it to exit
#: ../src/compositor/compositor.c:571 #: ../src/compositor/compositor.c:596
#, c-format #, c-format
msgid "" msgid ""
"Another compositing manager is already running on screen %i on display \"%s" "Another compositing manager is already running on screen %i on display \"%s"
@@ -230,7 +230,7 @@ msgid ""
msgstr "" msgstr ""
"Outro compositor de janelas está em execução na tela %i na área \"%s\"." "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" msgid "background texture could not be created from file"
msgstr "textura de plano de fundo não pôde ser criado de arquivo" msgstr "textura de plano de fundo não pôde ser criado de arquivo"
@@ -268,17 +268,17 @@ msgstr "_Esperar"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Forçar sair" msgstr "_Forçar sair"
#: ../src/core/display.c:415 #: ../src/core/display.c:421
#, c-format #, c-format
msgid "Missing %s extension required for compositing" msgid "Missing %s extension required for compositing"
msgstr "Faltando extensão %s necessária para composição" msgstr "Faltando extensão %s necessária para composição"
#: ../src/core/display.c:507 #: ../src/core/display.c:513
#, c-format #, c-format
msgid "Failed to open X Window System display '%s'\n" msgid "Failed to open X Window System display '%s'\n"
msgstr "Falha ao abrir a exibição \"%s\" do X Window System\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 #, c-format
msgid "" msgid ""
"Some other program is already using the key %s with modifiers %x as a " "Some other program is already using the key %s with modifiers %x as a "
@@ -287,7 +287,7 @@ msgstr ""
"Algum outro programa já está usando a chave %s com modificadores %x como uma " "Algum outro programa já está usando a chave %s com modificadores %x como uma "
"tecla de atalho\n" "tecla de atalho\n"
#: ../src/core/keybindings.c:1334 #: ../src/core/keybindings.c:1333
#, c-format #, c-format
msgid "\"%s\" is not a valid accelerator\n" msgid "\"%s\" is not a valid accelerator\n"
msgstr "\"%s\" não é um acelerador válido\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 " "Não foi possível localizar um tema! Verifique se %s existe e contém os temas "
"comuns.\n" "comuns.\n"
#: ../src/core/monitor.c:696 #: ../src/core/monitor.c:702
msgid "Built-in display" msgid "Built-in display"
msgstr "Tela embutida" msgstr "Tela embutida"
@@ -337,7 +337,7 @@ msgstr "Tela embutida"
#. the vendor), it's Unknown followed by a size in inches, #. the vendor), it's Unknown followed by a size in inches,
#. like 'Unknown 15"' #. like 'Unknown 15"'
#. #.
#: ../src/core/monitor.c:724 #: ../src/core/monitor.c:730
#, c-format #, c-format
msgid "Unknown %s" msgid "Unknown %s"
msgstr "%s desconhecido" msgstr "%s desconhecido"
@@ -404,12 +404,12 @@ msgstr ""
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Espaço de trabalho %d" msgstr "Espaço de trabalho %d"
#: ../src/core/screen.c:540 #: ../src/core/screen.c:535
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "A tela %d na exibição \"%s\" é inválida\n" msgstr "A tela %d na exibição \"%s\" é inválida\n"
#: ../src/core/screen.c:556 #: ../src/core/screen.c:551
#, c-format #, c-format
msgid "" msgid ""
"Screen %d on display \"%s\" already has a window manager; try using the --" "Screen %d on display \"%s\" already has a window manager; try using the --"
@@ -418,7 +418,7 @@ msgstr ""
"A tela %d na exibição \"%s\" já possui um gerenciador de janelas; tente usar " "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" "a opção --replace para substituir o gerenciador de janelas atual.\n"
#: ../src/core/screen.c:583 #: ../src/core/screen.c:578
#, c-format #, c-format
msgid "" msgid ""
"Could not acquire window manager selection on screen %d display \"%s\"\n" "Could not acquire window manager selection on screen %d display \"%s\"\n"
@@ -426,12 +426,12 @@ msgstr ""
"Não foi possível obter a seleção do gerenciador de janelas na exibição \"%2$s" "Não foi possível obter a seleção do gerenciador de janelas na exibição \"%2$s"
"\" da tela %1$d\n" "\" da tela %1$d\n"
#: ../src/core/screen.c:661 #: ../src/core/screen.c:656
#, c-format #, c-format
msgid "Screen %d on display \"%s\" already has a window manager\n" msgid "Screen %d on display \"%s\" already has a window manager\n"
msgstr "A tela %d na exibição \"%s\" já possui um gerenciador de janelas\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 #, c-format
msgid "Could not release screen %d on display \"%s\"\n" 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" 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: " msgstr "Erro do gerenciador de janelas: "
#. first time through #. first time through
#: ../src/core/window.c:7620 #: ../src/core/window.c:7533
#, c-format #, c-format
msgid "" msgid ""
"Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER " "Window %s sets SM_CLIENT_ID on itself, instead of on the WM_CLIENT_LEADER "
@@ -544,7 +544,7 @@ msgstr ""
#. * MWM but not WM_NORMAL_HINTS are basically broken. We complain #. * MWM but not WM_NORMAL_HINTS are basically broken. We complain
#. * about these apps but make them work. #. * about these apps but make them work.
#. #.
#: ../src/core/window.c:8542 #: ../src/core/window.c:8257
#, c-format #, c-format
msgid "" msgid ""
"Window %s sets an MWM hint indicating it isn't resizable, but sets min size " "Window %s sets an MWM hint indicating it isn't resizable, but sets min size "
@@ -554,22 +554,22 @@ msgstr ""
"define o tamanho mínimo %d x %d e máximo %d x %d; isso não faz muito " "define o tamanho mínimo %d x %d e máximo %d x %d; isso não faz muito "
"sentido.\n" "sentido.\n"
#: ../src/core/window-props.c:350 #: ../src/core/window-props.c:347
#, c-format #, c-format
msgid "Application set a bogus _NET_WM_PID %lu\n" msgid "Application set a bogus _NET_WM_PID %lu\n"
msgstr "O aplicativo definiu um _NET_WM_PID %lu inválido\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 #, c-format
msgid "%s (on %s)" msgid "%s (on %s)"
msgstr "%s (em %s)" msgstr "%s (em %s)"
#: ../src/core/window-props.c:1549 #: ../src/core/window-props.c:1546
#, c-format #, c-format
msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n" msgid "Invalid WM_TRANSIENT_FOR window 0x%lx specified for %s.\n"
msgstr "Janela WM_TRANSIENT_FOR inválida 0x%lx especificada para %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 #, c-format
msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n" msgid "WM_TRANSIENT_FOR window 0x%lx for %s would create loop.\n"
msgstr "Janela WM_TRANSIENT_FOR 0x%lx especificada para %s iriar criar 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 #: ../src/ui/theme.c:1051
#, c-format #, c-format
msgid "Gradients should have at least two colors" 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 #: ../src/ui/theme.c:1203
#, c-format #, c-format
@@ -1252,59 +1252,59 @@ msgstr "Nenhum atributo \"%s\" no elemento <%s>"
msgid "Line %d character %d: %s" msgid "Line %d character %d: %s"
msgstr "Caractere %d da linha %d: %s" msgstr "Caractere %d da linha %d: %s"
#: ../src/ui/theme-parser.c:483 #: ../src/ui/theme-parser.c:479
#, c-format #, c-format
msgid "Attribute \"%s\" repeated twice on the same <%s> element" msgid "Attribute \"%s\" repeated twice on the same <%s> element"
msgstr "O atributo \"%s\" foi repetido duas vezes no mesmo elemento <%s>" 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 #, c-format
msgid "Attribute \"%s\" is invalid on <%s> element in this context" msgid "Attribute \"%s\" is invalid on <%s> element in this context"
msgstr "O atributo \"%s\" é inválido no elemento <%s> neste contexto" 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 #, c-format
msgid "Could not parse \"%s\" as an integer" msgid "Could not parse \"%s\" as an integer"
msgstr "Não foi possível analisar \"%s\" como um inteiro" 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 #, c-format
msgid "Did not understand trailing characters \"%s\" in string \"%s\"" msgid "Did not understand trailing characters \"%s\" in string \"%s\""
msgstr "" msgstr ""
"Os caracteres à direita \"%s\" na string \"%s\" não foram compreendidos" "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 #, c-format
msgid "Integer %ld must be positive" msgid "Integer %ld must be positive"
msgstr "O inteiro %ld deve ser positivo" msgstr "O inteiro %ld deve ser positivo"
#: ../src/ui/theme-parser.c:625 #: ../src/ui/theme-parser.c:621
#, c-format #, c-format
msgid "Integer %ld is too large, current max is %d" msgid "Integer %ld is too large, current max is %d"
msgstr "O inteiro %ld é muito grande; o valor máximo atual é %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 #, c-format
msgid "Could not parse \"%s\" as a floating point number" 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" 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 #, c-format
msgid "Boolean values must be \"true\" or \"false\" not \"%s\"" msgid "Boolean values must be \"true\" or \"false\" not \"%s\""
msgstr "Os valores booleanos devem ser \"true\" ou \"false\" e não \"%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 #, c-format
msgid "Angle must be between 0.0 and 360.0, was %g\n" 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" 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 #, c-format
msgid "Alpha must be between 0.0 (invisible) and 1.0 (fully opaque), was %g\n" msgid "Alpha must be between 0.0 (invisible) and 1.0 (fully opaque), was %g\n"
msgstr "" msgstr ""
"Alfa deve estar entre 0,0 (invisível) e 1,0 (totalmente opaco) e era %g\n" "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 #, c-format
msgid "" msgid ""
"Invalid title scale \"%s\" (must be one of xx-small,x-small,small,medium," "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, " "Escala de título \"%s\" inválida (deve ser super pequena, extra pequena, "
"pequena, média, grande, extra grande ou super grande)\n" "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:1019 ../src/ui/theme-parser.c:1082
#: ../src/ui/theme-parser.c:1120 ../src/ui/theme-parser.c:1223 #: ../src/ui/theme-parser.c:1116 ../src/ui/theme-parser.c:1219
#, c-format #, c-format
msgid "<%s> name \"%s\" used a second time" msgid "<%s> name \"%s\" used a second time"
msgstr "<%s> nome \"%s\" usado uma segunda vez" 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:1031 ../src/ui/theme-parser.c:1128
#: ../src/ui/theme-parser.c:1235 #: ../src/ui/theme-parser.c:1231
#, c-format #, c-format
msgid "<%s> parent \"%s\" has not been defined" msgid "<%s> parent \"%s\" has not been defined"
msgstr "<%s> pai \"%s\" não foi definido" msgstr "<%s> pai \"%s\" não foi definido"
#: ../src/ui/theme-parser.c:1145 #: ../src/ui/theme-parser.c:1141
#, c-format #, c-format
msgid "<%s> geometry \"%s\" has not been defined" msgid "<%s> geometry \"%s\" has not been defined"
msgstr "<%s> geometria \"%s\" não foi definida" msgstr "<%s> geometria \"%s\" não foi definida"
#: ../src/ui/theme-parser.c:1158 #: ../src/ui/theme-parser.c:1154
#, c-format #, c-format
msgid "<%s> must specify either a geometry or a parent that has a geometry" 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" 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" msgid "You must specify a background for an alpha value to be meaningful"
msgstr "" msgstr ""
"Você pode especificar um plano de fundo para que um valor alfa faça sentido" "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 #, c-format
msgid "Unknown type \"%s\" on <%s> element" msgid "Unknown type \"%s\" on <%s> element"
msgstr "Tipo \"%s\" desconhecido no elemento <%s>" msgstr "Tipo \"%s\" desconhecido no elemento <%s>"
#: ../src/ui/theme-parser.c:1279 #: ../src/ui/theme-parser.c:1275
#, c-format #, c-format
msgid "Unknown style_set \"%s\" on <%s> element" msgid "Unknown style_set \"%s\" on <%s> element"
msgstr "conjunto_de_estilo \"%s\" desconhecido no elemento <%s>" msgstr "conjunto_de_estilo \"%s\" desconhecido no elemento <%s>"
#: ../src/ui/theme-parser.c:1287 #: ../src/ui/theme-parser.c:1283
#, c-format #, c-format
msgid "Window type \"%s\" has already been assigned a style set" 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" 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:1313 ../src/ui/theme-parser.c:1377
#: ../src/ui/theme-parser.c:1607 ../src/ui/theme-parser.c:2842 #: ../src/ui/theme-parser.c:1603 ../src/ui/theme-parser.c:2838
#: ../src/ui/theme-parser.c:2888 ../src/ui/theme-parser.c:3038 #: ../src/ui/theme-parser.c:2884 ../src/ui/theme-parser.c:3034
#: ../src/ui/theme-parser.c:3274 ../src/ui/theme-parser.c:3312 #: ../src/ui/theme-parser.c:3273 ../src/ui/theme-parser.c:3311
#: ../src/ui/theme-parser.c:3350 ../src/ui/theme-parser.c:3388 #: ../src/ui/theme-parser.c:3349 ../src/ui/theme-parser.c:3387
#, c-format #, c-format
msgid "Element <%s> is not allowed below <%s>" msgid "Element <%s> is not allowed below <%s>"
msgstr "O elemento <%s> não é permitido abaixo de <%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:1427 ../src/ui/theme-parser.c:1441
#: ../src/ui/theme-parser.c:1490 #: ../src/ui/theme-parser.c:1486
msgid "" msgid ""
"Cannot specify both \"button_width\"/\"button_height\" and \"aspect_ratio\" " "Cannot specify both \"button_width\"/\"button_height\" and \"aspect_ratio\" "
"for buttons" "for buttons"
@@ -1373,124 +1373,124 @@ msgstr ""
"Não foi possível especificar \"button_width\"/\"button_height\" e " "Não foi possível especificar \"button_width\"/\"button_height\" e "
"\"aspect_ratio\" para os botões" "\"aspect_ratio\" para os botões"
#: ../src/ui/theme-parser.c:1454 #: ../src/ui/theme-parser.c:1450
#, c-format #, c-format
msgid "Distance \"%s\" is unknown" msgid "Distance \"%s\" is unknown"
msgstr "A distância \"%s\" é desconhecida" msgstr "A distância \"%s\" é desconhecida"
#: ../src/ui/theme-parser.c:1499 #: ../src/ui/theme-parser.c:1495
#, c-format #, c-format
msgid "Aspect ratio \"%s\" is unknown" msgid "Aspect ratio \"%s\" is unknown"
msgstr "A taxa de proporção \"%s\" é desconhecida" msgstr "A taxa de proporção \"%s\" é desconhecida"
#: ../src/ui/theme-parser.c:1561 #: ../src/ui/theme-parser.c:1557
#, c-format #, c-format
msgid "Border \"%s\" is unknown" msgid "Border \"%s\" is unknown"
msgstr "A borda \"%s\" é desconhecida" msgstr "A borda \"%s\" é desconhecida"
#: ../src/ui/theme-parser.c:1872 #: ../src/ui/theme-parser.c:1868
#, c-format #, c-format
msgid "No \"start_angle\" or \"from\" attribute on element <%s>" msgid "No \"start_angle\" or \"from\" attribute on element <%s>"
msgstr "Nenhum atributo \"start_angle\" ou \"from\" no elemento <%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 #, c-format
msgid "No \"extent_angle\" or \"to\" attribute on element <%s>" msgid "No \"extent_angle\" or \"to\" attribute on element <%s>"
msgstr "Nenhum atributo \"extent_angle\" ou \"to\" no elemento <%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 #, c-format
msgid "Did not understand value \"%s\" for type of gradient" 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 #, c-format
msgid "Did not understand fill type \"%s\" for <%s> element" msgid "Did not understand fill type \"%s\" for <%s> element"
msgstr "" msgstr ""
"O tipo de preenchimento \"%s\" não foi compreendido para o elemento <%s>" "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:2360 ../src/ui/theme-parser.c:2443
#: ../src/ui/theme-parser.c:2510 #: ../src/ui/theme-parser.c:2506
#, c-format #, c-format
msgid "Did not understand state \"%s\" for <%s> element" msgid "Did not understand state \"%s\" for <%s> element"
msgstr "O estado \"%s\" não foi compreendido para o elemento <%s>" 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 #, c-format
msgid "Did not understand shadow \"%s\" for <%s> element" msgid "Did not understand shadow \"%s\" for <%s> element"
msgstr "A sombra \"%s\" não foi compreendida para o elemento <%s>" 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 #, c-format
msgid "Did not understand arrow \"%s\" for <%s> element" msgid "Did not understand arrow \"%s\" for <%s> element"
msgstr "A seta \"%s\" não foi compreendida para o elemento <%s>" 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 #, c-format
msgid "No <draw_ops> called \"%s\" has been defined" msgid "No <draw_ops> called \"%s\" has been defined"
msgstr "Nenhum <draw_ops> chamado \"%s\" foi definido" 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 #, c-format
msgid "Including draw_ops \"%s\" here would create a circular reference" 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" 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 #, c-format
msgid "Unknown position \"%s\" for frame piece" msgid "Unknown position \"%s\" for frame piece"
msgstr "Posição \"%s\" desconhecida para a parte do quadro" msgstr "Posição \"%s\" desconhecida para a parte do quadro"
#: ../src/ui/theme-parser.c:2929 #: ../src/ui/theme-parser.c:2925
#, c-format #, c-format
msgid "Frame style already has a piece at position %s" msgid "Frame style already has a piece at position %s"
msgstr "O estilo de quadro já tem uma parte na posição %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 #, c-format
msgid "No <draw_ops> with the name \"%s\" has been defined" msgid "No <draw_ops> with the name \"%s\" has been defined"
msgstr "Nenhum <draw_ops> com o nome \"%s\" foi definido" msgstr "Nenhum <draw_ops> com o nome \"%s\" foi definido"
#: ../src/ui/theme-parser.c:2976 #: ../src/ui/theme-parser.c:2972
#, c-format #, c-format
msgid "Unknown function \"%s\" for button" msgid "Unknown function \"%s\" for button"
msgstr "Função \"%s\" desconhecida para o botão" msgstr "Função \"%s\" desconhecida para o botão"
#: ../src/ui/theme-parser.c:2986 #: ../src/ui/theme-parser.c:2982
#, c-format #, c-format
msgid "Button function \"%s\" does not exist in this version (%d, need %d)" 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)" 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 #, c-format
msgid "Unknown state \"%s\" for button" msgid "Unknown state \"%s\" for button"
msgstr "Estado \"%s\" desconhecido para o botão" msgstr "Estado \"%s\" desconhecido para o botão"
#: ../src/ui/theme-parser.c:3006 #: ../src/ui/theme-parser.c:3002
#, c-format #, c-format
msgid "Frame style already has a button for function %s state %s" 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" 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 #, c-format
msgid "\"%s\" is not a valid value for focus attribute" msgid "\"%s\" is not a valid value for focus attribute"
msgstr "\"%s\" não é um valor válido para o atributo de foco" 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 #, c-format
msgid "\"%s\" is not a valid value for state attribute" msgid "\"%s\" is not a valid value for state attribute"
msgstr "\"%s\" não é um valor válido para o atributo de estado" 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 #, c-format
msgid "A style called \"%s\" has not been defined" msgid "A style called \"%s\" has not been defined"
msgstr "Um estilo chamado \"%s\" não foi definido" 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 #, c-format
msgid "\"%s\" is not a valid value for resize attribute" msgid "\"%s\" is not a valid value for resize attribute"
msgstr "\"%s\" não é um valor válido para o atributo de redimensionamento" 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 #, c-format
msgid "" msgid ""
"Should not have \"resize\" attribute on <%s> element for maximized/shaded " "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 " "Não deve haver o atributo \"resize\" no elemento <%s> para os estados "
"maximizado/sombreado" "maximizado/sombreado"
#: ../src/ui/theme-parser.c:3165 #: ../src/ui/theme-parser.c:3161
#, c-format #, c-format
msgid "" msgid ""
"Should not have \"resize\" attribute on <%s> element for maximized states" "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 " "Não deve haver o atributo \"resize\" no elemento <%s> para os estados "
"maximizados" "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 #, c-format
msgid "Style has already been specified for state %s resize %s focus %s" msgid "Style has already been specified for state %s resize %s focus %s"
msgstr "" msgstr ""
"O estilo já foi especificado para o foco %s de redimensionamento %s do " "O estilo já foi especificado para o foco %s de redimensionamento %s do "
"estado %s" "estado %s"
#: ../src/ui/theme-parser.c:3190 ../src/ui/theme-parser.c:3201 #: ../src/ui/theme-parser.c:3186 ../src/ui/theme-parser.c:3197
#: ../src/ui/theme-parser.c:3212 ../src/ui/theme-parser.c:3234 #: ../src/ui/theme-parser.c:3208 ../src/ui/theme-parser.c:3233
#: ../src/ui/theme-parser.c:3245 ../src/ui/theme-parser.c:3256 #: ../src/ui/theme-parser.c:3244 ../src/ui/theme-parser.c:3255
#, c-format #, c-format
msgid "Style has already been specified for state %s focus %s" msgid "Style has already been specified for state %s focus %s"
msgstr "O estilo já foi especificado para o foco %s do estado %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 "" msgid ""
"Can't have a two draw_ops for a <piece> element (theme specified a draw_ops " "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)" "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 " "especificou um atributo draw_ops e um elemento <draw_ops> ou especificou "
"dois elementos)" "dois elementos)"
#: ../src/ui/theme-parser.c:3333 #: ../src/ui/theme-parser.c:3332
msgid "" msgid ""
"Can't have a two draw_ops for a <button> element (theme specified a draw_ops " "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)" "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 " "especificou um atributo draw_ops e um elemento <draw_ops> ou especificou "
"dois elementos)" "dois elementos)"
#: ../src/ui/theme-parser.c:3371 #: ../src/ui/theme-parser.c:3370
msgid "" msgid ""
"Can't have a two draw_ops for a <menu_icon> element (theme specified a " "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)" "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 " "especificou um atributo draw_ops e um elemento <draw_ops> ou especificou "
"dois elementos)" "dois elementos)"
#: ../src/ui/theme-parser.c:3435 #: ../src/ui/theme-parser.c:3434
#, c-format #, c-format
msgid "Bad version specification '%s'" msgid "Bad version specification '%s'"
msgstr "Especificação da versão inválida \"%s\"" msgstr "Especificação da versão inválida \"%s\""
#: ../src/ui/theme-parser.c:3508 #: ../src/ui/theme-parser.c:3507
msgid "" msgid ""
"\"version\" attribute cannot be used in metacity-theme-1.xml or metacity-" "\"version\" attribute cannot be used in metacity-theme-1.xml or metacity-"
"theme-2.xml" "theme-2.xml"
@@ -1561,29 +1561,29 @@ msgstr ""
"O atributo \"versão\" não pode ser usado em metacity-theme-1.xml ou metacity-" "O atributo \"versão\" não pode ser usado em metacity-theme-1.xml ou metacity-"
"theme-2.xml" "theme-2.xml"
#: ../src/ui/theme-parser.c:3531 #: ../src/ui/theme-parser.c:3530
#, c-format #, c-format
msgid "Theme requires version %s but latest supported theme version is %d.%d" 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" 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 #, c-format
msgid "Outermost element in theme must be <metacity_theme> not <%s>" 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>" 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 #, c-format
msgid "" msgid ""
"Element <%s> is not allowed inside a name/author/date/description element" "Element <%s> is not allowed inside a name/author/date/description element"
msgstr "" msgstr ""
"O elemento <%s> não é permitido em um elemento nome/autor/data/descrição" "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 #, c-format
msgid "Element <%s> is not allowed inside a <constant> element" msgid "Element <%s> is not allowed inside a <constant> element"
msgstr "O elemento <%s> não é permitido em um elemento <constant>" 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 #, c-format
msgid "" msgid ""
"Element <%s> is not allowed inside a distance/border/aspect_ratio element" "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/" "O elemento <%s> não é permitido em um elemento distância/borda/"
"taxa_de_proporção" "taxa_de_proporção"
#: ../src/ui/theme-parser.c:3622 #: ../src/ui/theme-parser.c:3621
#, c-format #, c-format
msgid "Element <%s> is not allowed inside a draw operation element" 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" 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:3631 ../src/ui/theme-parser.c:3661
#: ../src/ui/theme-parser.c:3667 ../src/ui/theme-parser.c:3672 #: ../src/ui/theme-parser.c:3666 ../src/ui/theme-parser.c:3671
#, c-format #, c-format
msgid "Element <%s> is not allowed inside a <%s> element" msgid "Element <%s> is not allowed inside a <%s> element"
msgstr "O elemento <%s> não é permitido em um elemento <%s>" 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" msgid "No draw_ops provided for frame piece"
msgstr "Nenhum draw_ops foi fornecido para a parte do quadro" 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" msgid "No draw_ops provided for button"
msgstr "Nenhum draw_ops foi fornecido para o botão" msgstr "Nenhum draw_ops foi fornecido para o botão"
#: ../src/ui/theme-parser.c:3969 #: ../src/ui/theme-parser.c:3968
#, c-format #, c-format
msgid "No text is allowed inside element <%s>" msgid "No text is allowed inside element <%s>"
msgstr "Nenhum texto é permitido no elemento <%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:4026 ../src/ui/theme-parser.c:4038
#: ../src/ui/theme-parser.c:4051 ../src/ui/theme-parser.c:4063 #: ../src/ui/theme-parser.c:4050 ../src/ui/theme-parser.c:4062
#: ../src/ui/theme-parser.c:4075 #: ../src/ui/theme-parser.c:4074
#, c-format #, c-format
msgid "<%s> specified twice for this theme" msgid "<%s> specified twice for this theme"
msgstr "<%s> especificado duas vezes para este tema" msgstr "<%s> especificado duas vezes para este tema"
#: ../src/ui/theme-parser.c:4337 #: ../src/ui/theme-parser.c:4336
#, c-format #, c-format
msgid "Failed to find a valid file for theme %s\n" msgid "Failed to find a valid file for theme %s\n"
msgstr "Falha ao localizar um arquivo válido para o tema %s\n" msgstr "Falha ao localizar um arquivo válido para o tema %s\n"

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include "clutter-utils.h" #include "clutter-utils.h"

View File

@@ -15,7 +15,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef __META_CLUTTER_UTILS_H__ #ifndef __META_CLUTTER_UTILS_H__

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <clutter/clutter.h> #include <clutter/clutter.h>

View File

@@ -15,7 +15,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef __META_COGL_UTILS_H__ #ifndef __META_COGL_UTILS_H__

View File

@@ -42,15 +42,6 @@
* the call, so it may be necessary to readjust the display based on the * the call, so it may be necessary to readjust the display based on the
* old_rect to start the animation. * 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 # * # Containers #
* *
* There's two containers in the stage that are used to place window actors, here * 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); 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 void
meta_compositor_sync_window_geometry (MetaCompositor *compositor, meta_compositor_sync_window_geometry (MetaCompositor *compositor,
MetaWindow *window, MetaWindow *window,

View File

@@ -14,7 +14,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
* *
* Portions adapted from gnome-shell/src/shell-global.c * Portions adapted from gnome-shell/src/shell-global.c
*/ */

View File

@@ -14,7 +14,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/** /**

View File

@@ -13,7 +13,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
* *
* Written by: * Written by:
* Owen Taylor <otaylor@redhat.com> * Owen Taylor <otaylor@redhat.com>

View File

@@ -14,7 +14,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
* *
* Written by: * Written by:
* Owen Taylor <otaylor@redhat.com> * Owen Taylor <otaylor@redhat.com>

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <meta/meta-plugin.h> #include <meta/meta-plugin.h>

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_MODULE_H_ #ifndef META_MODULE_H_

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include "config.h" #include "config.h"

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_PLUGIN_MANAGER_H_ #ifndef META_PLUGIN_MANAGER_H_

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/** /**

View File

@@ -17,7 +17,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef __META_SHADOW_FACTORY_PRIVATE_H__ #ifndef __META_SHADOW_FACTORY_PRIVATE_H__

View File

@@ -13,7 +13,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/** /**

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/** /**

View File

@@ -18,7 +18,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>
@@ -26,6 +28,41 @@
#include <clutter/clutter.h> #include <clutter/clutter.h>
#include "meta-texture-rectangle.h" #include "meta-texture-rectangle.h"
CoglTexture *
meta_texture_rectangle_new (unsigned int width,
unsigned int height,
CoglPixelFormat format,
CoglPixelFormat internal_format,
unsigned int rowstride,
const guint8 *data,
GError **error)
{
ClutterBackend *backend =
clutter_get_default_backend ();
CoglContext *context =
clutter_backend_get_cogl_context (backend);
CoglTextureRectangle *tex_rect;
tex_rect = cogl_texture_rectangle_new_with_size (context,
width, height,
internal_format,
error);
if (tex_rect == NULL)
return NULL;
if (data)
cogl_texture_set_region (COGL_TEXTURE (tex_rect),
0, 0, /* src_x/y */
0, 0, /* dst_x/y */
width, height, /* dst_width/height */
width, height, /* width/height */
format,
rowstride,
data);
return COGL_TEXTURE (tex_rect);
}
static void static void
texture_rectangle_check_cb (CoglTexture *sub_texture, texture_rectangle_check_cb (CoglTexture *sub_texture,
const float *sub_texture_coords, const float *sub_texture_coords,

View File

@@ -18,7 +18,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef __META_TEXTURE_RECTANGLE_H__ #ifndef __META_TEXTURE_RECTANGLE_H__
@@ -28,6 +30,15 @@
G_BEGIN_DECLS G_BEGIN_DECLS
CoglTexture *
meta_texture_rectangle_new (unsigned int width,
unsigned int height,
CoglPixelFormat format,
CoglPixelFormat internal_format,
unsigned int rowstride,
const guint8 *data,
GError **error);
gboolean gboolean
meta_texture_rectangle_check (CoglTexture *texture); meta_texture_rectangle_check (CoglTexture *texture);

View File

@@ -17,7 +17,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <math.h> #include <math.h>
@@ -359,10 +361,18 @@ texture_tower_create_texture (MetaTextureTower *tower,
if ((!is_power_of_two (width) || !is_power_of_two (height)) && if ((!is_power_of_two (width) || !is_power_of_two (height)) &&
meta_texture_rectangle_check (tower->textures[level - 1])) meta_texture_rectangle_check (tower->textures[level - 1]))
{ {
ClutterBackend *backend = clutter_get_default_backend (); tower->textures[level] =
CoglContext *context = clutter_backend_get_cogl_context (backend); meta_texture_rectangle_new (width, height,
/* data format */
tower->textures[level] = cogl_texture_rectangle_new_with_size (context, width, height); TEXTURE_FORMAT,
/* internal cogl format */
TEXTURE_FORMAT,
/* rowstride */
width * 4,
/* data */
NULL,
/* error */
NULL);
} }
else else
{ {

View File

@@ -17,7 +17,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef __META_TEXTURE_TOWER_H__ #ifndef __META_TEXTURE_TOWER_H__

View File

@@ -109,7 +109,6 @@ struct _MetaWindowActorPrivate
GList *frames; GList *frames;
guint visible : 1; guint visible : 1;
guint mapped : 1;
guint argb32 : 1; guint argb32 : 1;
guint disposed : 1; guint disposed : 1;
guint redecorating : 1; guint redecorating : 1;
@@ -695,11 +694,7 @@ meta_window_actor_get_paint_volume (ClutterActor *actor,
} }
if (priv->unobscured_region) if (priv->unobscured_region)
{ cairo_region_intersect_rectangle (priv->unobscured_region, &bounds);
cairo_rectangle_int_t unobscured_bounds;
cairo_region_get_extents (priv->unobscured_region, &unobscured_bounds);
gdk_rectangle_intersect (&bounds, &unobscured_bounds, &bounds);
}
origin.x = bounds.x; origin.x = bounds.x;
origin.y = bounds.y; 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)); texture = meta_shaped_texture_get_texture (META_SHAPED_TEXTURE (priv->actor));
if (!priv->mapped || priv->needs_pixmap) if (priv->needs_pixmap)
return; return;
redraw_queued = meta_shaped_texture_update_area (META_SHAPED_TEXTURE (priv->actor), 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); queue_send_frame_messages_timeout (self);
} }
else if (priv->mapped && !priv->needs_pixmap) else
{ {
const cairo_rectangle_int_t clip = { 0, 0, 1, 1 }; const cairo_rectangle_int_t clip = { 0, 0, 1, 1 };
clutter_actor_queue_redraw_with_clip (priv->actor, &clip); 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; priv->needs_pixmap = TRUE;
if (!priv->mapped)
return;
if (is_frozen (self)) if (is_frozen (self))
return; return;
@@ -1577,10 +1569,6 @@ meta_window_actor_new (MetaWindow *window)
priv->last_width = -1; priv->last_width = -1;
priv->last_height = -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_actor_set_updates_frozen (self,
meta_window_updates_are_frozen (priv->window)); meta_window_updates_are_frozen (priv->window));
@@ -1614,34 +1602,6 @@ meta_window_actor_new (MetaWindow *window)
return self; 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: * meta_window_actor_get_obscured_region:
* @self: a #MetaWindowActor * @self: a #MetaWindowActor
@@ -1844,9 +1804,6 @@ check_needs_pixmap (MetaWindowActor *self)
if (!priv->needs_pixmap) if (!priv->needs_pixmap)
return; return;
if (!priv->mapped)
return;
if (xwindow == meta_screen_get_xroot (screen) || if (xwindow == meta_screen_get_xroot (screen) ||
xwindow == clutter_x11_get_stage_window (CLUTTER_STAGE (info->stage))) xwindow == clutter_x11_get_stage_window (CLUTTER_STAGE (info->stage)))
return; return;
@@ -1932,9 +1889,6 @@ check_needs_shadow (MetaWindowActor *self)
gboolean should_have_shadow; gboolean should_have_shadow;
gboolean appears_focused; gboolean appears_focused;
if (!priv->mapped)
return;
/* Calling meta_window_actor_has_shadow() here at every pre-paint is cheap /* Calling meta_window_actor_has_shadow() here at every pre-paint is cheap
* and avoids the need to explicitly handle window type changes, which * 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 * 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; return;
} }
if (!priv->mapped || priv->needs_pixmap) if (priv->needs_pixmap)
return; return;
redraw_queued = meta_shaped_texture_update_area (META_SHAPED_TEXTURE (priv->actor), redraw_queued = meta_shaped_texture_update_area (META_SHAPED_TEXTURE (priv->actor),
@@ -2165,18 +2119,12 @@ build_and_scan_frame_mask (MetaWindowActor *self,
if (meta_texture_rectangle_check (paint_tex)) if (meta_texture_rectangle_check (paint_tex))
{ {
ClutterBackend *backend = clutter_get_default_backend (); mask_texture = meta_texture_rectangle_new (tex_width, tex_height,
CoglContext *context = clutter_backend_get_cogl_context (backend); COGL_PIXEL_FORMAT_A_8,
COGL_PIXEL_FORMAT_A_8,
mask_texture = COGL_TEXTURE (cogl_texture_rectangle_new_with_size (context, tex_width, tex_height)); stride,
cogl_texture_set_components (mask_texture, COGL_TEXTURE_COMPONENTS_A); mask_data,
cogl_texture_set_region (mask_texture, NULL /* error */);
0, 0, /* src_x/y */
0, 0, /* dst_x/y */
tex_width, tex_height, /* dst_width/height */
tex_width, tex_height, /* width/height */
COGL_PIXEL_FORMAT_A_8,
stride, mask_data);
} }
else else
{ {
@@ -2313,9 +2261,6 @@ check_needs_reshape (MetaWindowActor *self)
MetaFrameBorders borders; MetaFrameBorders borders;
cairo_rectangle_int_t client_area; cairo_rectangle_int_t client_area;
if (!priv->mapped)
return;
if (!priv->needs_reshape) if (!priv->needs_reshape)
return; return;

View File

@@ -17,7 +17,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <string.h> #include <string.h>

View File

@@ -17,7 +17,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef __META_WINDOW_SHAPE_H__ #ifndef __META_WINDOW_SHAPE_H__

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <meta/meta-plugin.h> #include <meta/meta-plugin.h>

View File

@@ -15,7 +15,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include "region-utils.h" #include "region-utils.h"

View File

@@ -15,7 +15,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef __META_REGION_UTILS_H__ #ifndef __META_REGION_UTILS_H__

View File

@@ -15,7 +15,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/* The standard cycle-windows keybinding should be the key above the /* The standard cycle-windows keybinding should be the key above the

View File

@@ -17,7 +17,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/* /*

View File

@@ -14,7 +14,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <X11/Xlib.h> #include <X11/Xlib.h>

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_BOXES_PRIVATE_H #ifndef META_BOXES_PRIVATE_H

View File

@@ -25,7 +25,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include "boxes-private.h" #include "boxes-private.h"

View File

@@ -18,7 +18,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>

View File

@@ -17,7 +17,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_CONSTRAINTS_H #ifndef META_CONSTRAINTS_H

View File

@@ -18,7 +18,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>

View File

@@ -17,7 +17,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_CORE_H #ifndef META_CORE_H

View File

@@ -17,7 +17,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#define _XOPEN_SOURCE /* for kill() */ #define _XOPEN_SOURCE /* for kill() */

View File

@@ -19,7 +19,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_DISPLAY_PRIVATE_H #ifndef META_DISPLAY_PRIVATE_H
@@ -136,14 +138,6 @@ struct _MetaDisplay
*/ */
guint allow_terminal_deactivation : 1; 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; guint static_gravity_works : 1;
/*< private-ish >*/ /*< private-ish >*/

View File

@@ -17,7 +17,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/** /**
@@ -916,6 +918,8 @@ meta_display_open (void)
enable_compositor (the_display); enable_compositor (the_display);
meta_display_grab (the_display);
/* Now manage all existing windows */ /* Now manage all existing windows */
tmp = the_display->screens; tmp = the_display->screens;
while (tmp != NULL) while (tmp != NULL)
@@ -967,6 +971,8 @@ meta_display_open (void)
meta_idle_monitor_init_dbus (); meta_idle_monitor_init_dbus ();
meta_display_ungrab (the_display);
/* Done opening new display */ /* Done opening new display */
the_display->display_opening = FALSE; the_display->display_opening = FALSE;
@@ -1211,18 +1217,7 @@ meta_display_screen_for_x_screen (MetaDisplay *display,
return NULL; return NULL;
} }
/* Grab/ungrab routines taken from fvwm. /* Grab/ungrab routines taken from fvwm */
* Calling this function will cause X to ignore all other clients until
* you ungrab. This may not be quite as bad as it sounds, yet there is
* agreement that avoiding server grabs except when they are clearly needed
* is a good thing.
*
* If you do use such grabs, please clearly explain the necessity for their
* usage in a comment. Try to keep their scope extremely limited. In
* particular, try to avoid emitting any signals or notifications while
* a grab is active (if the signal receiver tries to block on an X request
* from another client at this point, you will have a deadlock).
*/
void void
meta_display_grab (MetaDisplay *display) meta_display_grab (MetaDisplay *display)
{ {
@@ -1870,11 +1865,9 @@ static void
update_focus_window (MetaDisplay *display, update_focus_window (MetaDisplay *display,
MetaWindow *window, MetaWindow *window,
Window xwindow, Window xwindow,
gulong serial, gulong serial)
gboolean focused_by_us)
{ {
display->focus_serial = serial; display->focus_serial = serial;
display->focused_by_us = focused_by_us;
if (display->focus_xwindow == xwindow) if (display->focus_xwindow == xwindow)
return; return;
@@ -1985,8 +1978,7 @@ request_xserver_input_focus_change (MetaDisplay *display,
update_focus_window (display, update_focus_window (display,
meta_window, meta_window,
xwindow, xwindow,
serial, serial);
TRUE);
meta_error_trap_pop (display); meta_error_trap_pop (display);
@@ -2100,20 +2092,12 @@ handle_window_focus_event (MetaDisplay *display,
else else
g_return_if_reached (); g_return_if_reached ();
/* If display->focused_by_us, then the focus_serial will be used only if (display->server_focus_serial > display->focus_serial)
* for a focus change we made and have already accounted for.
* (See request_xserver_input_focus_change().) Otherwise, we can get
* multiple focus events with the same serial.
*/
if (display->server_focus_serial > display->focus_serial ||
(!display->focused_by_us &&
display->server_focus_serial == display->focus_serial))
{ {
update_focus_window (display, update_focus_window (display,
focus_window, focus_window,
focus_window ? focus_window->xwindow : None, focus_window ? focus_window->xwindow : None,
display->server_focus_serial, display->server_focus_serial);
FALSE);
} }
} }
@@ -2183,8 +2167,7 @@ event_callback (XEvent *event,
display->current_time = event_get_time (display, event); display->current_time = event_get_time (display, event);
display->monitor_cache_invalidated = TRUE; display->monitor_cache_invalidated = TRUE;
if (display->focused_by_us && if (event->xany.serial > display->focus_serial &&
event->xany.serial > display->focus_serial &&
display->focus_window && display->focus_window &&
!window_has_xwindow (display->focus_window, display->server_focus_window)) !window_has_xwindow (display->focus_window, display->server_focus_window))
{ {
@@ -2193,8 +2176,7 @@ event_callback (XEvent *event,
update_focus_window (display, update_focus_window (display,
meta_display_lookup_x_window (display, display->server_focus_window), meta_display_lookup_x_window (display, display->server_focus_window),
display->server_focus_window, display->server_focus_window,
display->server_focus_serial, display->server_focus_serial);
FALSE);
} }
screen = meta_display_screen_for_root (display, event->xany.window); screen = meta_display_screen_for_root (display, event->xany.window);
@@ -2780,14 +2762,14 @@ event_callback (XEvent *event,
&& meta_display_screen_for_root (display, event->xmap.event)) && meta_display_screen_for_root (display, event->xmap.event))
{ {
window = meta_window_new (display, event->xmap.window, window = meta_window_new (display, event->xmap.window,
FALSE, META_COMP_EFFECT_CREATE); FALSE);
} }
break; break;
case MapRequest: case MapRequest:
if (window == NULL) if (window == NULL)
{ {
window = meta_window_new (display, event->xmaprequest.window, 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 */ /* if frame was receiver it's some malicious send event or something */
else if (!frame_was_receiver && window) else if (!frame_was_receiver && window)

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_EDGE_RESISTANCE_H #ifndef META_EDGE_RESISTANCE_H

View File

@@ -15,7 +15,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/** /**

View File

@@ -18,7 +18,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>
@@ -49,6 +51,9 @@ meta_window_ensure_frame (MetaWindow *window)
if (window->frame) if (window->frame)
return; return;
/* See comment below for why this is required. */
meta_display_grab (window->display);
frame = g_new (MetaFrame, 1); frame = g_new (MetaFrame, 1);
frame->window = window; frame->window = window;
@@ -112,6 +117,14 @@ meta_window_ensure_frame (MetaWindow *window)
meta_display_register_x_window (window->display, &frame->xwindow, 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); meta_error_trap_push (window->display);
if (window->mapped) if (window->mapped)
{ {
@@ -153,6 +166,8 @@ meta_window_ensure_frame (MetaWindow *window)
/* Move keybindings to frame instead of window */ /* Move keybindings to frame instead of window */
meta_window_grab_keys (window); meta_window_grab_keys (window);
meta_display_ungrab (window->display);
} }
void void

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_FRAME_PRIVATE_H #ifndef META_FRAME_PRIVATE_H

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_GROUP_PRIVATE_H #ifndef META_GROUP_PRIVATE_H

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_GROUP_PROPS_H #ifndef META_GROUP_PROPS_H

View File

@@ -15,7 +15,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/** /**

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_ICON_CACHE_H #ifndef META_ICON_CACHE_H

View File

@@ -21,7 +21,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_KEYBINDINGS_PRIVATE_H #ifndef META_KEYBINDINGS_PRIVATE_H

View File

@@ -18,7 +18,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/** /**
@@ -39,7 +41,6 @@
#include "ui.h" #include "ui.h"
#include "frame.h" #include "frame.h"
#include "place.h" #include "place.h"
#include "screen-private.h"
#include <meta/prefs.h> #include <meta/prefs.h>
#include <meta/util.h> #include <meta/util.h>
@@ -3972,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 static void
handle_raise_or_lower (MetaDisplay *display, handle_raise_or_lower (MetaDisplay *display,
MetaScreen *screen, MetaScreen *screen,
@@ -4648,34 +4629,6 @@ init_builtin_key_bindings (MetaDisplay *display)
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_DOWN, META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_DOWN,
handle_move_to_workspace, META_MOTION_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, add_builtin_keybinding (display,
"raise-or-lower", "raise-or-lower",
common_keybindings, common_keybindings,

View File

@@ -17,7 +17,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/** /**

View File

@@ -14,7 +14,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
* *
* Author: Giovanni Campagna <gcampagn@redhat.com> * Author: Giovanni Campagna <gcampagn@redhat.com>
*/ */

View File

@@ -14,7 +14,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
* *
* Author: Giovanni Campagna <gcampagn@redhat.com> * Author: Giovanni Campagna <gcampagn@redhat.com>
*/ */
@@ -307,6 +309,7 @@ ensure_xfixes_cursor (MetaCursorTracker *tracker)
cursor_image->width, cursor_image->width,
cursor_image->height, cursor_image->height,
CLUTTER_CAIRO_FORMAT_ARGB32, CLUTTER_CAIRO_FORMAT_ARGB32,
COGL_PIXEL_FORMAT_ANY,
cursor_image->width * 4, /* stride */ cursor_image->width * 4, /* stride */
cursor_data, cursor_data,
NULL); NULL);

View File

@@ -14,7 +14,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
* *
* Adapted from gnome-session/gnome-session/gs-idle-monitor.c and * Adapted from gnome-session/gnome-session/gs-idle-monitor.c and
* from gnome-desktop/libgnome-desktop/gnome-idle-monitor.c * from gnome-desktop/libgnome-desktop/gnome-idle-monitor.c

View File

@@ -14,7 +14,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
* *
* Adapted from gnome-session/gnome-session/gs-idle-monitor.c and * Adapted from gnome-session/gnome-session/gs-idle-monitor.c and
* from gnome-desktop/libgnome-desktop/gnome-idle-monitor.c * from gnome-desktop/libgnome-desktop/gnome-idle-monitor.c

View File

@@ -13,7 +13,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/* This file is shared between mutter (src/core/meta-xrandr-shared.h) /* This file is shared between mutter (src/core/meta-xrandr-shared.h)

View File

@@ -20,7 +20,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/* /*

View File

@@ -29,7 +29,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_MONITOR_PRIVATE_H #ifndef META_MONITOR_PRIVATE_H

View File

@@ -20,7 +20,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include "config.h" #include "config.h"

View File

@@ -20,7 +20,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include "config.h" #include "config.h"
@@ -689,60 +691,46 @@ static char *
make_display_name (MetaMonitorManager *manager, make_display_name (MetaMonitorManager *manager,
MetaOutput *output) MetaOutput *output)
{ {
char *inches = NULL;
char *vendor_name = NULL;
char *ret;
if (g_str_has_prefix (output->name, "LVDS") || if (g_str_has_prefix (output->name, "LVDS") ||
g_str_has_prefix (output->name, "eDP")) g_str_has_prefix (output->name, "eDP"))
{ return g_strdup (_("Built-in display"));
ret = g_strdup (_("Built-in display"));
goto out;
}
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 + double d = sqrt (output->width_mm * output->width_mm +
output->height_mm * output->height_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 (g_strcmp0 (output->vendor, "unknown") != 0)
{ {
if (!manager->pnp_ids) if (!manager->pnp_ids)
manager->pnp_ids = gnome_pnp_ids_new (); manager->pnp_ids = gnome_pnp_ids_new ();
vendor_name = gnome_pnp_ids_get_pnp_id (manager->pnp_ids, vendor_name = gnome_pnp_ids_get_pnp_id (manager->pnp_ids,
output->vendor); output->vendor);
if (!vendor_name) ret = g_strdup_printf ("%s %s", vendor_name, inches);
vendor_name = g_strdup (output->vendor);
} g_free (vendor_name);
else }
{
if (inches != NULL)
vendor_name = g_strdup (_("Unknown"));
else 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) g_free (inches);
{ return ret;
/* 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);
} }
else else
{ {
ret = g_strdup (vendor_name); return g_strdup (output->vendor);
} }
out:
g_free (inches);
g_free (vendor_name);
return ret;
} }
static gboolean static gboolean

View File

@@ -14,7 +14,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include "config.h" #include "config.h"

View File

@@ -19,7 +19,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_PLACE_H #ifndef META_PLACE_H

View File

@@ -17,7 +17,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/** /**

View File

@@ -25,7 +25,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_SCREEN_PRIVATE_H #ifndef META_SCREEN_PRIVATE_H

View File

@@ -19,7 +19,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/** /**
@@ -878,31 +880,83 @@ meta_screen_free (MetaScreen *screen,
meta_display_ungrab (display); 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 void
meta_screen_manage_all_windows (MetaScreen *screen) meta_screen_manage_all_windows (MetaScreen *screen)
{ {
Window *_children; GList *windows;
Window *children; GList *list;
int n_children, i;
meta_display_grab (screen->display);
if (screen->guard_window == None) if (screen->guard_window == None)
screen->guard_window = create_guard_window (screen->display->xdisplay, screen->guard_window = create_guard_window (screen->display->xdisplay,
screen); screen);
windows = list_windows (screen);
meta_stack_freeze (screen->stack); meta_stack_freeze (screen->stack);
meta_stack_tracker_get_stack (screen->stack_tracker, &_children, &n_children); for (list = windows; list != NULL; list = list->next)
/* 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)
{ {
meta_window_new (screen->display, children[i], TRUE, WindowInfo *info = list->data;
META_COMP_EFFECT_NONE);
}
g_free (children); meta_window_new_with_attrs (screen->display, info->xwindow, TRUE,
META_COMP_EFFECT_NONE,
&info->attrs);
}
meta_stack_thaw (screen->stack); meta_stack_thaw (screen->stack);
g_list_foreach (windows, (GFunc)g_free, NULL);
g_list_free (windows);
meta_display_ungrab (screen->display);
} }
/** /**

View File

@@ -18,7 +18,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>

View File

@@ -23,7 +23,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_SESSION_H #ifndef META_SESSION_H

View File

@@ -29,7 +29,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>

View File

@@ -28,7 +28,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_STACK_TRACKER_H #ifndef META_STACK_TRACKER_H

View File

@@ -22,7 +22,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include <config.h> #include <config.h>

View File

@@ -15,7 +15,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_STACK_H #ifndef META_STACK_H

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#include "boxes-private.h" #include "boxes-private.h"

View File

@@ -15,7 +15,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/** /**

View File

@@ -26,7 +26,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_WINDOW_PRIVATE_H #ifndef META_WINDOW_PRIVATE_H
@@ -488,8 +490,12 @@ struct _MetaWindowClass
MetaWindow* meta_window_new (MetaDisplay *display, MetaWindow* meta_window_new (MetaDisplay *display,
Window xwindow, Window xwindow,
gboolean must_be_viewable, gboolean must_be_viewable);
MetaCompEffect effect); MetaWindow* meta_window_new_with_attrs (MetaDisplay *display,
Window xwindow,
gboolean must_be_viewable,
MetaCompEffect effect,
XWindowAttributes *attrs);
void meta_window_unmanage (MetaWindow *window, void meta_window_unmanage (MetaWindow *window,
guint32 timestamp); guint32 timestamp);
void meta_window_calc_showing (MetaWindow *window); void meta_window_calc_showing (MetaWindow *window);

View File

@@ -31,7 +31,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#define _GNU_SOURCE #define _GNU_SOURCE

View File

@@ -25,7 +25,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_WINDOW_PROPS_H #ifndef META_WINDOW_PROPS_H

View File

@@ -17,7 +17,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/** /**
@@ -657,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 /* The MUTTER_WM_CLASS_FILTER environment variable is designed for
* performance and regression testing environments where we want to do * performance and regression testing environments where we want to do
* tests with only a limited set of windows and ignore all other windows * tests with only a limited set of windows and ignore all other windows
@@ -767,12 +816,12 @@ meta_window_should_attach_to_parent (MetaWindow *window)
} }
MetaWindow* MetaWindow*
meta_window_new (MetaDisplay *display, meta_window_new_with_attrs (MetaDisplay *display,
Window xwindow, Window xwindow,
gboolean must_be_viewable, gboolean must_be_viewable,
MetaCompEffect effect) MetaCompEffect effect,
XWindowAttributes *attrs)
{ {
XWindowAttributes attrs;
MetaWindow *window; MetaWindow *window;
GSList *tmp; GSList *tmp;
MetaWorkspace *space; MetaWorkspace *space;
@@ -781,6 +830,8 @@ meta_window_new (MetaDisplay *display,
MetaMoveResizeFlags flags; MetaMoveResizeFlags flags;
MetaScreen *screen; MetaScreen *screen;
g_assert (attrs != NULL);
meta_verbose ("Attempting to manage 0x%lx\n", xwindow); meta_verbose ("Attempting to manage 0x%lx\n", xwindow);
if (meta_display_xwindow_is_a_no_focus_window (display, xwindow)) if (meta_display_xwindow_is_a_no_focus_window (display, xwindow))
@@ -790,28 +841,12 @@ meta_window_new (MetaDisplay *display,
return NULL; 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; screen = NULL;
for (tmp = display->screens; tmp != NULL; tmp = tmp->next) for (tmp = display->screens; tmp != NULL; tmp = tmp->next)
{ {
MetaScreen *scr = tmp->data; MetaScreen *scr = tmp->data;
if (scr->xroot == attrs.root) if (scr->xroot == attrs->root)
{ {
screen = tmp->data; screen = tmp->data;
break; break;
@@ -821,14 +856,14 @@ meta_window_new (MetaDisplay *display,
g_assert (screen); g_assert (screen);
/* A black list of override redirect windows that we don't need to manage: */ /* 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->no_focus_window ||
xwindow == screen->flash_window || xwindow == screen->flash_window ||
xwindow == screen->wm_sn_selection_window || xwindow == screen->wm_sn_selection_window ||
attrs.class == InputOnly || attrs->class == InputOnly ||
/* any windows created via meta_create_offscreen_window: */ /* any windows created via meta_create_offscreen_window: */
(attrs.x == -100 && attrs.y == -100 (attrs->x == -100 && attrs->y == -100
&& attrs.width == 1 && attrs.height == 1) || && attrs->width == 1 && attrs->height == 1) ||
xwindow == screen->wm_cm_selection_window || xwindow == screen->wm_cm_selection_window ||
xwindow == screen->guard_window || xwindow == screen->guard_window ||
(display->compositor && (display->compositor &&
@@ -838,28 +873,34 @@ meta_window_new (MetaDisplay *display,
) )
) { ) {
meta_verbose ("Not managing our own windows\n"); 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"); 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, must_be_viewable,
attrs.map_state, attrs->map_state,
(attrs.map_state == IsUnmapped) ? (attrs->map_state == IsUnmapped) ?
"IsUnmapped" : "IsUnmapped" :
(attrs.map_state == IsViewable) ? (attrs->map_state == IsViewable) ?
"IsViewable" : "IsViewable" :
(attrs.map_state == IsUnviewable) ? (attrs->map_state == IsUnviewable) ?
"IsUnviewable" : "IsUnviewable" :
"(unknown)"); "(unknown)");
existing_wm_state = WithdrawnState; 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 */ /* Only manage if WM_STATE is IconicState or NormalState */
gulong state; gulong state;
@@ -872,7 +913,9 @@ meta_window_new (MetaDisplay *display,
(state == IconicState || state == NormalState))) (state == IconicState || state == NormalState)))
{ {
meta_verbose ("Deciding not to manage unmapped or unviewable window 0x%lx\n", xwindow); 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; existing_wm_state = state;
@@ -880,26 +923,29 @@ meta_window_new (MetaDisplay *display,
wm_state_to_string (existing_wm_state)); 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. * 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 * 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 * the process (such as a dummy desktop window), so we do not want this
* call failing to prevent the window from being managed, we call this * call failing to prevent the window from being managed -- wrap it in its
* before creating the return-checked error trap. * 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); meta_error_trap_push_with_return (display);
XAddToSaveSet (display->xdisplay, xwindow);
meta_error_trap_pop_with_return (display);
event_mask = PropertyChangeMask | ColormapChangeMask; event_mask = PropertyChangeMask | ColormapChangeMask;
if (attrs.override_redirect) if (attrs->override_redirect)
event_mask |= StructureNotifyMask; event_mask |= StructureNotifyMask;
/* If the window is from this client (a menu, say) we need to augment /* 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, * 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 }; unsigned char mask_bits[XIMaskLen (XI_LASTEVENT)] = { 0 };
@@ -921,11 +967,11 @@ meta_window_new (MetaDisplay *display,
#endif #endif
/* Get rid of any borders */ /* Get rid of any borders */
if (attrs.border_width != 0) if (attrs->border_width != 0)
XSetWindowBorderWidth (display->xdisplay, xwindow, 0); XSetWindowBorderWidth (display->xdisplay, xwindow, 0);
/* Get rid of weird gravities */ /* Get rid of weird gravities */
if (attrs.win_gravity != NorthWestGravity) if (attrs->win_gravity != NorthWestGravity)
{ {
XSetWindowAttributes set_attrs; XSetWindowAttributes set_attrs;
@@ -941,7 +987,9 @@ meta_window_new (MetaDisplay *display,
{ {
meta_verbose ("Window 0x%lx disappeared just as we tried to manage it\n", meta_verbose ("Window 0x%lx disappeared just as we tried to manage it\n",
xwindow); xwindow);
goto error; meta_error_trap_pop (display);
meta_display_ungrab (display);
return NULL;
} }
@@ -970,22 +1018,22 @@ meta_window_new (MetaDisplay *display,
window->desc = g_strdup_printf ("0x%lx", window->xwindow); 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 */ /* avoid tons of stack updates */
meta_stack_freeze (window->screen->stack); meta_stack_freeze (window->screen->stack);
window->rect.x = attrs.x; window->rect.x = attrs->x;
window->rect.y = attrs.y; window->rect.y = attrs->y;
window->rect.width = attrs.width; window->rect.width = attrs->width;
window->rect.height = attrs.height; window->rect.height = attrs->height;
/* And border width, size_hints are the "request" */ /* And border width, size_hints are the "request" */
window->border_width = attrs.border_width; window->border_width = attrs->border_width;
window->size_hints.x = attrs.x; window->size_hints.x = attrs->x;
window->size_hints.y = attrs.y; window->size_hints.y = attrs->y;
window->size_hints.width = attrs.width; window->size_hints.width = attrs->width;
window->size_hints.height = attrs.height; window->size_hints.height = attrs->height;
/* initialize the remaining size_hints as if size_hints.flags were zero */ /* initialize the remaining size_hints as if size_hints.flags were zero */
meta_set_normal_hints (window, NULL); meta_set_normal_hints (window, NULL);
@@ -993,9 +1041,9 @@ meta_window_new (MetaDisplay *display,
window->saved_rect = window->rect; window->saved_rect = window->rect;
window->user_rect = window->rect; window->user_rect = window->rect;
window->depth = attrs.depth; window->depth = attrs->depth;
window->xvisual = attrs.visual; window->xvisual = attrs->visual;
window->colormap = attrs.colormap; window->colormap = attrs->colormap;
window->title = NULL; window->title = NULL;
window->icon_name = NULL; window->icon_name = NULL;
@@ -1030,7 +1078,7 @@ meta_window_new (MetaDisplay *display,
window->minimized = FALSE; window->minimized = FALSE;
window->tab_unminimized = FALSE; window->tab_unminimized = FALSE;
window->iconic = FALSE; window->iconic = FALSE;
window->mapped = attrs.map_state != IsUnmapped; window->mapped = attrs->map_state != IsUnmapped;
window->hidden = FALSE; window->hidden = FALSE;
window->visible_to_compositor = FALSE; window->visible_to_compositor = FALSE;
window->pending_compositor_effect = effect; window->pending_compositor_effect = effect;
@@ -1399,9 +1447,6 @@ meta_window_new (MetaDisplay *display,
set_net_wm_state (window); set_net_wm_state (window);
} }
if (screen->display->compositor)
meta_compositor_add_window (screen->display->compositor, window);
/* Sync stack changes */ /* Sync stack changes */
meta_stack_thaw (window->screen->stack); meta_stack_thaw (window->screen->stack);
@@ -1438,6 +1483,7 @@ meta_window_new (MetaDisplay *display,
unminimize_window_and_all_transient_parents (window); unminimize_window_and_all_transient_parents (window);
meta_error_trap_pop (display); /* pop the XSync()-reducing trap */ meta_error_trap_pop (display); /* pop the XSync()-reducing trap */
meta_display_ungrab (display);
window->constructing = FALSE; window->constructing = FALSE;
@@ -1450,10 +1496,6 @@ meta_window_new (MetaDisplay *display,
g_signal_emit_by_name (window->display, "window-marked-urgent", window); g_signal_emit_by_name (window->display, "window-marked-urgent", window);
return 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 () */ /* This function should only be called from the end of meta_window_new_with_attrs () */
@@ -1627,8 +1669,6 @@ meta_window_unmanage (MetaWindow *window,
if (window->visible_to_compositor) if (window->visible_to_compositor)
meta_compositor_hide_window (window->display->compositor, window, meta_compositor_hide_window (window->display->compositor, window,
META_COMP_EFFECT_DESTROY); META_COMP_EFFECT_DESTROY);
meta_compositor_remove_window (window->display->compositor, window);
} }
if (window->display->window_with_menu == window) if (window->display->window_with_menu == window)
@@ -2252,6 +2292,7 @@ idle_calc_showing (gpointer data)
GSList *should_hide; GSList *should_hide;
GSList *unplaced; GSList *unplaced;
GSList *displays; GSList *displays;
MetaWindow *first_window;
guint queue_index = GPOINTER_TO_INT (data); guint queue_index = GPOINTER_TO_INT (data);
g_return_val_if_fail (queue_pending[queue_index] != NULL, FALSE); g_return_val_if_fail (queue_pending[queue_index] != NULL, FALSE);
@@ -2304,6 +2345,10 @@ idle_calc_showing (gpointer data)
should_show = g_slist_sort (should_show, stackcmp); should_show = g_slist_sort (should_show, stackcmp);
should_show = g_slist_reverse (should_show); should_show = g_slist_reverse (should_show);
first_window = copy->data;
meta_display_grab (first_window->display);
tmp = unplaced; tmp = unplaced;
while (tmp != NULL) while (tmp != NULL)
{ {
@@ -2376,6 +2421,8 @@ idle_calc_showing (gpointer data)
} }
} }
meta_display_ungrab (first_window->display);
g_slist_free (copy); g_slist_free (copy);
g_slist_free (unplaced); g_slist_free (unplaced);
@@ -3091,7 +3138,7 @@ meta_window_show (MetaWindow *window)
if (toplevel_now_mapped != toplevel_was_mapped) if (toplevel_now_mapped != toplevel_was_mapped)
{ {
if (window->display->compositor) 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) if (!window->visible_to_compositor)
@@ -3240,13 +3287,7 @@ meta_window_hide (MetaWindow *window)
if (toplevel_now_mapped != toplevel_was_mapped) if (toplevel_now_mapped != toplevel_was_mapped)
{ {
if (window->display->compositor) if (window->display->compositor)
{ meta_compositor_remove_window (window->display->compositor, window);
/* 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);
}
} }
set_net_wm_state (window); set_net_wm_state (window);
@@ -4931,11 +4972,6 @@ meta_window_move_resize_internal (MetaWindow *window,
&old_rect, &old_rect,
&new_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; w = new_rect.width;
h = new_rect.height; h = new_rect.height;
root_x_nw = new_rect.x; root_x_nw = new_rect.x;
@@ -5945,8 +5981,7 @@ meta_window_focus (MetaWindow *window,
window->desc, window->input, window->take_focus); window->desc, window->input, window->take_focus);
if (window->display->grab_window && if (window->display->grab_window &&
window->display->grab_window->all_keys_grabbed && window->display->grab_window->all_keys_grabbed)
!window->display->grab_window->unmanaging)
{ {
meta_topic (META_DEBUG_FOCUS, meta_topic (META_DEBUG_FOCUS,
"Current focus window %s has global keygrab, not focusing window %s after all\n", "Current focus window %s has global keygrab, not focusing window %s after all\n",
@@ -6017,25 +6052,6 @@ meta_window_focus (MetaWindow *window,
"Sending WM_TAKE_FOCUS to %s since take_focus = true\n", "Sending WM_TAKE_FOCUS to %s since take_focus = true\n",
window->desc); 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, meta_display_request_take_focus (window->display,
window, window,
timestamp); timestamp);
@@ -6860,36 +6876,46 @@ meta_window_client_message (MetaWindow *window,
} }
if (first == display->atom__NET_WM_STATE_MAXIMIZED_HORZ || if (first == display->atom__NET_WM_STATE_MAXIMIZED_HORZ ||
second == display->atom__NET_WM_STATE_MAXIMIZED_HORZ || second == display->atom__NET_WM_STATE_MAXIMIZED_HORZ)
first == display->atom__NET_WM_STATE_MAXIMIZED_VERT ||
second == display->atom__NET_WM_STATE_MAXIMIZED_VERT)
{ {
gboolean max; gboolean max;
MetaMaximizeFlags directions = 0;
max = (action == _NET_WM_STATE_ADD || max = (action == _NET_WM_STATE_ADD ||
(action == _NET_WM_STATE_TOGGLE && (action == _NET_WM_STATE_TOGGLE &&
!window->maximized_horizontally)); !window->maximized_horizontally));
if (first == display->atom__NET_WM_STATE_MAXIMIZED_HORZ ||
second == display->atom__NET_WM_STATE_MAXIMIZED_HORZ)
directions |= META_MAXIMIZE_HORIZONTAL;
if (first == display->atom__NET_WM_STATE_MAXIMIZED_VERT ||
second == display->atom__NET_WM_STATE_MAXIMIZED_VERT)
directions |= META_MAXIMIZE_VERTICAL;
if (max && window->has_maximize_func) if (max && window->has_maximize_func)
{ {
if (meta_prefs_get_raise_on_click ()) if (meta_prefs_get_raise_on_click ())
meta_window_raise (window); meta_window_raise (window);
meta_window_maximize (window, directions); meta_window_maximize (window, META_MAXIMIZE_HORIZONTAL);
} }
else else
{ {
if (meta_prefs_get_raise_on_click ()) if (meta_prefs_get_raise_on_click ())
meta_window_raise (window); meta_window_raise (window);
meta_window_unmaximize (window, directions); meta_window_unmaximize (window, META_MAXIMIZE_HORIZONTAL);
}
}
if (first == display->atom__NET_WM_STATE_MAXIMIZED_VERT ||
second == display->atom__NET_WM_STATE_MAXIMIZED_VERT)
{
gboolean max;
max = (action == _NET_WM_STATE_ADD ||
(action == _NET_WM_STATE_TOGGLE &&
!window->maximized_vertically));
if (max && window->has_maximize_func)
{
if (meta_prefs_get_raise_on_click ())
meta_window_raise (window);
meta_window_maximize (window, META_MAXIMIZE_VERTICAL);
}
else
{
if (meta_prefs_get_raise_on_click ())
meta_window_raise (window);
meta_window_unmaximize (window, META_MAXIMIZE_VERTICAL);
} }
} }

View File

@@ -25,7 +25,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_WORKSPACE_PRIVATE_H #ifndef META_WORKSPACE_PRIVATE_H

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/** /**

View File

@@ -22,7 +22,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/*********************************************************** /***********************************************************

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_XPROPS_H #ifndef META_XPROPS_H

View File

@@ -18,7 +18,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
/* /*

View File

@@ -16,7 +16,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_BOXES_H #ifndef META_BOXES_H

View File

@@ -19,7 +19,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_COMMON_H #ifndef META_COMMON_H

View File

@@ -17,7 +17,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef MUTTER_H_ #ifndef MUTTER_H_

View File

@@ -14,7 +14,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_COMPOSITOR_H #ifndef META_COMPOSITOR_H
@@ -75,11 +77,10 @@ gboolean meta_compositor_filter_keybinding (MetaCompositor *compositor,
MetaScreen *screen, MetaScreen *screen,
MetaKeyBinding *binding); MetaKeyBinding *binding);
void meta_compositor_add_window (MetaCompositor *compositor, void meta_compositor_add_window (MetaCompositor *compositor,
MetaWindow *window); MetaWindow *window);
void meta_compositor_remove_window (MetaCompositor *compositor, void meta_compositor_remove_window (MetaCompositor *compositor,
MetaWindow *window); MetaWindow *window);
void meta_compositor_show_window (MetaCompositor *compositor, void meta_compositor_show_window (MetaCompositor *compositor,
MetaWindow *window, MetaWindow *window,
MetaCompEffect effect); MetaCompEffect effect);
@@ -101,10 +102,6 @@ void meta_compositor_unmaximize_window (MetaCompositor *compositor,
MetaRectangle *old_rect, MetaRectangle *old_rect,
MetaRectangle *new_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, void meta_compositor_sync_window_geometry (MetaCompositor *compositor,
MetaWindow *window, MetaWindow *window,
gboolean did_placement); gboolean did_placement);

View File

@@ -14,7 +14,9 @@
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/ */
#ifndef META_DISPLAY_H #ifndef META_DISPLAY_H

Some files were not shown because too many files have changed in this diff Show More