Compare commits

..

1 Commits

Author SHA1 Message Date
Carlos Garnacho
74be2e9f94 wayland: Implement wl_pointer.axis_source/axis_stop/axis_frame emission
As per the spec. wl_pointer.axis_source determines the current source of
scroll events, wl_pointer.axis_stop determines when there's no further
scroll events on any axis (Which Clutter sends as dx/dy=0 events).
wl_pointer.axis_frame marks the end of a series of axis_* events.

v2: Updated to v4 of the protocol spec by
    Peter Hutterer <peter.hutterer@who-t.net>
v3: Update to use Clutter API
2015-10-23 16:21:25 +02:00
144 changed files with 10530 additions and 13679 deletions

17
.gitignore vendored
View File

@@ -46,7 +46,6 @@ mutter
mutter-restart-helper mutter-restart-helper
mutter-test-client mutter-test-client
mutter-test-runner mutter-test-runner
mutter-test-unit-tests
mutter-all.test mutter-all.test
org.gnome.mutter.gschema.valid org.gnome.mutter.gschema.valid
org.gnome.mutter.gschema.xml org.gnome.mutter.gschema.xml
@@ -63,18 +62,14 @@ src/stamp-meta-enum-types.h
src/meta-dbus-display-config.[ch] src/meta-dbus-display-config.[ch]
src/meta-dbus-idle-monitor.[ch] src/meta-dbus-idle-monitor.[ch]
src/meta-dbus-login1.[ch] src/meta-dbus-login1.[ch]
src/gtk-primary-selection-protocol.c
src/gtk-primary-selection-server-protocol.h
src/gtk-shell-protocol.c src/gtk-shell-protocol.c
src/gtk-shell-server-protocol.h src/gtk-shell-server-protocol.h
src/xdg-shell-unstable-v*-protocol.c src/xdg-shell-protocol.c
src/xdg-shell-unstable-v*-server-protocol.h src/xdg-shell-server-protocol.h
src/pointer-gestures-unstable-v*-protocol.c src/pointer-gestures-protocol.c
src/pointer-gestures-unstable-v*-server-protocol.h src/pointer-gestures-server-protocol.h
src/relative-pointer-unstable-v*-protocol.c src/xserver-protocol.c
src/relative-pointer-unstable-v*-server-protocol.h src/xserver-server-protocol.h
src/pointer-constraints-unstable-v*-protocol.c
src/pointer-constraints-unstable-v*-server-protocol.h
src/meta/meta-version.h src/meta/meta-version.h
doc/reference/*.args doc/reference/*.args
doc/reference/*.bak doc/reference/*.bak

142
NEWS
View File

@@ -1,145 +1,3 @@
3.20.2
======
* Notify clients of pending modifier state changes [Rui; #748526]
* Add get_is_builtin_display_on() method [Florian; #765267]
* Fix 2-finger titlebar taps on wayland [Carlos; #764519]
* Misc. bug fixes [Florian, Victor, Jonas; #765058, #765252, #765062]
Contributors:
Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Rui Matos, Florian Müllner,
Victor Toso
Translations:
GNOME Translation Robot [ja], Tiago Santos [pt]
3.20.1
======
* Constrain window move/resizes on wayland as on X11 [Rui; #748819]
* Don't crash with invalid previous monitor configurations [Rui; #764286]
* Misc. bug fixes and cleanups [Jonas, Cosimo; #762828, #764807]
Contributors:
Jonas Ådahl, Cosimo Cecchi, Rui Matos, Jasper St. Pierre
Translations:
Inaki Larranaga Murgoitio [eu], Reinout van Schouwen [nl], Fabio Tomat [fur],
Trần Ngọc Quân [vi]
3.20.0
======
* Fix crash when using visual bell [Jonas; #763858]
Contributors:
Jonas Ådahl, Jasper St. Pierre
Translations:
Milo Casagrande [it], Ask Hjorth Larsen [da]
3.19.92
=======
* Add system bell support on wayland [Jonas; #763284]
* Add gtk_surface.present to gtk-shell [Jonas; #763295]
* Handle DND drops on the root window [Carlos; #762104]
* Misc. bug fixes [Jonas, Carlos, Rui; #762828, #760745, #763125, #762763,
#762661, #762639, #763159]
Contributors:
Jonas Ådahl, Carlos Garnacho, Rui Matos, Florian Müllner
Translations:
Rūdolfs Mazurs [lv], Balázs Úr [hu], Claude Paroz [fr], Matej Urbančič [sl],
Мирослав Николић [sr, sr@latin], Sebastian Rasmussen [sv], Changwoo Ryu [ko],
Gil Forcada [ca], Tom Tryfonidis [el]
3.19.91
=======
* Add --nested CLI argument to fix nested wayland session [Jonas; #758658]
* Fix stack - scene graph stacking synchronization issues [Jonas; #755605]
* Rate-limit last-device changes to fix freezes [Carlos; #753527]
* Implement primary selection protocol [Carlos; #762560]
* Misc. bug fixes [Carlos, Jonas; #762878, #762716]
Contributors:
Jonas Ådahl, Carlos Garnacho, Tim Lunn
Translations:
Piotr Drąg [pl], Artur de Aquino Morais [pt_BR], Marek Černocký [cs],
Cédric Valmary [oc], Mario Blättermann [de], Dušan Kazik [sk],
Fran Dieguez [gl], Aurimas Černius [lt], Daniel Mustieles [es],
Stas Solovey [ru], Yosef Or Boczko [he]
3.19.90
=======
* Release buffer after processing commit [Ray; #761312, #761613]
* Implement pointer motion, locks and confinement on wayland [Jonas; #744104]
* Add basic startup notification support on wayland [Carlos; #762268]
* Misc. bug fixes [Rui, Alberts, Florian; #760670, #761543, #752794, #761557]
Contributors:
Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Rui Matos,
Alberts Muktupāvels, Florian Müllner, Jasper St. Pierre, Ray Strode
3.19.4
======
* Fix updating stacking order when setting transient_for [Jonas; #755606]
* Support screen rotation when supported by the driver [Carlos; #745079]
* Protect against broken WM_CLASS property implementations [Sebastian; #759658]
* Handle wl_pointer v5 events on wayland [Carlos; #760637]
* Implement DND actions on wayland [Carlos; #760805]
* Misc. bug fixes [Jonas, Rui, Ray, Marek; #754711, #756789, #759297, #758613,
#760330, #760476, #759222, #760670]
Contributors:
Jonas Ådahl, Marek Chalupa, Carlos Garnacho, Sebastian Keller, Rui Matos,
Florian Müllner, Jasper St. Pierre, Ray Strode
Translations:
Aurimas Černius [lt]
3.19.3
======
* Correct refresh rate units on KMS/Wayland [Daniel; #758653]
* Fix crash when initial cursor position is not on a monitor [Marek; #756698]
* Fix crash when more CRTs are enabled than outputs connected [Rui; #751638]
* Fix touch pointer emulation on wayland [Carlos; #756754]
* Allow minimizing windows that don't advertise supporting it [Jasper; #758186]
* Force 2-finger scroll by default if available [Bastien; #759304]
* Fix crash during XWayland initialization [Marek; #751845]
* Ensure to send a ConfigureNotify to just mapped windows [Rui; #759492]
* Misc. bug fixes and cleanups [Carlos, Jonas, Lionel; #758239, #758633,
#755503, #759374]
Contributors:
Jonas Ådahl, Marek Chalupa, Carlos Garnacho, Lionel Landwerlin, Rui Matos,
Bastien Nocera, Daniel Stone, Jasper St. Pierre
3.19.2
======
* Fix crash on monitor unplug [Rui; #756796]
* Exit cleanly on initialization errors [Owen; #757311]
* Allow to determine backend setting from session type [Ray; #741666]
* Fix DRM device detection for non-PCI devices [Alban; #754911]
* Don't force placement of windows without buffer on wayland [Marek; #751887]
* Fix initialization of bypass compositor hint [Rui; #758544]
Contributors:
Alban Browaeys, Marek Chalupa, Rui Matos, Florian Müllner, Ray Strode,
Owen W. Taylor
3.19.1
======
* wayland: Allow to trigger popups through keyboard/touch [Carlos; #756296]
* Fix modifiers-only input source switching on Ubuntu [Alberts; #756543]
* Misc. bug fixes [Jonas, Rui, Giovanni, Florian; #756675, #756660, #746420,
#756548, #756796, #757101, #757148]
Contributors:
Jonas Ådahl, Giovanni Campagna, Carlos Garnacho, Rui Matos,
Alberts Muktupāvels, Florian Müllner
Translations:
Daniel Șerbănescu [ro]
3.18.1 3.18.1
====== ======
* Misc. crash fixes [Jonas, Rui, Carlos, Owen, Florian; #755096, #754979, * Misc. crash fixes [Jonas, Rui, Carlos, Owen, Florian; #755096, #754979,

View File

@@ -1,8 +1,8 @@
AC_PREREQ(2.62) AC_PREREQ(2.62)
m4_define([mutter_major_version], [3]) m4_define([mutter_major_version], [3])
m4_define([mutter_minor_version], [20]) m4_define([mutter_minor_version], [18])
m4_define([mutter_micro_version], [2]) m4_define([mutter_micro_version], [1])
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])
@@ -46,7 +46,6 @@ IT_PROG_INTLTOOL([0.41])
AC_PROG_CC AC_PROG_CC
AC_PROG_CC_C_O AC_PROG_CC_C_O
AC_PROG_INSTALL AC_PROG_INSTALL
AC_PROG_SED
AC_HEADER_STDC AC_HEADER_STDC
PKG_PROG_PKG_CONFIG([0.21]) PKG_PROG_PKG_CONFIG([0.21])
@@ -59,12 +58,12 @@ CANBERRA_GTK_VERSION=0.26
CLUTTER_PACKAGE=clutter-1.0 CLUTTER_PACKAGE=clutter-1.0
MUTTER_PC_MODULES=" MUTTER_PC_MODULES="
gtk+-3.0 >= 3.19.8 gtk+-3.0 >= 3.9.11
gio-unix-2.0 >= 2.35.1 gio-unix-2.0 >= 2.35.1
pango >= 1.2.0 pango >= 1.2.0
cairo >= 1.10.0 cairo >= 1.10.0
gsettings-desktop-schemas >= 3.19.3 gsettings-desktop-schemas >= 3.15.92
$CLUTTER_PACKAGE >= 1.25.6 $CLUTTER_PACKAGE >= 1.23.4
cogl-1.0 >= 1.17.1 cogl-1.0 >= 1.17.1
upower-glib >= 0.99.0 upower-glib >= 0.99.0
gnome-desktop-3.0 gnome-desktop-3.0
@@ -220,10 +219,6 @@ AS_IF([test "$have_wayland" = "yes"], [
[AC_MSG_ERROR([Could not find wayland-scanner in your PATH, required for parsing wayland extension protocols])]) [AC_MSG_ERROR([Could not find wayland-scanner in your PATH, required for parsing wayland extension protocols])])
AC_SUBST([WAYLAND_SCANNER]) AC_SUBST([WAYLAND_SCANNER])
AC_DEFINE([HAVE_WAYLAND],[1],[Define if you want to enable Wayland support]) AC_DEFINE([HAVE_WAYLAND],[1],[Define if you want to enable Wayland support])
PKG_CHECK_MODULES(WAYLAND_PROTOCOLS, [wayland-protocols >= 1.1],
[ac_wayland_protocols_pkgdatadir=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols`])
AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, $ac_wayland_protocols_pkgdatadir)
]) ])
AM_CONDITIONAL([HAVE_WAYLAND],[test "$have_wayland" = "yes"]) AM_CONDITIONAL([HAVE_WAYLAND],[test "$have_wayland" = "yes"])

View File

@@ -1,5 +1,6 @@
desktopfiles_in_files = \ desktopfiles_in_files = \
mutter.desktop.in mutter.desktop.in \
mutter-wayland.desktop.in
desktopfilesdir = $(datadir)/applications desktopfilesdir = $(datadir)/applications
desktopfiles_DATA = $(desktopfiles_in_files:.desktop.in=.desktop) desktopfiles_DATA = $(desktopfiles_in_files:.desktop.in=.desktop)

View File

@@ -0,0 +1,17 @@
[Desktop Entry]
Type=Application
_Name=Mutter (wayland compositor)
Exec=mutter --wayland --display-server
NoDisplay=true
# name of loadable control center module
X-GNOME-WMSettingsModule=metacity
# name we put on the WM spec check window
X-GNOME-WMName=Mutter
# back compat only
X-GnomeWMSettingsLibrary=metacity
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=mutter
X-GNOME-Bugzilla-Component=general
X-GNOME-Autostart-Phase=WindowManager
X-GNOME-Provides=windowmanager
X-GNOME-Autostart-Notify=true

View File

@@ -29,7 +29,6 @@ eu
fa fa
fi fi
fr fr
fur
ga ga
gl gl
gu gu

View File

@@ -1,2 +1 @@
# List of source files that should NOT be translated. data/mutter-wayland.desktop.in
# Please keep this file sorted alphabetically.

View File

@@ -6,23 +6,21 @@
# Jordi Mallach <jordi@sindominio.net>, 2003, 2004, 2005, 2006, 2007, 2008. # Jordi Mallach <jordi@sindominio.net>, 2003, 2004, 2005, 2006, 2007, 2008.
# David Planella <david.planella@gmail.com>, 2008, 2009, 2011, 2012. # David Planella <david.planella@gmail.com>, 2008, 2009, 2011, 2012.
# Jordi Serratosa <jordis@softcatala.cat>, 2012. # Jordi Serratosa <jordis@softcatala.cat>, 2012.
# Gil Forcada <gilforcada@guifi.net>, 2012, 2013, 2014, 2016. # Gil Forcada <gilforcada@guifi.net>, 2012, 2013, 2014.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: metacity 2.24\n" "Project-Id-Version: metacity 2.24\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "Report-Msgid-Bugs-To: \n"
"product=mutter&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2015-03-10 17:33-0400\n"
"POT-Creation-Date: 2016-03-13 01:36+0000\n" "PO-Revision-Date: 2015-03-10 17:33-0400\n"
"PO-Revision-Date: 2016-03-13 14:45+0100\n" "Last-Translator: Jordi Mas <jmas@softcatala.org>\n"
"Last-Translator: Gil Forcada <gilforcada@guifi.net>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n" "Language-Team: Catalan <tradgnome@softcatala.org>\n"
"Language: ca\n" "Language: ca\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: 8bits\n" "Content-Transfer-Encoding: 8bits\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Gtranslator 2.91.6\n"
#: ../data/50-mutter-navigation.xml.in.h:1 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation" msgid "Navigation"
@@ -467,22 +465,22 @@ msgstr "Canvia al terminal virtual 11"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Canvia al terminal virtual 12" msgstr "Canvia al terminal virtual 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Pantalla integrada" msgstr "Pantalla integrada"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Desconeguda" msgstr "Desconeguda"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Pantalla desconeguda" msgstr "Pantalla desconeguda"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -498,7 +496,7 @@ msgstr ""
"Ja s'està executant un altre gestor de composició a la pantalla %i a la " "Ja s'està executant un altre gestor de composició a la pantalla %i a la "
"visualització «%s»." "visualització «%s»."
#: ../src/core/bell.c:192 #: ../src/core/bell.c:185
msgid "Bell event" msgid "Bell event"
msgstr "Esdeveniment de campana" msgstr "Esdeveniment de campana"
@@ -527,51 +525,41 @@ msgstr "_Espera"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Força'n la sortida" msgstr "_Força'n la sortida"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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 "" msgstr ""
"S'ha produït un error en obrir la pantalla del sistema de finestres X «%s»\n" "S'ha produït un error en obrir la pantalla del sistema de finestres X «%s»\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Inhabilita la connexió al gestor de sessions" msgstr "Inhabilita la connexió al gestor de sessions"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Reemplaça el gestor de finestres en execució" msgstr "Reemplaça el gestor de finestres en execució"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Especifica l'ID de gestió de sessió" msgstr "Especifica l'ID de gestió de sessió"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Visualització X per usar" msgstr "Visualització X per usar"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Inicialitza la sessió des del fitxer desat" msgstr "Inicialitza la sessió des del fitxer desat"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Fes que les crides a l'X siguin síncrones" msgstr "Fes que les crides a l'X siguin síncrones"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Funciona com a compositor de Wayland" msgstr "Funciona com a compositor de Wayland"
# Notes: #: ../src/core/main.c:220
# Afegeix una nota
#
# Camins:
# ../src/core/main.c:223
#: ../src/core/main.c:223
#| msgid "Run as a wayland compositor"
msgid "Run as a nested compositor"
msgstr "Funciona com a compositor imbricat"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Funciona com a servidor de pantalla completa, en comptes d'imbricat" msgstr "Funciona com a servidor de pantalla completa, en comptes d'imbricat"
@@ -599,12 +587,12 @@ msgstr "Escriu versió"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Connector del Mutter a utilitzar" msgstr "Connector del Mutter a utilitzar"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Espai de treball %d" msgstr "Espai de treball %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
@@ -613,12 +601,12 @@ msgstr ""
"La pantalla «%s» ja té un gestor de finestres; proveu l'opció --replace per " "La pantalla «%s» ja té un gestor de finestres; proveu l'opció --replace per "
"reemplaçar el gestor de finestres actual." "reemplaçar el gestor de finestres actual."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "La pantalla %d en la visualització '%s' no és vàlida\n" msgstr "La pantalla %d en la visualització '%s' no és vàlida\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter es va compilar sense compatibilitat per al mode detallat\n" msgstr "Mutter es va compilar sense compatibilitat per al mode detallat\n"

View File

@@ -12,7 +12,7 @@ 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: 2016-02-27 13:36+0000\n" "POT-Creation-Date: 2015-03-24 23:25+0000\n"
"PO-Revision-Date: 2014-09-22 15:01+0200\n" "PO-Revision-Date: 2014-09-22 15:01+0200\n"
"Last-Translator: Petr Kovar <pknbe@volny.cz>\n" "Last-Translator: Petr Kovar <pknbe@volny.cz>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n" "Language-Team: Czech <gnome-cs-list@gnome.org>\n"
@@ -238,7 +238,8 @@ msgstr "Přepnout okno na všechny/jednu pracovní plochu"
#: ../data/50-mutter-windows.xml.in.h:13 #: ../data/50-mutter-windows.xml.in.h:13
msgid "Raise window if covered, otherwise lower it" msgid "Raise window if covered, otherwise lower it"
msgstr "Když je okno zakryté vynést jej do popředí, jinak odsunout do pozadí" msgstr ""
"Když je okno zakryté vynést jej do popředí, jinak odsunout do pozadí"
#: ../data/50-mutter-windows.xml.in.h:14 #: ../data/50-mutter-windows.xml.in.h:14
msgid "Raise window above other windows" msgid "Raise window above other windows"
@@ -456,22 +457,22 @@ msgstr "Přepnout na VT 11"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Přepnout na VT 12" msgstr "Přepnout na VT 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Vestavěný displej" msgstr "Vestavěný displej"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Neznámý" msgstr "Neznámý"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Neznámý displej" msgstr "Neznámý displej"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -514,44 +515,40 @@ msgstr "_Počkat"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Vynutit ukončení" msgstr "_Vynutit ukončení"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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 "Nelze otevřít displej X Window System „%s“\n" msgstr "Nelze otevřít displej X Window System „%s“\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Zakáže připojení ke správci sezení" msgstr "Zakáže připojení ke správci sezení"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Nahradí běžícího správce oken" msgstr "Nahradí běžícího správce oken"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Určení ID správy sezení" msgstr "Určení ID správy sezení"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Displej X, který použije" msgstr "Displej X, který použije"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Spustí sezení z uloženého souboru" msgstr "Spustí sezení z uloženého souboru"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Provede volání X synchronně" msgstr "Provede volání X synchronně"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Spustit jako kompozitor protokolu Wayland" msgstr "Spustit jako kompozitní program protokolu Wayland"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "Spustit jako podkladový kompozitor"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Spustit jako plnohodnotný server displeje, nikoliv vnořeně" msgstr "Spustit jako plnohodnotný server displeje, nikoliv vnořeně"
@@ -579,12 +576,12 @@ msgstr "Vypíše verzi"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Zásuvný modul Mutter, který se má použít" msgstr "Zásuvný modul Mutter, který se má použít"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Plocha %d" msgstr "Plocha %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
@@ -593,12 +590,12 @@ msgstr ""
"Displej „%s“ již správce oken má; zkuste prosím nahradit aktuálního správce " "Displej „%s“ již správce oken má; zkuste prosím nahradit aktuálního správce "
"oken pomocí přepínače --replace." "oken pomocí přepínače --replace."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "Obrazovka %d na displeji „%s“ je neplatná\n" msgstr "Obrazovka %d na displeji „%s“ je neplatná\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter bylo přeloženo bez podpory podrobného režimu\n" msgstr "Mutter bylo přeloženo bez podpory podrobného režimu\n"
@@ -1275,3 +1272,32 @@ msgstr "%s (na %s)"
#~ msgid "Move to Another _Workspace" #~ msgid "Move to Another _Workspace"
#~ msgstr "Přes_unout na jinou plochu" #~ msgstr "Přes_unout na jinou plochu"
#~ msgid "Shift"
#~ msgstr "Shift"
#~ msgid "Ctrl"
#~ msgstr "Ctrl"
#~ msgid "Alt"
#~ msgstr "Alt"
#~ msgid "Meta"
#~ msgstr "Meta"
#~ msgid "Super"
#~ msgstr "Super"
#~ msgid "Hyper"
#~ msgstr "Hyper"
#~ msgid "Mod2"
#~ msgstr "Mod2"
#~ msgid "Mod3"
#~ msgstr "Mod3"
#~ msgid "Mod4"
#~ msgstr "Mod4"
#~ msgid "Mod5"
#~ msgstr "Mod5"

View File

@@ -1,5 +1,5 @@
# Danish translation of Mutter. # Danish translation of Mutter.
# Copyright (C) 2002-2009, 2012-2016. # Copyright (C) 2002-2009, 2012-2015.
# This file is distributed under the same license as the metacity package. # This file is distributed under the same license as the metacity package.
# Kjartan Maraas <kmaraas@gnome.org>, 2002 # Kjartan Maraas <kmaraas@gnome.org>, 2002
# Keld simonsen <keld@dkuug.dk>, 2002 # Keld simonsen <keld@dkuug.dk>, 2002
@@ -8,7 +8,7 @@
# Lasse Bang Mikkelsen <lbm@fatalerror.dk>, 2006. # Lasse Bang Mikkelsen <lbm@fatalerror.dk>, 2006.
# Kenneth Nielsen <k.nielsen81@gmail.com>, 2008. # Kenneth Nielsen <k.nielsen81@gmail.com>, 2008.
# Joe Hansen <joedalton2@yahoo.dk>, 2011. # Joe Hansen <joedalton2@yahoo.dk>, 2011.
# Ask Hjorth Larsen <asklarsen@gmail.com>, 2007, 09, 10, 12, 13, 14, 15, 16. # Ask Hjorth Larsen <asklarsen@gmail.com>, 2007, 09, 10, 12, 13, 14, 15.
# #
# Konventioner: # Konventioner:
# #
@@ -20,8 +20,8 @@ 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: 2016-03-20 23:17+0100\n" "POT-Creation-Date: 2015-03-21 16:30+0100\n"
"PO-Revision-Date: 2016-03-20 21:46+0100\n" "PO-Revision-Date: 2015-03-14 17:01+0100\n"
"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n" "Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n" "Language: da\n"
@@ -291,7 +291,7 @@ msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:3 #: ../data/org.gnome.mutter.gschema.xml.in.h:3
msgid "Attach modal dialogs" msgid "Attach modal dialogs"
msgstr "Fastgør modaldialoger" msgstr "Fastgør modaldialogvinduer"
#: ../data/org.gnome.mutter.gschema.xml.in.h:4 #: ../data/org.gnome.mutter.gschema.xml.in.h:4
msgid "" msgid ""
@@ -299,8 +299,9 @@ msgid ""
"attached to the titlebar of the parent window and are moved together with " "attached to the titlebar of the parent window and are moved together with "
"the parent window." "the parent window."
msgstr "" msgstr ""
"Når sand, vil modaldialoger hænge sammen med titellinjen af ophavsvinduet og " "Når sand, vil modaldialogvinduer hænge sammen med titellinjen af "
"flyttes sammen med dette, frem for at have uafhængige titellinjer." "ophavsvinduet og flyttes sammen med dette, frem for at have uafhængige "
"titellinjer."
#: ../data/org.gnome.mutter.gschema.xml.in.h:5 #: ../data/org.gnome.mutter.gschema.xml.in.h:5
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
@@ -462,22 +463,22 @@ msgstr "Skift til VT 11"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Skift til VT 12" msgstr "Skift til VT 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Indbygget skærm" msgstr "Indbygget skærm"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Ukendt" msgstr "Ukendt"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Ukendt skærm" msgstr "Ukendt skærm"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -492,7 +493,7 @@ msgid ""
msgstr "" msgstr ""
"En anden komposithåndtering kører allerede på skærm %i på terminal \"%s\"." "En anden komposithåndtering kører allerede på skærm %i på terminal \"%s\"."
#: ../src/core/bell.c:192 #: ../src/core/bell.c:185
msgid "Bell event" msgid "Bell event"
msgstr "Bip-hændelse" msgstr "Bip-hændelse"
@@ -521,44 +522,40 @@ msgstr "_Vent"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Tving til at afslutte" msgstr "_Tving til at afslutte"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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 "Kunne ikke åbne X Window System-terminalen \"%s\"\n" msgstr "Kunne ikke åbne X Window System-terminalen \"%s\"\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Deaktivér forbindelse til sessionshåndtering" msgstr "Deaktivér forbindelse til sessionshåndtering"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Erstat den kørende vindueshåndtering" msgstr "Erstat den kørende vindueshåndtering"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Angiv sessionhåndterings-id" msgstr "Angiv sessionhåndterings-id"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "X-skærm som bruges" msgstr "X-skærm som bruges"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Initialisér session fra gemt fil" msgstr "Initialisér session fra gemt fil"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Gør kald til X synkrone" msgstr "Gør kald til X synkrone"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Kør som en wayland-kompositor" msgstr "Kør som en wayland-kompositor"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "Kør som en indlejret kompositor"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Kør som fuld displayserver, frem for indlejret" msgstr "Kør som fuld displayserver, frem for indlejret"
@@ -585,12 +582,12 @@ msgstr "Vis version"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Mutter-udvidelsesmodul der skal bruges" msgstr "Mutter-udvidelsesmodul der skal bruges"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Arbejdsområde %d" msgstr "Arbejdsområde %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
@@ -599,12 +596,12 @@ msgstr ""
"Terminalen \"%s\" har allerede en vindueshåndtering; prøv tilvalget --" "Terminalen \"%s\" har allerede en vindueshåndtering; prøv tilvalget --"
"replace for at erstatte den aktuelle vindueshåndtering." "replace for at erstatte den aktuelle vindueshåndtering."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "Skærm %d på terminal \"%s\" er ugyldig\n" msgstr "Skærm %d på terminal \"%s\" er ugyldig\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter blev kompileret uden understøttelse for uddybende tilstand\n" msgstr "Mutter blev kompileret uden understøttelse for uddybende tilstand\n"
@@ -1339,6 +1336,9 @@ msgstr "%s (på %s)"
#~ msgid "_Dialog" #~ msgid "_Dialog"
#~ msgstr "_Dialog" #~ msgstr "_Dialog"
#~ msgid "_Modal dialog"
#~ msgstr "_Modaldialogvindue"
#~ msgid "_Utility" #~ msgid "_Utility"
#~ msgstr "_Værktøj" #~ msgstr "_Værktøj"
@@ -1402,6 +1402,9 @@ msgstr "%s (på %s)"
#~ msgid "Border" #~ msgid "Border"
#~ msgstr "Ramme" #~ msgstr "Ramme"
#~ msgid "Attached Modal Dialog"
#~ msgstr "Fastgjort modaldialogvindue"
#~ msgid "Button layout test %d" #~ msgid "Button layout test %d"
#~ msgstr "Knaplayouttest %d" #~ msgstr "Knaplayouttest %d"

View File

@@ -3,7 +3,7 @@
# Matthias Warkus <mawarkus@gnome.org>, 2002. # Matthias Warkus <mawarkus@gnome.org>, 2002.
# Christian Neumair <chris@gnome-de.org>, 2002-2004. # Christian Neumair <chris@gnome-de.org>, 2002-2004.
# Hendrik Richter <hendrikr@gnome.org>, 2005, 2006, 2007, 2008. # Hendrik Richter <hendrikr@gnome.org>, 2005, 2006, 2007, 2008.
# Mario Blättermann <mario.blaettermann@gmail.com>, 2010-2013, 2016. # Mario Blättermann <mario.blaettermann@gmail.com>, 2010-2013.
# Christian Kirbach <Christian.Kirbach@googlemail.com>, 2009, 2011, 2012. # Christian Kirbach <Christian.Kirbach@googlemail.com>, 2009, 2011, 2012.
# Wolfgang Stöggl <c72578@yahoo.de> 2011. # Wolfgang Stöggl <c72578@yahoo.de> 2011.
# Tobias Endrigkeit <tobiasendrigkeit@googlemail.com>, 2012. # Tobias Endrigkeit <tobiasendrigkeit@googlemail.com>, 2012.
@@ -13,16 +13,16 @@ 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: 2016-02-28 13:37+0000\n" "POT-Creation-Date: 2015-06-20 08:08+0000\n"
"PO-Revision-Date: 2016-02-28 19:15+0100\n" "PO-Revision-Date: 2015-06-18 20:59+0100\n"
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n" "Last-Translator: Bernd Homuth <dev@hmt.im>\n"
"Language-Team: Deutsch <gnome-de@gnome.org>\n" "Language-Team: Deutsch <gnome-de@gnome.org>\n"
"Language: de\n" "Language: de\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: Poedit 1.8.7\n" "X-Generator: Poedit 1.8.1\n"
#: ../data/50-mutter-navigation.xml.in.h:1 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation" msgid "Navigation"
@@ -463,22 +463,22 @@ msgstr "Zum virtuellen Terminal 11 wechseln"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Zum virtuellen Terminal 12 wechseln" msgstr "Zum virtuellen Terminal 12 wechseln"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Eingebaute Anzeige" msgstr "Eingebaute Anzeige"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Unbekannt" msgstr "Unbekannt"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Unbekannte Anzeige" msgstr "Unbekannte Anzeige"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -523,44 +523,40 @@ msgstr "_Warten"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Beenden erzwingen" msgstr "_Beenden erzwingen"
#: ../src/core/display.c:555 #: ../src/core/display.c:563
#, c-format #, c-format
msgid "Failed to open X Window System display '%s'\n" msgid "Failed to open X Window System display '%s'\n"
msgstr "X-Window-Systemanzeige »%s« konnte nicht geöffnet werden\n" msgstr "X-Window-Systemanzeige »%s« konnte nicht geöffnet werden\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Verbindung zur Sitzungsverwaltung deaktivieren" msgstr "Verbindung zur Sitzungsverwaltung deaktivieren"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Den aktuellen Fensterverwalter ersetzen" msgstr "Den aktuellen Fensterverwalter ersetzen"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Kennung der Sitzungsverwaltung angeben" msgstr "Kennung der Sitzungsverwaltung angeben"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Zu verwendende X-Anzeige" msgstr "Zu verwendende X-Anzeige"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Sitzung anhand gespeicherter Datei starten" msgstr "Sitzung anhand gespeicherter Datei starten"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "X-Aufrufe abgleichen" msgstr "X-Aufrufe abgleichen"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Als Wayland-Compositor ausführen" msgstr "Als Wayland-Compositor ausführen"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "Als eingebetteten Compositor ausführen"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Als vollwertigen Display-Server verwenden (nicht eingebettet)" msgstr "Als vollwertigen Display-Server verwenden (nicht eingebettet)"
@@ -590,12 +586,12 @@ msgstr "Version ausgeben"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Zu benutzendes Mutter-Plugin" msgstr "Zu benutzendes Mutter-Plugin"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Arbeitsfläche %d" msgstr "Arbeitsfläche %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
@@ -604,12 +600,12 @@ msgstr ""
"Bildschirm »%s« hat bereits einen Fensterverwalter. Versuchen Sie die Option " "Bildschirm »%s« hat bereits einen Fensterverwalter. Versuchen Sie die Option "
"»--replace«, um den aktuellen Fensterverwalter zu ersetzen." "»--replace«, um den aktuellen Fensterverwalter zu ersetzen."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "Bildschirm %d auf Anzeige »%s« ist ungültig\n" msgstr "Bildschirm %d auf Anzeige »%s« ist ungültig\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter wurde ohne Unterstützung für den redseligen Modus kompiliert\n" msgstr "Mutter wurde ohne Unterstützung für den redseligen Modus kompiliert\n"

View File

@@ -20,16 +20,16 @@ msgstr ""
"Project-Id-Version: metacity.gnome-2-26\n" "Project-Id-Version: metacity.gnome-2-26\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: 2016-03-12 01:36+0000\n" "POT-Creation-Date: 2015-02-21 11:31+0000\n"
"PO-Revision-Date: 2016-03-14 23:05+0200\n" "PO-Revision-Date: 2015-02-21 15:43+0200\n"
"Last-Translator: Tom Tryfonidis <tomtryf@gmail.com>\n" "Last-Translator: Efstathios Iosifidis <iosifidis@opensuse.org>\n"
"Language-Team: Greek, Modern (1453-) <opensuse-translation-el@opensuse.org>\n" "Language-Team: Greek, Modern (1453-) <opensuse-translation-el@opensuse.org>\n"
"Language: el\n" "Language: el\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: Poedit 1.8.7\n" "X-Generator: Gtranslator 2.91.6\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
#: ../data/50-mutter-navigation.xml.in.h:1 #: ../data/50-mutter-navigation.xml.in.h:1
@@ -453,41 +453,46 @@ msgid "Switch to VT 7"
msgstr "Εναλλαγή στο VT 7" msgstr "Εναλλαγή στο VT 7"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
#| msgid "Switch to VT 1"
msgid "Switch to VT 8" msgid "Switch to VT 8"
msgstr "Εναλλαγή στο VT 8" msgstr "Εναλλαγή στο VT 8"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
#| msgid "Switch to VT 1"
msgid "Switch to VT 9" msgid "Switch to VT 9"
msgstr "Εναλλαγή στο VT 9" msgstr "Εναλλαγή στο VT 9"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
#| msgid "Switch to VT 1"
msgid "Switch to VT 10" msgid "Switch to VT 10"
msgstr "Εναλλαγή στο VT 10" msgstr "Εναλλαγή στο VT 10"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
#| msgid "Switch to VT 1"
msgid "Switch to VT 11" msgid "Switch to VT 11"
msgstr "Εναλλαγή στο VT 11" msgstr "Εναλλαγή στο VT 11"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
#| msgid "Switch to VT 1"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Εναλλαγή στο VT 12" msgstr "Εναλλαγή στο VT 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Ενσωματωμένη οθόνη" msgstr "Ενσωματωμένη οθόνη"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Άγνωστη" msgstr "Άγνωστη"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Άγνωστη οθόνη" msgstr "Άγνωστη οθόνη"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -502,7 +507,7 @@ msgid ""
msgstr "" msgstr ""
"Εκτελείται ένας άλλος διαχειριστής παραθύρων στην οθόνη %i προβολή \"%s\"." "Εκτελείται ένας άλλος διαχειριστής παραθύρων στην οθόνη %i προβολή \"%s\"."
#: ../src/core/bell.c:192 #: ../src/core/bell.c:185
msgid "Bell event" msgid "Bell event"
msgstr "Ηχητικό συμβάν κουδουνιού" msgstr "Ηχητικό συμβάν κουδουνιού"
@@ -532,44 +537,40 @@ msgid "_Force Quit"
msgstr "_Εξαναγκασμός σε τερματισμό" msgstr "_Εξαναγκασμός σε τερματισμό"
# gconf/gconf-internals.c:2416 # gconf/gconf-internals.c:2416
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Απενεργοποίηση σύνδεσης στο διαχειριστή συνεδρίας" msgstr "Απενεργοποίηση σύνδεσης στο διαχειριστή συνεδρίας"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Αντικατάσταση του τρέχοντος διαχειριστή παραθύρων" msgstr "Αντικατάσταση του τρέχοντος διαχειριστή παραθύρων"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Καθορισμός αναγνωριστικού διαχείρισης συνεδρίας" msgstr "Καθορισμός αναγνωριστικού διαχείρισης συνεδρίας"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Εμφάνιση Χ για χρήση" msgstr "Εμφάνιση Χ για χρήση"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Εκκίνηση συνεδρίας από savefile" msgstr "Εκκίνηση συνεδρίας από savefile"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Να καταστούν σύγχρονες οι κλήσεις του X" msgstr "Να καταστούν σύγχρονες οι κλήσεις του X"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Εκτέλεση ως wayland compositor" msgstr "Εκτέλεση ως συνθετητής wayland"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "Εκτέλεση ως ενσωματωμένος compositor"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Εκτέλεση ως διακομιστής πλήρους οθόνης, αντί ενσωματωμένης" msgstr "Εκτέλεση ως διακομιστής πλήρους οθόνης, αντί ενσωματωμένης"
@@ -597,13 +598,16 @@ msgstr "Εμφάνιση έκδοσης"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Πρόσθετα του Mutter για χρήση" msgstr "Πρόσθετα του Mutter για χρήση"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Χώρος εργασίας %d" msgstr "Χώρος εργασίας %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
#| msgid ""
#| "Screen %d on display \"%s\" already has a window manager; try using the --"
#| "replace option to replace the current window manager.\n"
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
"to replace the current window manager." "to replace the current window manager."
@@ -612,12 +616,12 @@ msgstr ""
"χρησιμοποιήσετε την επιλογή --replace για να αντικαταστήσετε τον τρέχων " "χρησιμοποιήσετε την επιλογή --replace για να αντικαταστήσετε τον τρέχων "
"διαχειριστή παραθύρων." "διαχειριστή παραθύρων."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, 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/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "" msgstr ""
"Το Mutter έχει μεταγλωττιστεί χωρίς υποστήριξη για λειτουργία εμφάνισης " "Το Mutter έχει μεταγλωττιστεί χωρίς υποστήριξη για λειτουργία εμφάνισης "

View File

@@ -7,15 +7,15 @@
# 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, 2015, 2016. # Daniel Mustieles <daniel.mustieles@gmail.com>, 2011, 2012, 2013, 2014, 2015.
# #
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: 2016-02-28 13:37+0000\n" "POT-Creation-Date: 2015-02-23 11:10+0000\n"
"PO-Revision-Date: 2016-02-29 16:02+0100\n" "PO-Revision-Date: 2015-02-23 19:07+0100\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n" "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n" "Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
"Language: \n" "Language: \n"
@@ -445,41 +445,46 @@ msgid "Switch to VT 7"
msgstr "Cambiar al VT 7" msgstr "Cambiar al VT 7"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
#| msgid "Switch to VT 1"
msgid "Switch to VT 8" msgid "Switch to VT 8"
msgstr "Cambiar al VT 8" msgstr "Cambiar al VT 8"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
#| msgid "Switch to VT 1"
msgid "Switch to VT 9" msgid "Switch to VT 9"
msgstr "Cambiar al VT 9" msgstr "Cambiar al VT 9"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
#| msgid "Switch to VT 1"
msgid "Switch to VT 10" msgid "Switch to VT 10"
msgstr "Cambiar al VT 10" msgstr "Cambiar al VT 10"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
#| msgid "Switch to VT 1"
msgid "Switch to VT 11" msgid "Switch to VT 11"
msgstr "Cambiar al VT 11" msgstr "Cambiar al VT 11"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
#| msgid "Switch to VT 1"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Cambiar al VT 12" msgstr "Cambiar al VT 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Pantalla integrada" msgstr "Pantalla integrada"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Desconocida" msgstr "Desconocida"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Pantalla desconocida" msgstr "Pantalla desconocida"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -524,45 +529,40 @@ msgstr "_Esperar"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Forzar la salida" msgstr "_Forzar la salida"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Desactivar conexión al gestor de sesión" msgstr "Desactivar conexión al gestor de sesión"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Reemplazar el gestor de ventanas en ejecución" msgstr "Reemplazar el gestor de ventanas en ejecución"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Especificar el ID se gestión de sesión" msgstr "Especificar el ID se gestión de sesión"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Pantalla X que usar" msgstr "Pantalla X que usar"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Inicializar sesión desde el archivo de salvaguarda" msgstr "Inicializar sesión desde el archivo de salvaguarda"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Hacer que las llamadas a las X sean síncronas" msgstr "Hacer que las llamadas a las X sean síncronas"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Ejecutar como compositor Wayland" msgstr "Ejecutar como compositor Wayland"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
#| msgid "Run as a wayland compositor"
msgid "Run as a nested compositor"
msgstr "Ejecutar como compositor anidado"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Ejecutar como servidor completo, en lugar de anidado" msgstr "Ejecutar como servidor completo, en lugar de anidado"
@@ -589,12 +589,12 @@ msgstr "Imprimir versión"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Complemento de mutter que usar" msgstr "Complemento de mutter que usar"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Área de trabajo %d" msgstr "Área de trabajo %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
@@ -603,12 +603,12 @@ msgstr ""
"La pantalla «%s» ya tiene un gestor de ventanas; pruebe a usar la opción «--" "La pantalla «%s» ya tiene un gestor de ventanas; pruebe a usar la opción «--"
"replace» para reemplazar el gestor de ventanas activo." "replace» para reemplazar el gestor de ventanas activo."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, 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/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter fue compilado sin soporte para modo prolijo\n" msgstr "Mutter fue compilado sin soporte para modo prolijo\n"

View File

@@ -2,23 +2,24 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
# #
#
# Hizkuntza Politikarako Sailburuordetza <hizpol@ej-gv.es>, 2004. # Hizkuntza Politikarako Sailburuordetza <hizpol@ej-gv.es>, 2004.
# Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011. # Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011.
# Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2012, 2013, 2014, 2015, 2016. # Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2012, 2013, 2014, 2015.
#
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: mutter master\n" "Project-Id-Version: mutter master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"POT-Creation-Date: 2016-03-23 17:05+0100\n" "product=mutter&keywords=I18N+L10N&component=general\n"
"PO-Revision-Date: 2016-03-23 17:06+0100\n" "POT-Creation-Date: 2015-03-21 15:50+0100\n"
"Last-Translator: dooteo <dooteo@zundan.com>\n" "PO-Revision-Date: 2015-03-21 15:51+0100\n"
"Last-Translator: Iñaki Larrañaga Murgoitio <dooteo@zundan.com>\n"
"Language-Team: Basque <librezale@librezale.org>\n" "Language-Team: Basque <librezale@librezale.org>\n"
"Language: eu\n" "Language: eu\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 2.0\n" "X-Generator: Lokalize 1.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../data/50-mutter-navigation.xml.in.h:1 #: ../data/50-mutter-navigation.xml.in.h:1
@@ -454,22 +455,22 @@ msgstr "Aldatu 11. TBra"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Aldatu 12. TBra" msgstr "Aldatu 12. TBra"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Bertako pantaila" msgstr "Bertako pantaila"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Ezezaguna" msgstr "Ezezaguna"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Pantaila ezezaguna" msgstr "Pantaila ezezaguna"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -485,7 +486,7 @@ msgstr ""
"Dagoeneko beste konposatze-kudeatzailea ari da exekutatzen \"%2$s\" " "Dagoeneko beste konposatze-kudeatzailea ari da exekutatzen \"%2$s\" "
"pantailako %1$i. monitorean \"." "pantailako %1$i. monitorean \"."
#: ../src/core/bell.c:194 #: ../src/core/bell.c:185
msgid "Bell event" msgid "Bell event"
msgstr "Soinuaren gertaera" msgstr "Soinuaren gertaera"
@@ -514,44 +515,40 @@ msgstr "_Itxaron"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Behartu ixtera" msgstr "_Behartu ixtera"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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 "Huts egin du X Window sistemaren '%s' pantaila irekitzean\n" msgstr "Huts egin du X Window sistemaren '%s' pantaila irekitzean\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Desgaitu saio-kudeatzailearen konexioa" msgstr "Desgaitu saio-kudeatzailearen konexioa"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Ordeztu exekutatzen dagoen leiho-kudeatzailea" msgstr "Ordeztu exekutatzen dagoen leiho-kudeatzailea"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Zehaztu saio-kudeatzailearen IDa" msgstr "Zehaztu saio-kudeatzailearen IDa"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "X pantaila erabiltzeko" msgstr "X pantaila erabiltzeko"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Hasieratu saioa babes-fitxategitik" msgstr "Hasieratu saioa babes-fitxategitik"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Egin X deiak sinkronoak izatea" msgstr "Egin X deiak sinkronoak izatea"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Exekutatu wayland konposatzaile gisa" msgstr "Exekutatu wayland konposatzaile gisa"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "Exekutatu habiaratutako konposatzaile gisa"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Exekutatu pantaila-zerbitzari oso bezala, habiaratuta baino" msgstr "Exekutatu pantaila-zerbitzari oso bezala, habiaratuta baino"
@@ -578,12 +575,12 @@ msgstr "Erakutsi bertsioa"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Mutter-en osagaia erabiltzeko" msgstr "Mutter-en osagaia erabiltzeko"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "%d. laneko area" msgstr "%d. laneko area"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
@@ -592,12 +589,12 @@ msgstr ""
"'%s' pantailak badu leiho-kudeatzailea; erabili --replace aukera uneko leiho-" "'%s' pantailak badu leiho-kudeatzailea; erabili --replace aukera uneko leiho-"
"kudeatzailea ordezteko." "kudeatzailea ordezteko."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "'%2$s' bistaratzeko %1$d pantaila ez da baliozkoa\n" msgstr "'%2$s' bistaratzeko %1$d pantaila ez da baliozkoa\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter modu xehatuaren euskarririk gabe konpilatu da\n" msgstr "Mutter modu xehatuaren euskarririk gabe konpilatu da\n"
@@ -679,11 +676,11 @@ msgstr "%s (%s)"
#~ "\" ez dator bat formatuarekin" #~ "\" ez dator bat formatuarekin"
#~ msgid "" #~ msgid ""
#~ "GTK color specification must have the state in brackets, e.g. gtk:" #~ "GTK color specification must have the state in brackets, e.g. gtk:fg"
#~ "fg[NORMAL] where NORMAL is the state; could not parse \"%s\"" #~ "[NORMAL] where NORMAL is the state; could not parse \"%s\""
#~ msgstr "" #~ msgstr ""
#~ "GTK kolore-zehaztapenak egoera kortxete artean izan behar du, adib. gtk:" #~ "GTK kolore-zehaztapenak egoera kortxete artean izan behar du, adib. gtk:fg"
#~ "fg[NORMAL], NORMAL egoera izanik; \"%s\" ezin da analizatu" #~ "[NORMAL], NORMAL egoera izanik; \"%s\" ezin da analizatu"
#~ msgid "" #~ msgid ""
#~ "GTK color specification must have a close bracket after the state, e.g. " #~ "GTK color specification must have a close bracket after the state, e.g. "

View File

@@ -1,5 +1,5 @@
# French translation of mutter. # French translation of mutter.
# Copyright (C) 2002-2016 Free Software Foundation, Inc. # Copyright (C) 2002-2015 Free Software Foundation, Inc.
# This file is distributed under the same license as the metacity package. # This file is distributed under the same license as the metacity package.
# #
# Christophe Fergeau <teuf@users.sourceforge.net>, 2002. # Christophe Fergeau <teuf@users.sourceforge.net>, 2002.
@@ -11,7 +11,7 @@
# Cyprien Le Pannérer <cyplp@free.fr>, 2006. # Cyprien Le Pannérer <cyplp@free.fr>, 2006.
# Robert-André Mauchin <zebob.m@gmail.com>, 2007. # Robert-André Mauchin <zebob.m@gmail.com>, 2007.
# Stéphane Raimbault <stephane.raimbault@gmail.com>, 2007. # Stéphane Raimbault <stephane.raimbault@gmail.com>, 2007.
# Claude Paroz <claude@2xlibre.net>, 2008-2016. # Claude Paroz <claude@2xlibre.net>, 2008-2015.
# Bruno Brouard <annoa.b@gmail.com>, 2011-12. # Bruno Brouard <annoa.b@gmail.com>, 2011-12.
# #
msgid "" msgid ""
@@ -19,8 +19,8 @@ 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: 2016-03-05 13:41+0000\n" "POT-Creation-Date: 2015-02-23 23:11+0000\n"
"PO-Revision-Date: 2016-03-05 17:57+0100\n" "PO-Revision-Date: 2015-02-24 10:08+0100\n"
"Last-Translator: Claude Paroz <claude@2xlibre.net>\n" "Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n" "Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
"Language: fr\n" "Language: fr\n"
@@ -468,22 +468,22 @@ msgstr "Passer à l'émulateur de terminal 11"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Passer à l'émulateur de terminal 12" msgstr "Passer à l'émulateur de terminal 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Affichage intégré" msgstr "Affichage intégré"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Inconnu" msgstr "Inconnu"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Affichage inconnu" msgstr "Affichage inconnu"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -528,44 +528,40 @@ msgstr "_Attendre"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Forcer à quitter" msgstr "_Forcer à quitter"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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 "Impossible d'ouvrir l'affichage « %s » du système X Window\n" msgstr "Impossible d'ouvrir l'affichage « %s » du système X Window\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Désactiver la connexion au gestionnaire de sessions" msgstr "Désactiver la connexion au gestionnaire de sessions"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Remplacer le gestionnaire de fenêtres en cours de fonctionnement" msgstr "Remplacer le gestionnaire de fenêtres en cours de fonctionnement"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Indiquer l'ID de gestion de sessions" msgstr "Indiquer l'ID de gestion de sessions"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Affichage X à utiliser" msgstr "Affichage X à utiliser"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Initialiser la session depuis le fichier de sauvegarde" msgstr "Initialiser la session depuis le fichier de sauvegarde"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Rendre synchrones les appels à X" msgstr "Rendre synchrones les appels à X"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Lancer comme un compositeur wayland" msgstr "Lancer comme un compositeur wayland"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "Lancer comme un compositeur imbriqué"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Lancer comme un serveur d'affichage complet, plutôt qu'imbriqué" msgstr "Lancer comme un serveur d'affichage complet, plutôt qu'imbriqué"
@@ -593,12 +589,12 @@ msgstr "Afficher la version"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Greffon de Mutter à utiliser" msgstr "Greffon de Mutter à utiliser"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Espace de travail %d" msgstr "Espace de travail %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
@@ -607,12 +603,12 @@ msgstr ""
"L'affichage « %s » a déjà un gestionnaire de fenêtres ; essayez d'utiliser " "L'affichage « %s » a déjà un gestionnaire de fenêtres ; essayez d'utiliser "
"l'option --replace pour remplacer le gestionnaire de fenêtres actuel." "l'option --replace pour remplacer le gestionnaire de fenêtres actuel."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "L'écran %d sur l'affichage « %s » n'est pas valide\n" msgstr "L'écran %d sur l'affichage « %s » n'est pas valide\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter a été compilé sans la prise en charge du mode bavard\n" msgstr "Mutter a été compilé sans la prise en charge du mode bavard\n"

583
po/fur.po
View File

@@ -1,583 +0,0 @@
# Friulian translation for mutter.
# Copyright (C) 2016 mutter's COPYRIGHT HOLDER
# This file is distributed under the same license as the mutter package.
# Fabio Tomat <f.t.public@gmail.com>, 2016.
#
msgid ""
msgstr ""
"Project-Id-Version: mutter master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=mutter&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2016-03-25 01:58+0000\n"
"PO-Revision-Date: 2016-03-25 17:54+0100\n"
"Language-Team: Friulian <fur@li.org>\n"
"Language: fur\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
"X-Generator: Poedit 1.8.5\n"
#: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation"
msgstr "Navigazion"
#: ../data/50-mutter-navigation.xml.in.h:2
msgid "Move window to workspace 1"
msgstr "Sposte barcon tal spazi di lavôr 1"
#: ../data/50-mutter-navigation.xml.in.h:3
msgid "Move window to workspace 2"
msgstr "Sposte barcon tal spazi di lavôr 2"
#: ../data/50-mutter-navigation.xml.in.h:4
msgid "Move window to workspace 3"
msgstr "Sposte barcon tal spazi di lavôr 3"
#: ../data/50-mutter-navigation.xml.in.h:5
msgid "Move window to workspace 4"
msgstr "Sposte barcon tal spazi di lavôr 4"
#: ../data/50-mutter-navigation.xml.in.h:6
msgid "Move window to last workspace"
msgstr "Sposte barcon tal ultin spazi di lavôr"
#: ../data/50-mutter-navigation.xml.in.h:7
msgid "Move window one workspace to the left"
msgstr "Sposte barcon tal spazi di lavôr a çampe"
#: ../data/50-mutter-navigation.xml.in.h:8
msgid "Move window one workspace to the right"
msgstr "Sposte barcon tal spazi di lavôr a drete"
#: ../data/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace up"
msgstr "Sposte barcon tal spazi di lavôr parsore"
#: ../data/50-mutter-navigation.xml.in.h:10
msgid "Move window one workspace down"
msgstr "Sposte barcon tal spazi di lavôr sot"
#: ../data/50-mutter-navigation.xml.in.h:11
msgid "Move window one monitor to the left"
msgstr "Sposte barcon tal visôr a çampe"
#: ../data/50-mutter-navigation.xml.in.h:12
msgid "Move window one monitor to the right"
msgstr "Sposte barcon tal visôr a drete"
#: ../data/50-mutter-navigation.xml.in.h:13
msgid "Move window one monitor up"
msgstr "Sposte barcon tal visôr parsore"
#: ../data/50-mutter-navigation.xml.in.h:14
msgid "Move window one monitor down"
msgstr "Sposte barcon tal visôr sot"
#: ../data/50-mutter-navigation.xml.in.h:15
msgid "Switch applications"
msgstr "Passâ di une aplicazion in chê altre"
#: ../data/50-mutter-navigation.xml.in.h:16
msgid "Switch to previous application"
msgstr "Passe ae aplicazion prime"
#: ../data/50-mutter-navigation.xml.in.h:17
msgid "Switch windows"
msgstr "Passâ di un barcon in chel altri"
#: ../data/50-mutter-navigation.xml.in.h:18
msgid "Switch to previous window"
msgstr "Passe al barcon prime"
#: ../data/50-mutter-navigation.xml.in.h:19
msgid "Switch windows of an application"
msgstr "Passâ di un barcon in chel altri di une aplicazion"
#: ../data/50-mutter-navigation.xml.in.h:20
msgid "Switch to previous window of an application"
msgstr "Passe al barcon prime di une aplicazion"
#: ../data/50-mutter-navigation.xml.in.h:21
msgid "Switch system controls"
msgstr "Passâ di un control di sisteme in chel altri"
#: ../data/50-mutter-navigation.xml.in.h:22
msgid "Switch to previous system control"
msgstr "Passe al control di sisteme precedent"
#: ../data/50-mutter-navigation.xml.in.h:23
msgid "Switch windows directly"
msgstr ""
#: ../data/50-mutter-navigation.xml.in.h:24
msgid "Switch directly to previous window"
msgstr ""
#: ../data/50-mutter-navigation.xml.in.h:25
msgid "Switch windows of an app directly"
msgstr ""
#: ../data/50-mutter-navigation.xml.in.h:26
msgid "Switch directly to previous window of an app"
msgstr ""
#: ../data/50-mutter-navigation.xml.in.h:27
msgid "Switch system controls directly"
msgstr ""
#: ../data/50-mutter-navigation.xml.in.h:28
msgid "Switch directly to previous system control"
msgstr ""
#: ../data/50-mutter-navigation.xml.in.h:29
msgid "Hide all normal windows"
msgstr "Plate ducj i barcons normâi"
#: ../data/50-mutter-navigation.xml.in.h:30
msgid "Switch to workspace 1"
msgstr "Passe al spazi di lavôr 1"
#: ../data/50-mutter-navigation.xml.in.h:31
msgid "Switch to workspace 2"
msgstr "Passe al spazi di lavôr 2"
#: ../data/50-mutter-navigation.xml.in.h:32
msgid "Switch to workspace 3"
msgstr "Passe al spazi di lavôr 3"
#: ../data/50-mutter-navigation.xml.in.h:33
msgid "Switch to workspace 4"
msgstr "Passe al spazi di lavôr 4"
#: ../data/50-mutter-navigation.xml.in.h:34
msgid "Switch to last workspace"
msgstr "Passe al ultin spazi di lavôr"
#: ../data/50-mutter-navigation.xml.in.h:35
msgid "Move to workspace left"
msgstr "Sposte il spazi di lavôr a çampe"
#: ../data/50-mutter-navigation.xml.in.h:36
msgid "Move to workspace right"
msgstr "Sposte il spazi di lavôr a drete"
#: ../data/50-mutter-navigation.xml.in.h:37
msgid "Move to workspace above"
msgstr "Sposte il spazi di lavôr parsore"
#: ../data/50-mutter-navigation.xml.in.h:38
msgid "Move to workspace below"
msgstr "Sposte il spazi di lavôr sot"
#: ../data/50-mutter-system.xml.in.h:1
msgid "System"
msgstr "Sisteme"
#: ../data/50-mutter-system.xml.in.h:2
msgid "Show the run command prompt"
msgstr ""
#: ../data/50-mutter-system.xml.in.h:3
msgid "Show the activities overview"
msgstr "Mostre la panoramiche ativitâts"
#: ../data/50-mutter-windows.xml.in.h:1
msgid "Windows"
msgstr "Barcons"
#: ../data/50-mutter-windows.xml.in.h:2
msgid "Activate the window menu"
msgstr "Ative il menù dal barcon"
#: ../data/50-mutter-windows.xml.in.h:3
msgid "Toggle fullscreen mode"
msgstr "Ative/Disative modalitât plen visôr"
#: ../data/50-mutter-windows.xml.in.h:4
msgid "Toggle maximization state"
msgstr "Ative/Disative il stât slargjât"
#: ../data/50-mutter-windows.xml.in.h:5
msgid "Maximize window"
msgstr "Slargje il barcon"
#: ../data/50-mutter-windows.xml.in.h:6
msgid "Restore window"
msgstr "Ripristine barcon"
#: ../data/50-mutter-windows.xml.in.h:7
msgid "Toggle shaded state"
msgstr "Ative/Disative stât inrodolât"
#: ../data/50-mutter-windows.xml.in.h:8
msgid "Close window"
msgstr "Siere il barcon"
#: ../data/50-mutter-windows.xml.in.h:9
msgid "Hide window"
msgstr "Plate il barcon"
#: ../data/50-mutter-windows.xml.in.h:10
msgid "Move window"
msgstr "Sposte il barcon"
#: ../data/50-mutter-windows.xml.in.h:11
msgid "Resize window"
msgstr "Ridimensione barcon"
#: ../data/50-mutter-windows.xml.in.h:12
msgid "Toggle window on all workspaces or one"
msgstr "Ative/Disative barcon su ducj i spazis di lavôr o nome un"
#: ../data/50-mutter-windows.xml.in.h:13
msgid "Raise window if covered, otherwise lower it"
msgstr "Tire sù il barcon se al è cuviert, se no sbassilu"
#: ../data/50-mutter-windows.xml.in.h:14
msgid "Raise window above other windows"
msgstr "Met il barcon parsore di chei altris"
#: ../data/50-mutter-windows.xml.in.h:15
msgid "Lower window below other windows"
msgstr "Bute il barcon sot di chei altris"
#: ../data/50-mutter-windows.xml.in.h:16
msgid "Maximize window vertically"
msgstr "Slargje il barcon par verticâl"
#: ../data/50-mutter-windows.xml.in.h:17
msgid "Maximize window horizontally"
msgstr "Slargje il barcon par orizontâl"
#: ../data/50-mutter-windows.xml.in.h:18
msgid "View split on left"
msgstr ""
#: ../data/50-mutter-windows.xml.in.h:19
msgid "View split on right"
msgstr ""
#: ../data/mutter.desktop.in.h:1
msgid "Mutter"
msgstr "Mutter"
#: ../data/org.gnome.mutter.gschema.xml.in.h:1
msgid "Modifier to use for extended window management operations"
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:2
msgid ""
"This key will initiate the \"overlay\", which is a combination window "
"overview and application launching system. The default is intended to be the "
"\"Windows key\" on PC hardware. It's expected that this binding either the "
"default or set to the empty string."
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:3
msgid "Attach modal dialogs"
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:4
msgid ""
"When true, instead of having independent titlebars, modal dialogs appear "
"attached to the titlebar of the parent window and are moved together with "
"the parent window."
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:5
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:6
msgid ""
"If enabled, dropping windows on vertical screen edges maximizes them "
"vertically and resizes them horizontally to cover half of the available "
"area. Dropping windows on the top screen edge maximizes them completely."
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:7
msgid "Workspaces are managed dynamically"
msgstr "I spazis di vore a son ministrât in maniere dinamiche"
#: ../data/org.gnome.mutter.gschema.xml.in.h:8
msgid ""
"Determines whether workspaces are managed dynamically or whether there's a "
"static number of workspaces (determined by the num-workspaces key in org."
"gnome.desktop.wm.preferences)."
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:9
msgid "Workspaces only on primary"
msgstr "Spazis di vore nome tal visôr primari"
#: ../data/org.gnome.mutter.gschema.xml.in.h:10
msgid ""
"Determines whether workspace switching should happen for windows on all "
"monitors or only for windows on the primary monitor."
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:11
msgid "No tab popup"
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:12
msgid ""
"Determines whether the use of popup and highlight frame should be disabled "
"for window cycling."
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:13
msgid "Delay focus changes until the pointer stops moving"
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:14
msgid ""
"If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
"the focus will not be changed immediately when entering a window, but only "
"after the pointer stops moving."
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:15
msgid "Draggable border width"
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:16
msgid ""
"The amount of total draggable borders. If the theme's visible borders are "
"not enough, invisible borders will be added to meet this value."
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:17
msgid "Auto maximize nearly monitor sized windows"
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:18
msgid ""
"If enabled, new windows that are initially the size of the monitor "
"automatically get maximized."
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:19
msgid "Place new windows in the center"
msgstr "Place i gnûfs barcons tal mieç"
#: ../data/org.gnome.mutter.gschema.xml.in.h:20
msgid ""
"When true, the new windows will always be put in the center of the active "
"screen of the monitor."
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:21
msgid "Select window from tab popup"
msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:22
msgid "Cancel tab popup"
msgstr ""
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:1
msgid "Switch to VT 1"
msgstr "Passe al VT 1"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:2
msgid "Switch to VT 2"
msgstr "Passe al VT 2"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:3
msgid "Switch to VT 3"
msgstr "Passe al VT 3"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:4
msgid "Switch to VT 4"
msgstr "Passe al VT 4"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:5
msgid "Switch to VT 5"
msgstr "Passe al VT 5"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:6
msgid "Switch to VT 6"
msgstr "Passe al VT 6"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:7
msgid "Switch to VT 7"
msgstr "Passe al VT 7"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
msgid "Switch to VT 8"
msgstr "Passe al VT 8"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
msgid "Switch to VT 9"
msgstr "Passe al VT 9"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
msgid "Switch to VT 10"
msgstr "Passe al VT 10"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
msgid "Switch to VT 11"
msgstr "Passe al VT 11"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
msgid "Switch to VT 12"
msgstr "Passe al VT 12"
#: ../src/backends/meta-monitor-manager.c:518
msgid "Built-in display"
msgstr "Display integrât"
#: ../src/backends/meta-monitor-manager.c:544
msgid "Unknown"
msgstr "No cognossût"
#: ../src/backends/meta-monitor-manager.c:546
msgid "Unknown Display"
msgstr "Display no cognossût"
#. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"'
#.
#: ../src/backends/meta-monitor-manager.c:554
#, c-format
msgid "%s %s"
msgstr "%s %s"
#. This probably means that a non-WM compositor like xcompmgr is running;
#. * we have no way to get it to exit
#: ../src/compositor/compositor.c:456
#, c-format
msgid ""
"Another compositing manager is already running on screen %i on display \"%s"
"\"."
msgstr ""
"Un altri compositing manager al è za in esecuzion sul schermi %i sul display "
"\"%s\"."
#: ../src/core/bell.c:194
msgid "Bell event"
msgstr "Event cjampane"
#: ../src/core/delete.c:127
#, c-format
msgid "“%s” is not responding."
msgstr "“%s” nol rispuint."
#: ../src/core/delete.c:129
msgid "Application is not responding."
msgstr "La aplicazion no rispuint."
#: ../src/core/delete.c:134
msgid ""
"You may choose to wait a short while for it to continue or force the "
"application to quit entirely."
msgstr ""
#: ../src/core/delete.c:141
msgid "_Wait"
msgstr "_Spiete"
#: ../src/core/delete.c:141
msgid "_Force Quit"
msgstr "Sfuarce _Jessude"
#: ../src/core/display.c:555
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "Impussibil vierzi il display '%s' di X Window System\n"
#: ../src/core/main.c:181
msgid "Disable connection to session manager"
msgstr ""
#: ../src/core/main.c:187
msgid "Replace the running window manager"
msgstr "Rimplace il window manager in vore"
#: ../src/core/main.c:193
msgid "Specify session management ID"
msgstr ""
#: ../src/core/main.c:198
msgid "X Display to use"
msgstr "Display X di doprâ"
#: ../src/core/main.c:204
msgid "Initialize session from savefile"
msgstr "Inizialize session da file salvât"
#: ../src/core/main.c:210
msgid "Make X calls synchronous"
msgstr "Fâs lis clamadis X sincronis"
#: ../src/core/main.c:217
msgid "Run as a wayland compositor"
msgstr "Eseguìs come compositor wayland"
#: ../src/core/main.c:223
msgid "Run as a nested compositor"
msgstr "Eseguìs come compositor nidiât"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested"
msgstr "Eseguìs come servidôr display complet, invezit che nidiât"
#: ../src/core/mutter.c:39
#, c-format
msgid ""
"mutter %s\n"
"Copyright (C) 2001-%d Havoc Pennington, Red Hat, Inc., and others\n"
"This is free software; see the source for copying conditions.\n"
"There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A "
"PARTICULAR PURPOSE.\n"
msgstr ""
"mutter %s\n"
"Copyright (C) 2001-%d Havoc Pennington, Red Hat, Inc., e altris\n"
"Chest al è software libar; viodi i sorzints pes condizions di copie.\n"
"No je NISSUNE garanzie; nancje di COMERCIABILITÂT o IDONEITÂT A UNE "
"FINALITÂT PARTICOLÂR.\n"
#: ../src/core/mutter.c:53
msgid "Print version"
msgstr "Stampe version"
#: ../src/core/mutter.c:59
msgid "Mutter plugin to use"
msgstr "Plugin Mutter di doprâ"
#: ../src/core/prefs.c:1997
#, c-format
msgid "Workspace %d"
msgstr "Spazi di lavôr %d"
#: ../src/core/screen.c:521
#, c-format
msgid ""
"Display \"%s\" already has a window manager; try using the --replace option "
"to replace the current window manager."
msgstr ""
"Il display \"%s\" al à za un window manager; prove dopre la opzion --replace "
"par rimplaçâ chel atuâl."
#: ../src/core/screen.c:603
#, c-format
msgid "Screen %d on display '%s' is invalid\n"
msgstr "Schermi %d su display '%s' no valit\n"
#: ../src/core/util.c:121
msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter al è stât compilât cence supuart pe modalitât fetose\n"
#: ../src/x11/session.c:1815
msgid ""
"These windows do not support &quot;save current setup&quot; and will have to "
"be restarted manually next time you log in."
msgstr ""
"Chescj barcons no supuartin la funzion &quot;salve impostazions atuâi&quot; "
"e si scugnarà tornâ a inviâlis a man tal prossim acès."
#: ../src/x11/window-props.c:549
#, c-format
msgid "%s (on %s)"
msgstr "%s (su %s)"

View File

@@ -9,21 +9,22 @@
# Mancomún - Centro de Referencia e Servizos de Software Libre <g11n@mancomun.org>, 2009. # Mancomún - Centro de Referencia e Servizos de Software Libre <g11n@mancomun.org>, 2009.
# Fran Diéguez <frandieguez@gnome.org>, 2009, 2010, 2011, 2012. # Fran Diéguez <frandieguez@gnome.org>, 2009, 2010, 2011, 2012.
# Leandro Regueiro <leandro.regueiro@gmail.com>, 2012. # Leandro Regueiro <leandro.regueiro@gmail.com>, 2012.
# Fran Dieguez <frandieguez@gnome.org>, 2012, 2013, 2014, 2015, 2016. # Fran Dieguez <frandieguez@gnome.org>, 2012, 2013, 2014, 2015.
#
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gl\n" "Project-Id-Version: gl\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-03-02 09:49+0100\n" "POT-Creation-Date: 2015-02-28 22:43+0100\n"
"PO-Revision-Date: 2016-03-02 09:49+0200\n" "PO-Revision-Date: 2015-02-28 22:42+0100\n"
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n" "Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
"Language-Team: gnome-l10n-gl@gnome.org\n" "Language-Team: Galician <>\n"
"Language: gl\n" "Language: gl\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: Virtaal 0.7.1\n" "X-Generator: Gtranslator 2.91.6\n"
#: ../data/50-mutter-navigation.xml.in.h:1 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation" msgid "Navigation"
@@ -460,22 +461,22 @@ msgstr "Cambiar á VT 11"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Cambiar á VT 12" msgstr "Cambiar á VT 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Pantalla embebida" msgstr "Pantalla embebida"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Descoñecido" msgstr "Descoñecido"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Pantalla descoñecida" msgstr "Pantalla descoñecida"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -520,44 +521,40 @@ msgstr "Espe_rar"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Forzar a saída" msgstr "_Forzar a saída"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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 "Produciuse un erro ao abrir a visualización do X Window System «%s»\n" msgstr "Produciuse un erro ao abrir a visualización do X Window System «%s»\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Desactivar a conexión ao xestor de sesión" msgstr "Desactivar a conexión ao xestor de sesión"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Substituír o xestor de xanelas en execución" msgstr "Substituír o xestor de xanelas en execución"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Especificar o ID de xestión de sesión" msgstr "Especificar o ID de xestión de sesión"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Pantalla X que se vai usar" msgstr "Pantalla X que se vai usar"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Inicializar sesión desde o ficheiro de salvagarda" msgstr "Inicializar sesión desde o ficheiro de salvagarda"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Facer que as chamadas a X sexan sincrónicas" msgstr "Facer que as chamadas a X sexan sincrónicas"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Executar como compositor de wayland" msgstr "Executar como compositor de wayland"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "Executar como compositor anidado"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Executar como un servidor de pantalla completo, fronte a un aniñado" msgstr "Executar como un servidor de pantalla completo, fronte a un aniñado"
@@ -584,12 +581,12 @@ msgstr "Imprimir versión"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Engadido de mutter que usar" msgstr "Engadido de mutter que usar"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Espazo de traballo %d" msgstr "Espazo de traballo %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
@@ -598,12 +595,12 @@ msgstr ""
"A pantalla «%s» ten xa un xestor de xanelas, tente usar a opción --replace " "A pantalla «%s» ten xa un xestor de xanelas, tente usar a opción --replace "
"para substituír o xestor de xanelas." "para substituír o xestor de xanelas."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "A pantalla %d na visualización «%s» non é válida\n" msgstr "A pantalla %d na visualización «%s» non é válida\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter foi compilado sen compatibilidade para o modo detallado\n" msgstr "Mutter foi compilado sen compatibilidade para o modo detallado\n"

View File

@@ -10,8 +10,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: metacity.HEAD.he\n" "Project-Id-Version: metacity.HEAD.he\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-03-03 14:39+0200\n" "POT-Creation-Date: 2015-02-24 19:33+0200\n"
"PO-Revision-Date: 2016-03-03 14:40+0200\n" "PO-Revision-Date: 2015-02-24 19:34+0200\n"
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n" "Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
"Language-Team: עברית <>\n" "Language-Team: עברית <>\n"
"Language: he\n" "Language: he\n"
@@ -453,22 +453,22 @@ msgstr "מעבר ל־VT 11"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "מעבר ל־VT 12" msgstr "מעבר ל־VT 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "תצוגה מובנית" msgstr "תצוגה מובנית"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "לא ידוע" msgstr "לא ידוע"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "תצוגה לא ידועה" msgstr "תצוגה לא ידועה"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -510,44 +510,40 @@ msgstr "ה_מתנה"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_אילוץ סגירה" msgstr "_אילוץ סגירה"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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 "Failed to open X Window System display '%s'\n" msgstr "Failed to open X Window System display '%s'\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Disable connection to session manager" msgstr "Disable connection to session manager"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Replace the running window manager" msgstr "Replace the running window manager"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Specify session management ID" msgstr "Specify session management ID"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "X Display to use" msgstr "X Display to use"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Initialize session from savefile" msgstr "Initialize session from savefile"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Make X calls synchronous" msgstr "Make X calls synchronous"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Run as a wayland compositor" msgstr "Run as a wayland compositor"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "Run as a nested compositor"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Run as a full display server, rather than nested" msgstr "Run as a full display server, rather than nested"
@@ -573,12 +569,12 @@ msgstr "Print version"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "תוסף ה־mutter לשימוש" msgstr "תוסף ה־mutter לשימוש"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "מרחב עבודה %d" msgstr "מרחב עבודה %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
@@ -587,12 +583,12 @@ msgstr ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
"to replace the current window manager." "to replace the current window manager."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "Screen %d on display '%s' is invalid\n" msgstr "Screen %d on display '%s' is invalid\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter הודר ללא תמיכה במצב פירוט\n" msgstr "Mutter הודר ללא תמיכה במצב פירוט\n"

View File

@@ -1,4 +1,4 @@
# Hungarian translation of mutter. # Hungarian translation of mutter
# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 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.
# #
@@ -6,14 +6,14 @@
# Gabor Sari <saga at externet dot hu>, 2003. # Gabor Sari <saga at externet dot hu>, 2003.
# Laszlo Dvornik <dvornik at gnome dot hu>, 2004. # Laszlo Dvornik <dvornik at gnome dot hu>, 2004.
# Gabor Kelemen <kelemeng at gnome dot hu>, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013. # Gabor Kelemen <kelemeng at gnome dot hu>, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013.
# Balázs Úr <urbalazs at gmail dot com>, 2013, 2014, 2015, 2016. # Balázs Úr <urbalazs at gmail dot com>, 2013, 2014, 2015.
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: 2016-03-04 13:42+0000\n" "POT-Creation-Date: 2015-02-22 11:10+0000\n"
"PO-Revision-Date: 2016-03-04 20:43+0100\n" "PO-Revision-Date: 2015-02-22 20:52+0100\n"
"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n" "Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n" "Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
"Language: hu\n" "Language: hu\n"
@@ -436,41 +436,46 @@ msgid "Switch to VT 7"
msgstr "Váltás a 7. VT-re" msgstr "Váltás a 7. VT-re"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
#| msgid "Switch to VT 1"
msgid "Switch to VT 8" msgid "Switch to VT 8"
msgstr "Váltás a 8. VT-re" msgstr "Váltás a 8. VT-re"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
#| msgid "Switch to VT 1"
msgid "Switch to VT 9" msgid "Switch to VT 9"
msgstr "Váltás a 9. VT-re" msgstr "Váltás a 9. VT-re"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
#| msgid "Switch to VT 1"
msgid "Switch to VT 10" msgid "Switch to VT 10"
msgstr "Váltás a 10. VT-re" msgstr "Váltás a 10. VT-re"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
#| msgid "Switch to VT 1"
msgid "Switch to VT 11" msgid "Switch to VT 11"
msgstr "Váltás a 11. VT-re" msgstr "Váltás a 11. VT-re"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
#| msgid "Switch to VT 1"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Váltás a 12. VT-re" msgstr "Váltás a 12. VT-re"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Beépített kijelző" msgstr "Beépített kijelző"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Ismeretlen" msgstr "Ismeretlen"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Ismeretlen kijelző" msgstr "Ismeretlen kijelző"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -514,45 +519,40 @@ msgstr "Vá_rakozás"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Erőltetett kilépés" msgstr "_Erőltetett kilépés"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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 "Nem sikerült megnyitni a(z) „%s” X Window rendszer képernyőt\n" msgstr "Nem sikerült megnyitni a(z) „%s” X Window rendszer képernyőt\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "A munkamenet-kezelőhöz való csatlakozás tiltása" msgstr "A munkamenet-kezelőhöz való csatlakozás tiltása"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "A futó ablakkezelő helyettesítése" msgstr "A futó ablakkezelő helyettesítése"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "A munkamenet-kezelő azonosítójának megadása" msgstr "A munkamenet-kezelő azonosítójának megadása"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "A használandó X megjelenítő" msgstr "A használandó X megjelenítő"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "A munkamenet előkészítése a mentési fájlból" msgstr "A munkamenet előkészítése a mentési fájlból"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Az X-hívások szinkronná tétele" msgstr "Az X-hívások szinkronná tétele"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Futtatás wayland betűszedőként" msgstr "Futtatás wayland betűszedőként"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
#| msgid "Run as a wayland compositor"
msgid "Run as a nested compositor"
msgstr "Futtatás beágyazott betűszedőként"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "" msgstr ""
"Futtatás teljes megjelenítő kiszolgálóként az egymásba ágyazott helyett" "Futtatás teljes megjelenítő kiszolgálóként az egymásba ágyazott helyett"
@@ -580,12 +580,12 @@ msgstr "Verzió kinyomtatása"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Használandó Mutter bővítmény" msgstr "Használandó Mutter bővítmény"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "%d. munkaterület" msgstr "%d. munkaterület"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
@@ -594,12 +594,12 @@ msgstr ""
"A(z) „%s” kijelző már rendelkezik ablakkezelővel; próbálja a --replace " "A(z) „%s” kijelző már rendelkezik ablakkezelővel; próbálja a --replace "
"kapcsolóval helyettesíteni a jelenlegi ablakkezelőt." "kapcsolóval helyettesíteni a jelenlegi ablakkezelőt."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "A(z) %d képernyő a(z) „%s” megjelenítőn érvénytelen\n" msgstr "A(z) %d képernyő a(z) „%s” megjelenítőn érvénytelen\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "A Mutter ablakkezelőt a részletes mód támogatása nélkül fordították\n" msgstr "A Mutter ablakkezelőt a részletes mód támogatása nélkül fordították\n"

View File

@@ -5,15 +5,15 @@
# 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@milo.name>, 2012, 2013, 2014, 2015, 2016. # Milo Casagrande <milo@milo.name>, 2012, 2013, 2014, 2015.
# #
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: 2016-03-17 13:44+0000\n" "POT-Creation-Date: 2015-03-04 23:11+0000\n"
"PO-Revision-Date: 2016-03-17 21:24+0100\n" "PO-Revision-Date: 2015-03-05 09:16+0100\n"
"Last-Translator: Milo Casagrande <milo@milo.name>\n" "Last-Translator: Milo Casagrande <milo@milo.name>\n"
"Language-Team: Italian <tp@lists.linux.it>\n" "Language-Team: Italian <tp@lists.linux.it>\n"
"Language: it\n" "Language: it\n"
@@ -21,7 +21,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.8.7\n" "X-Generator: Poedit 1.7.4\n"
#: ../data/50-mutter-navigation.xml.in.h:1 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation" msgid "Navigation"
@@ -466,22 +466,22 @@ msgstr "Passa al VT 11"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Passa al VT 12" msgstr "Passa al VT 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Display integrato" msgstr "Display integrato"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Sconosciuto" msgstr "Sconosciuto"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Display sconosciuto" msgstr "Display sconosciuto"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -497,7 +497,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/core/bell.c:192 #: ../src/core/bell.c:185
msgid "Bell event" msgid "Bell event"
msgstr "Evento campanella" msgstr "Evento campanella"
@@ -526,44 +526,40 @@ msgstr "_Attendi"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Forza uscita" msgstr "_Forza uscita"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Disabilita la connessione al gestore di sessione" msgstr "Disabilita la connessione al gestore di sessione"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Sostituisce il window manager in esecuzione" msgstr "Sostituisce il window manager in esecuzione"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Specifica l'ID di gestione sessione" msgstr "Specifica l'ID di gestione sessione"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Display X da usare" msgstr "Display X da usare"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Inizializza la sessione da file salvato" msgstr "Inizializza la sessione da file salvato"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Rende le chiamate X sincrone" msgstr "Rende le chiamate X sincrone"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Esegui come compositor Wayland" msgstr "Esegui come compositor Wayland"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "Esegui come compositor annidato"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Esegui come display server invece che annidato" msgstr "Esegui come display server invece che annidato"
@@ -590,12 +586,12 @@ msgstr "Stampa la versione"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Plugin Mutter da usare" msgstr "Plugin Mutter da usare"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Spazio di lavoro %d" msgstr "Spazio di lavoro %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
@@ -604,12 +600,12 @@ msgstr ""
"Il display «%s» ha già un window manager; provare a utilizzare l'opzione --" "Il display «%s» ha già un window manager; provare a utilizzare l'opzione --"
"replace per sostituirlo." "replace per sostituirlo."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, 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/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "" msgstr ""
"Mutter è stato compilato escludendo il supporto per la modalità prolissa\n" "Mutter è stato compilato escludendo il supporto per la modalità prolissa\n"

2682
po/ja.po

File diff suppressed because it is too large Load Diff

View File

@@ -6,7 +6,7 @@
# Changwoo Ryu <cwryu@debian.org>, 2003, 2004, 2005, 2006, 2007, 2008, 2009. # Changwoo Ryu <cwryu@debian.org>, 2003, 2004, 2005, 2006, 2007, 2008, 2009.
# #
# Updated in mutter: # Updated in mutter:
# Changwoo Ryu <cwryu@debian.org>, 2011-2016. # Changwoo Ryu <cwryu@debian.org>, 2011-2015.
# #
# #
# 주의: # 주의:
@@ -18,8 +18,8 @@ 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: 2016-03-12 13:40+0000\n" "POT-Creation-Date: 2015-03-07 11:12+0000\n"
"PO-Revision-Date: 2016-03-13 04:38+0900\n" "PO-Revision-Date: 2015-03-08 03:44+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n" "Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n" "Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n"
"Language: Korean\n" "Language: Korean\n"
@@ -453,22 +453,22 @@ msgstr "가상 터미널 11로 이동"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "가상 터미널 12로 이동" msgstr "가상 터미널 12로 이동"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "내장 디스플레이" msgstr "내장 디스플레이"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "알 수 없음" msgstr "알 수 없음"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "알 수 없는 디스플레이" msgstr "알 수 없는 디스플레이"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -484,7 +484,7 @@ msgstr ""
"다른 창 구성 관리 프로그램이 이미 디스플레이 \"%2$s\" 화면 %1$i번에서 실행 중" "다른 창 구성 관리 프로그램이 이미 디스플레이 \"%2$s\" 화면 %1$i번에서 실행 중"
"입니다." "입니다."
#: ../src/core/bell.c:192 #: ../src/core/bell.c:185
msgid "Bell event" msgid "Bell event"
msgstr "삑소리 이벤트" msgstr "삑소리 이벤트"
@@ -511,44 +511,40 @@ msgstr "기다리기(_W)"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "강제로 끝내기(_F)" msgstr "강제로 끝내기(_F)"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, c-format #, c-format
msgid "Failed to open X Window System display '%s'\n" msgid "Failed to open X Window System display '%s'\n"
msgstr "X 윈도 시스템 디스플레이 '%s'을(를) 여는데 실패하였습니다\n" msgstr "X 윈도 시스템 디스플레이 '%s'을(를) 여는데 실패하였습니다\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "세션 관리자와 연결 하지 않습니다" msgstr "세션 관리자와 연결 하지 않습니다"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "실행 중인 창 관리자를 바꿉니다" msgstr "실행 중인 창 관리자를 바꿉니다"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "세션 관리 ID를 지정합니다" msgstr "세션 관리 ID를 지정합니다"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "사용할 X 디스플레이" msgstr "사용할 X 디스플레이"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "저장 파일에서 세션을 초기화 합니다" msgstr "저장 파일에서 세션을 초기화 합니다"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "동기 X 호출을 합니다" msgstr "동기 X 호출을 합니다"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "웨일랜드 컴포지터로 실행합니다" msgstr "웨일랜드 컴포지터로 실행합니다"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "내장 컴포지터로 실행합니다"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "전체 디스플레이 서버로 실행, 내장 프로그램 아님" msgstr "전체 디스플레이 서버로 실행, 내장 프로그램 아님"
@@ -575,26 +571,24 @@ msgstr "버전을 출력합니다"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "사용할 머터 플러그인" msgstr "사용할 머터 플러그인"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "작업 공간 %d" msgstr "작업 공간 %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
"to replace the current window manager." "to replace the current window manager."
msgstr "" msgstr "디스플레이 \"%s\"에 이미 창 관리자가 있습니다. 현재 창 관리자를 바꾸려면 --replace 옵션을 써보십시오."
"디스플레이 \"%s\"에 이미 창 관리자가 있습니다. 현재 창 관리자를 바꾸려면 --"
"replace 옵션을 써보십시오."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "디스플레이 '%2$s'의 화면 %1$d은(는) 잘못되었습니다\n" msgstr "디스플레이 '%2$s'의 화면 %1$d은(는) 잘못되었습니다\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "머터가 자세한 모드 지원 없이 컴파일 되었습니다\n" msgstr "머터가 자세한 모드 지원 없이 컴파일 되었습니다\n"

124
po/lt.po
View File

@@ -13,8 +13,8 @@ msgstr ""
"Project-Id-Version: lt\n" "Project-Id-Version: lt\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: 2016-02-26 09:54+0000\n" "POT-Creation-Date: 2015-02-28 11:14+0000\n"
"PO-Revision-Date: 2016-02-25 15:18+0200\n" "PO-Revision-Date: 2015-02-28 21:34+0200\n"
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n" "Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n" "Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
"Language: lt\n" "Language: lt\n"
@@ -23,7 +23,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
"%100<10 || n%100>=20) ? 1 : 2);\n" "%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 1.8.7\n" "X-Generator: Gtranslator 2.91.6\n"
#: ../data/50-mutter-navigation.xml.in.h:1 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation" msgid "Navigation"
@@ -31,39 +31,39 @@ msgstr "Navigacija"
#: ../data/50-mutter-navigation.xml.in.h:2 #: ../data/50-mutter-navigation.xml.in.h:2
msgid "Move window to workspace 1" msgid "Move window to workspace 1"
msgstr "Perkelti langą į darbo sritį Nr.1" msgstr "Perkelti langą į darbalaukį Nr.1"
#: ../data/50-mutter-navigation.xml.in.h:3 #: ../data/50-mutter-navigation.xml.in.h:3
msgid "Move window to workspace 2" msgid "Move window to workspace 2"
msgstr "Perkelti langą į darbo sritį Nr.2" msgstr "Perkelti langą į darbalaukį Nr.2"
#: ../data/50-mutter-navigation.xml.in.h:4 #: ../data/50-mutter-navigation.xml.in.h:4
msgid "Move window to workspace 3" msgid "Move window to workspace 3"
msgstr "Perkelti langą į darbo sritį Nr.3" msgstr "Perkelti langą į darbalaukį Nr.3"
#: ../data/50-mutter-navigation.xml.in.h:5 #: ../data/50-mutter-navigation.xml.in.h:5
msgid "Move window to workspace 4" msgid "Move window to workspace 4"
msgstr "Perkelti langą į darbo sritį Nr.4" msgstr "Perkelti langą į darbalaukį Nr.4"
#: ../data/50-mutter-navigation.xml.in.h:6 #: ../data/50-mutter-navigation.xml.in.h:6
msgid "Move window to last workspace" msgid "Move window to last workspace"
msgstr "Perkelti langą į pastarąją darbo sritį" msgstr "Perkelti langą į pastarąjį darbalaukį"
#: ../data/50-mutter-navigation.xml.in.h:7 #: ../data/50-mutter-navigation.xml.in.h:7
msgid "Move window one workspace to the left" msgid "Move window one workspace to the left"
msgstr "Perkelti langą į kairiau esančią darbo sritį" msgstr "Perkelti langą į kairiau esan darbalaukį"
#: ../data/50-mutter-navigation.xml.in.h:8 #: ../data/50-mutter-navigation.xml.in.h:8
msgid "Move window one workspace to the right" msgid "Move window one workspace to the right"
msgstr "Perkelti langą į dešiniau esančią darbo sritį" msgstr "Perkelti langą į dešiniau esan darbalaukį"
#: ../data/50-mutter-navigation.xml.in.h:9 #: ../data/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace up" msgid "Move window one workspace up"
msgstr "Perkelti langą į aukščiau esančią darbo sritį" msgstr "Perkelti langą į aukščiau esan darbalaukį"
#: ../data/50-mutter-navigation.xml.in.h:10 #: ../data/50-mutter-navigation.xml.in.h:10
msgid "Move window one workspace down" msgid "Move window one workspace down"
msgstr "Perkelti langą į žemiau esančią darbo sritį" msgstr "Perkelti langą į žemiau esan darbalaukį"
#: ../data/50-mutter-navigation.xml.in.h:11 #: ../data/50-mutter-navigation.xml.in.h:11
msgid "Move window one monitor to the left" msgid "Move window one monitor to the left"
@@ -143,39 +143,39 @@ msgstr "Paslėpti visus įprastinius langus"
#: ../data/50-mutter-navigation.xml.in.h:30 #: ../data/50-mutter-navigation.xml.in.h:30
msgid "Switch to workspace 1" msgid "Switch to workspace 1"
msgstr "Persijungti į darbo sritį Nr.1" msgstr "Persijungti į darbalaukį Nr.1"
#: ../data/50-mutter-navigation.xml.in.h:31 #: ../data/50-mutter-navigation.xml.in.h:31
msgid "Switch to workspace 2" msgid "Switch to workspace 2"
msgstr "Persijungti į darbo sritį Nr.2" msgstr "Persijungti į darbalaukį Nr.2"
#: ../data/50-mutter-navigation.xml.in.h:32 #: ../data/50-mutter-navigation.xml.in.h:32
msgid "Switch to workspace 3" msgid "Switch to workspace 3"
msgstr "Persijungti į darbo sritį Nr.3" msgstr "Persijungti į darbalaukį Nr.3"
#: ../data/50-mutter-navigation.xml.in.h:33 #: ../data/50-mutter-navigation.xml.in.h:33
msgid "Switch to workspace 4" msgid "Switch to workspace 4"
msgstr "Persijungti į darbo sritį Nr.4" msgstr "Persijungti į darbalaukį Nr.4"
#: ../data/50-mutter-navigation.xml.in.h:34 #: ../data/50-mutter-navigation.xml.in.h:34
msgid "Switch to last workspace" msgid "Switch to last workspace"
msgstr "Persijungti į pastarąją darbo sritį" msgstr "Persijungti į pastarąjį darbalaukį"
#: ../data/50-mutter-navigation.xml.in.h:35 #: ../data/50-mutter-navigation.xml.in.h:35
msgid "Move to workspace left" msgid "Move to workspace left"
msgstr "Perkelti į darbo sritį kairėje" msgstr "Perkelti į darbalaukį kairėje"
#: ../data/50-mutter-navigation.xml.in.h:36 #: ../data/50-mutter-navigation.xml.in.h:36
msgid "Move to workspace right" msgid "Move to workspace right"
msgstr "Perkelti į darbo sritį dešinėje" msgstr "Perkelti į darbalaukį dešinėje"
#: ../data/50-mutter-navigation.xml.in.h:37 #: ../data/50-mutter-navigation.xml.in.h:37
msgid "Move to workspace above" msgid "Move to workspace above"
msgstr "Perkelti į darbo sritį viršuje" msgstr "Perkelti į darbalaukį viršuje"
#: ../data/50-mutter-navigation.xml.in.h:38 #: ../data/50-mutter-navigation.xml.in.h:38
msgid "Move to workspace below" msgid "Move to workspace below"
msgstr "Perkelti į darbo sritį apačioje" msgstr "Perkelti į darbalaukį apačioje"
#: ../data/50-mutter-system.xml.in.h:1 #: ../data/50-mutter-system.xml.in.h:1
msgid "System" msgid "System"
@@ -235,7 +235,7 @@ msgstr "Keisti lango dydį"
#: ../data/50-mutter-windows.xml.in.h:12 #: ../data/50-mutter-windows.xml.in.h:12
msgid "Toggle window on all workspaces or one" msgid "Toggle window on all workspaces or one"
msgstr "Perjungti lango buvimo visose darbo srityse būseną" msgstr "Perjungti lango buvimo visuose darbalaukiuose būseną"
#: ../data/50-mutter-windows.xml.in.h:13 #: ../data/50-mutter-windows.xml.in.h:13
msgid "Raise window if covered, otherwise lower it" msgid "Raise window if covered, otherwise lower it"
@@ -272,7 +272,7 @@ msgstr "Mutter"
#: ../data/org.gnome.mutter.gschema.xml.in.h:1 #: ../data/org.gnome.mutter.gschema.xml.in.h:1
msgid "Modifier to use for extended window management operations" msgid "Modifier to use for extended window management operations"
msgstr "Klavišas, naudojamas kartu su specialiomis lango tvarkymo operacijomis" msgstr "Klavišas, naudojamas kartu su specialiais lango valdymo veiksmais"
#: ../data/org.gnome.mutter.gschema.xml.in.h:2 #: ../data/org.gnome.mutter.gschema.xml.in.h:2
msgid "" msgid ""
@@ -315,7 +315,7 @@ msgstr ""
#: ../data/org.gnome.mutter.gschema.xml.in.h:7 #: ../data/org.gnome.mutter.gschema.xml.in.h:7
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Darbo sritys tvarkomos dinamiškai" msgstr "Darbalaukiai valdomi dinamiškai"
#: ../data/org.gnome.mutter.gschema.xml.in.h:8 #: ../data/org.gnome.mutter.gschema.xml.in.h:8
msgid "" msgid ""
@@ -323,21 +323,21 @@ msgid ""
"static number of workspaces (determined by the num-workspaces key in org." "static number of workspaces (determined by the num-workspaces key in org."
"gnome.desktop.wm.preferences)." "gnome.desktop.wm.preferences)."
msgstr "" msgstr ""
"Nusako, ar darbo sritys yra tvarkomos dinamiškai, ar yra pastovus darbo " "Nusako, ar darbastaliai yra valdomi dinamiškai, ar yra pastovus darbalaukių "
"sričių skaičius (nusakomas raktu num-workspaces schemoje org.gnome.desktop." "skaičius (nusakomas raktu num-workspaces schemoje org.gnome.desktop.wm."
"wm.preferences)." "preferences)."
#: ../data/org.gnome.mutter.gschema.xml.in.h:9 #: ../data/org.gnome.mutter.gschema.xml.in.h:9
msgid "Workspaces only on primary" msgid "Workspaces only on primary"
msgstr "Darbo sritys tik pagrindiniame" msgstr "Darbalaukiai tik pagrindiniame"
#: ../data/org.gnome.mutter.gschema.xml.in.h:10 #: ../data/org.gnome.mutter.gschema.xml.in.h:10
msgid "" msgid ""
"Determines whether workspace switching should happen for windows on all " "Determines whether workspace switching should happen for windows on all "
"monitors or only for windows on the primary monitor." "monitors or only for windows on the primary monitor."
msgstr "" msgstr ""
"Nusako, ar darbo sričių perjungimas turi įvykti langams visuose " "Nusako, ar darbalaukių perjungimas turi įvykti langams viusose monitoriuose, "
"monitoriuose, ar tik langams pagrindiniame monitoriuje." "ar tik langams pagrindiniame monitoriuje."
#: ../data/org.gnome.mutter.gschema.xml.in.h:11 #: ../data/org.gnome.mutter.gschema.xml.in.h:11
msgid "No tab popup" msgid "No tab popup"
@@ -438,41 +438,46 @@ msgid "Switch to VT 7"
msgstr "Persijungti į VT 7" msgstr "Persijungti į VT 7"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
#| msgid "Switch to VT 1"
msgid "Switch to VT 8" msgid "Switch to VT 8"
msgstr "Persijungti į VT 8" msgstr "Persijungti į VT 8"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
#| msgid "Switch to VT 1"
msgid "Switch to VT 9" msgid "Switch to VT 9"
msgstr "Persijungti į VT 9" msgstr "Persijungti į VT 9"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
#| msgid "Switch to VT 1"
msgid "Switch to VT 10" msgid "Switch to VT 10"
msgstr "Persijungti į VT 10" msgstr "Persijungti į VT 10"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
#| msgid "Switch to VT 1"
msgid "Switch to VT 11" msgid "Switch to VT 11"
msgstr "Persijungti į VT 11" msgstr "Persijungti į VT 11"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
#| msgid "Switch to VT 1"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Persijungti į VT 12" msgstr "Persijungti į VT 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Integruotas vaizduoklis" msgstr "Integruotas vaizduoklis"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Nežinomas" msgstr "Nežinomas"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Nežinomas vaizduoklis" msgstr "Nežinomas vaizduoklis"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -484,7 +489,7 @@ msgstr "%s %s"
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"
"\"." "\"."
msgstr "Kita kompozicijos tvarkytuvė jau veikia ekrane %i vaizduoklyje „%s“." msgstr "Kita kompozicijos valdyklė jau veikia ekrane %i vaizduoklyje „%s“."
#: ../src/core/bell.c:185 #: ../src/core/bell.c:185
msgid "Bell event" msgid "Bell event"
@@ -513,46 +518,42 @@ msgstr "_Laukti"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Priverstinai išeiti" msgstr "_Priverstinai išeiti"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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 "Nepavyko atverti X Window sistemos ekrano „%s“\n" msgstr "Nepavyko atverti X Window sistemos ekrano „%s“\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Išjungti susijungimą su sesijos tvarkytuve" msgstr "Išjungti susijungimą su sesijos valdykle"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Pakeisti veikiančią langų tvarkytuvę" msgstr "Pakeisti veikiančią langų valdyklę"
#: ../src/core/main.c:188
msgid "Specify session management ID"
msgstr "Nurodyti sesijos valdymo ID"
#: ../src/core/main.c:193 #: ../src/core/main.c:193
msgid "Specify session management ID"
msgstr "Nurodyti sesijos tvarkymo ID"
#: ../src/core/main.c:198
msgid "X Display to use" msgid "X Display to use"
msgstr "Naudotinas X ekranas" msgstr "Naudotinas X ekranas"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Inicializuoti sesiją iš išsaugojimo failo" msgstr "Inicializuoti sesiją iš išsaugojimo failo"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Sinchronizuoti X iškvietimus" msgstr "Sinchronizuoti X iškvietimus"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Vykdyti kaip wayland kompozitorių" msgstr "Vykdyti kaip wayland kompozitorių"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "Vykdyti kaip įdėtinį kompozitorių"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Vykdyti kaip visą vaizduoklio serverį, o ne įdėtinį" msgstr "Vykdyti kaip visą vaizduoklio serverį, o ne vidinį"
#: ../src/core/mutter.c:39 #: ../src/core/mutter.c:39
#, c-format #, c-format
@@ -579,26 +580,29 @@ msgstr "Parodyti versiją"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Naudojamas Mutter įskiepis" msgstr "Naudojamas Mutter įskiepis"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Darbo sritis %d" msgstr "Darbalaukis %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
#| msgid ""
#| "Screen %d on display \"%s\" already has a window manager; try using the --"
#| "replace option to replace the current window manager.\n"
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
"to replace the current window manager." "to replace the current window manager."
msgstr "" msgstr ""
"Vaizduoklis „%s“ jau turi langų tvarkytuvę; pabandykite pakeisti esamą langų " "Vaizduoklis „%s“ jau turi langų valdyklę; pabandykite pakeisti esamą langų "
"tvarkytuvę, naudodami parametrą --replace." "valdyklę naudodami parametrą --replace."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "Ekranas %d vaizduoklyje „%s“ netinkamas\n" msgstr "Ekranas %d vaizduoklyje „%s“ netinkamas\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter buvo sukompiliuota be išsamaus veikimo veiksenos\n" msgstr "Mutter buvo sukompiliuota be išsamaus veikimo veiksenos\n"

View File

@@ -7,14 +7,14 @@
# Raivis Dejus <orvils@gmail.com>, 2006, 2007, 2009. # Raivis Dejus <orvils@gmail.com>, 2006, 2007, 2009.
# Rudolfs <rudolfs.mazurs@gmail.com>, 2011. # Rudolfs <rudolfs.mazurs@gmail.com>, 2011.
# Rūdofls Mazurs <rudolfs.mazurs@gmail.com>, 2011, 2012. # Rūdofls Mazurs <rudolfs.mazurs@gmail.com>, 2011, 2012.
# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2012, 2013, 2014, 2015, 2016. # Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2012, 2013, 2014, 2015.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: lv\n" "Project-Id-Version: lv\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mutter&" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"keywords=I18N+L10N&component=general\n" "product=mutter&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2016-03-03 13:37+0000\n" "POT-Creation-Date: 2015-09-20 11:14+0000\n"
"PO-Revision-Date: 2016-03-03 22:19+0200\n" "PO-Revision-Date: 2015-09-20 18:51+0300\n"
"Last-Translator: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>\n" "Last-Translator: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>\n"
"Language-Team: Latvian <lata-l10n@googlegroups.com>\n" "Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
"Language: lv\n" "Language: lv\n"
@@ -23,7 +23,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
"2);\n" "2);\n"
"X-Generator: Lokalize 2.0\n" "X-Generator: Lokalize 1.5\n"
#: ../data/50-mutter-navigation.xml.in.h:1 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation" msgid "Navigation"
@@ -437,41 +437,46 @@ msgid "Switch to VT 7"
msgstr "Pārslēgties uz VT 7" msgstr "Pārslēgties uz VT 7"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
#| msgid "Switch to VT 1"
msgid "Switch to VT 8" msgid "Switch to VT 8"
msgstr "Pārslēgties uz VT 8" msgstr "Pārslēgties uz VT 8"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
#| msgid "Switch to VT 1"
msgid "Switch to VT 9" msgid "Switch to VT 9"
msgstr "Pārslēgties uz VT 9" msgstr "Pārslēgties uz VT 9"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
#| msgid "Switch to VT 1"
msgid "Switch to VT 10" msgid "Switch to VT 10"
msgstr "Pārslēgties uz VT 10" msgstr "Pārslēgties uz VT 10"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
#| msgid "Switch to VT 1"
msgid "Switch to VT 11" msgid "Switch to VT 11"
msgstr "Pārslēgties uz VT 11" msgstr "Pārslēgties uz VT 11"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
#| msgid "Switch to VT 1"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Pārslēgties uz VT 12" msgstr "Pārslēgties uz VT 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:500
msgid "Built-in display" msgid "Built-in display"
msgstr "Iebūvēts displejs" msgstr "Iebūvēts displejs"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:526
msgid "Unknown" msgid "Unknown"
msgstr "Nezināms" msgstr "Nezināms"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:528
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Nezināms displejs" msgstr "Nezināms displejs"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:536
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -514,45 +519,40 @@ msgstr "_Gaidīt"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "Aizvērt _piespiedu kārtā" msgstr "Aizvērt _piespiedu kārtā"
#: ../src/core/display.c:555 #: ../src/core/display.c:563
#, 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 "Neizdevās atvērt X logu sistēmas displeju “%s”\n" msgstr "Neizdevās atvērt X logu sistēmas displeju “%s”\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Deaktivēt savienojumu ar sesiju pārvaldnieku" msgstr "Deaktivēt savienojumu ar sesiju pārvaldnieku"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Aizvietot darbojošos logu pārvaldnieku" msgstr "Aizvietot darbojošos logu pārvaldnieku"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Norādiet sesiju pārvaldības ID" msgstr "Norādiet sesiju pārvaldības ID"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Lietojamais X displejs" msgstr "Lietojamais X displejs"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Inicializēt sesiju no saglabātās datnes" msgstr "Inicializēt sesiju no saglabātās datnes"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Padarīt X izsaukumus sinhronus" msgstr "Padarīt X izsaukumus sinhronus"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Palaist kā wayland kompozitoru" msgstr "Palaist kā wayland kompozitoru"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
#| msgid "Run as a wayland compositor"
msgid "Run as a nested compositor"
msgstr "Palaist kā ligzdotu kompozitoru"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Palaist kā pilnu attēlošanas serveri, nevis iegultu" msgstr "Palaist kā pilnu attēlošanas serveri, nevis iegultu"
@@ -579,26 +579,29 @@ msgstr "Parādīt versiju"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Izmantojamais mutter spraudnis" msgstr "Izmantojamais mutter spraudnis"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Darbvieta %d" msgstr "Darbvieta %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:526
#, c-format #, c-format
#| msgid ""
#| "Screen %d on display \"%s\" already has a window manager; try using the --"
#| "replace option to replace the current window manager.\n"
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
"to replace the current window manager." "to replace the current window manager."
msgstr "" msgstr ""
"Displejam “%s” jau ir logu pārvaldnieks; mēģiniet lietot --replace iespēju, " "Displejam “%s” jau ir logu pārvaldnieks; mēģiniet lietot --replace "
"lai aizvietotu pašreizējo logu pārvaldnieku." "iespēju, lai aizvietotu pašreizējo logu pārvaldnieku."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:608
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "Ekrāna %d displejs “%s“ nav derīgs\n" msgstr "Ekrāna %d displejs “%s“ nav derīgs\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter tika kompilēts bez detalizētas izvades režīma atbalsta\n" msgstr "Mutter tika kompilēts bez detalizētas izvades režīma atbalsta\n"
@@ -614,4 +617,3 @@ msgstr ""
#, c-format #, c-format
msgid "%s (on %s)" msgid "%s (on %s)"
msgstr "%s (uz %s)" msgstr "%s (uz %s)"

2394
po/nl.po

File diff suppressed because it is too large Load Diff

3564
po/oc.po

File diff suppressed because it is too large Load Diff

View File

@@ -9,14 +9,14 @@
# Marek Stępień <marcoos@aviary.pl>, 2007. # Marek Stępień <marcoos@aviary.pl>, 2007.
# Wadim Dziedzic <wdziedzic@aviary.pl>, 2007. # Wadim Dziedzic <wdziedzic@aviary.pl>, 2007.
# Tomasz Dominikowski <dominikowski@gmail.com>, 2008-2009. # Tomasz Dominikowski <dominikowski@gmail.com>, 2008-2009.
# Piotr Drąg <piotrdrag@gmail.com>, 2010-2016. # Piotr Drąg <piotrdrag@gmail.com>, 2010-2015.
# Aviary.pl <gnomepl@aviary.pl>, 2007-2016. # Aviary.pl <gnomepl@aviary.pl>, 2007-2015.
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: 2016-02-25 17:29+0100\n" "POT-Creation-Date: 2015-08-26 18:49+0200\n"
"PO-Revision-Date: 2016-02-25 17:30+0100\n" "PO-Revision-Date: 2015-08-26 18:50+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <gnomepl@aviary.pl>\n" "Language-Team: Polish <gnomepl@aviary.pl>\n"
"Language: pl\n" "Language: pl\n"
@@ -285,10 +285,10 @@ msgid ""
"\"Windows key\" on PC hardware. It's expected that this binding either the " "\"Windows key\" on PC hardware. It's expected that this binding either the "
"default or set to the empty string." "default or set to the empty string."
msgstr "" msgstr ""
"Ten klawisz inicjuje tryb „overlay” (nakładki), który jest połączeniem " "Ten klawisz inicjuje tryb „overlay”, który jest połączeniem podglądu okien i "
"podglądu okien i systemu uruchamiania programów. Domyślnie jest przeznaczony " "systemu uruchamiania programów. Domyślnie jest przeznaczony do powiązania z "
"do powiązania z klawiszem „Windows” na komputerach typu PC. Ustawienie tego " "klawiszem „Windows” na komputerach typu PC. Ustawienie tego powiązania "
"powiązania powinno być domyślne lub puste." "powinno być domyślne lub puste."
#: ../data/org.gnome.mutter.gschema.xml.in.h:3 #: ../data/org.gnome.mutter.gschema.xml.in.h:3
msgid "Attach modal dialogs" msgid "Attach modal dialogs"
@@ -332,8 +332,8 @@ msgid ""
"gnome.desktop.wm.preferences)." "gnome.desktop.wm.preferences)."
msgstr "" msgstr ""
"Określa, czy obszary robocze są zarządzane dynamicznie, czy istnieje " "Określa, czy obszary robocze są zarządzane dynamicznie, czy istnieje "
"statyczna liczba obszarów (określona przez klucz „num-workspaces” w org." "statyczna liczba obszarów (określona przez klucz „num-workspaces” w org."
"gnome.desktop.wm.preferences)." "gnome.desktop.wm.preferences)."
#: ../data/org.gnome.mutter.gschema.xml.in.h:9 #: ../data/org.gnome.mutter.gschema.xml.in.h:9
msgid "Workspaces only on primary" msgid "Workspaces only on primary"
@@ -468,22 +468,22 @@ msgstr "Przełączenie na 11. konsolę wirtualną"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Przełączenie na 12. konsolę wirtualną" msgstr "Przełączenie na 12. konsolę wirtualną"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:500
msgid "Built-in display" msgid "Built-in display"
msgstr "Wbudowany ekran" msgstr "Wbudowany ekran"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:526
msgid "Unknown" msgid "Unknown"
msgstr "Nieznany" msgstr "Nieznany"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:528
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Nieznany ekran" msgstr "Nieznany ekran"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:536
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -525,46 +525,42 @@ msgstr "_Czekaj"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Zakończ" msgstr "_Zakończ"
#: ../src/core/display.c:555 #: ../src/core/display.c:563
#, 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 "Otwarcie połączenia z ekranem „%s” systemu X Window się nie powiodło\n" msgstr "Otwarcie połączenia z ekranem „%s” systemu X Window się nie powiodło\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Rozłącza połączenie z menedżerem sesji" msgstr "Rozłącza połączenie z menedżerem sesji"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Zastępuje uruchomionego menedżera okien" msgstr "Zastępuje uruchomionego menedżera okien"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Podaje identyfikator zarządzania sesją" msgstr "Podaje identyfikator zarządzania sesją"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Używany ekran X" msgstr "Używany ekran X"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Inicjuje sesję z zapisanego pliku" msgstr "Inicjuje sesję z zapisanego pliku"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Synchroniczne wywołania X" msgstr "Synchroniczne wywołania X"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Uruchamia jako menedżer składania Wayland" msgstr "Uruchamia jako menedżer składania Wayland"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "Uruchamia jako osadzony menedżer składania"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Uruchamia jako pełny serwer wyświetlania zamiast osadzonego" msgstr "Uruchamia pełny serwer wyświetlania zamiast osadzonego"
#: ../src/core/mutter.c:39 #: ../src/core/mutter.c:39
#, c-format #, c-format
@@ -576,7 +572,7 @@ msgid ""
"PARTICULAR PURPOSE.\n" "PARTICULAR PURPOSE.\n"
msgstr "" msgstr ""
"mutter %s\n" "mutter %s\n"
"Copyright (C) 2001-%d Havoc Pennington, Red Hat, Inc., oraz inni\n" "Copyright (C) 2001%d Havoc Pennington, Red Hat, Inc., oraz inni\n"
"Niniejszy program jest wolnym oprogramowaniem, aby poznać warunki, pod\n" "Niniejszy program jest wolnym oprogramowaniem, aby poznać warunki, pod\n"
"jakimi dopuszczalne jest kopiowanie programu, zajrzyj do jego źródeł.\n" "jakimi dopuszczalne jest kopiowanie programu, zajrzyj do jego źródeł.\n"
"Na program nie udziela się ŻADNYCH GWARANCJI, nawet domyślnej gwarancji\n" "Na program nie udziela się ŻADNYCH GWARANCJI, nawet domyślnej gwarancji\n"
@@ -588,23 +584,23 @@ msgstr "Wyświetla wersję"
#: ../src/core/mutter.c:59 #: ../src/core/mutter.c:59
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Używana wtyczka menedżera Mutter" msgstr "Używana wtyczka programu Mutter"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "%d. obszar roboczy" msgstr "Obszar roboczy %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
"to replace the current window manager." "to replace the current window manager."
msgstr "" msgstr ""
"Na ekranie „%s” działa już menedżer okien. Aby zastąpić działającego " "Na ekranie „%s” działa już menedżer okien. Aby zastąpić działającego "
"menedżera okien, należy użyć opcji --replace." "menedżera okien, proszę spróbować użyć opcji --replace."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "Podekran %d ekranu „%s” jest nieprawidłowy\n" msgstr "Podekran %d ekranu „%s” jest nieprawidłowy\n"
@@ -612,7 +608,7 @@ msgstr "Podekran %d ekranu „%s” jest nieprawidłowy\n"
#: ../src/core/util.c:118 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "" msgstr ""
"Menedżer Mutter został skompilowany bez obsługi trybu z obszerną informacją\n" "Program Mutter został skompilowany bez obsługi trybu z obszerną informacją\n"
#: ../src/x11/session.c:1815 #: ../src/x11/session.c:1815
msgid "" msgid ""

View File

@@ -3,22 +3,21 @@
# Distributed under the same licence as the metacity package # Distributed under the same licence as the metacity package
# Duarte Loreto <happyguy_pt@hotmail.com>, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014. # Duarte Loreto <happyguy_pt@hotmail.com>, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014.
# Pedro Albuquerque <palbuquerque73@openmailbox.com>, 2015. # Pedro Albuquerque <palbuquerque73@openmailbox.com>, 2015.
# Tiago Santos <tiagofsantos81@sapo.pt>, 2016.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 3.10\n" "Project-Id-Version: 3.10\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: 2016-04-30 13:15+0000\n" "POT-Creation-Date: 2015-06-07 22:51+0000\n"
"PO-Revision-Date: 2016-04-30 16:12+0100\n" "PO-Revision-Date: 2015-06-25 08:16+0100\n"
"Last-Translator: Tiago Santos <tiagofsantos81@sapo.pt>\n" "Last-Translator: Pedro Albuquerque <palbuquerque73@openmailbox.com>\n"
"Language-Team: Português <palbuquerque73@openmailbox.com>\n" "Language-Team: Português <palbuquerque73@openmailbox.com>\n"
"Language: pt\n" "Language: pt\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.5.4\n" "X-Generator: Gtranslator 2.91.6\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../data/50-mutter-navigation.xml.in.h:1 #: ../data/50-mutter-navigation.xml.in.h:1
@@ -42,6 +41,7 @@ msgid "Move window to workspace 4"
msgstr "Mover janela para a área de trabalho 4" msgstr "Mover janela para a área de trabalho 4"
#: ../data/50-mutter-navigation.xml.in.h:6 #: ../data/50-mutter-navigation.xml.in.h:6
#| msgid "Move window to workspace 1"
msgid "Move window to last workspace" msgid "Move window to last workspace"
msgstr "Mover janela para a última área de trabalho" msgstr "Mover janela para a última área de trabalho"
@@ -82,6 +82,7 @@ msgid "Switch applications"
msgstr "Mudar de aplicações" msgstr "Mudar de aplicações"
#: ../data/50-mutter-navigation.xml.in.h:16 #: ../data/50-mutter-navigation.xml.in.h:16
#| msgid "Switch applications"
msgid "Switch to previous application" msgid "Switch to previous application"
msgstr "Mudar para a aplicação anterior" msgstr "Mudar para a aplicação anterior"
@@ -90,6 +91,7 @@ msgid "Switch windows"
msgstr "Mudar de janelas" msgstr "Mudar de janelas"
#: ../data/50-mutter-navigation.xml.in.h:18 #: ../data/50-mutter-navigation.xml.in.h:18
#| msgid "Switch windows"
msgid "Switch to previous window" msgid "Switch to previous window"
msgstr "Mudar para a janela anterior" msgstr "Mudar para a janela anterior"
@@ -98,6 +100,7 @@ msgid "Switch windows of an application"
msgstr "Alternar entre janelas de uma aplicação" msgstr "Alternar entre janelas de uma aplicação"
#: ../data/50-mutter-navigation.xml.in.h:20 #: ../data/50-mutter-navigation.xml.in.h:20
#| msgid "Switch windows of an application"
msgid "Switch to previous window of an application" msgid "Switch to previous window of an application"
msgstr "Mudar para a janela anterior de uma aplicação" msgstr "Mudar para a janela anterior de uma aplicação"
@@ -106,6 +109,7 @@ msgid "Switch system controls"
msgstr "Alternar entre controlos de sistema" msgstr "Alternar entre controlos de sistema"
#: ../data/50-mutter-navigation.xml.in.h:22 #: ../data/50-mutter-navigation.xml.in.h:22
#| msgid "Switch system controls"
msgid "Switch to previous system control" msgid "Switch to previous system control"
msgstr "Mudar para o controlo de sistema anterior" msgstr "Mudar para o controlo de sistema anterior"
@@ -122,6 +126,7 @@ msgid "Switch windows of an app directly"
msgstr "Alternar diretamente entre janelas de uma aplicação" msgstr "Alternar diretamente entre janelas de uma aplicação"
#: ../data/50-mutter-navigation.xml.in.h:26 #: ../data/50-mutter-navigation.xml.in.h:26
#| msgid "Switch windows of an application"
msgid "Switch directly to previous window of an app" msgid "Switch directly to previous window of an app"
msgstr "Mudar diretamente para a janela anterior de uma aplicação" msgstr "Mudar diretamente para a janela anterior de uma aplicação"
@@ -130,6 +135,7 @@ msgid "Switch system controls directly"
msgstr "Alternar diretamente entre controlos de sistema" msgstr "Alternar diretamente entre controlos de sistema"
#: ../data/50-mutter-navigation.xml.in.h:28 #: ../data/50-mutter-navigation.xml.in.h:28
#| msgid "Switch system controls"
msgid "Switch directly to previous system control" msgid "Switch directly to previous system control"
msgstr "Mudar diretamente para o controlo de sistema anterior" msgstr "Mudar diretamente para o controlo de sistema anterior"
@@ -154,6 +160,7 @@ msgid "Switch to workspace 4"
msgstr "Mudar para a área de trabalho 4" msgstr "Mudar para a área de trabalho 4"
#: ../data/50-mutter-navigation.xml.in.h:34 #: ../data/50-mutter-navigation.xml.in.h:34
#| msgid "Switch to workspace 1"
msgid "Switch to last workspace" msgid "Switch to last workspace"
msgstr "Mudar para a última área de trabalho 1" msgstr "Mudar para a última área de trabalho 1"
@@ -408,69 +415,81 @@ msgid "Cancel tab popup"
msgstr "Cancelar o popup de tabulador" msgstr "Cancelar o popup de tabulador"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:1 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:1
#| msgid "Switch to workspace 1"
msgid "Switch to VT 1" msgid "Switch to VT 1"
msgstr "Alternar para a área de trabalho 1" msgstr "Alternar para a área de trabalho 1"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:2 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:2
#| msgid "Switch to workspace 2"
msgid "Switch to VT 2" msgid "Switch to VT 2"
msgstr "Alternar para a área de trabalho 2" msgstr "Alternar para a área de trabalho 2"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:3 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:3
#| msgid "Switch to workspace 3"
msgid "Switch to VT 3" msgid "Switch to VT 3"
msgstr "Alternar para a área de trabalho 3" msgstr "Alternar para a área de trabalho 3"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:4 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:4
#| msgid "Switch to workspace 4"
msgid "Switch to VT 4" msgid "Switch to VT 4"
msgstr "Alternar para a área de trabalho 4" msgstr "Alternar para a área de trabalho 4"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:5 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:5
#| msgid "Switch to workspace 5"
msgid "Switch to VT 5" msgid "Switch to VT 5"
msgstr "Mover para a área de trabalho 5" msgstr "Mover para a área de trabalho 5"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:6 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:6
#| msgid "Switch to workspace 6"
msgid "Switch to VT 6" msgid "Switch to VT 6"
msgstr "Mover para a área de trabalho 6" msgstr "Mover para a área de trabalho 6"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:7 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:7
#| msgid "Switch to workspace 7"
msgid "Switch to VT 7" msgid "Switch to VT 7"
msgstr "Mover para a área de trabalho 7" msgstr "Mover para a área de trabalho 7"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
#| msgid "Switch to workspace 8"
msgid "Switch to VT 8" msgid "Switch to VT 8"
msgstr "Mover para a área de trabalho 8" msgstr "Mover para a área de trabalho 8"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
#| msgid "Switch to workspace 9"
msgid "Switch to VT 9" msgid "Switch to VT 9"
msgstr "Mover para a área de trabalho 9" msgstr "Mover para a área de trabalho 9"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
#| msgid "Switch to workspace 10"
msgid "Switch to VT 10" msgid "Switch to VT 10"
msgstr "Mover para a área de trabalho 10" msgstr "Mover para a área de trabalho 10"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
#| msgid "Switch to workspace 11"
msgid "Switch to VT 11" msgid "Switch to VT 11"
msgstr "Mover para a área de trabalho 11" msgstr "Mover para a área de trabalho 11"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
#| msgid "Switch to workspace 12"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Mover para a área de trabalho 12" msgstr "Mover para a área de trabalho 12"
#: ../src/backends/meta-monitor-manager.c:515 #: ../src/backends/meta-monitor-manager.c:496
msgid "Built-in display" msgid "Built-in display"
msgstr "Ecrã embutido" msgstr "Ecrã embutido"
#: ../src/backends/meta-monitor-manager.c:538 #: ../src/backends/meta-monitor-manager.c:522
msgid "Unknown" msgid "Unknown"
msgstr "Desconhecido" msgstr "Desconhecido"
#: ../src/backends/meta-monitor-manager.c:540 #: ../src/backends/meta-monitor-manager.c:524
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Ecrã desconhecido" msgstr "Ecrã desconhecido"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:548 #: ../src/backends/meta-monitor-manager.c:532
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -486,7 +505,7 @@ msgstr ""
"Já se encontra em execução outro gestor de janelas no ecrã %i do monitor \"%s" "Já se encontra em execução outro gestor de janelas no ecrã %i do monitor \"%s"
"\"." "\"."
#: ../src/core/bell.c:194 #: ../src/core/bell.c:185
msgid "Bell event" msgid "Bell event"
msgstr "Evento de campainha" msgstr "Evento de campainha"
@@ -515,45 +534,40 @@ msgstr "_Aguardar"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Forçar terminar" msgstr "_Forçar terminar"
#: ../src/core/display.c:555 #: ../src/core/display.c:563
#, 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 ecrã \"%s\" do sistema Janelas X\n" msgstr "Falha ao abrir ecrã \"%s\" do sistema Janelas X\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Desativar a ligação ao gestor de sessão" msgstr "Desativar a ligação ao gestor de sessão"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Substituir o gestor de janelas em execução" msgstr "Substituir o gestor de janelas em execução"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Especificar a ID de gestão de sessão" msgstr "Especificar a ID de gestão de sessão"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Ecrã X a utilizar" msgstr "Ecrã X a utilizar"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Inicializar a sessão a partir de um ficheiro de gravação de sessão" msgstr "Inicializar a sessão a partir de um ficheiro de gravação de sessão"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Fazer as chamadas X sincronamente" msgstr "Fazer as chamadas X sincronamente"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Executar como compositor wayland" msgstr "Executar como compositor wayland"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
#| msgid "Run as a wayland compositor"
msgid "Run as a nested compositor"
msgstr "Executar como compositor aninhado"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Executar como servidor de ecrã completo, em vez de aninhado" msgstr "Executar como servidor de ecrã completo, em vez de aninhado"
@@ -581,13 +595,16 @@ msgstr "Imprimir a versão"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Extensão Mutter a utilizar" msgstr "Extensão Mutter a utilizar"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Área de trabalho %d" msgstr "Área de trabalho %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
#| msgid ""
#| "Screen %d on display \"%s\" already has a window manager; try using the --"
#| "replace option to replace the current window manager.\n"
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
"to replace the current window manager." "to replace the current window manager."
@@ -595,12 +612,12 @@ msgstr ""
"O ecrã \"%s\" já tem um gestor de janelas; tente utilizar a opção --replace " "O ecrã \"%s\" já tem um gestor de janelas; tente utilizar a opção --replace "
"para substituir o gestor de janelas atual." "para substituir o gestor de janelas atual."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "Ecrã %d no monitor \"%s\" é inválido\n" msgstr "Ecrã %d no monitor \"%s\" é inválido\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "O Mutter foi compilado sem suporte para modo verboso\n" msgstr "O Mutter foi compilado sem suporte para modo verboso\n"

View File

@@ -15,23 +15,22 @@
# Rodrigo Padula de Oliveira <contato@rodrigopadula.com>, 2011. # Rodrigo Padula de Oliveira <contato@rodrigopadula.com>, 2011.
# Rafael Ferreira <rafael.f.f1@gmail.com>, 2013, 2014. # Rafael Ferreira <rafael.f.f1@gmail.com>, 2013, 2014.
# Enrico Nicoletto <liverig@gmail.com>, 2012, 2014. # Enrico Nicoletto <liverig@gmail.com>, 2012, 2014.
# Artur de Aquino Morais <artur.morais93@outlook.com>, 2016.
# #
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: 2016-02-25 13:40+0000\n" "POT-Creation-Date: 2015-02-26 11:24+0000\n"
"PO-Revision-Date: 2016-02-25 13:41-0300\n" "PO-Revision-Date: 2015-02-26 17:36-0300\n"
"Last-Translator: Artur de Aquino Morais <artur.morais93@outlook.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"
"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: Poedit 1.8.4\n" "X-Generator: Poedit 1.7.4\n"
#: ../data/50-mutter-navigation.xml.in.h:1 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation" msgid "Navigation"
@@ -473,22 +472,22 @@ msgstr "Trocar para o VT 11"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Trocar para o VT 12" msgstr "Trocar para o VT 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Tela embutida" msgstr "Tela embutida"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Desconhecido" msgstr "Desconhecido"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Monitor desconhecido" msgstr "Monitor desconhecido"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s de %s" msgstr "%s de %s"
@@ -532,44 +531,40 @@ msgstr "_Esperar"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Forçar sair" msgstr "_Forçar sair"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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 sistema de janelas X\n" msgstr "Falha ao abrir a exibição \"%s\" do sistema de janelas X\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Desabilitar a conexão com o gerenciador de sessões" msgstr "Desabilitar a conexão com o gerenciador de sessões"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Substituir o gerenciador de janelas em execução" msgstr "Substituir o gerenciador de janelas em execução"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Especificar o ID do gerenciador de sessões" msgstr "Especificar o ID do gerenciador de sessões"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Exibição do X a ser utilizada" msgstr "Exibição do X a ser utilizada"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Inicializar a sessão a partir do arquivo salvo" msgstr "Inicializar a sessão a partir do arquivo salvo"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Fazer X chamadas síncronas" msgstr "Fazer X chamadas síncronas"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Executar como um compositor wayland" msgstr "Executar como um compositor wayland"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "Executar como um compositor aninhado"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Executar como um servidor de tela cheia, ao invés de aninhado" msgstr "Executar como um servidor de tela cheia, ao invés de aninhado"
@@ -597,12 +592,12 @@ msgstr "Versão impressa"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Plug-in do Mutter para usar" msgstr "Plug-in do Mutter para usar"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Espaço de trabalho %d" msgstr "Espaço de trabalho %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
@@ -611,7 +606,7 @@ msgstr ""
"A exibição \"%s\" já possui um gerenciador de janelas; tente usar a opção --" "A exibição \"%s\" já possui um gerenciador de janelas; tente usar a opção --"
"replace para substituir o gerenciador de janelas atual." "replace para substituir o gerenciador de janelas atual."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, 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"

3353
po/ro.po

File diff suppressed because it is too large Load Diff

View File

@@ -9,16 +9,15 @@
# Yuri Kozlov <yuray@komyakino.ru>, 2011. # Yuri Kozlov <yuray@komyakino.ru>, 2011.
# Yuri Myasoedov <ymyasoedov@yandex.ru>, 2012-2014, 2015. # Yuri Myasoedov <ymyasoedov@yandex.ru>, 2012-2014, 2015.
# Ivan Komaritsyn <vantu5z@mail.ru>, 2015. # Ivan Komaritsyn <vantu5z@mail.ru>, 2015.
# Stas Solovey <whats_up@tut.by>, 2016.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: metacity ru\n" "Project-Id-Version: metacity ru\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: 2016-03-03 01:44+0000\n" "POT-Creation-Date: 2015-02-19 23:11+0000\n"
"PO-Revision-Date: 2016-03-03 13:51+0300\n" "PO-Revision-Date: 2015-02-20 13:59+0300\n"
"Last-Translator: Stas Solovey <whats_up@tut.by>\n" "Last-Translator: Ivan Komaritsyn <vantu5z@mail.ru>\n"
"Language-Team: Русский <gnome-cyr@gnome.org>\n" "Language-Team: Русский <gnome-cyr@gnome.org>\n"
"Language: ru\n" "Language: ru\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -26,7 +25,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
"X-Generator: Gtranslator 2.91.7\n" "X-Generator: Gtranslator 2.91.6\n"
#: ../data/50-mutter-navigation.xml.in.h:1 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation" msgid "Navigation"
@@ -442,41 +441,46 @@ msgid "Switch to VT 7"
msgstr "Переключиться на виртуальный терминал 7" msgstr "Переключиться на виртуальный терминал 7"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
#| msgid "Switch to VT 1"
msgid "Switch to VT 8" msgid "Switch to VT 8"
msgstr "Переключиться на виртуальный терминал 8" msgstr "Переключиться на виртуальный терминал 8"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
#| msgid "Switch to VT 1"
msgid "Switch to VT 9" msgid "Switch to VT 9"
msgstr "Переключиться на виртуальный терминал 9" msgstr "Переключиться на виртуальный терминал 9"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
#| msgid "Switch to VT 1"
msgid "Switch to VT 10" msgid "Switch to VT 10"
msgstr "Переключиться на виртуальный терминал 10" msgstr "Переключиться на виртуальный терминал 10"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
#| msgid "Switch to VT 1"
msgid "Switch to VT 11" msgid "Switch to VT 11"
msgstr "Переключиться на виртуальный терминал 11" msgstr "Переключиться на виртуальный терминал 11"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
#| msgid "Switch to VT 1"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Переключиться на виртуальный терминал 12" msgstr "Переключиться на виртуальный терминал 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Встроенный дисплей" msgstr "Встроенный дисплей"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Неизвестный" msgstr "Неизвестный"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Неизвестный дисплей" msgstr "Неизвестный дисплей"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -517,45 +521,40 @@ msgstr "_Подождать"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "Завер_шить" msgstr "Завер_шить"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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» системы X Window\n" msgstr "Не удалось открыть дисплей «%s» системы X Window\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Запретить подключение к менеджеру сеансов" msgstr "Запретить подключение к менеджеру сеансов"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Заменить запущенный оконный менеджер" msgstr "Заменить запущенный оконный менеджер"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Указать идентификатор управления сеансом" msgstr "Указать идентификатор управления сеансом"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Используемый дисплей X" msgstr "Используемый дисплей X"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Инициализировать сеанс из сохранённого файла" msgstr "Инициализировать сеанс из сохранённого файла"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Сделать X-вызовы синхронными" msgstr "Сделать X-вызовы синхронными"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Запустить в качестве композитора wayland" msgstr "Запустить в качестве композитора wayland"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
#| msgid "Run as a wayland compositor"
msgid "Run as a nested compositor"
msgstr "Запустить в качестве встроенного композитора"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Запустить в качестве полноэкранного сервера вместо встроенного" msgstr "Запустить в качестве полноэкранного сервера вместо встроенного"
@@ -584,12 +583,12 @@ msgstr "Вывести версию"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Использовать модуль mutter" msgstr "Использовать модуль mutter"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Рабочее место %d" msgstr "Рабочее место %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
@@ -598,12 +597,12 @@ msgstr ""
"Дисплей «%s» уже использует менеджер окон; попробуйте использовать параметр " "Дисплей «%s» уже использует менеджер окон; попробуйте использовать параметр "
"--replace, чтобы заменить текущий менеджер окон." "--replace, чтобы заменить текущий менеджер окон."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, 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/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter собран без поддержки режима подробных сообщений\n" msgstr "Mutter собран без поддержки режима подробных сообщений\n"

View File

@@ -14,8 +14,8 @@ 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: 2016-03-01 13:42+0000\n" "POT-Creation-Date: 2015-02-21 23:27+0000\n"
"PO-Revision-Date: 2016-03-01 20:40+0100\n" "PO-Revision-Date: 2015-02-22 11:11+0100\n"
"Last-Translator: Dušan Kazik <prescott66@gmail.com>\n" "Last-Translator: Dušan Kazik <prescott66@gmail.com>\n"
"Language-Team: Slovak <gnome-sk-list@gnome.org>\n" "Language-Team: Slovak <gnome-sk-list@gnome.org>\n"
"Language: sk\n" "Language: sk\n"
@@ -23,7 +23,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=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
"X-Generator: Poedit 1.8.7\n" "X-Generator: Poedit 1.7.4\n"
#: ../data/50-mutter-navigation.xml.in.h:1 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation" msgid "Navigation"
@@ -542,22 +542,22 @@ msgstr "Prepnúť na VT č. 11"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Prepnúť na VT č. 12" msgstr "Prepnúť na VT č. 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Vstavaný displej" msgstr "Vstavaný displej"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Neznámy" msgstr "Neznámy"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Neznámy displej" msgstr "Neznámy displej"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -602,51 +602,46 @@ msgid "_Force Quit"
msgstr "_Vynútiť ukončenie" msgstr "_Vynútiť ukončenie"
# X window system preloz, napr. system na spravu okien X # X window system preloz, napr. system na spravu okien X
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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 "Zlyhalo otvorenie displeja systému na správu okien X „%s“\n" msgstr "Zlyhalo otvorenie displeja systému na správu okien X „%s“\n"
# cmd desc # cmd desc
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Zakáže pripojenia k správcovi relácií" msgstr "Zakáže pripojenia k správcovi relácií"
# cmd desc # cmd desc
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Nahradí bežiaceho správcu okien" msgstr "Nahradí bežiaceho správcu okien"
# cmd desc # cmd desc
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Zadá identifikátor správy relácií" msgstr "Zadá identifikátor správy relácií"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "X displej, ktorý bude použitý" msgstr "X displej, ktorý bude použitý"
# cmd desc # cmd desc
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Inicializuje reláciu z uloženého súboru" msgstr "Inicializuje reláciu z uloženého súboru"
# cmd desc # cmd desc
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Použije synchrónne volania X" msgstr "Použije synchrónne volania X"
# cmd desc # cmd desc
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Spustí ako kompozitor protokolu wayland" msgstr "Spustí ako kompozitor protokolu wayland"
# cmd desc #: ../src/core/main.c:220
#: ../src/core/main.c:223
msgid "Run as a nested compositor"
msgstr "Spustí ako kompozitor s vnoreným režimom"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Spustí ako plnohodnotný zobrazovací server, namiesto vnoreného režimu" msgstr "Spustí ako plnohodnotný zobrazovací server, namiesto vnoreného režimu"
@@ -675,12 +670,12 @@ msgstr "Zobrazí verziu"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Použije zásuvný modul Mutter" msgstr "Použije zásuvný modul Mutter"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Pracovný priestor č. %d" msgstr "Pracovný priestor č. %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
@@ -689,12 +684,12 @@ msgstr ""
"Displej „%s“ už má správcu okien. Skúste použiť prepínač --replace, aby sa " "Displej „%s“ už má správcu okien. Skúste použiť prepínač --replace, aby sa "
"aktuálny správca nahradil." "aktuálny správca nahradil."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "Obrazovka č. %d na displeji „%s“ nie je platná\n" msgstr "Obrazovka č. %d na displeji „%s“ nie je platná\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter bol skompilovaný bez výpisu podrobností pri behu\n" msgstr "Mutter bol skompilovaný bez výpisu podrobností pri behu\n"

View File

@@ -4,15 +4,15 @@
# #
# Andraž Tori <andraz.tori1@guest.arnes.si>, 2000. # Andraž Tori <andraz.tori1@guest.arnes.si>, 2000.
# Matjaž Horvat <m@owca.info>, 2006. # Matjaž Horvat <m@owca.info>, 2006.
# Matej Urbančič <mateju@svn.gnome.org>, 2007-2016. # Matej Urbančič <mateju@svn.gnome.org>, 2007-2015.
# #
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: 2016-03-05 21:12+0100\n" "POT-Creation-Date: 2015-03-15 11:07+0000\n"
"PO-Revision-Date: 2016-03-05 21:12+0100\n" "PO-Revision-Date: 2015-03-15 14:36+0100\n"
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n" "Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n" "Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
"Language: sl_SI\n" "Language: sl_SI\n"
@@ -22,7 +22,7 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
"%100==4 ? 3 : 0);\n" "%100==4 ? 3 : 0);\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 1.8.4\n" "X-Generator: Poedit 1.5.4\n"
#: ../data/50-mutter-navigation.xml.in.h:1 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation" msgid "Navigation"
@@ -455,22 +455,22 @@ msgstr "Preklopi na VT 11"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Preklopi na VT 12" msgstr "Preklopi na VT 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Vgrajen zaslon" msgstr "Vgrajen zaslon"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Neznano" msgstr "Neznano"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Neznan zaslon" msgstr "Neznan zaslon"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -514,44 +514,40 @@ msgstr "_Počakaj"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Vsili konec" msgstr "_Vsili konec"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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 "Ni mogoče odpreti zaslona '%s' okenskega sistema X\n" msgstr "Ni mogoče odpreti zaslona '%s' okenskega sistema X\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Onemogoči povezavo z upravljalnikom sej" msgstr "Onemogoči povezavo z upravljalnikom sej"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Zamenjaj trenutni upravljalnik oken" msgstr "Zamenjaj trenutni upravljalnik oken"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Navedite ID upravljanja seje" msgstr "Navedite ID upravljanja seje"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Zaslon X za uporabo" msgstr "Zaslon X za uporabo"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Začni sejo iz shranjene datoteke" msgstr "Začni sejo iz shranjene datoteke"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Uskladi klice X" msgstr "Uskladi klice X"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Zaženi izbirnik wayland" msgstr "Zaženi izbirnik wayland"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "Zaženi kot gnezden vpisovalnik"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Zaženi kot polni strežnik zaslona in ne vstavljeno" msgstr "Zaženi kot polni strežnik zaslona in ne vstavljeno"
@@ -579,12 +575,12 @@ msgid "Mutter plugin to use"
msgstr "Vstavek Mutter za uporabo" msgstr "Vstavek Mutter za uporabo"
# G:1 K:0 O:0 # G:1 K:0 O:0
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Delovna površina %d" msgstr "Delovna površina %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
@@ -593,12 +589,12 @@ msgstr ""
"Zaslon \"%s\" že ima določen upravljalnik oken; poskušajte uporabiti možnost " "Zaslon \"%s\" že ima določen upravljalnik oken; poskušajte uporabiti možnost "
"--replace za zamenjavo trenutnega upravljalnika zaslona." "--replace za zamenjavo trenutnega upravljalnika zaslona."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "Zaslon %d na prikazu '%s' ni veljaven\n" msgstr "Zaslon %d na prikazu '%s' ni veljaven\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "" msgstr ""
"Program Mutter je kodno preveden brez podpore za podrobni način izpisovanja\n" "Program Mutter je kodno preveden brez podpore za podrobni način izpisovanja\n"

View File

@@ -1,21 +1,19 @@
# Serbian translation of mutter. # Serbian translation of mutter.
# Courtesy of Prevod.org team (http://prevod.org/) -- 2003—2016. # Courtesy of Prevod.org team (http://prevod.org/) -- 2003—2015.
# This file is distributed under the same license as the mutter package. # This file is distributed under the same license as the mutter package.
#
# Translators:
# Горан Ракић <grakic@devbase.net> # Горан Ракић <grakic@devbase.net>
# Данило Шеган <danilo@prevod.org>, 2005. # Данило Шеган <danilo@prevod.org>, 2005.
# Милош Поповић <gpopac@gmail.com>, 2010. # Милош Поповић <gpopac@gmail.com>, 2010.
# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011—2016. # Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011—2015.
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?product=mutter&" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mutter&"
"keywords=I18N+L10N&component=general\n" "keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2016-03-09 01:41+0000\n" "POT-Creation-Date: 2015-03-04 11:14+0000\n"
"PO-Revision-Date: 2016-03-09 09:52+0200\n" "PO-Revision-Date: 2015-03-04 19:46+0200\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n" "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n" "Language-Team: Serbian <gnom@prevod.org>\n"
"Language: sr\n" "Language: sr\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"
@@ -438,41 +436,46 @@ msgid "Switch to VT 7"
msgstr "Прелазак на ВТ 7" msgstr "Прелазак на ВТ 7"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
#| msgid "Switch to VT 1"
msgid "Switch to VT 8" msgid "Switch to VT 8"
msgstr "Прелазак на ВТ 8" msgstr "Прелазак на ВТ 8"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
#| msgid "Switch to VT 1"
msgid "Switch to VT 9" msgid "Switch to VT 9"
msgstr "Прелазак на ВТ 9" msgstr "Прелазак на ВТ 9"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
#| msgid "Switch to VT 1"
msgid "Switch to VT 10" msgid "Switch to VT 10"
msgstr "Прелазак на ВТ 10" msgstr "Прелазак на ВТ 10"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
#| msgid "Switch to VT 1"
msgid "Switch to VT 11" msgid "Switch to VT 11"
msgstr "Прелазак на ВТ 11" msgstr "Прелазак на ВТ 11"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
#| msgid "Switch to VT 1"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Прелазак на ВТ 12" msgstr "Прелазак на ВТ 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Уграђени дисплеј" msgstr "Уграђени дисплеј"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Непознато" msgstr "Непознато"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Непознат дисплеј" msgstr "Непознат дисплеј"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -516,45 +519,40 @@ msgstr "_Сачекај"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Приморај излаз" msgstr "_Приморај излаз"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Искључује везу са управником сесије" msgstr "Искључује везу са управником сесије"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Мења текућег управника прозорима" msgstr "Мења текућег управника прозорима"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Наводи ИБ управника сесије" msgstr "Наводи ИБ управника сесије"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Икс екран који ће бити коришћен" msgstr "Икс екран који ће бити коришћен"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Покреће сесију из датотеке чувања" msgstr "Покреће сесију из датотеке чувања"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Чини Икс позиве усклађеним" msgstr "Чини Икс позиве усклађеним"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Ради као вајландов саставник" msgstr "Ради као вајландов саставник"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
#| msgid "Run as a wayland compositor"
msgid "Run as a nested compositor"
msgstr "Ради као угнеждени саставник"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Ради као пуни сервер приказа, уместо као угнеждени" msgstr "Ради као пуни сервер приказа, уместо као угнеждени"
@@ -568,8 +566,8 @@ msgid ""
"PARTICULAR PURPOSE.\n" "PARTICULAR PURPOSE.\n"
msgstr "" msgstr ""
"матер %s\n" "матер %s\n"
"Сва права задржана © 2001%d Хевок Пенингтон, Ред Хет, Инк., и остали\n" "Сва права задржана (C) 2001%d Havoc Pennington, Red Hat, Inc., и остали\n"
"Ово је слободан програм; погледајте изворни кôд за услове коришћења.\n" "Ово је слободан програм; погледајте изворни код за услове коришћења.\n"
"НЕ постоји никаква гаранција; чак ни гаранција о ТРЖИШНОЈ ВРЕДНОСТИ или " "НЕ постоји никаква гаранција; чак ни гаранција о ТРЖИШНОЈ ВРЕДНОСТИ или "
"ПРИЛАГОЂЕНОСТИ ОДРЕЂЕНОЈ НАМЕНИ.\n" "ПРИЛАГОЂЕНОСТИ ОДРЕЂЕНОЈ НАМЕНИ.\n"
@@ -581,26 +579,29 @@ msgstr "Исписује издање"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Прикључци Матера за коришћење" msgstr "Прикључци Матера за коришћење"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "%d. радни простор" msgstr "%d. радни простор"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
#| msgid ""
#| "Screen %d on display \"%s\" already has a window manager; try using the --"
#| "replace option to replace the current window manager.\n"
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
"to replace the current window manager." "to replace the current window manager."
msgstr "" msgstr ""
"Приказ „%s“ већ има управника прозора; пробајте да користите опцију „--" "Приказ „%s“ већ има управника прозора; пробајте да користите опцију "
"replace“ да замените тренутног управника прозора." "„--replace“ да замените тренутног управника прозора."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, 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/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Матер је преведен без подршке за опширан режим\n" msgstr "Матер је преведен без подршке за опширан режим\n"

View File

@@ -1,21 +1,19 @@
# Serbian translation of mutter. # Serbian translation of mutter.
# Courtesy of Prevod.org team (http://prevod.org/) -- 2003—2016. # Courtesy of Prevod.org team (http://prevod.org/) -- 2003—2015.
# This file is distributed under the same license as the mutter package. # This file is distributed under the same license as the mutter package.
#
# Translators:
# Goran Rakić <grakic@devbase.net> # Goran Rakić <grakic@devbase.net>
# Danilo Šegan <danilo@prevod.org>, 2005. # Danilo Šegan <danilo@prevod.org>, 2005.
# Miloš Popović <gpopac@gmail.com>, 2010. # Miloš Popović <gpopac@gmail.com>, 2010.
# Miroslav Nikolić <miroslavnikolic@rocketmail.com>, 2011—2016. # Miroslav Nikolić <miroslavnikolic@rocketmail.com>, 2011—2015.
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?product=mutter&" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=mutter&"
"keywords=I18N+L10N&component=general\n" "keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2016-03-09 01:41+0000\n" "POT-Creation-Date: 2015-03-04 11:14+0000\n"
"PO-Revision-Date: 2016-03-09 09:52+0200\n" "PO-Revision-Date: 2015-03-04 19:46+0200\n"
"Last-Translator: Miroslav Nikolić <miroslavnikolic@rocketmail.com>\n" "Last-Translator: Miroslav Nikolić <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n" "Language-Team: Serbian <gnom@prevod.org>\n"
"Language: sr\n" "Language: sr\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"
@@ -438,41 +436,46 @@ msgid "Switch to VT 7"
msgstr "Prelazak na VT 7" msgstr "Prelazak na VT 7"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
#| msgid "Switch to VT 1"
msgid "Switch to VT 8" msgid "Switch to VT 8"
msgstr "Prelazak na VT 8" msgstr "Prelazak na VT 8"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
#| msgid "Switch to VT 1"
msgid "Switch to VT 9" msgid "Switch to VT 9"
msgstr "Prelazak na VT 9" msgstr "Prelazak na VT 9"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
#| msgid "Switch to VT 1"
msgid "Switch to VT 10" msgid "Switch to VT 10"
msgstr "Prelazak na VT 10" msgstr "Prelazak na VT 10"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
#| msgid "Switch to VT 1"
msgid "Switch to VT 11" msgid "Switch to VT 11"
msgstr "Prelazak na VT 11" msgstr "Prelazak na VT 11"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
#| msgid "Switch to VT 1"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Prelazak na VT 12" msgstr "Prelazak na VT 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Ugrađeni displej" msgstr "Ugrađeni displej"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Nepoznato" msgstr "Nepoznato"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Nepoznat displej" msgstr "Nepoznat displej"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -516,45 +519,40 @@ msgstr "_Sačekaj"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Primoraj izlaz" msgstr "_Primoraj izlaz"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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 "Nisam uspeo da otvorim ekran „%s“ Iks sistema prozora\n" msgstr "Nisam uspeo da otvorim ekran „%s“ Iks sistema prozora\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Isključuje vezu sa upravnikom sesije" msgstr "Isključuje vezu sa upravnikom sesije"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Menja tekućeg upravnika prozorima" msgstr "Menja tekućeg upravnika prozorima"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Navodi IB upravnika sesije" msgstr "Navodi IB upravnika sesije"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Iks ekran koji će biti korišćen" msgstr "Iks ekran koji će biti korišćen"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Pokreće sesiju iz datoteke čuvanja" msgstr "Pokreće sesiju iz datoteke čuvanja"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Čini Iks pozive usklađenim" msgstr "Čini Iks pozive usklađenim"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Radi kao vajlandov sastavnik" msgstr "Radi kao vajlandov sastavnik"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
#| msgid "Run as a wayland compositor"
msgid "Run as a nested compositor"
msgstr "Radi kao ugneždeni sastavnik"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Radi kao puni server prikaza, umesto kao ugneždeni" msgstr "Radi kao puni server prikaza, umesto kao ugneždeni"
@@ -568,8 +566,8 @@ msgid ""
"PARTICULAR PURPOSE.\n" "PARTICULAR PURPOSE.\n"
msgstr "" msgstr ""
"mater %s\n" "mater %s\n"
"Sva prava zadržana © 2001%d Hevok Penington, Red Het, Ink., i ostali\n" "Sva prava zadržana (C) 2001%d Havoc Pennington, Red Hat, Inc., i ostali\n"
"Ovo je slobodan program; pogledajte izvorni kôd za uslove korišćenja.\n" "Ovo je slobodan program; pogledajte izvorni kod za uslove korišćenja.\n"
"NE postoji nikakva garancija; čak ni garancija o TRŽIŠNOJ VREDNOSTI ili " "NE postoji nikakva garancija; čak ni garancija o TRŽIŠNOJ VREDNOSTI ili "
"PRILAGOĐENOSTI ODREĐENOJ NAMENI.\n" "PRILAGOĐENOSTI ODREĐENOJ NAMENI.\n"
@@ -581,26 +579,29 @@ msgstr "Ispisuje izdanje"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Priključci Matera za korišćenje" msgstr "Priključci Matera za korišćenje"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "%d. radni prostor" msgstr "%d. radni prostor"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
#| msgid ""
#| "Screen %d on display \"%s\" already has a window manager; try using the --"
#| "replace option to replace the current window manager.\n"
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
"to replace the current window manager." "to replace the current window manager."
msgstr "" msgstr ""
"Prikaz „%s“ već ima upravnika prozora; probajte da koristite opciju „--" "Prikaz „%s“ već ima upravnika prozora; probajte da koristite opciju "
"replace“ da zamenite trenutnog upravnika prozora." "„--replace“ da zamenite trenutnog upravnika prozora."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "Prikaz „%d“ na ekranu „%s“ nije ispravan\n" msgstr "Prikaz „%d“ na ekranu „%s“ nije ispravan\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mater je preveden bez podrške za opširan režim\n" msgstr "Mater je preveden bez podrške za opširan režim\n"

162
po/sv.po
View File

@@ -1,25 +1,24 @@
# Swedish messages for mutter. # Swedish messages for mutter.
# Copyright © 2001-2016 Free Software Foundation, Inc. # Copyright © 2001-2015 Free Software Foundation, Inc.
# Christian Rose <menthos@menthos.com>, 2001, 2002, 2003, 2004, 2005. # Christian Rose <menthos@menthos.com>, 2001, 2002, 2003, 2004, 2005.
# Daniel Nylander <po@danielnylander.se>, 2006, 2007, 2008, 2009, 2010, 2011, 2012. # Daniel Nylander <po@danielnylander.se>, 2006, 2007, 2008, 2009, 2010, 2011, 2012.
# Mattias Eriksson <snaggen@gmail.com>, 2014. # Mattias Eriksson <snaggen@gmail.com>, 2014.
# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2015. # Anders Jonsson <anders.jonsson@norsjovallen.se>, 2015.
# Sebastian Rasmussen <sebras@gmail.com>, 2016.
# #
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: 2016-03-05 13:41+0000\n" "POT-Creation-Date: 2015-02-19 21:45+0000\n"
"PO-Revision-Date: 2016-03-06 13:47+0100\n" "PO-Revision-Date: 2015-02-24 17:54+0100\n"
"Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n" "Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n" "Language: sv\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.7.1\n" "X-Generator: Poedit 1.7.3\n"
#: ../data/50-mutter-navigation.xml.in.h:1 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation" msgid "Navigation"
@@ -271,15 +270,15 @@ msgstr "Modifierare att använda för utökade fönsterhanteringsåtgärder"
#: ../data/org.gnome.mutter.gschema.xml.in.h:2 #: ../data/org.gnome.mutter.gschema.xml.in.h:2
msgid "" msgid ""
"This key will initiate the \"overlay\", which is a combination window " "This key will initiate the \"overlay\", which is a combination window overview "
"overview and application launching system. The default is intended to be the " "and application launching system. The default is intended to be the \"Windows key"
"\"Windows key\" on PC hardware. It's expected that this binding either the " "\" on PC hardware. It's expected that this binding either the default or set to "
"default or set to the empty string." "the empty string."
msgstr "" msgstr ""
"Denna nyckel kommer att initiera \"overlay\", som är en kombinerad " "Denna nyckel kommer att initiera \"overlay\", som är en kombinerad "
"fönsteröversikt och programstartare. Standard är tänkt att vara \"Windows-" "fönsteröversikt och programstartare. Standard är tänkt att vara \"Windows-"
"tangenten\" på PC-maskinvara. Det är förväntat att denna bindning antingen " "tangenten\" på PC-maskinvara. Det är förväntat att denna bindning antingen är "
"är standard eller inställd till en tom sträng." "standard eller inställd till en tom sträng."
#: ../data/org.gnome.mutter.gschema.xml.in.h:3 #: ../data/org.gnome.mutter.gschema.xml.in.h:3
msgid "Attach modal dialogs" msgid "Attach modal dialogs"
@@ -288,12 +287,12 @@ msgstr "Bifoga modala dialogfönster"
#: ../data/org.gnome.mutter.gschema.xml.in.h:4 #: ../data/org.gnome.mutter.gschema.xml.in.h:4
msgid "" msgid ""
"When true, instead of having independent titlebars, modal dialogs appear " "When true, instead of having independent titlebars, modal dialogs appear "
"attached to the titlebar of the parent window and are moved together with " "attached to the titlebar of the parent window and are moved together with the "
"the parent window." "parent window."
msgstr "" msgstr ""
"När true kommer, istället för att ha oberoende namnlister, modala " "När true kommer, istället för att ha oberoende namnlister, modala dialogfönster "
"dialogfönster att visas anslutna till namnlisten i föräldrafönstret och " "att visas anslutna till namnlisten i föräldrafönstret och flyttas tillsammans "
"flyttas tillsammans med föräldrafönstret." "med föräldrafönstret."
#: ../data/org.gnome.mutter.gschema.xml.in.h:5 #: ../data/org.gnome.mutter.gschema.xml.in.h:5
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
@@ -301,13 +300,13 @@ msgstr "Aktivera kantframhävning när fönster släpps på skärmkanter"
#: ../data/org.gnome.mutter.gschema.xml.in.h:6 #: ../data/org.gnome.mutter.gschema.xml.in.h:6
msgid "" msgid ""
"If enabled, dropping windows on vertical screen edges maximizes them " "If enabled, dropping windows on vertical screen edges maximizes them vertically "
"vertically and resizes them horizontally to cover half of the available " "and resizes them horizontally to cover half of the available area. Dropping "
"area. Dropping windows on the top screen edge maximizes them completely." "windows on the top screen edge maximizes them completely."
msgstr "" msgstr ""
"Om aktiverad, släppa fönster på vertikala skärmkanter kommer att maximera " "Om aktiverad, släppa fönster på vertikala skärmkanter kommer att maximera dem "
"dem vertikalt och storleksändra dem horisontellt till att täcka hälften av " "vertikalt och storleksändra dem horisontellt till att täcka hälften av den "
"den tillgängliga ytan. Släppa fönster på övre skärmkanten maximerar dem helt." "tillgängliga ytan. Släppa fönster på övre skärmkanten maximerar dem helt."
#: ../data/org.gnome.mutter.gschema.xml.in.h:7 #: ../data/org.gnome.mutter.gschema.xml.in.h:7
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
@@ -316,12 +315,12 @@ msgstr "Arbetsytor hanteras dynamiskt"
#: ../data/org.gnome.mutter.gschema.xml.in.h:8 #: ../data/org.gnome.mutter.gschema.xml.in.h:8
msgid "" msgid ""
"Determines whether workspaces are managed dynamically or whether there's a " "Determines whether workspaces are managed dynamically or whether there's a "
"static number of workspaces (determined by the num-workspaces key in org." "static number of workspaces (determined by the num-workspaces key in org.gnome."
"gnome.desktop.wm.preferences)."
msgstr ""
"Bestämmer huruvida arbetsytor hanteras dynamiskt eller huruvida det finns "
"ett fast antal arbetsytor (bestäms av nyckeln num-workspaces i org.gnome."
"desktop.wm.preferences)." "desktop.wm.preferences)."
msgstr ""
"Bestämmer huruvida arbetsytor hanteras dynamiskt eller huruvida det finns ett "
"fast antal arbetsytor (bestäms av nyckeln num-workspaces i org.gnome.desktop.wm."
"preferences)."
#: ../data/org.gnome.mutter.gschema.xml.in.h:9 #: ../data/org.gnome.mutter.gschema.xml.in.h:9
msgid "Workspaces only on primary" msgid "Workspaces only on primary"
@@ -329,11 +328,11 @@ msgstr "Arbetsytor endast på primär"
#: ../data/org.gnome.mutter.gschema.xml.in.h:10 #: ../data/org.gnome.mutter.gschema.xml.in.h:10
msgid "" msgid ""
"Determines whether workspace switching should happen for windows on all " "Determines whether workspace switching should happen for windows on all monitors "
"monitors or only for windows on the primary monitor." "or only for windows on the primary monitor."
msgstr "" msgstr ""
"Bestämmer huruvida arbetsyteväxling ska hända för alla fönster på alla " "Bestämmer huruvida arbetsyteväxling ska hända för alla fönster på alla skärmar "
"skärmar eller endast för fönster på den primära skärmen." "eller endast för fönster på den primära skärmen."
#: ../data/org.gnome.mutter.gschema.xml.in.h:11 #: ../data/org.gnome.mutter.gschema.xml.in.h:11
msgid "No tab popup" msgid "No tab popup"
@@ -341,11 +340,11 @@ msgstr "Ingen flik-popup"
#: ../data/org.gnome.mutter.gschema.xml.in.h:12 #: ../data/org.gnome.mutter.gschema.xml.in.h:12
msgid "" msgid ""
"Determines whether the use of popup and highlight frame should be disabled " "Determines whether the use of popup and highlight frame should be disabled for "
"for window cycling." "window cycling."
msgstr "" msgstr ""
"Bestämmer huruvida användning av popup och framhävning av kontur ska " "Bestämmer huruvida användning av popup och framhävning av kontur ska inaktiveras "
"inaktiveras vid fönsterväxling." "vid fönsterväxling."
#: ../data/org.gnome.mutter.gschema.xml.in.h:13 #: ../data/org.gnome.mutter.gschema.xml.in.h:13
msgid "Delay focus changes until the pointer stops moving" msgid "Delay focus changes until the pointer stops moving"
@@ -353,13 +352,13 @@ msgstr "Fördröj fokusändringar till muspekaren hålls still"
#: ../data/org.gnome.mutter.gschema.xml.in.h:14 #: ../data/org.gnome.mutter.gschema.xml.in.h:14
msgid "" msgid ""
"If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then " "If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then the "
"the focus will not be changed immediately when entering a window, but only " "focus will not be changed immediately when entering a window, but only after the "
"after the pointer stops moving." "pointer stops moving."
msgstr "" msgstr ""
"Om satt till \"true\", och fokusläget är antingen \"sloppy\" eller \"mouse\" " "Om satt till \"true\", och fokusläget är antingen \"sloppy\" eller \"mouse\" "
"kommer fokus inte att ändras omedelbart när muspekaren går in över ett " "kommer fokus inte att ändras omedelbart när muspekaren går in över ett fönster, "
"fönster, utan först efter att muspekaren slutar röra sig." "utan först efter att muspekaren slutar röra sig."
#: ../data/org.gnome.mutter.gschema.xml.in.h:15 #: ../data/org.gnome.mutter.gschema.xml.in.h:15
msgid "Draggable border width" msgid "Draggable border width"
@@ -367,8 +366,8 @@ msgstr "Dragbar rambredd"
#: ../data/org.gnome.mutter.gschema.xml.in.h:16 #: ../data/org.gnome.mutter.gschema.xml.in.h:16
msgid "" msgid ""
"The amount of total draggable borders. If the theme's visible borders are " "The amount of total draggable borders. If the theme's visible borders are not "
"not enough, invisible borders will be added to meet this value." "enough, invisible borders will be added to meet this value."
msgstr "" msgstr ""
"Mängd av totalt dragbara ramar. Om temats synliga ramar inte är tillräckliga " "Mängd av totalt dragbara ramar. Om temats synliga ramar inte är tillräckliga "
"kommer osynliga ramar att läggas till för att möta detta värde." "kommer osynliga ramar att läggas till för att möta detta värde."
@@ -379,8 +378,8 @@ msgstr "Automatiskt maximera fönster vars storlek ligger nära skärmens storle
#: ../data/org.gnome.mutter.gschema.xml.in.h:18 #: ../data/org.gnome.mutter.gschema.xml.in.h:18
msgid "" msgid ""
"If enabled, new windows that are initially the size of the monitor " "If enabled, new windows that are initially the size of the monitor automatically "
"automatically get maximized." "get maximized."
msgstr "" msgstr ""
"Om aktiverad kommer nya fönster med nästan samma storlek som skärmen att bli " "Om aktiverad kommer nya fönster med nästan samma storlek som skärmen att bli "
"automatiskt maximerade." "automatiskt maximerade."
@@ -391,11 +390,11 @@ msgstr "Placera nya fönster centrerat"
#: ../data/org.gnome.mutter.gschema.xml.in.h:20 #: ../data/org.gnome.mutter.gschema.xml.in.h:20
msgid "" msgid ""
"When true, the new windows will always be put in the center of the active " "When true, the new windows will always be put in the center of the active screen "
"screen of the monitor." "of the monitor."
msgstr "" msgstr ""
"När satt till \"true\", kommer nya fönster alltid att placeras centrerat på " "När satt till \"true\", kommer nya fönster alltid att placeras centrerat på den "
"den aktiva skärmen." "aktiva skärmen."
#: ../data/org.gnome.mutter.gschema.xml.in.h:21 #: ../data/org.gnome.mutter.gschema.xml.in.h:21
msgid "Select window from tab popup" msgid "Select window from tab popup"
@@ -453,22 +452,22 @@ msgstr "Växla till VT 11"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Växla till VT 12" msgstr "Växla till VT 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Inbyggd display" msgstr "Inbyggd display"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Okänd" msgstr "Okänd"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Okänd display" msgstr "Okänd display"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -478,9 +477,8 @@ msgstr "%s %s"
#: ../src/compositor/compositor.c:456 #: ../src/compositor/compositor.c:456
#, 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\"."
"\"." msgstr "En annan compositing-hanterare körs redan på skärm %i på display \"%s\"."
msgstr "En annan kompositionshanterare körs redan på skärm %i på display ”%s”."
#: ../src/core/bell.c:185 #: ../src/core/bell.c:185
msgid "Bell event" msgid "Bell event"
@@ -497,8 +495,8 @@ msgstr "Programmet svarar inte."
#: ../src/core/delete.c:134 #: ../src/core/delete.c:134
msgid "" msgid ""
"You may choose to wait a short while for it to continue or force the " "You may choose to wait a short while for it to continue or force the application "
"application to quit entirely." "to quit entirely."
msgstr "" msgstr ""
"Du kan välja att vänta en kort stund på det för att fortsätta eller tvinga " "Du kan välja att vänta en kort stund på det för att fortsätta eller tvinga "
"programmet att helt avslutas." "programmet att helt avslutas."
@@ -511,44 +509,40 @@ msgstr "_Vänta"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Tvinga avslut" msgstr "_Tvinga avslut"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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 "Misslyckades med att öppna X Window System-displayen ”%s”\n" msgstr "Misslyckades med att öppna X Window System-displayen ”%s”\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Inaktivera anslutning till sessionshanteraren" msgstr "Inaktivera anslutning till sessionshanteraren"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Ersätt körande fönsterhanteraren" msgstr "Ersätt körande fönsterhanteraren"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Ange sessionshanteringsid" msgstr "Ange sessionshanteringsid"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "X-display att använda" msgstr "X-display att använda"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Initiera session från sparandefil" msgstr "Initiera session från sparandefil"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Gör X-anrop synkrona" msgstr "Gör X-anrop synkrona"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Kör som en wayland-kompositionshanterare" msgstr "Kör som en wayland-compositor"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "Kör som en nästlad kompositionshanterare"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Kör som en full display-tjänst, i stället för nästlad" msgstr "Kör som en full display-tjänst, i stället för nästlad"
@@ -558,8 +552,8 @@ msgid ""
"mutter %s\n" "mutter %s\n"
"Copyright (C) 2001-%d Havoc Pennington, Red Hat, Inc., and others\n" "Copyright (C) 2001-%d Havoc Pennington, Red Hat, Inc., and others\n"
"This is free software; see the source for copying conditions.\n" "This is free software; see the source for copying conditions.\n"
"There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A " "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR "
"PARTICULAR PURPOSE.\n" "PURPOSE.\n"
msgstr "" msgstr ""
"mutter %s\n" "mutter %s\n"
"Copyright © 2001-%d Havoc Pennington, Red Hat, Inc. och andra\n" "Copyright © 2001-%d Havoc Pennington, Red Hat, Inc. och andra\n"
@@ -575,33 +569,33 @@ msgstr "Skriv ut version"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Mutter-insticksmodul att använda" msgstr "Mutter-insticksmodul att använda"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Arbetsyta %d" msgstr "Arbetsyta %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option to "
"to replace the current window manager." "replace the current window manager."
msgstr "" msgstr ""
"Display ”%s” har redan en fönsterhanterare; försök med flaggan --replace för " "Display ”%s” har redan en fönsterhanterare; försök med flaggan --replace för att "
"att ersätta den aktuella fönsterhanteraren." "ersätta den aktuella fönsterhanteraren."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "Skärm %d på display ”%s” är ogiltig\n" msgstr "Skärm %d på display ”%s” är ogiltig\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter kompilerades utan stöd för utförligt läge\n" msgstr "Mutter kompilerades utan stöd för utförligt läge\n"
#: ../src/x11/session.c:1815 #: ../src/x11/session.c:1815
msgid "" msgid ""
"These windows do not support &quot;save current setup&quot; and will have to " "These windows do not support &quot;save current setup&quot; and will have to be "
"be restarted manually next time you log in." "restarted manually next time you log in."
msgstr "" msgstr ""
"Dessa fönster saknar stöd för &quot;spara nuvarande inställningar&quot; och " "Dessa fönster saknar stöd för &quot;spara nuvarande inställningar&quot; och "
"kommer att behöva startas om manuellt nästa gång du loggar in." "kommer att behöva startas om manuellt nästa gång du loggar in."

View File

@@ -1,17 +1,17 @@
# Vietnamese translation for Metacity. # Vietnamese translation for Metacity.
# Copyright © 2016 GNOME i18n Project for Vietnamese. # Copyright © 2015 GNOME i18n Project for Vietnamese.
# This file is distributed under the same license as the Metacity package. # This file is distributed under the same license as the Metacity package.
# Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2002-2004, 2007, 2008, 2011-2013. # Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2002-2004, 2007, 2008, 2011-2013.
# Clytie Siddall <clytie@riverland.net.au>, 2005-2009. # Clytie Siddall <clytie@riverland.net.au>, 2005-2009.
# Trần Ngọc Quân <vnwildman@gmail.com>, 2014, 2015, 2016. # Trần Ngọc Quân <vnwildman@gmail.com>, 2014, 2015.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: metacity master\n" "Project-Id-Version: metacity 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: 2016-03-26 14:03+0000\n" "POT-Creation-Date: 2015-03-09 23:13+0000\n"
"PO-Revision-Date: 2016-03-27 07:22+0700\n" "PO-Revision-Date: 2015-03-10 13:28+0700\n"
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n" "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <gnome-vi-list@gnome.org>\n" "Language-Team: Vietnamese <gnome-vi-list@gnome.org>\n"
"Language: vi\n" "Language: vi\n"
@@ -19,11 +19,11 @@ 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=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Gtranslator 2.91.7\n" "X-Generator: LocFactoryEditor 1.8\n"
#: ../data/50-mutter-navigation.xml.in.h:1 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation" msgid "Navigation"
msgstr "Điều hướng" msgstr "Di chuyển"
#: ../data/50-mutter-navigation.xml.in.h:2 #: ../data/50-mutter-navigation.xml.in.h:2
msgid "Move window to workspace 1" msgid "Move window to workspace 1"
@@ -447,22 +447,22 @@ msgstr "Chuyển sang VT 11"
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Chuyển sang VT 12" msgstr "Chuyển sang VT 12"
#: ../src/backends/meta-monitor-manager.c:518 #: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Màn hình tích hợp" msgstr "Màn hình tích hợp"
#: ../src/backends/meta-monitor-manager.c:544 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Không rõ" msgstr "Không rõ"
#: ../src/backends/meta-monitor-manager.c:546 #: ../src/backends/meta-monitor-manager.c:393
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Không hiểu màn hình" msgstr "Không hiểu màn hình"
#. TRANSLATORS: this is a monitor vendor name, followed by a #. TRANSLATORS: this is a monitor vendor name, followed by a
#. * size in inches, like 'Dell 15"' #. * size in inches, like 'Dell 15"'
#. #.
#: ../src/backends/meta-monitor-manager.c:554 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
@@ -477,7 +477,7 @@ msgid ""
msgstr "" msgstr ""
"Bộ quản lý cửa sổ đã đang chạy trên Màn hình %i trên bộ trình bày \"%s\"." "Bộ quản lý cửa sổ đã đang chạy trên Màn hình %i trên bộ trình bày \"%s\"."
#: ../src/core/bell.c:194 #: ../src/core/bell.c:185
msgid "Bell event" msgid "Bell event"
msgstr "Sự kiện chuông" msgstr "Sự kiện chuông"
@@ -506,44 +506,40 @@ msgstr "_Chờ"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Buộc thoát" msgstr "_Buộc thoát"
#: ../src/core/display.c:555 #: ../src/core/display.c:562
#, 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 "Gặp lỗi khi mở bộ trình bày Hệ thống Cửa sổ X \"%s\".\n" msgstr "Gặp lỗi khi mở bộ trình bày Hệ thống Cửa sổ X \"%s\".\n"
#: ../src/core/main.c:181 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Vô hiệu hóa kết nối với bộ quản lý phiên làm việc" msgstr "Vô hiệu hóa kết nối với bộ quản lý phiên làm việc"
#: ../src/core/main.c:187 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Thay thế bộ quản lý cửa sổ đang chạy" msgstr "Thay thế bộ quản lý cửa sổ đang chạy"
#: ../src/core/main.c:193 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Ghi rõ mã số quản lý phiên làm việc" msgstr "Ghi rõ mã số quản lý phiên làm việc"
#: ../src/core/main.c:198 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "Bộ trình bày X cần dùng" msgstr "Bộ trình bày X cần dùng"
#: ../src/core/main.c:204 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Khởi động phiên làm việc từ tập tin lưu" msgstr "Khởi động phiên làm việc từ tập tin lưu"
#: ../src/core/main.c:210 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Khiến các lời gọi X đồng bộ với nhau" msgstr "Khiến các lời gọi X đồng bộ với nhau"
#: ../src/core/main.c:217 #: ../src/core/main.c:212
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Chạy như là một “wayland compositor”" msgstr "Chạy như là một “wayland compositor”"
#: ../src/core/main.c:223 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "Chạy như là một “nested compositor”"
#: ../src/core/main.c:231
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Chạy như là một dịch vụ hiển thị đầy đủ, thay cho lồng nhau" msgstr "Chạy như là một dịch vụ hiển thị đầy đủ, thay cho lồng nhau"
@@ -571,12 +567,12 @@ msgstr "Hiển thị phiên bản"
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Phần bổ sung Mutter cần dùng" msgstr "Phần bổ sung Mutter cần dùng"
#: ../src/core/prefs.c:1997 #: ../src/core/prefs.c:2004
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Vùng làm việc %d" msgstr "Vùng làm việc %d"
#: ../src/core/screen.c:521 #: ../src/core/screen.c:525
#, c-format #, c-format
msgid "" msgid ""
"Display \"%s\" already has a window manager; try using the --replace option " "Display \"%s\" already has a window manager; try using the --replace option "
@@ -585,12 +581,12 @@ msgstr ""
"Màn hình \"%s\" đã có bộ quản lý cửa sổ rồi; hãy thử dùng tùy chọn “--" "Màn hình \"%s\" đã có bộ quản lý cửa sổ rồi; hãy thử dùng tùy chọn “--"
"replace” để thay thế bộ quản lý cửa sổ đang dùng." "replace” để thay thế bộ quản lý cửa sổ đang dùng."
#: ../src/core/screen.c:603 #: ../src/core/screen.c:607
#, c-format #, c-format
msgid "Screen %d on display '%s' is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "Màn hình %d trên bộ trình bày \"%s\" không hợp lệ.\n" msgstr "Màn hình %d trên bộ trình bày \"%s\" không hợp lệ.\n"
#: ../src/core/util.c:121 #: ../src/core/util.c:118
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "Mutter đã được biên dịch không hỗ trợ chế độ chi tiết\n" msgstr "Mutter đã được biên dịch không hỗ trợ chế độ chi tiết\n"

View File

@@ -9,7 +9,6 @@ dist_stacking_DATA = \
tests/stacking/basic-wayland.metatest \ tests/stacking/basic-wayland.metatest \
tests/stacking/minimized.metatest \ tests/stacking/minimized.metatest \
tests/stacking/mixed-windows.metatest \ tests/stacking/mixed-windows.metatest \
tests/stacking/set-parent.metatest \
tests/stacking/override-redirect.metatest tests/stacking/override-redirect.metatest
mutter-all.test: tests/mutter-all.test.in mutter-all.test: tests/mutter-all.test.in
@@ -19,9 +18,9 @@ installedtestsdir = $(datadir)/installed-tests/mutter
installedtests_DATA = mutter-all.test installedtests_DATA = mutter-all.test
installedtestsbindir = $(libexecdir)/installed-tests/mutter installedtestsbindir = $(libexecdir)/installed-tests/mutter
installedtestsbin_PROGRAMS = mutter-test-client mutter-test-runner mutter-test-unit-tests installedtestsbin_PROGRAMS = mutter-test-client mutter-test-runner
else else
noinst_PROGRAMS += mutter-test-client mutter-test-runner mutter-test-unit-tests noinst_PROGRAMS += mutter-test-client mutter-test-runner
endif endif
EXTRA_DIST += tests/mutter-all.test.in EXTRA_DIST += tests/mutter-all.test.in
@@ -32,19 +31,11 @@ mutter_test_client_LDADD = $(MUTTER_LIBS) libmutter.la
mutter_test_runner_SOURCES = tests/test-runner.c mutter_test_runner_SOURCES = tests/test-runner.c
mutter_test_runner_LDADD = $(MUTTER_LIBS) libmutter.la mutter_test_runner_LDADD = $(MUTTER_LIBS) libmutter.la
mutter_test_unit_tests_SOURCES = tests/unit-tests.c .PHONY: run-tests
mutter_test_unit_tests_LDADD = $(MUTTER_LIBS) libmutter.la
.PHONY: run-tests run-test-runner-tests run-unit-tests run-tests: mutter-test-client mutter-test-runner
run-test-runner-tests: mutter-test-client mutter-test-runner
./mutter-test-runner $(dist_stacking_DATA) ./mutter-test-runner $(dist_stacking_DATA)
run-unit-tests: mutter-test-unit-tests
./mutter-test-unit-tests
run-tests: run-test-runner-tests run-unit-tests
endif endif
# Some random test programs for bits of the code # Some random test programs for bits of the code

View File

@@ -45,24 +45,19 @@ mutter_built_sources = \
if HAVE_WAYLAND if HAVE_WAYLAND
mutter_built_sources += \ mutter_built_sources += \
pointer-gestures-unstable-v1-protocol.c \ pointer-gestures-protocol.c \
pointer-gestures-unstable-v1-server-protocol.h \ pointer-gestures-server-protocol.h \
gtk-shell-protocol.c \ gtk-shell-protocol.c \
gtk-shell-server-protocol.h \ gtk-shell-server-protocol.h \
gtk-primary-selection-protocol.c \ xdg-shell-protocol.c \
gtk-primary-selection-server-protocol.h \ xdg-shell-server-protocol.h \
xdg-shell-unstable-v5-protocol.c \
xdg-shell-unstable-v5-server-protocol.h \
relative-pointer-unstable-v1-protocol.c \
relative-pointer-unstable-v1-server-protocol.h \
pointer-constraints-unstable-v1-protocol.c \
pointer-constraints-unstable-v1-server-protocol.h \
$(NULL) $(NULL)
endif endif
wayland_protocols = \ wayland_protocols = \
wayland/protocol/pointer-gestures.xml \
wayland/protocol/gtk-shell.xml \ wayland/protocol/gtk-shell.xml \
wayland/protocol/gtk-primary-selection.xml \ wayland/protocol/xdg-shell.xml \
$(NULL) $(NULL)
libmutter_la_SOURCES = \ libmutter_la_SOURCES = \
@@ -91,8 +86,6 @@ libmutter_la_SOURCES = \
backends/meta-monitor-manager-private.h \ backends/meta-monitor-manager-private.h \
backends/meta-monitor-manager-dummy.c \ backends/meta-monitor-manager-dummy.c \
backends/meta-monitor-manager-dummy.h \ backends/meta-monitor-manager-dummy.h \
backends/meta-pointer-constraint.c \
backends/meta-pointer-constraint.h \
backends/meta-stage.h \ backends/meta-stage.h \
backends/meta-stage.c \ backends/meta-stage.c \
backends/edid-parse.c \ backends/edid-parse.c \
@@ -119,8 +112,6 @@ libmutter_la_SOURCES = \
core/boxes.c \ core/boxes.c \
core/boxes-private.h \ core/boxes-private.h \
meta/boxes.h \ meta/boxes.h \
core/meta-border.c \
core/meta-border.h \
compositor/clutter-utils.c \ compositor/clutter-utils.c \
compositor/clutter-utils.h \ compositor/clutter-utils.h \
compositor/cogl-utils.c \ compositor/cogl-utils.c \
@@ -201,8 +192,6 @@ libmutter_la_SOURCES = \
core/screen.c \ core/screen.c \
core/screen-private.h \ core/screen-private.h \
meta/screen.h \ meta/screen.h \
core/startup-notification.c \
core/startup-notification-private.h \
meta/types.h \ meta/types.h \
core/restart.c \ core/restart.c \
core/stack.c \ core/stack.c \
@@ -277,12 +266,6 @@ libmutter_la_SOURCES += \
wayland/meta-wayland-keyboard.h \ wayland/meta-wayland-keyboard.h \
wayland/meta-wayland-pointer.c \ wayland/meta-wayland-pointer.c \
wayland/meta-wayland-pointer.h \ wayland/meta-wayland-pointer.h \
wayland/meta-wayland-pointer-constraints.c \
wayland/meta-wayland-pointer-constraints.h \
wayland/meta-pointer-lock-wayland.c \
wayland/meta-pointer-lock-wayland.h \
wayland/meta-pointer-confinement-wayland.c \
wayland/meta-pointer-confinement-wayland.h \
wayland/meta-wayland-popup.c \ wayland/meta-wayland-popup.c \
wayland/meta-wayland-popup.h \ wayland/meta-wayland-popup.h \
wayland/meta-wayland-seat.c \ wayland/meta-wayland-seat.c \
@@ -498,20 +481,6 @@ $(dbus_login1_built_sources) : Makefile.am org.freedesktop.login1.xml
--generate-c-code meta-dbus-login1 \ --generate-c-code meta-dbus-login1 \
$(srcdir)/org.freedesktop.login1.xml $(srcdir)/org.freedesktop.login1.xml
.SECONDEXPANSION:
define protostability
$(shell echo $1 | sed 's/.*\(\<unstable\>\|\<stable\>\).*/\1/')
endef
define protoname
$(shell echo $1 | sed 's/\([a-z\-]\+\)-[a-z]\+-v[0-9]\+/\1/')
endef
%-protocol.c : $(WAYLAND_PROTOCOLS_DATADIR)/$$(call protostability,$$*)/$$(call protoname,$$*)/$$*.xml
$(AM_V_GEN)$(WAYLAND_SCANNER) code < $< > $@
%-server-protocol.h : $(WAYLAND_PROTOCOLS_DATADIR)/$$(call protostability,$$*)/$$(call protoname,$$*)/$$*.xml
$(AM_V_GEN)$(WAYLAND_SCANNER) server-header < $< > $@
%-protocol.c : $(srcdir)/wayland/protocol/%.xml %-protocol.c : $(srcdir)/wayland/protocol/%.xml
$(AM_V_GEN)$(WAYLAND_SCANNER) code < $< > $@ $(AM_V_GEN)$(WAYLAND_SCANNER) code < $< > $@
%-server-protocol.h : $(srcdir)/wayland/protocol/%.xml %-server-protocol.h : $(srcdir)/wayland/protocol/%.xml

View File

@@ -34,7 +34,6 @@
#include <meta/meta-idle-monitor.h> #include <meta/meta-idle-monitor.h>
#include "meta-cursor-renderer.h" #include "meta-cursor-renderer.h"
#include "meta-monitor-manager-private.h" #include "meta-monitor-manager-private.h"
#include "backends/meta-pointer-constraint.h"
#define DEFAULT_XKB_RULES_FILE "evdev" #define DEFAULT_XKB_RULES_FILE "evdev"
#define DEFAULT_XKB_MODEL "pc105+inet" #define DEFAULT_XKB_MODEL "pc105+inet"
@@ -52,8 +51,6 @@ struct _MetaBackend
GHashTable *device_monitors; GHashTable *device_monitors;
gint current_device_id; gint current_device_id;
MetaPointerConstraint *client_pointer_constraint;
}; };
struct _MetaBackendClass struct _MetaBackendClass
@@ -90,13 +87,6 @@ struct _MetaBackendClass
void (* update_screen_size) (MetaBackend *backend, int width, int height); void (* update_screen_size) (MetaBackend *backend, int width, int height);
void (* select_stage_events) (MetaBackend *backend); void (* select_stage_events) (MetaBackend *backend);
gboolean (* get_relative_motion_deltas) (MetaBackend *backend,
const ClutterEvent *event,
double *dx,
double *dy,
double *dx_unaccel,
double *dy_unaccel);
}; };
MetaIdleMonitor * meta_backend_get_idle_monitor (MetaBackend *backend, MetaIdleMonitor * meta_backend_get_idle_monitor (MetaBackend *backend,
@@ -120,14 +110,4 @@ struct xkb_keymap * meta_backend_get_keymap (MetaBackend *backend);
void meta_backend_update_last_device (MetaBackend *backend, void meta_backend_update_last_device (MetaBackend *backend,
int device_id); int device_id);
gboolean meta_backend_get_relative_motion_deltas (MetaBackend *backend,
const ClutterEvent *event,
double *dx,
double *dy,
double *dx_unaccel,
double *dy_unaccel);
void meta_backend_set_client_pointer_constraint (MetaBackend *backend,
MetaPointerConstraint *constraint);
#endif /* META_BACKEND_PRIVATE_H */ #endif /* META_BACKEND_PRIVATE_H */

View File

@@ -24,8 +24,6 @@
#include "config.h" #include "config.h"
#include <stdlib.h>
#include <meta/meta-backend.h> #include <meta/meta-backend.h>
#include "meta-backend-private.h" #include "meta-backend-private.h"
#include "meta-input-settings-private.h" #include "meta-input-settings-private.h"
@@ -64,8 +62,6 @@ struct _MetaBackendPrivate
MetaInputSettings *input_settings; MetaInputSettings *input_settings;
ClutterActor *stage; ClutterActor *stage;
guint device_update_idle_id;
}; };
typedef struct _MetaBackendPrivate MetaBackendPrivate; typedef struct _MetaBackendPrivate MetaBackendPrivate;
@@ -80,9 +76,6 @@ meta_backend_finalize (GObject *object)
g_clear_object (&priv->monitor_manager); g_clear_object (&priv->monitor_manager);
g_clear_object (&priv->input_settings); g_clear_object (&priv->input_settings);
if (priv->device_update_idle_id)
g_source_remove (priv->device_update_idle_id);
g_hash_table_destroy (backend->device_monitors); g_hash_table_destroy (backend->device_monitors);
G_OBJECT_CLASS (meta_backend_parent_class)->finalize (object); G_OBJECT_CLASS (meta_backend_parent_class)->finalize (object);
@@ -358,17 +351,6 @@ meta_backend_real_select_stage_events (MetaBackend *backend)
/* Do nothing */ /* Do nothing */
} }
static gboolean
meta_backend_real_get_relative_motion_deltas (MetaBackend *backend,
const ClutterEvent *event,
double *dx,
double *dy,
double *dx_unaccel,
double *dy_unaccel)
{
return FALSE;
}
static void static void
meta_backend_class_init (MetaBackendClass *klass) meta_backend_class_init (MetaBackendClass *klass)
{ {
@@ -382,7 +364,6 @@ meta_backend_class_init (MetaBackendClass *klass)
klass->ungrab_device = meta_backend_real_ungrab_device; klass->ungrab_device = meta_backend_real_ungrab_device;
klass->update_screen_size = meta_backend_real_update_screen_size; klass->update_screen_size = meta_backend_real_update_screen_size;
klass->select_stage_events = meta_backend_real_select_stage_events; klass->select_stage_events = meta_backend_real_select_stage_events;
klass->get_relative_motion_deltas = meta_backend_real_get_relative_motion_deltas;
g_signal_new ("keymap-changed", g_signal_new ("keymap-changed",
G_TYPE_FROM_CLASS (object_class), G_TYPE_FROM_CLASS (object_class),
@@ -522,44 +503,12 @@ meta_backend_get_stage (MetaBackend *backend)
return priv->stage; return priv->stage;
} }
static gboolean
update_last_device (MetaBackend *backend)
{
MetaCursorTracker *cursor_tracker = meta_cursor_tracker_get_for_screen (NULL);
MetaBackendPrivate *priv = meta_backend_get_instance_private (backend);
ClutterInputDeviceType device_type;
ClutterDeviceManager *manager;
ClutterInputDevice *device;
priv->device_update_idle_id = 0;
manager = clutter_device_manager_get_default ();
device = clutter_device_manager_get_device (manager,
backend->current_device_id);
device_type = clutter_input_device_get_device_type (device);
g_signal_emit_by_name (backend, "last-device-changed",
backend->current_device_id);
switch (device_type)
{
case CLUTTER_KEYBOARD_DEVICE:
break;
case CLUTTER_TOUCHSCREEN_DEVICE:
meta_cursor_tracker_set_pointer_visible (cursor_tracker, FALSE);
break;
default:
meta_cursor_tracker_set_pointer_visible (cursor_tracker, TRUE);
break;
}
return G_SOURCE_REMOVE;
}
void void
meta_backend_update_last_device (MetaBackend *backend, meta_backend_update_last_device (MetaBackend *backend,
int device_id) int device_id)
{ {
MetaBackendPrivate *priv = meta_backend_get_instance_private (backend); ClutterInputDeviceType device_type;
MetaCursorTracker *cursor_tracker;
ClutterDeviceManager *manager; ClutterDeviceManager *manager;
ClutterInputDevice *device; ClutterInputDevice *device;
@@ -573,43 +522,26 @@ meta_backend_update_last_device (MetaBackend *backend,
clutter_input_device_get_device_mode (device) == CLUTTER_INPUT_MODE_MASTER) clutter_input_device_get_device_mode (device) == CLUTTER_INPUT_MODE_MASTER)
return; return;
device_type = clutter_input_device_get_device_type (device);
cursor_tracker = meta_cursor_tracker_get_for_screen (NULL);
backend->current_device_id = device_id; backend->current_device_id = device_id;
g_signal_emit_by_name (backend, "last-device-changed", device_id);
if (priv->device_update_idle_id == 0) if (device_type == CLUTTER_KEYBOARD_DEVICE)
return;
switch (device_type)
{ {
priv->device_update_idle_id = case CLUTTER_TOUCHSCREEN_DEVICE:
g_idle_add ((GSourceFunc) update_last_device, backend); meta_cursor_tracker_set_pointer_visible (cursor_tracker, FALSE);
g_source_set_name_by_id (priv->device_update_idle_id, break;
"[mutter] update_last_device"); default:
meta_cursor_tracker_set_pointer_visible (cursor_tracker, TRUE);
break;
} }
} }
gboolean
meta_backend_get_relative_motion_deltas (MetaBackend *backend,
const ClutterEvent *event,
double *dx,
double *dy,
double *dx_unaccel,
double *dy_unaccel)
{
MetaBackendClass *klass = META_BACKEND_GET_CLASS (backend);
return klass->get_relative_motion_deltas (backend,
event,
dx, dy,
dx_unaccel, dy_unaccel);
}
void
meta_backend_set_client_pointer_constraint (MetaBackend *backend,
MetaPointerConstraint *constraint)
{
g_assert (!constraint || (constraint && !backend->client_pointer_constraint));
g_clear_object (&backend->client_pointer_constraint);
if (constraint)
backend->client_pointer_constraint = g_object_ref (constraint);
}
static GType static GType
get_backend_type (void) get_backend_type (void)
{ {
@@ -694,10 +626,7 @@ meta_clutter_init (void)
meta_create_backend (); meta_create_backend ();
if (clutter_init (NULL, NULL) != CLUTTER_INIT_SUCCESS) if (clutter_init (NULL, NULL) != CLUTTER_INIT_SUCCESS)
{ g_error ("Unable to initialize Clutter.\n");
g_warning ("Unable to initialize Clutter.\n");
exit (1);
}
/* /*
* XXX: We cannot handle high dpi scaling yet, so fix the scale to 1 * XXX: We cannot handle high dpi scaling yet, so fix the scale to 1

View File

@@ -26,8 +26,6 @@
#ifndef META_BARRIER_PRIVATE_H #ifndef META_BARRIER_PRIVATE_H
#define META_BARRIER_PRIVATE_H #define META_BARRIER_PRIVATE_H
#include "core/meta-border.h"
G_BEGIN_DECLS G_BEGIN_DECLS
#define META_TYPE_BARRIER_IMPL (meta_barrier_impl_get_type ()) #define META_TYPE_BARRIER_IMPL (meta_barrier_impl_get_type ())
@@ -69,7 +67,14 @@ G_END_DECLS
struct _MetaBarrierPrivate struct _MetaBarrierPrivate
{ {
MetaDisplay *display; MetaDisplay *display;
MetaBorder border;
int x1;
int y1;
int x2;
int y2;
MetaBarrierDirection directions;
MetaBarrierImpl *impl; MetaBarrierImpl *impl;
}; };

View File

@@ -61,20 +61,19 @@ meta_barrier_get_property (GObject *object,
g_value_set_object (value, priv->display); g_value_set_object (value, priv->display);
break; break;
case PROP_X1: case PROP_X1:
g_value_set_int (value, priv->border.line.a.x); g_value_set_int (value, priv->x1);
break; break;
case PROP_Y1: case PROP_Y1:
g_value_set_int (value, priv->border.line.a.y); g_value_set_int (value, priv->y1);
break; break;
case PROP_X2: case PROP_X2:
g_value_set_int (value, priv->border.line.b.x); g_value_set_int (value, priv->x2);
break; break;
case PROP_Y2: case PROP_Y2:
g_value_set_int (value, priv->border.line.b.y); g_value_set_int (value, priv->y2);
break; break;
case PROP_DIRECTIONS: case PROP_DIRECTIONS:
g_value_set_flags (value, g_value_set_flags (value, priv->directions);
meta_border_get_allows_directions (&priv->border));
break; break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -96,20 +95,19 @@ meta_barrier_set_property (GObject *object,
priv->display = g_value_get_object (value); priv->display = g_value_get_object (value);
break; break;
case PROP_X1: case PROP_X1:
priv->border.line.a.x = g_value_get_int (value); priv->x1 = g_value_get_int (value);
break; break;
case PROP_Y1: case PROP_Y1:
priv->border.line.a.y = g_value_get_int (value); priv->y1 = g_value_get_int (value);
break; break;
case PROP_X2: case PROP_X2:
priv->border.line.b.x = g_value_get_int (value); priv->x2 = g_value_get_int (value);
break; break;
case PROP_Y2: case PROP_Y2:
priv->border.line.b.y = g_value_get_int (value); priv->y2 = g_value_get_int (value);
break; break;
case PROP_DIRECTIONS: case PROP_DIRECTIONS:
meta_border_set_allows_directions (&priv->border, priv->directions = g_value_get_flags (value);
g_value_get_flags (value));
break; break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -168,8 +166,7 @@ meta_barrier_constructed (GObject *object)
MetaBarrier *barrier = META_BARRIER (object); MetaBarrier *barrier = META_BARRIER (object);
MetaBarrierPrivate *priv = barrier->priv; MetaBarrierPrivate *priv = barrier->priv;
g_return_if_fail (priv->border.line.a.x == priv->border.line.b.x || g_return_if_fail (priv->x1 == priv->x2 || priv->y1 == priv->y2);
priv->border.line.a.y == priv->border.line.b.y);
#if defined(HAVE_NATIVE_BACKEND) #if defined(HAVE_NATIVE_BACKEND)
if (META_IS_BACKEND_NATIVE (meta_get_backend ())) if (META_IS_BACKEND_NATIVE (meta_get_backend ()))

View File

@@ -28,7 +28,6 @@
#include <meta/meta-backend.h> #include <meta/meta-backend.h>
#include <meta/util.h> #include <meta/util.h>
#include <math.h>
#include <cogl/cogl.h> #include <cogl/cogl.h>
#include <clutter/clutter.h> #include <clutter/clutter.h>

View File

@@ -198,7 +198,6 @@ ensure_xfixes_cursor (MetaCursorTracker *tracker)
guint8 *cursor_data; guint8 *cursor_data;
gboolean free_cursor_data; gboolean free_cursor_data;
CoglContext *ctx; CoglContext *ctx;
CoglError *error = NULL;
if (tracker->xfixes_cursor) if (tracker->xfixes_cursor)
return; return;
@@ -240,17 +239,11 @@ ensure_xfixes_cursor (MetaCursorTracker *tracker)
CLUTTER_CAIRO_FORMAT_ARGB32, CLUTTER_CAIRO_FORMAT_ARGB32,
cursor_image->width * 4, /* stride */ cursor_image->width * 4, /* stride */
cursor_data, cursor_data,
&error); NULL);
if (free_cursor_data) if (free_cursor_data)
g_free (cursor_data); g_free (cursor_data);
if (error != NULL)
{
meta_warning ("Failed to allocate cursor sprite texture: %s\n", error->message);
cogl_error_free (error);
}
if (sprite != NULL) if (sprite != NULL)
{ {
MetaCursorSprite *cursor_sprite = meta_cursor_sprite_new (); MetaCursorSprite *cursor_sprite = meta_cursor_sprite_new ();
@@ -368,12 +361,12 @@ get_pointer_position_gdk (int *x,
int *y, int *y,
int *mods) int *mods)
{ {
GdkSeat *gseat; GdkDeviceManager *gmanager;
GdkDevice *gdevice; GdkDevice *gdevice;
GdkScreen *gscreen; GdkScreen *gscreen;
gseat = gdk_display_get_default_seat (gdk_display_get_default ()); gmanager = gdk_display_get_device_manager (gdk_display_get_default ());
gdevice = gdk_seat_get_pointer (gseat); gdevice = gdk_x11_device_manager_lookup (gmanager, META_VIRTUAL_CORE_POINTER_ID);
gdk_device_get_position (gdevice, &gscreen, x, y); gdk_device_get_position (gdevice, &gscreen, x, y);
if (mods) if (mods)

View File

@@ -136,7 +136,6 @@ meta_cursor_sprite_load_from_xcursor_image (MetaCursorSprite *self,
ClutterBackend *clutter_backend; ClutterBackend *clutter_backend;
CoglContext *cogl_context; CoglContext *cogl_context;
CoglTexture *texture; CoglTexture *texture;
CoglError *error = NULL;
g_assert (self->texture == NULL); g_assert (self->texture == NULL);
@@ -157,18 +156,9 @@ meta_cursor_sprite_load_from_xcursor_image (MetaCursorSprite *self,
cogl_format, cogl_format,
rowstride, rowstride,
(uint8_t *) xc_image->pixels, (uint8_t *) xc_image->pixels,
&error); NULL);
if (error)
{
meta_warning ("Failed to allocate cursor texture: %s\n", error->message);
cogl_error_free (error);
}
meta_cursor_sprite_set_texture (self, texture, meta_cursor_sprite_set_texture (self, texture,
xc_image->xhot, xc_image->yhot); xc_image->xhot, xc_image->yhot);
if (texture)
cogl_object_unref (texture); cogl_object_unref (texture);
meta_cursor_renderer_realize_cursor_from_xcursor (renderer, self, xc_image); meta_cursor_renderer_realize_cursor_from_xcursor (renderer, self, xc_image);

View File

@@ -63,9 +63,9 @@ struct _MetaInputSettingsClass
void (* set_invert_scroll) (MetaInputSettings *settings, void (* set_invert_scroll) (MetaInputSettings *settings,
ClutterInputDevice *device, ClutterInputDevice *device,
gboolean inverted); gboolean inverted);
void (* set_edge_scroll) (MetaInputSettings *settings, void (* set_scroll_method) (MetaInputSettings *settings,
ClutterInputDevice *device, ClutterInputDevice *device,
gboolean enabled); GDesktopTouchpadScrollMethod mode);
void (* set_scroll_button) (MetaInputSettings *settings, void (* set_scroll_button) (MetaInputSettings *settings,
ClutterInputDevice *device, ClutterInputDevice *device,
guint button); guint button);

View File

@@ -395,11 +395,11 @@ update_touchpad_tap_enabled (MetaInputSettings *input_settings,
} }
static void static void
update_touchpad_edge_scroll (MetaInputSettings *input_settings, update_touchpad_scroll_method (MetaInputSettings *input_settings,
ClutterInputDevice *device) ClutterInputDevice *device)
{ {
MetaInputSettingsClass *input_settings_class; MetaInputSettingsClass *input_settings_class;
gboolean edge_scroll_enabled; GDesktopTouchpadScrollMethod method;
MetaInputSettingsPrivate *priv; MetaInputSettingsPrivate *priv;
if (device && if (device &&
@@ -408,19 +408,19 @@ update_touchpad_edge_scroll (MetaInputSettings *input_settings,
priv = meta_input_settings_get_instance_private (input_settings); priv = meta_input_settings_get_instance_private (input_settings);
input_settings_class = META_INPUT_SETTINGS_GET_CLASS (input_settings); input_settings_class = META_INPUT_SETTINGS_GET_CLASS (input_settings);
edge_scroll_enabled = g_settings_get_boolean (priv->touchpad_settings, "edge-scrolling-enabled"); method = g_settings_get_enum (priv->touchpad_settings, "scroll-method");
if (device) if (device)
{ {
settings_device_set_bool_setting (input_settings, device, settings_device_set_uint_setting (input_settings, device,
input_settings_class->set_edge_scroll, input_settings_class->set_scroll_method,
edge_scroll_enabled); method);
} }
else else
{ {
settings_set_bool_setting (input_settings, CLUTTER_TOUCHPAD_DEVICE, settings_set_uint_setting (input_settings, CLUTTER_TOUCHPAD_DEVICE,
(ConfigBoolFunc) input_settings_class->set_edge_scroll, (ConfigUintFunc) input_settings_class->set_scroll_method,
edge_scroll_enabled); method);
} }
} }
@@ -429,7 +429,7 @@ update_touchpad_click_method (MetaInputSettings *input_settings,
ClutterInputDevice *device) ClutterInputDevice *device)
{ {
MetaInputSettingsClass *input_settings_class; MetaInputSettingsClass *input_settings_class;
GDesktopTouchpadClickMethod method; GDesktopTouchpadScrollMethod method;
MetaInputSettingsPrivate *priv; MetaInputSettingsPrivate *priv;
if (device && if (device &&
@@ -645,8 +645,8 @@ meta_input_settings_changed_cb (GSettings *settings,
update_touchpad_tap_enabled (input_settings, NULL); update_touchpad_tap_enabled (input_settings, NULL);
else if (strcmp (key, "send-events") == 0) else if (strcmp (key, "send-events") == 0)
update_touchpad_send_events (input_settings, NULL); update_touchpad_send_events (input_settings, NULL);
else if (strcmp (key, "edge-scrolling-enabled") == 0) else if (strcmp (key, "scroll-method") == 0)
update_touchpad_edge_scroll (input_settings, NULL); update_touchpad_scroll_method (input_settings, NULL);
else if (strcmp (key, "click-method") == 0) else if (strcmp (key, "click-method") == 0)
update_touchpad_click_method (input_settings, NULL); update_touchpad_click_method (input_settings, NULL);
} }
@@ -771,7 +771,7 @@ apply_device_settings (MetaInputSettings *input_settings,
update_device_natural_scroll (input_settings, device); update_device_natural_scroll (input_settings, device);
update_touchpad_tap_enabled (input_settings, device); update_touchpad_tap_enabled (input_settings, device);
update_touchpad_send_events (input_settings, device); update_touchpad_send_events (input_settings, device);
update_touchpad_edge_scroll (input_settings, device); update_touchpad_scroll_method (input_settings, device);
update_touchpad_click_method (input_settings, device); update_touchpad_click_method (input_settings, device);
update_trackball_scroll_button (input_settings, device); update_trackball_scroll_button (input_settings, device);

View File

@@ -913,13 +913,23 @@ key_is_laptop (MetaOutputKey *key)
{ {
/* FIXME: extend with better heuristics */ /* FIXME: extend with better heuristics */
return g_str_has_prefix (key->connector, "LVDS") || return g_str_has_prefix (key->connector, "LVDS") ||
g_str_has_prefix (key->connector, "lvds") ||
g_str_has_prefix (key->connector, "Lvds") ||
g_str_has_prefix (key->connector, "LCD") || /* some versions of fglrx, sigh */
g_str_has_prefix (key->connector, "DSI") ||
g_str_has_prefix (key->connector, "eDP"); g_str_has_prefix (key->connector, "eDP");
} }
static gboolean
output_is_laptop (MetaOutput *output)
{
/* FIXME: extend with better heuristics */
switch (output->connector_type)
{
case META_CONNECTOR_TYPE_eDP:
case META_CONNECTOR_TYPE_LVDS:
return TRUE;
default:
return FALSE;
}
}
static gboolean static gboolean
laptop_display_is_on (MetaConfiguration *config) laptop_display_is_on (MetaConfiguration *config)
{ {
@@ -1041,17 +1051,6 @@ apply_configuration_with_lid (MetaMonitorConfig *self,
return apply_configuration (self, config, manager); return apply_configuration (self, config, manager);
} }
gboolean
meta_monitor_config_get_is_builtin_display_on (MetaMonitorConfig *self)
{
g_return_val_if_fail (META_IS_MONITOR_CONFIG (self), FALSE);
if (self->current)
return laptop_display_is_on (self->current);
return FALSE;
}
gboolean gboolean
meta_monitor_config_apply_stored (MetaMonitorConfig *self, meta_monitor_config_apply_stored (MetaMonitorConfig *self,
MetaMonitorManager *manager) MetaMonitorManager *manager)
@@ -1093,7 +1092,7 @@ find_primary_output (MetaOutput *outputs,
for (i = 0; i < n_outputs; i++) for (i = 0; i < n_outputs; i++)
{ {
if (meta_output_is_laptop (&outputs[i])) if (output_is_laptop (&outputs[i]))
return i; return i;
} }
@@ -1555,20 +1554,19 @@ meta_monitor_config_restore_previous (MetaMonitorConfig *self,
/* The user chose to restore the previous configuration. In this /* The user chose to restore the previous configuration. In this
* case, restore the previous configuration. */ * case, restore the previous configuration. */
MetaConfiguration *prev_config = config_ref (self->previous); MetaConfiguration *prev_config = config_ref (self->previous);
gboolean ok = apply_configuration (self, prev_config, manager); apply_configuration (self, prev_config, manager);
config_unref (prev_config); config_unref (prev_config);
/* After this, self->previous contains the rejected configuration. /* After this, self->previous contains the rejected configuration.
* Since it was rejected, nuke it. */ * Since it was rejected, nuke it. */
g_clear_pointer (&self->previous, (GDestroyNotify) config_unref); g_clear_pointer (&self->previous, (GDestroyNotify) config_unref);
if (ok)
return;
} }
else
{
if (!meta_monitor_config_apply_stored (self, manager)) if (!meta_monitor_config_apply_stored (self, manager))
meta_monitor_config_make_default (self, manager); meta_monitor_config_make_default (self, manager);
} }
}
static void static void
turn_off_laptop_display (MetaMonitorConfig *self, turn_off_laptop_display (MetaMonitorConfig *self,
@@ -2031,11 +2029,7 @@ meta_monitor_config_assign_crtcs (MetaConfiguration *config,
all_outputs = meta_monitor_manager_get_outputs (manager, all_outputs = meta_monitor_manager_get_outputs (manager,
&n_outputs); &n_outputs);
if (n_outputs != config->n_outputs) g_assert (n_outputs == config->n_outputs);
{
g_hash_table_destroy (assignment.info);
return FALSE;
}
for (i = 0; i < n_outputs; i++) for (i = 0; i < n_outputs; i++)
{ {

View File

@@ -49,6 +49,4 @@ void meta_monitor_config_make_persistent (MetaMonitorConfig *confi
void meta_monitor_config_restore_previous (MetaMonitorConfig *config, void meta_monitor_config_restore_previous (MetaMonitorConfig *config,
MetaMonitorManager *manager); MetaMonitorManager *manager);
gboolean meta_monitor_config_get_is_builtin_display_on (MetaMonitorConfig *config);
#endif /* META_MONITOR_CONFIG_H */ #endif /* META_MONITOR_CONFIG_H */

View File

@@ -398,7 +398,6 @@ void meta_monitor_manager_confirm_configuration (MetaMonitorManag
void meta_output_parse_edid (MetaOutput *output, void meta_output_parse_edid (MetaOutput *output,
GBytes *edid); GBytes *edid);
gboolean meta_output_is_laptop (MetaOutput *output);
void meta_crtc_info_free (MetaCRTCInfo *info); void meta_crtc_info_free (MetaCRTCInfo *info);
void meta_output_info_free (MetaOutputInfo *info); void meta_output_info_free (MetaOutputInfo *info);
@@ -415,10 +414,6 @@ gint meta_monitor_manager_get_monitor_at_point (MetaMonitorManager
gfloat x, gfloat x,
gfloat y); gfloat y);
void meta_monitor_manager_clear_output (MetaOutput *output);
void meta_monitor_manager_clear_mode (MetaMonitorMode *mode);
void meta_monitor_manager_clear_crtc (MetaCRTC *crtc);
/* Returns true if transform causes width and height to be inverted /* Returns true if transform causes width and height to be inverted
This is true for the odd transforms in the enum */ This is true for the odd transforms in the enum */
static inline gboolean static inline gboolean

View File

@@ -178,7 +178,7 @@ make_logical_config (MetaMonitorManager *manager)
unsigned int i, j; unsigned int i, j;
monitor_infos = g_array_sized_new (FALSE, TRUE, sizeof (MetaMonitorInfo), monitor_infos = g_array_sized_new (FALSE, TRUE, sizeof (MetaMonitorInfo),
manager->n_crtcs); manager->n_outputs);
/* Walk the list of MetaCRTCs, and build a MetaMonitorInfo /* Walk the list of MetaCRTCs, and build a MetaMonitorInfo
for each of them, unless they reference a rectangle that for each of them, unless they reference a rectangle that
@@ -346,23 +346,6 @@ meta_monitor_manager_constructed (GObject *object)
manager->in_init = FALSE; manager->in_init = FALSE;
} }
void
meta_monitor_manager_clear_output (MetaOutput *output)
{
g_free (output->name);
g_free (output->vendor);
g_free (output->product);
g_free (output->serial);
g_free (output->modes);
g_free (output->possible_crtcs);
g_free (output->possible_clones);
if (output->driver_notify)
output->driver_notify (output);
memset (output, 0, sizeof (*output));
}
static void static void
meta_monitor_manager_free_output_array (MetaOutput *old_outputs, meta_monitor_manager_free_output_array (MetaOutput *old_outputs,
int n_old_outputs) int n_old_outputs)
@@ -370,20 +353,20 @@ meta_monitor_manager_free_output_array (MetaOutput *old_outputs,
int i; int i;
for (i = 0; i < n_old_outputs; i++) for (i = 0; i < n_old_outputs; i++)
meta_monitor_manager_clear_output (&old_outputs[i]); {
g_free (old_outputs[i].name);
g_free (old_outputs[i].vendor);
g_free (old_outputs[i].product);
g_free (old_outputs[i].serial);
g_free (old_outputs[i].modes);
g_free (old_outputs[i].possible_crtcs);
g_free (old_outputs[i].possible_clones);
g_free (old_outputs); if (old_outputs[i].driver_notify)
old_outputs[i].driver_notify (&old_outputs[i]);
} }
void g_free (old_outputs);
meta_monitor_manager_clear_mode (MetaMonitorMode *mode)
{
g_free (mode->name);
if (mode->driver_notify)
mode->driver_notify (mode);
memset (mode, 0, sizeof (*mode));
} }
static void static void
@@ -393,18 +376,14 @@ meta_monitor_manager_free_mode_array (MetaMonitorMode *old_modes,
int i; int i;
for (i = 0; i < n_old_modes; i++) for (i = 0; i < n_old_modes; i++)
meta_monitor_manager_clear_mode (&old_modes[i]); {
g_free (old_modes[i].name);
g_free (old_modes); if (old_modes[i].driver_notify)
old_modes[i].driver_notify (&old_modes[i]);
} }
void g_free (old_modes);
meta_monitor_manager_clear_crtc (MetaCRTC *crtc)
{
if (crtc->driver_notify)
crtc->driver_notify (crtc);
memset (crtc, 0, sizeof (*crtc));
} }
static void static void
@@ -414,7 +393,10 @@ meta_monitor_manager_free_crtc_array (MetaCRTC *old_crtcs,
int i; int i;
for (i = 0; i < n_old_crtcs; i++) for (i = 0; i < n_old_crtcs; i++)
meta_monitor_manager_clear_crtc (&old_crtcs[i]); {
if (old_crtcs[i].driver_notify)
old_crtcs[i].driver_notify (&old_crtcs[i]);
}
g_free (old_crtcs); g_free (old_crtcs);
} }
@@ -511,8 +493,14 @@ make_display_name (MetaMonitorManager *manager,
g_autofree char *inches = NULL; g_autofree char *inches = NULL;
g_autofree char *vendor_name = NULL; g_autofree char *vendor_name = NULL;
if (meta_output_is_laptop (output)) switch (output->connector_type)
{
case META_CONNECTOR_TYPE_LVDS:
case META_CONNECTOR_TYPE_eDP:
return g_strdup (_("Built-in display")); return g_strdup (_("Built-in display"));
default:
break;
}
if (output->width_mm > 0 && output->height_mm > 0) if (output->width_mm > 0 && output->height_mm > 0)
{ {
@@ -1458,21 +1446,6 @@ meta_output_parse_edid (MetaOutput *meta_output,
meta_output->serial = g_strdup ("unknown"); meta_output->serial = g_strdup ("unknown");
} }
gboolean
meta_output_is_laptop (MetaOutput *output)
{
/* FIXME: extend with better heuristics */
switch (output->connector_type)
{
case META_CONNECTOR_TYPE_eDP:
case META_CONNECTOR_TYPE_LVDS:
case META_CONNECTOR_TYPE_DSI:
return TRUE;
default:
return FALSE;
}
}
void void
meta_monitor_manager_on_hotplug (MetaMonitorManager *manager) meta_monitor_manager_on_hotplug (MetaMonitorManager *manager)
{ {
@@ -1599,11 +1572,3 @@ meta_monitor_manager_get_monitor_at_point (MetaMonitorManager *manager,
return -1; return -1;
} }
gboolean
meta_monitor_manager_get_is_builtin_display_on (MetaMonitorManager *manager)
{
g_return_val_if_fail (META_IS_MONITOR_MANAGER (manager), FALSE);
return meta_monitor_config_get_is_builtin_display_on (manager->config);
}

View File

@@ -1,57 +0,0 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* Copyright (C) 2015 Red Hat
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* Written by:
* Jonas Ådahl <jadahl@gmail.com>
*/
#include "config.h"
#include "backends/meta-pointer-constraint.h"
#include <glib-object.h>
G_DEFINE_TYPE (MetaPointerConstraint, meta_pointer_constraint, G_TYPE_OBJECT);
static void
meta_pointer_constraint_init (MetaPointerConstraint *constraint)
{
}
static void
meta_pointer_constraint_class_init (MetaPointerConstraintClass *klass)
{
}
void
meta_pointer_constraint_constrain (MetaPointerConstraint *constraint,
ClutterInputDevice *device,
guint32 time,
float prev_x,
float prev_y,
float *x,
float *y)
{
META_POINTER_CONSTRAINT_GET_CLASS (constraint)->constrain (constraint,
device,
time,
prev_x, prev_y,
x, y);
}

View File

@@ -1,60 +0,0 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* Copyright (C) 2015 Red Hat
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* Written by:
* Jonas Ådahl <jadahl@gmail.com>
*/
#ifndef META_POINTER_CONSTRAINT_H
#define META_POINTER_CONSTRAINT_H
#include <glib-object.h>
#include <clutter/clutter.h>
G_BEGIN_DECLS
#define META_TYPE_POINTER_CONSTRAINT (meta_pointer_constraint_get_type ())
G_DECLARE_DERIVABLE_TYPE (MetaPointerConstraint, meta_pointer_constraint,
META, POINTER_CONSTRAINT, GObject);
struct _MetaPointerConstraintClass
{
GObjectClass parent_class;
void (*constrain) (MetaPointerConstraint *constraint,
ClutterInputDevice *device,
guint32 time,
float prev_x,
float prev_y,
float *x,
float *y);
};
void meta_pointer_constraint_constrain (MetaPointerConstraint *constraint,
ClutterInputDevice *device,
guint32 time,
float prev_x,
float prev_y,
float *x,
float *y);
G_END_DECLS
#endif /* META_POINTER_CONSTRAINT_H */

View File

@@ -36,10 +36,6 @@
#include "meta-monitor-manager-kms.h" #include "meta-monitor-manager-kms.h"
#include "meta-cursor-renderer-native.h" #include "meta-cursor-renderer-native.h"
#include "meta-launcher.h" #include "meta-launcher.h"
#include "backends/meta-cursor-tracker-private.h"
#include "backends/meta-pointer-constraint.h"
#include <stdlib.h>
struct _MetaBackendNativePrivate struct _MetaBackendNativePrivate
{ {
@@ -141,24 +137,6 @@ constrain_to_barriers (ClutterInputDevice *device,
new_x, new_y); new_x, new_y);
} }
static void
constrain_to_client_constraint (ClutterInputDevice *device,
guint32 time,
float prev_x,
float prev_y,
float *x,
float *y)
{
MetaBackend *backend = meta_get_backend ();
MetaPointerConstraint *constraint = backend->client_pointer_constraint;
if (!constraint)
return;
meta_pointer_constraint_constrain (constraint, device,
time, prev_x, prev_y, x, y);
}
/* /*
* The pointer constrain code is mostly a rip-off of the XRandR code from Xorg. * The pointer constrain code is mostly a rip-off of the XRandR code from Xorg.
* (from xserver/randr/rrcrtc.c, RRConstrainCursorHarder) * (from xserver/randr/rrcrtc.c, RRConstrainCursorHarder)
@@ -214,8 +192,6 @@ constrain_all_screen_monitors (ClutterInputDevice *device,
static void static void
pointer_constrain_callback (ClutterInputDevice *device, pointer_constrain_callback (ClutterInputDevice *device,
guint32 time, guint32 time,
float prev_x,
float prev_y,
float *new_x, float *new_x,
float *new_y, float *new_y,
gpointer user_data) gpointer user_data)
@@ -227,9 +203,6 @@ pointer_constrain_callback (ClutterInputDevice *device,
/* Constrain to barriers */ /* Constrain to barriers */
constrain_to_barriers (device, time, new_x, new_y); constrain_to_barriers (device, time, new_x, new_y);
/* Constrain to pointer lock */
constrain_to_client_constraint (device, time, prev_x, prev_y, new_x, new_y);
monitor_manager = meta_monitor_manager_get (); monitor_manager = meta_monitor_manager_get ();
monitors = meta_monitor_manager_get_monitor_infos (monitor_manager, &n_monitors); monitors = meta_monitor_manager_get_monitor_infos (monitor_manager, &n_monitors);
@@ -280,16 +253,11 @@ meta_backend_native_warp_pointer (MetaBackend *backend,
{ {
ClutterDeviceManager *manager = clutter_device_manager_get_default (); ClutterDeviceManager *manager = clutter_device_manager_get_default ();
ClutterInputDevice *device = clutter_device_manager_get_core_device (manager, CLUTTER_POINTER_DEVICE); ClutterInputDevice *device = clutter_device_manager_get_core_device (manager, CLUTTER_POINTER_DEVICE);
MetaCursorTracker *tracker = meta_cursor_tracker_get_for_screen (NULL);
/* XXX */ /* XXX */
guint32 time_ = 0; guint32 time_ = 0;
/* Warp the input device pointer state. */
clutter_evdev_warp_pointer (device, time_, x, y); clutter_evdev_warp_pointer (device, time_, x, y);
/* Warp displayed pointer cursor. */
meta_cursor_tracker_update_position (tracker, x, y);
} }
static void static void
@@ -336,19 +304,6 @@ meta_backend_native_lock_layout_group (MetaBackend *backend,
g_signal_emit_by_name (backend, "keymap-layout-group-changed", idx, 0); g_signal_emit_by_name (backend, "keymap-layout-group-changed", idx, 0);
} }
static gboolean
meta_backend_native_get_relative_motion_deltas (MetaBackend *backend,
const ClutterEvent *event,
double *dx,
double *dy,
double *dx_unaccel,
double *dy_unaccel)
{
return clutter_evdev_event_get_relative_motion (event,
dx, dy,
dx_unaccel, dy_unaccel);
}
static void static void
meta_backend_native_class_init (MetaBackendNativeClass *klass) meta_backend_native_class_init (MetaBackendNativeClass *klass)
{ {
@@ -366,22 +321,14 @@ meta_backend_native_class_init (MetaBackendNativeClass *klass)
backend_class->set_keymap = meta_backend_native_set_keymap; backend_class->set_keymap = meta_backend_native_set_keymap;
backend_class->get_keymap = meta_backend_native_get_keymap; backend_class->get_keymap = meta_backend_native_get_keymap;
backend_class->lock_layout_group = meta_backend_native_lock_layout_group; backend_class->lock_layout_group = meta_backend_native_lock_layout_group;
backend_class->get_relative_motion_deltas = meta_backend_native_get_relative_motion_deltas;
} }
static void static void
meta_backend_native_init (MetaBackendNative *native) meta_backend_native_init (MetaBackendNative *native)
{ {
MetaBackendNativePrivate *priv = meta_backend_native_get_instance_private (native); MetaBackendNativePrivate *priv = meta_backend_native_get_instance_private (native);
GError *error = NULL;
priv->launcher = meta_launcher_new (&error);
if (priv->launcher == NULL)
{
g_warning ("Can't initialize KMS backend: %s\n", error->message);
exit (1);
}
priv->launcher = meta_launcher_new ();
priv->barrier_manager = meta_barrier_manager_native_new (); priv->barrier_manager = meta_barrier_manager_native_new ();
priv->up_client = up_client_new (); priv->up_client = up_client_new ();

View File

@@ -93,18 +93,126 @@ next_serial (void)
return barrier_serial; return barrier_serial;
} }
typedef struct _Vector2
{
float x, y;
} Vector2;
static float
vector2_cross_product (Vector2 a, Vector2 b)
{
return a.x * b.y - a.y * b.x;
}
static Vector2
vector2_add (Vector2 a, Vector2 b)
{
return (Vector2) {
.x = a.x + b.x,
.y = a.y + b.y,
};
}
static Vector2
vector2_subtract (Vector2 a, Vector2 b)
{
return (Vector2) {
.x = a.x - b.x,
.y = a.y - b.y,
};
}
static Vector2
vector2_multiply_constant (float c, Vector2 a)
{
return (Vector2) {
.x = c * a.x,
.y = c * a.y,
};
}
typedef struct _Line2
{
Vector2 a;
Vector2 b;
} Line2;
static gboolean
lines_intersect (Line2 *line1, Line2 *line2, Vector2 *intersection)
{
Vector2 p = line1->a;
Vector2 r = vector2_subtract (line1->b, line1->a);
Vector2 q = line2->a;
Vector2 s = vector2_subtract (line2->b, line2->a);
float rxs;
float sxr;
float t;
float u;
/*
* The line (p, r) and (q, s) intersects where
*
* p + t r = q + u s
*
* Calculate t:
*
* (p + t r) × s = (q + u s) × s
* p × s + t (r × s) = q × s + u (s × s)
* p × s + t (r × s) = q × s
* t (r × s) = q × s - p × s
* t (r × s) = (q - p) × s
* t = ((q - p) × s) / (r × s)
*
* Using the same method, for u we get:
*
* u = ((p - q) × r) / (s × r)
*/
rxs = vector2_cross_product (r, s);
sxr = vector2_cross_product (s, r);
/* If r × s = 0 then the lines are either parallel or collinear. */
if (fabs ( rxs) < DBL_MIN)
return FALSE;
t = vector2_cross_product (vector2_subtract (q, p), s) / rxs;
u = vector2_cross_product (vector2_subtract (p, q), r) / sxr;
/* The lines only intersect if 0 ≤ t ≤ 1 and 0 ≤ u ≤ 1. */
if (t < 0.0 || t > 1.0 || u < 0.0 || u > 1.0)
return FALSE;
*intersection = vector2_add (p, vector2_multiply_constant (t, r));
return TRUE;
}
static gboolean static gboolean
is_barrier_horizontal (MetaBarrier *barrier) is_barrier_horizontal (MetaBarrier *barrier)
{ {
return meta_border_is_horizontal (&barrier->priv->border); return barrier->priv->y1 == barrier->priv->y2;
} }
static gboolean static gboolean
is_barrier_blocking_directions (MetaBarrier *barrier, is_barrier_blocking_directions (MetaBarrier *barrier,
MetaBarrierDirection directions) MetaBarrierDirection directions)
{ {
return meta_border_is_blocking_directions (&barrier->priv->border, /* Barriers doesn't block parallel motions. */
directions); if (is_barrier_horizontal (barrier))
{
if ((directions & (META_BARRIER_DIRECTION_POSITIVE_Y |
META_BARRIER_DIRECTION_NEGATIVE_Y)) == 0)
return FALSE;
}
else
{
if ((directions & (META_BARRIER_DIRECTION_POSITIVE_X |
META_BARRIER_DIRECTION_NEGATIVE_X)) == 0)
return FALSE;
}
return (barrier->priv->directions & directions) != directions;
} }
static void static void
@@ -116,16 +224,31 @@ dismiss_pointer (MetaBarrierImplNative *self)
priv->state = META_BARRIER_STATE_LEFT; priv->state = META_BARRIER_STATE_LEFT;
} }
static Line2
barrier_to_line (MetaBarrier *barrier)
{
return (Line2) {
.a = (Vector2) {
.x = MIN (barrier->priv->x1, barrier->priv->x2),
.y = MIN (barrier->priv->y1, barrier->priv->y2),
},
.b = (Vector2) {
.x = MAX (barrier->priv->x1, barrier->priv->x2),
.y = MAX (barrier->priv->y1, barrier->priv->y2),
},
};
}
/* /*
* Calculate the hit box for a held motion. The hit box is a 2 px wide region * Calculate the hit box for a held motion. The hit box is a 2 px wide region
* in the opposite direction of every direction the barrier blocks. The purpose * in the opposite direction of every direction the barrier blocks. The purpose
* of this is to allow small movements without receiving a "left" signal. This * of this is to allow small movements without receiving a "left" signal. This
* heuristic comes from the X.org pointer barrier implementation. * heuristic comes from the X.org pointer barrier implementation.
*/ */
static MetaLine2 static Line2
calculate_barrier_hit_box (MetaBarrier *barrier) calculate_barrier_hit_box (MetaBarrier *barrier)
{ {
MetaLine2 hit_box = barrier->priv->border.line; Line2 hit_box = barrier_to_line (barrier);
if (is_barrier_horizontal (barrier)) if (is_barrier_horizontal (barrier))
{ {
@@ -150,8 +273,7 @@ calculate_barrier_hit_box (MetaBarrier *barrier)
} }
static gboolean static gboolean
is_within_box (MetaLine2 box, is_within_box (Line2 box, Vector2 point)
MetaVector2 point)
{ {
return (point.x >= box.a.x && point.x < box.b.x && return (point.x >= box.a.x && point.x < box.b.x &&
point.y >= box.a.y && point.y < box.b.y); point.y >= box.a.y && point.y < box.b.y);
@@ -166,8 +288,8 @@ maybe_release_barrier (gpointer key,
MetaBarrierImplNativePrivate *priv = MetaBarrierImplNativePrivate *priv =
meta_barrier_impl_native_get_instance_private (self); meta_barrier_impl_native_get_instance_private (self);
MetaBarrier *barrier = priv->barrier; MetaBarrier *barrier = priv->barrier;
MetaLine2 *motion = user_data; Line2 *motion = user_data;
MetaLine2 hit_box; Line2 hit_box;
if (priv->state != META_BARRIER_STATE_HELD) if (priv->state != META_BARRIER_STATE_HELD)
return; return;
@@ -175,10 +297,8 @@ maybe_release_barrier (gpointer key,
/* Release if we end up outside barrier end points. */ /* Release if we end up outside barrier end points. */
if (is_barrier_horizontal (barrier)) if (is_barrier_horizontal (barrier))
{ {
if (motion->b.x > MAX (barrier->priv->border.line.a.x, if (motion->b.x > MAX (barrier->priv->x1, barrier->priv->x2) ||
barrier->priv->border.line.b.x) || motion->b.x < MIN (barrier->priv->x1, barrier->priv->x2))
motion->b.x < MIN (barrier->priv->border.line.a.x,
barrier->priv->border.line.b.x))
{ {
dismiss_pointer (self); dismiss_pointer (self);
return; return;
@@ -186,10 +306,8 @@ maybe_release_barrier (gpointer key,
} }
else else
{ {
if (motion->b.y > MAX (barrier->priv->border.line.a.y, if (motion->b.y > MAX (barrier->priv->y1, barrier->priv->y2) ||
barrier->priv->border.line.b.y) || motion->b.y < MIN (barrier->priv->y1, barrier->priv->y2))
motion->b.y < MIN (barrier->priv->border.line.a.y,
barrier->priv->border.line.b.y))
{ {
dismiss_pointer (self); dismiss_pointer (self);
return; return;
@@ -212,7 +330,7 @@ maybe_release_barriers (MetaBarrierManagerNative *manager,
float x, float x,
float y) float y)
{ {
MetaLine2 motion = { Line2 motion = {
.a = { .a = {
.x = prev_x, .x = prev_x,
.y = prev_y, .y = prev_y,
@@ -232,7 +350,7 @@ typedef struct _MetaClosestBarrierData
{ {
struct struct
{ {
MetaLine2 motion; Line2 motion;
MetaBarrierDirection directions; MetaBarrierDirection directions;
} in; } in;
@@ -253,7 +371,8 @@ update_closest_barrier (gpointer key,
meta_barrier_impl_native_get_instance_private (self); meta_barrier_impl_native_get_instance_private (self);
MetaBarrier *barrier = priv->barrier; MetaBarrier *barrier = priv->barrier;
MetaClosestBarrierData *data = user_data; MetaClosestBarrierData *data = user_data;
MetaVector2 intersection; Line2 barrier_line;
Vector2 intersection;
float dx, dy; float dx, dy;
float distance_2; float distance_2;
@@ -272,9 +391,17 @@ update_closest_barrier (gpointer key,
/* Check if the motion intersects with the barrier, and retrieve the /* Check if the motion intersects with the barrier, and retrieve the
* intersection point if any. */ * intersection point if any. */
if (!meta_line2_intersects_with (&barrier->priv->border.line, barrier_line = (Line2) {
&data->in.motion, .a = {
&intersection)) .x = barrier->priv->x1,
.y = barrier->priv->y1
},
.b = {
.x = barrier->priv->x2,
.y = barrier->priv->y2
},
};
if (!lines_intersect (&barrier_line, &data->in.motion, &intersection))
return; return;
/* Calculate the distance to the barrier and keep track of the closest /* Calculate the distance to the barrier and keep track of the closest
@@ -443,9 +570,9 @@ clamp_to_barrier (MetaBarrierImplNative *self,
if (is_barrier_horizontal (barrier)) if (is_barrier_horizontal (barrier))
{ {
if (*motion_dir & META_BARRIER_DIRECTION_POSITIVE_Y) if (*motion_dir & META_BARRIER_DIRECTION_POSITIVE_Y)
*y = barrier->priv->border.line.a.y; *y = barrier->priv->y1;
else if (*motion_dir & META_BARRIER_DIRECTION_NEGATIVE_Y) else if (*motion_dir & META_BARRIER_DIRECTION_NEGATIVE_Y)
*y = barrier->priv->border.line.a.y; *y = barrier->priv->y1;
priv->blocked_dir = *motion_dir & (META_BARRIER_DIRECTION_POSITIVE_Y | priv->blocked_dir = *motion_dir & (META_BARRIER_DIRECTION_POSITIVE_Y |
META_BARRIER_DIRECTION_NEGATIVE_Y); META_BARRIER_DIRECTION_NEGATIVE_Y);
@@ -455,9 +582,9 @@ clamp_to_barrier (MetaBarrierImplNative *self,
else else
{ {
if (*motion_dir & META_BARRIER_DIRECTION_POSITIVE_X) if (*motion_dir & META_BARRIER_DIRECTION_POSITIVE_X)
*x = barrier->priv->border.line.a.x; *x = barrier->priv->x1;
else if (*motion_dir & META_BARRIER_DIRECTION_NEGATIVE_X) else if (*motion_dir & META_BARRIER_DIRECTION_NEGATIVE_X)
*x = barrier->priv->border.line.a.x; *x = barrier->priv->x1;
priv->blocked_dir = *motion_dir & (META_BARRIER_DIRECTION_POSITIVE_X | priv->blocked_dir = *motion_dir & (META_BARRIER_DIRECTION_POSITIVE_X |
META_BARRIER_DIRECTION_NEGATIVE_X); META_BARRIER_DIRECTION_NEGATIVE_X);

View File

@@ -102,6 +102,9 @@ meta_cursor_renderer_native_finalize (GObject *object)
if (priv->animation_timeout_id) if (priv->animation_timeout_id)
g_source_remove (priv->animation_timeout_id); g_source_remove (priv->animation_timeout_id);
if (priv->gbm)
gbm_device_destroy (priv->gbm);
G_OBJECT_CLASS (meta_cursor_renderer_native_parent_class)->finalize (object); G_OBJECT_CLASS (meta_cursor_renderer_native_parent_class)->finalize (object);
} }
@@ -255,9 +258,6 @@ has_valid_cursor_sprite_gbm_bo (MetaCursorSprite *cursor_sprite)
MetaCursorNativePrivate *cursor_priv = MetaCursorNativePrivate *cursor_priv =
g_object_get_qdata (G_OBJECT (cursor_sprite), quark_cursor_sprite); g_object_get_qdata (G_OBJECT (cursor_sprite), quark_cursor_sprite);
if (!cursor_priv)
return FALSE;
switch (cursor_priv->pending_bo_state) switch (cursor_priv->pending_bo_state)
{ {
case META_CURSOR_GBM_BO_STATE_NONE: case META_CURSOR_GBM_BO_STATE_NONE:
@@ -273,32 +273,6 @@ has_valid_cursor_sprite_gbm_bo (MetaCursorSprite *cursor_sprite)
return FALSE; return FALSE;
} }
static gboolean
cursor_over_transformed_crtc (MetaCursorRenderer *renderer,
MetaCursorSprite *cursor_sprite)
{
MetaMonitorManager *monitors;
MetaCRTC *crtcs;
unsigned int i, n_crtcs;
MetaRectangle rect;
monitors = meta_monitor_manager_get ();
meta_monitor_manager_get_resources (monitors, NULL, NULL,
&crtcs, &n_crtcs, NULL, NULL);
rect = meta_cursor_renderer_calculate_rect (renderer, cursor_sprite);
for (i = 0; i < n_crtcs; i++)
{
if (!meta_rectangle_overlap (&rect, &crtcs[i].rect))
continue;
if (crtcs[i].transform != META_MONITOR_TRANSFORM_NORMAL)
return TRUE;
}
return FALSE;
}
static gboolean static gboolean
should_have_hw_cursor (MetaCursorRenderer *renderer, should_have_hw_cursor (MetaCursorRenderer *renderer,
MetaCursorSprite *cursor_sprite) MetaCursorSprite *cursor_sprite)
@@ -308,9 +282,6 @@ should_have_hw_cursor (MetaCursorRenderer *renderer,
if (!cursor_sprite) if (!cursor_sprite)
return FALSE; return FALSE;
if (cursor_over_transformed_crtc (renderer, cursor_sprite))
return FALSE;
texture = meta_cursor_sprite_get_cogl_texture (cursor_sprite); texture = meta_cursor_sprite_get_cogl_texture (cursor_sprite);
if (!texture) if (!texture)
return FALSE; return FALSE;
@@ -669,7 +640,7 @@ meta_cursor_renderer_native_init (MetaCursorRendererNative *native)
{ {
CoglRenderer *cogl_renderer = cogl_display_get_renderer (cogl_context_get_display (ctx)); CoglRenderer *cogl_renderer = cogl_display_get_renderer (cogl_context_get_display (ctx));
priv->drm_fd = cogl_kms_renderer_get_kms_fd (cogl_renderer); priv->drm_fd = cogl_kms_renderer_get_kms_fd (cogl_renderer);
priv->gbm = cogl_kms_renderer_get_gbm (cogl_renderer); priv->gbm = gbm_create_device (priv->drm_fd);
uint64_t width, height; uint64_t width, height;
if (drmGetCap (priv->drm_fd, DRM_CAP_CURSOR_WIDTH, &width) == 0 && if (drmGetCap (priv->drm_fd, DRM_CAP_CURSOR_WIDTH, &width) == 0 &&

View File

@@ -164,36 +164,56 @@ meta_idle_monitor_native_init (MetaIdleMonitorNative *monitor_native)
monitor->watches = g_hash_table_new_full (NULL, NULL, NULL, free_watch); monitor->watches = g_hash_table_new_full (NULL, NULL, NULL, free_watch);
} }
typedef struct {
MetaIdleMonitorNative *monitor_native;
GList *fired_watches;
} CheckNativeClosure;
static gboolean
check_native_watch (gpointer key,
gpointer value,
gpointer user_data)
{
MetaIdleMonitorWatchNative *watch_native = value;
MetaIdleMonitorWatch *watch = (MetaIdleMonitorWatch *) watch_native;
CheckNativeClosure *closure = user_data;
gboolean steal;
if (watch->timeout_msec == 0)
{
closure->fired_watches = g_list_prepend (closure->fired_watches, watch);
steal = TRUE;
}
else
{
g_source_set_ready_time (watch_native->timeout_source,
closure->monitor_native->last_event_time +
watch->timeout_msec * 1000);
steal = FALSE;
}
return steal;
}
static void
fire_native_watch (gpointer watch,
gpointer data)
{
_meta_idle_monitor_watch_fire (watch);
}
void void
meta_idle_monitor_native_reset_idletime (MetaIdleMonitor *monitor) meta_idle_monitor_native_reset_idletime (MetaIdleMonitor *monitor)
{ {
MetaIdleMonitorNative *monitor_native = META_IDLE_MONITOR_NATIVE (monitor); MetaIdleMonitorNative *monitor_native = META_IDLE_MONITOR_NATIVE (monitor);
GList *node, *watch_ids; CheckNativeClosure closure;
monitor_native->last_event_time = g_get_monotonic_time (); monitor_native->last_event_time = g_get_monotonic_time ();
watch_ids = g_hash_table_get_keys (monitor->watches); closure.monitor_native = monitor_native;
closure.fired_watches = NULL;
g_hash_table_foreach_steal (monitor->watches, check_native_watch, &closure);
for (node = watch_ids; node != NULL; node = node->next) g_list_foreach (closure.fired_watches, fire_native_watch, NULL);
{ g_list_free (closure.fired_watches);
guint watch_id = GPOINTER_TO_UINT (node->data);
MetaIdleMonitorWatchNative *watch;
watch = g_hash_table_lookup (monitor->watches, GUINT_TO_POINTER (watch_id));
if (!watch)
continue;
if (watch->base.timeout_msec == 0)
{
_meta_idle_monitor_watch_fire ((MetaIdleMonitorWatch *) watch);
}
else
{
g_source_set_ready_time (watch->timeout_source,
monitor_native->last_event_time +
watch->base.timeout_msec * 1000);
}
}
g_list_free (watch_ids);
} }

View File

@@ -154,29 +154,29 @@ device_set_click_method (struct libinput_device *libinput_device,
} }
static void static void
meta_input_settings_native_set_edge_scroll (MetaInputSettings *settings, meta_input_settings_native_set_scroll_method (MetaInputSettings *settings,
ClutterInputDevice *device, ClutterInputDevice *device,
gboolean edge_scrolling_enabled) GDesktopTouchpadScrollMethod mode)
{ {
enum libinput_config_scroll_method scroll_method = 0; enum libinput_config_scroll_method scroll_method = 0;
struct libinput_device *libinput_device; struct libinput_device *libinput_device;
enum libinput_config_scroll_method supported;
libinput_device = clutter_evdev_input_device_get_libinput_device (device); libinput_device = clutter_evdev_input_device_get_libinput_device (device);
supported = libinput_device_config_scroll_get_methods (libinput_device);
if (supported & LIBINPUT_CONFIG_SCROLL_2FG) switch (mode)
{
scroll_method = LIBINPUT_CONFIG_SCROLL_2FG;
}
else if (supported & LIBINPUT_CONFIG_SCROLL_EDGE &&
edge_scrolling_enabled)
{
scroll_method = LIBINPUT_CONFIG_SCROLL_EDGE;
}
else
{ {
case G_DESKTOP_TOUCHPAD_SCROLL_METHOD_DISABLED:
scroll_method = LIBINPUT_CONFIG_SCROLL_NO_SCROLL; scroll_method = LIBINPUT_CONFIG_SCROLL_NO_SCROLL;
break;
case G_DESKTOP_TOUCHPAD_SCROLL_METHOD_EDGE_SCROLLING:
scroll_method = LIBINPUT_CONFIG_SCROLL_EDGE;
break;
case G_DESKTOP_TOUCHPAD_SCROLL_METHOD_TWO_FINGER_SCROLLING:
scroll_method = LIBINPUT_CONFIG_SCROLL_2FG;
break;
default:
g_assert_not_reached ();
return;
} }
device_set_scroll_method (libinput_device, scroll_method); device_set_scroll_method (libinput_device, scroll_method);
@@ -252,7 +252,7 @@ meta_input_settings_native_class_init (MetaInputSettingsNativeClass *klass)
input_settings_class->set_left_handed = meta_input_settings_native_set_left_handed; input_settings_class->set_left_handed = meta_input_settings_native_set_left_handed;
input_settings_class->set_tap_enabled = meta_input_settings_native_set_tap_enabled; input_settings_class->set_tap_enabled = meta_input_settings_native_set_tap_enabled;
input_settings_class->set_invert_scroll = meta_input_settings_native_set_invert_scroll; input_settings_class->set_invert_scroll = meta_input_settings_native_set_invert_scroll;
input_settings_class->set_edge_scroll = meta_input_settings_native_set_edge_scroll; input_settings_class->set_scroll_method = meta_input_settings_native_set_scroll_method;
input_settings_class->set_scroll_button = meta_input_settings_native_set_scroll_button; input_settings_class->set_scroll_button = meta_input_settings_native_set_scroll_button;
input_settings_class->set_click_method = meta_input_settings_native_set_click_method; input_settings_class->set_click_method = meta_input_settings_native_set_click_method;
input_settings_class->set_keyboard_repeat = meta_input_settings_native_set_keyboard_repeat; input_settings_class->set_keyboard_repeat = meta_input_settings_native_set_keyboard_repeat;

View File

@@ -46,12 +46,6 @@
#include "meta-cursor-renderer-native.h" #include "meta-cursor-renderer-native.h"
#include "meta-idle-monitor-native.h" #include "meta-idle-monitor-native.h"
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUdevDevice, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUdevClient, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUdevEnumerator, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(Login1Session, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(Login1Seat, g_object_unref)
struct _MetaLauncher struct _MetaLauncher
{ {
Login1Session *session_proxy; Login1Session *session_proxy;
@@ -60,22 +54,30 @@ struct _MetaLauncher
gboolean session_active; gboolean session_active;
}; };
static Login1Session * static void
get_session_proxy (GCancellable *cancellable, report_error_and_die (const char *prefix,
GError **error) GError *error)
{ {
g_autofree char *proxy_path = NULL; /* if a function returns due to g_return_val_if_fail,
g_autofree char *session_id = NULL; * then the error may not be set */
if (error)
g_error ("%s: %s", prefix, error->message);
else
g_error ("%s", prefix);
/* the error is not freed, but it is ok as g_error aborts the process */
}
static Login1Session *
get_session_proxy (GCancellable *cancellable)
{
char *proxy_path;
char *session_id;
Login1Session *session_proxy; Login1Session *session_proxy;
GError *error = NULL;
if (sd_pid_get_session (getpid (), &session_id) < 0) if (sd_pid_get_session (getpid (), &session_id) < 0)
{
g_set_error (error,
G_IO_ERROR,
G_IO_ERROR_NOT_FOUND,
"Could not get session ID: %m");
return NULL; return NULL;
}
proxy_path = get_escaped_dbus_path ("/org/freedesktop/login1/session", session_id); proxy_path = get_escaped_dbus_path ("/org/freedesktop/login1/session", session_id);
@@ -83,24 +85,26 @@ get_session_proxy (GCancellable *cancellable,
G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
"org.freedesktop.login1", "org.freedesktop.login1",
proxy_path, proxy_path,
cancellable, error); cancellable, &error);
if (!session_proxy) if (!session_proxy)
g_prefix_error(error, "Could not get session proxy: "); report_error_and_die ("Failed getting session proxy", error);
free (proxy_path);
return session_proxy; return session_proxy;
} }
static Login1Seat * static Login1Seat *
get_seat_proxy (GCancellable *cancellable, get_seat_proxy (GCancellable *cancellable)
GError **error)
{ {
GError *error = NULL;
Login1Seat *seat = login1_seat_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, Login1Seat *seat = login1_seat_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
"org.freedesktop.login1", "org.freedesktop.login1",
"/org/freedesktop/login1/seat/self", "/org/freedesktop/login1/seat/self",
cancellable, error); cancellable, &error);
if (!seat) if (!seat)
g_prefix_error(error, "Could not get seat proxy: "); report_error_and_die ("Could not get seat proxy", error);
return seat; return seat;
} }
@@ -289,8 +293,8 @@ get_primary_gpu_path (const gchar *seat_name)
gchar *path = NULL; gchar *path = NULL;
GList *devices, *tmp; GList *devices, *tmp;
g_autoptr (GUdevClient) gudev_client = g_udev_client_new (subsystems); GUdevClient *gudev_client = g_udev_client_new (subsystems);
g_autoptr (GUdevEnumerator) enumerator = g_udev_enumerator_new (gudev_client); GUdevEnumerator *enumerator = g_udev_enumerator_new (gudev_client);
g_udev_enumerator_add_match_name (enumerator, "card*"); g_udev_enumerator_add_match_name (enumerator, "card*");
g_udev_enumerator_add_match_tag (enumerator, "seat"); g_udev_enumerator_add_match_tag (enumerator, "seat");
@@ -301,8 +305,7 @@ get_primary_gpu_path (const gchar *seat_name)
for (tmp = devices; tmp != NULL; tmp = tmp->next) for (tmp = devices; tmp != NULL; tmp = tmp->next)
{ {
g_autoptr (GUdevDevice) platform_device = NULL; GUdevDevice *pci_device;
g_autoptr (GUdevDevice) pci_device = NULL;
GUdevDevice *dev = tmp->data; GUdevDevice *dev = tmp->data;
gint boot_vga; gint boot_vga;
const gchar *device_seat; const gchar *device_seat;
@@ -329,18 +332,14 @@ get_primary_gpu_path (const gchar *seat_name)
if (g_strcmp0 (seat_name, device_seat)) if (g_strcmp0 (seat_name, device_seat))
continue; continue;
platform_device = g_udev_device_get_parent_with_subsystem (dev, "platform", NULL);
if (platform_device != NULL)
{
path = g_strdup (g_udev_device_get_device_file (dev));
break;
}
pci_device = g_udev_device_get_parent_with_subsystem (dev, "pci", NULL); pci_device = g_udev_device_get_parent_with_subsystem (dev, "pci", NULL);
if (pci_device != NULL) if (!pci_device)
{ continue;
/* get value of boot_vga attribute or 0 if the device has no boot_vga */ /* get value of boot_vga attribute or 0 if the device has no boot_vga */
boot_vga = g_udev_device_get_sysfs_attr_as_int (pci_device, "boot_vga"); boot_vga = g_udev_device_get_sysfs_attr_as_int (pci_device, "boot_vga");
g_object_unref (pci_device);
if (boot_vga == 1) if (boot_vga == 1)
{ {
/* found the boot_vga device */ /* found the boot_vga device */
@@ -348,119 +347,79 @@ get_primary_gpu_path (const gchar *seat_name)
break; break;
} }
} }
}
g_list_free_full (devices, g_object_unref); g_list_free_full (devices, g_object_unref);
out: out:
g_object_unref (enumerator);
g_object_unref (gudev_client);
return path; return path;
} }
static gboolean static void
get_kms_fd (Login1Session *session_proxy, get_kms_fd (Login1Session *session_proxy,
const gchar *seat_id, const gchar *seat_id,
int *fd_out, int *fd_out)
GError **error)
{ {
int major, minor; int major, minor;
int fd; int fd;
gchar *path;
GError *error = NULL;
g_autofree gchar *path = get_primary_gpu_path (seat_id); path = get_primary_gpu_path (seat_id);
if (!path) if (!path)
{ g_error ("could not find drm kms device");
g_set_error (error,
G_IO_ERROR,
G_IO_ERROR_NOT_FOUND,
"could not find drm kms device");
return FALSE;
}
if (!get_device_info_from_path (path, &major, &minor)) if (!get_device_info_from_path (path, &major, &minor))
{ g_error ("Could not stat %s: %m", path);
g_set_error (error,
G_IO_ERROR,
G_IO_ERROR_NOT_FOUND,
"Could not get device info for path %s: %m", path);
return FALSE;
}
if (!take_device (session_proxy, major, minor, &fd, NULL, error)) g_free (path);
{
g_prefix_error (error, "Could not open DRM device: "); if (!take_device (session_proxy, major, minor, &fd, NULL, &error))
return FALSE; report_error_and_die ("Could not open DRM device", error);
}
*fd_out = fd; *fd_out = fd;
return TRUE;
} }
static gchar * static gchar *
get_seat_id (GError **error) get_seat_id (void)
{ {
g_autofree char *session_id = NULL; char *session_id, *seat_id = NULL;
char *seat_id = NULL;
int r;
r = sd_pid_get_session (0, &session_id); if (sd_pid_get_session (0, &session_id) < 0)
if (r < 0)
{
g_set_error (error,
G_IO_ERROR,
G_IO_ERROR_NOT_FOUND,
"Could not get session for PID: %s", g_strerror (-r));
return NULL; return NULL;
}
r = sd_session_get_seat (session_id, &seat_id); /* on error the seat_id will remain NULL */
if (r < 0) sd_session_get_seat (session_id, &seat_id);
{ free (session_id);
g_set_error (error,
G_IO_ERROR,
G_IO_ERROR_NOT_FOUND,
"Could not get seat for session: %s", g_strerror (-r));
return NULL;
}
return seat_id; return seat_id;
} }
MetaLauncher * MetaLauncher *
meta_launcher_new (GError **error) meta_launcher_new (void)
{ {
MetaLauncher *self = NULL; MetaLauncher *self = NULL;
g_autoptr (Login1Session) session_proxy = NULL; Login1Session *session_proxy;
g_autoptr (Login1Seat) seat_proxy = NULL; char *seat_id;
g_autofree char *seat_id = NULL; GError *error = NULL;
gboolean have_control = FALSE;
int kms_fd; int kms_fd;
session_proxy = get_session_proxy (NULL, error); session_proxy = get_session_proxy (NULL);
if (!session_proxy) if (!login1_session_call_take_control_sync (session_proxy, FALSE, NULL, &error))
goto fail; report_error_and_die ("Could not take control", error);
if (!login1_session_call_take_control_sync (session_proxy, FALSE, NULL, error)) seat_id = get_seat_id ();
{
g_prefix_error (error, "Could not take control: ");
goto fail;
}
have_control = TRUE;
seat_id = get_seat_id (error);
if (!seat_id) if (!seat_id)
goto fail; g_error ("Failed getting seat id");
seat_proxy = get_seat_proxy (NULL, error); get_kms_fd (session_proxy, seat_id, &kms_fd);
if (!seat_proxy) free (seat_id);
goto fail;
if (!get_kms_fd (session_proxy, seat_id, &kms_fd, error))
goto fail;
self = g_slice_new0 (MetaLauncher); self = g_slice_new0 (MetaLauncher);
self->session_proxy = g_object_ref (session_proxy); self->session_proxy = session_proxy;
self->seat_proxy = g_object_ref (seat_proxy); self->seat_proxy = get_seat_proxy (NULL);
self->session_active = TRUE; self->session_active = TRUE;
@@ -470,12 +429,8 @@ meta_launcher_new (GError **error)
self); self);
g_signal_connect (self->session_proxy, "notify::active", G_CALLBACK (on_active_changed), self); g_signal_connect (self->session_proxy, "notify::active", G_CALLBACK (on_active_changed), self);
return self;
fail: return self;
if (have_control)
login1_session_call_release_control_sync (session_proxy, NULL, NULL);
return NULL;
} }
void void

View File

@@ -24,7 +24,7 @@
typedef struct _MetaLauncher MetaLauncher; typedef struct _MetaLauncher MetaLauncher;
MetaLauncher *meta_launcher_new (GError **error); MetaLauncher *meta_launcher_new (void);
void meta_launcher_free (MetaLauncher *self); void meta_launcher_free (MetaLauncher *self);
gboolean meta_launcher_activate_session (MetaLauncher *self, gboolean meta_launcher_activate_session (MetaLauncher *self,

View File

@@ -42,8 +42,6 @@
#include <gudev/gudev.h> #include <gudev/gudev.h>
#define ALL_TRANSFORMS (META_MONITOR_TRANSFORM_FLIPPED_270 + 1)
typedef struct { typedef struct {
drmModeConnector *connector; drmModeConnector *connector;
@@ -68,9 +66,6 @@ typedef struct {
uint32_t underscan_prop_id; uint32_t underscan_prop_id;
uint32_t underscan_hborder_prop_id; uint32_t underscan_hborder_prop_id;
uint32_t underscan_vborder_prop_id; uint32_t underscan_vborder_prop_id;
uint32_t primary_plane_id;
uint32_t rotation_prop_id;
uint32_t rotation_map[ALL_TRANSFORMS];
} MetaCRTCKms; } MetaCRTCKms;
struct _MetaMonitorManagerKms struct _MetaMonitorManagerKms
@@ -434,137 +429,6 @@ get_output_scale (MetaMonitorManager *manager,
return compute_scale (output); return compute_scale (output);
} }
static int
find_property_index (MetaMonitorManager *manager,
drmModeObjectPropertiesPtr props,
const gchar *prop_name,
drmModePropertyPtr *found)
{
MetaMonitorManagerKms *manager_kms = META_MONITOR_MANAGER_KMS (manager);
unsigned int i;
for (i = 0; i < props->count_props; i++)
{
drmModePropertyPtr prop;
prop = drmModeGetProperty (manager_kms->fd, props->props[i]);
if (!prop)
continue;
if (strcmp (prop->name, prop_name) == 0)
{
*found = prop;
return i;
}
drmModeFreeProperty (prop);
}
return -1;
}
static void
parse_transforms (MetaMonitorManager *manager,
drmModePropertyPtr prop,
MetaCRTC *crtc)
{
MetaCRTCKms *crtc_kms = crtc->driver_private;
int i;
for (i = 0; i < prop->count_enums; i++)
{
int cur = -1;
if (strcmp (prop->enums[i].name, "rotate-0") == 0)
cur = META_MONITOR_TRANSFORM_NORMAL;
else if (strcmp (prop->enums[i].name, "rotate-90") == 0)
cur = META_MONITOR_TRANSFORM_90;
else if (strcmp (prop->enums[i].name, "rotate-180") == 0)
cur = META_MONITOR_TRANSFORM_180;
else if (strcmp (prop->enums[i].name, "rotate-270") == 0)
cur = META_MONITOR_TRANSFORM_270;
if (cur != -1)
{
crtc->all_transforms |= 1 << cur;
crtc_kms->rotation_map[cur] = 1 << prop->enums[i].value;
}
}
}
static gboolean
is_primary_plane (MetaMonitorManager *manager,
drmModeObjectPropertiesPtr props)
{
drmModePropertyPtr prop;
int idx;
idx = find_property_index (manager, props, "type", &prop);
if (idx < 0)
return FALSE;
drmModeFreeProperty (prop);
return props->prop_values[idx] == DRM_PLANE_TYPE_PRIMARY;
}
static void
init_crtc_rotations (MetaMonitorManager *manager,
MetaCRTC *crtc,
unsigned int idx)
{
MetaMonitorManagerKms *manager_kms = META_MONITOR_MANAGER_KMS (manager);
drmModeObjectPropertiesPtr props;
drmModePlaneRes *planes;
drmModePlane *drm_plane;
MetaCRTCKms *crtc_kms;
unsigned int i;
crtc_kms = crtc->driver_private;
planes = drmModeGetPlaneResources(manager_kms->fd);
if (planes == NULL)
return;
for (i = 0; i < planes->count_planes; i++)
{
drmModePropertyPtr prop;
drm_plane = drmModeGetPlane (manager_kms->fd, planes->planes[i]);
if (!drm_plane)
continue;
if ((drm_plane->possible_crtcs & (1 << idx)))
{
props = drmModeObjectGetProperties (manager_kms->fd,
drm_plane->plane_id,
DRM_MODE_OBJECT_PLANE);
if (props && is_primary_plane (manager, props))
{
int rotation_idx;
crtc_kms->primary_plane_id = drm_plane->plane_id;
rotation_idx = find_property_index (manager, props, "rotation", &prop);
if (rotation_idx >= 0)
{
crtc_kms->rotation_prop_id = props->props[rotation_idx];
parse_transforms (manager, prop, crtc);
drmModeFreeProperty (prop);
}
}
if (props)
drmModeFreeObjectProperties (props);
}
drmModeFreePlane (drm_plane);
}
drmModeFreePlaneResources (planes);
}
static void static void
meta_monitor_manager_kms_read_current (MetaMonitorManager *manager) meta_monitor_manager_kms_read_current (MetaMonitorManager *manager)
{ {
@@ -632,18 +496,8 @@ meta_monitor_manager_kms_read_current (MetaMonitorManager *manager)
meta_mode->name = g_strndup (mode->name, DRM_DISPLAY_MODE_LEN); meta_mode->name = g_strndup (mode->name, DRM_DISPLAY_MODE_LEN);
meta_mode->width = mode->hdisplay; meta_mode->width = mode->hdisplay;
meta_mode->height = mode->vdisplay; meta_mode->height = mode->vdisplay;
meta_mode->refresh_rate = (1000 * mode->clock /
/* Calculate refresh rate in milliHz first for extra precision. */ ((float)mode->htotal * mode->vtotal));
meta_mode->refresh_rate = (mode->clock * 1000000LL) / mode->htotal;
meta_mode->refresh_rate += (mode->vtotal / 2);
meta_mode->refresh_rate /= mode->vtotal;
if (mode->flags & DRM_MODE_FLAG_INTERLACE)
meta_mode->refresh_rate *= 2;
if (mode->flags & DRM_MODE_FLAG_DBLSCAN)
meta_mode->refresh_rate /= 2;
if (mode->vscan > 1)
meta_mode->refresh_rate /= mode->vscan;
meta_mode->refresh_rate /= 1000.0;
meta_mode->driver_private = g_slice_dup (drmModeModeInfo, mode); meta_mode->driver_private = g_slice_dup (drmModeModeInfo, mode);
meta_mode->driver_notify = (GDestroyNotify)meta_monitor_mode_destroy_notify; meta_mode->driver_notify = (GDestroyNotify)meta_monitor_mode_destroy_notify;
@@ -692,7 +546,6 @@ meta_monitor_manager_kms_read_current (MetaMonitorManager *manager)
meta_crtc->driver_private = g_new0 (MetaCRTCKms, 1); meta_crtc->driver_private = g_new0 (MetaCRTCKms, 1);
meta_crtc->driver_notify = (GDestroyNotify) meta_crtc_destroy_notify; meta_crtc->driver_notify = (GDestroyNotify) meta_crtc_destroy_notify;
find_crtc_properties (manager_kms, meta_crtc); find_crtc_properties (manager_kms, meta_crtc);
init_crtc_rotations (manager, meta_crtc, i);
drmModeFreeCrtc (crtc); drmModeFreeCrtc (crtc);
} }
@@ -1075,7 +928,6 @@ meta_monitor_manager_kms_apply_configuration (MetaMonitorManager *manager,
{ {
MetaCRTCInfo *crtc_info = crtcs[i]; MetaCRTCInfo *crtc_info = crtcs[i];
MetaCRTC *crtc = crtc_info->crtc; MetaCRTC *crtc = crtc_info->crtc;
MetaCRTCKms *crtc_kms = crtc->driver_private;
CoglKmsCrtc *cogl_crtc; CoglKmsCrtc *cogl_crtc;
crtc->is_dirty = TRUE; crtc->is_dirty = TRUE;
@@ -1148,13 +1000,6 @@ meta_monitor_manager_kms_apply_configuration (MetaMonitorManager *manager,
crtc->current_mode = mode; crtc->current_mode = mode;
crtc->transform = crtc_info->transform; crtc->transform = crtc_info->transform;
} }
if (crtc->all_transforms & (1 << crtc->transform))
drmModeObjectSetProperty (manager_kms->fd,
crtc_kms->primary_plane_id,
DRM_MODE_OBJECT_PLANE,
crtc_kms->rotation_prop_id,
crtc_kms->rotation_map[crtc->transform]);
} }
/* Disable CRTCs not mentioned in the list (they have is_dirty == FALSE, /* Disable CRTCs not mentioned in the list (they have is_dirty == FALSE,
@@ -1307,8 +1152,6 @@ meta_monitor_manager_kms_init (MetaMonitorManagerKms *manager_kms)
manager_kms->fd = cogl_kms_renderer_get_kms_fd (cogl_renderer); manager_kms->fd = cogl_kms_renderer_get_kms_fd (cogl_renderer);
drmSetClientCap (manager_kms->fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
const char *subsystems[2] = { "drm", NULL }; const char *subsystems[2] = { "drm", NULL };
manager_kms->udev = g_udev_client_new (subsystems); manager_kms->udev = g_udev_client_new (subsystems);
g_signal_connect (manager_kms->udev, "uevent", g_signal_connect (manager_kms->udev, "uevent",

View File

@@ -82,7 +82,6 @@ struct _MetaBackendX11Private
gchar *keymap_layouts; gchar *keymap_layouts;
gchar *keymap_variants; gchar *keymap_variants;
gchar *keymap_options; gchar *keymap_options;
int locked_group;
}; };
typedef struct _MetaBackendX11Private MetaBackendX11Private; typedef struct _MetaBackendX11Private MetaBackendX11Private;
@@ -298,23 +297,15 @@ handle_host_xevent (MetaBackend *backend,
if (event->type == priv->xkb_event_base) if (event->type == priv->xkb_event_base)
{ {
XkbEvent *xkb_ev = (XkbEvent *) event; XkbAnyEvent *xkb_ev = (XkbAnyEvent *) event;
if (xkb_ev->any.device == META_VIRTUAL_CORE_KEYBOARD_ID) if (xkb_ev->device == META_VIRTUAL_CORE_KEYBOARD_ID)
{ {
switch (xkb_ev->any.xkb_type) switch (xkb_ev->xkb_type)
{ {
case XkbNewKeyboardNotify: case XkbNewKeyboardNotify:
case XkbMapNotify: case XkbMapNotify:
keymap_changed (backend); keymap_changed (backend);
break;
case XkbStateNotify:
if (xkb_ev->state.changed & XkbGroupLockMask)
{
if (priv->locked_group != xkb_ev->state.locked_group)
XkbLockGroup (priv->xdisplay, XkbUseCoreKbd, priv->locked_group);
}
break;
default: default:
break; break;
} }
@@ -785,7 +776,6 @@ meta_backend_x11_lock_layout_group (MetaBackend *backend,
MetaBackendX11 *x11 = META_BACKEND_X11 (backend); MetaBackendX11 *x11 = META_BACKEND_X11 (backend);
MetaBackendX11Private *priv = meta_backend_x11_get_instance_private (x11); MetaBackendX11Private *priv = meta_backend_x11_get_instance_private (x11);
priv->locked_group = idx;
XkbLockGroup (priv->xdisplay, XkbUseCoreKbd, idx); XkbLockGroup (priv->xdisplay, XkbUseCoreKbd, idx);
} }

View File

@@ -107,7 +107,6 @@ meta_barrier_impl_x11_new (MetaBarrier *barrier)
MetaDisplay *display = barrier->priv->display; MetaDisplay *display = barrier->priv->display;
Display *dpy; Display *dpy;
Window root; Window root;
unsigned int allowed_motion_dirs;
if (display == NULL) if (display == NULL)
{ {
@@ -122,14 +121,12 @@ meta_barrier_impl_x11_new (MetaBarrier *barrier)
dpy = display->xdisplay; dpy = display->xdisplay;
root = DefaultRootWindow (dpy); root = DefaultRootWindow (dpy);
allowed_motion_dirs =
meta_border_get_allows_directions (&barrier->priv->border);
priv->xbarrier = XFixesCreatePointerBarrier (dpy, root, priv->xbarrier = XFixesCreatePointerBarrier (dpy, root,
barrier->priv->border.line.a.x, barrier->priv->x1,
barrier->priv->border.line.a.y, barrier->priv->y1,
barrier->priv->border.line.b.x, barrier->priv->x2,
barrier->priv->border.line.b.y, barrier->priv->y2,
allowed_motion_dirs, barrier->priv->directions,
0, NULL); 0, NULL);
g_hash_table_insert (display->xids, &priv->xbarrier, barrier); g_hash_table_insert (display->xids, &priv->xbarrier, barrier);

View File

@@ -107,6 +107,20 @@ set_alarm_enabled (Display *dpy,
XSyncChangeAlarm (dpy, alarm, XSyncCAEvents, &attr); XSyncChangeAlarm (dpy, alarm, XSyncCAEvents, &attr);
} }
static void
check_x11_watch (gpointer data,
gpointer user_data)
{
MetaIdleMonitorWatchXSync *watch_xsync = data;
MetaIdleMonitorWatch *watch = (MetaIdleMonitorWatch *) watch_xsync;
XSyncAlarm alarm = (XSyncAlarm) user_data;
if (watch_xsync->xalarm != alarm)
return;
_meta_idle_monitor_watch_fire (watch);
}
static char * static char *
counter_name_for_device (int device_id) counter_name_for_device (int device_id)
{ {
@@ -313,38 +327,13 @@ meta_idle_monitor_xsync_init (MetaIdleMonitorXSync *monitor_xsync)
monitor_xsync->alarms = g_hash_table_new (NULL, NULL); monitor_xsync->alarms = g_hash_table_new (NULL, NULL);
} }
static void
check_x11_watches (MetaIdleMonitor *monitor,
XSyncAlarm alarm)
{
GList *node, *watch_ids;
/* we get the keys and do explicit look ups in case
* an early iteration of the loop ends up leading
* to watches from later iterations getting invalidated
*/
watch_ids = g_hash_table_get_keys (monitor->watches);
for (node = watch_ids; node != NULL; node = node->next)
{
guint watch_id = GPOINTER_TO_UINT (node->data);
MetaIdleMonitorWatchXSync *watch;
watch = g_hash_table_lookup (monitor->watches, GUINT_TO_POINTER (watch_id));
if (watch && watch->xalarm == alarm)
_meta_idle_monitor_watch_fire ((MetaIdleMonitorWatch *) watch);
}
g_list_free (watch_ids);
}
void void
meta_idle_monitor_xsync_handle_xevent (MetaIdleMonitor *monitor, meta_idle_monitor_xsync_handle_xevent (MetaIdleMonitor *monitor,
XSyncAlarmNotifyEvent *alarm_event) XSyncAlarmNotifyEvent *alarm_event)
{ {
MetaIdleMonitorXSync *monitor_xsync = META_IDLE_MONITOR_XSYNC (monitor); MetaIdleMonitorXSync *monitor_xsync = META_IDLE_MONITOR_XSYNC (monitor);
XSyncAlarm alarm; XSyncAlarm alarm;
GList *watches;
gboolean has_alarm; gboolean has_alarm;
if (alarm_event->state != XSyncAlarmActive) if (alarm_event->state != XSyncAlarmActive)
@@ -369,5 +358,10 @@ meta_idle_monitor_xsync_handle_xevent (MetaIdleMonitor *monitor,
} }
if (has_alarm) if (has_alarm)
check_x11_watches (monitor, alarm); {
watches = g_hash_table_get_values (monitor->watches);
g_list_foreach (watches, check_x11_watch, (gpointer) alarm);
g_list_free (watches);
}
} }

View File

@@ -199,9 +199,9 @@ meta_input_settings_x11_set_invert_scroll (MetaInputSettings *settings,
} }
static void static void
meta_input_settings_x11_set_edge_scroll (MetaInputSettings *settings, meta_input_settings_x11_set_scroll_method (MetaInputSettings *settings,
ClutterInputDevice *device, ClutterInputDevice *device,
gboolean edge_scroll_enabled) GDesktopTouchpadScrollMethod mode)
{ {
guchar values[3] = { 0 }; /* 2fg, edge, button. The last value is unused */ guchar values[3] = { 0 }; /* 2fg, edge, button. The last value is unused */
guchar *available; guchar *available;
@@ -211,19 +211,24 @@ meta_input_settings_x11_set_edge_scroll (MetaInputSettings *settings,
if (!available) if (!available)
return; return;
if (available[0]) switch (mode)
{
values[0] = 1;
}
else if (available[1] && edge_scroll_enabled)
{ {
case G_DESKTOP_TOUCHPAD_SCROLL_METHOD_DISABLED:
break;
case G_DESKTOP_TOUCHPAD_SCROLL_METHOD_EDGE_SCROLLING:
values[1] = 1; values[1] = 1;
} break;
else case G_DESKTOP_TOUCHPAD_SCROLL_METHOD_TWO_FINGER_SCROLLING:
{ values[0] = 1;
/* Disabled */ break;
default:
g_assert_not_reached ();
} }
if ((values[0] && !available[0]) || (values[1] && !available[1]))
g_warning ("Device '%s' does not support scroll mode %d\n",
clutter_input_device_get_device_name (device), mode);
else
change_property (device, "libinput Scroll Method Enabled", change_property (device, "libinput Scroll Method Enabled",
XA_INTEGER, 8, &values, 3); XA_INTEGER, 8, &values, 3);
@@ -316,7 +321,7 @@ meta_input_settings_x11_class_init (MetaInputSettingsX11Class *klass)
input_settings_class->set_left_handed = meta_input_settings_x11_set_left_handed; input_settings_class->set_left_handed = meta_input_settings_x11_set_left_handed;
input_settings_class->set_tap_enabled = meta_input_settings_x11_set_tap_enabled; input_settings_class->set_tap_enabled = meta_input_settings_x11_set_tap_enabled;
input_settings_class->set_invert_scroll = meta_input_settings_x11_set_invert_scroll; input_settings_class->set_invert_scroll = meta_input_settings_x11_set_invert_scroll;
input_settings_class->set_edge_scroll = meta_input_settings_x11_set_edge_scroll; input_settings_class->set_scroll_method = meta_input_settings_x11_set_scroll_method;
input_settings_class->set_scroll_button = meta_input_settings_x11_set_scroll_button; input_settings_class->set_scroll_button = meta_input_settings_x11_set_scroll_button;
input_settings_class->set_click_method = meta_input_settings_x11_set_click_method; input_settings_class->set_click_method = meta_input_settings_x11_set_click_method;
input_settings_class->set_keyboard_repeat = meta_input_settings_x11_set_keyboard_repeat; input_settings_class->set_keyboard_repeat = meta_input_settings_x11_set_keyboard_repeat;

View File

@@ -419,6 +419,12 @@ read_output_edid (MetaMonitorManagerXrandr *manager_xrandr,
result = get_edid_property (manager_xrandr->xdisplay, winsys_id, edid_atom, &len); result = get_edid_property (manager_xrandr->xdisplay, winsys_id, edid_atom, &len);
} }
if (!result)
{
edid_atom = XInternAtom (manager_xrandr->xdisplay, "XFree86_DDC_EDID1_RAWDATA", FALSE);
result = get_edid_property (manager_xrandr->xdisplay, winsys_id, edid_atom, &len);
}
if (result) if (result)
{ {
if (len > 0 && len % 128 == 0) if (len > 0 && len % 128 == 0)
@@ -655,44 +661,6 @@ output_get_modes (MetaMonitorManager *manager,
} }
} }
meta_output->n_modes = n_actual_modes; meta_output->n_modes = n_actual_modes;
if (n_actual_modes > 0)
meta_output->preferred_mode = meta_output->modes[0];
}
static void
output_get_crtcs (MetaMonitorManager *manager,
MetaOutput *meta_output,
XRROutputInfo *output)
{
guint j, k;
guint n_actual_crtcs;
meta_output->possible_crtcs = g_new0 (MetaCRTC *, output->ncrtc);
n_actual_crtcs = 0;
for (j = 0; j < (unsigned)output->ncrtc; j++)
{
for (k = 0; k < manager->n_crtcs; k++)
{
if ((XID)manager->crtcs[k].crtc_id == output->crtcs[j])
{
meta_output->possible_crtcs[n_actual_crtcs] = &manager->crtcs[k];
n_actual_crtcs += 1;
break;
}
}
}
meta_output->n_possible_crtcs = n_actual_crtcs;
meta_output->crtc = NULL;
for (j = 0; j < manager->n_crtcs; j++)
{
if ((XID)manager->crtcs[j].crtc_id == output->crtc)
{
meta_output->crtc = &manager->crtcs[j];
break;
}
}
} }
static char * static char *
@@ -857,7 +825,31 @@ meta_monitor_manager_xrandr_read_current (MetaMonitorManager *manager)
output_get_tile_info (manager_xrandr, meta_output); output_get_tile_info (manager_xrandr, meta_output);
output_get_modes (manager, meta_output, output); output_get_modes (manager, meta_output, output);
output_get_crtcs (manager, meta_output, output); meta_output->preferred_mode = meta_output->modes[0];
meta_output->n_possible_crtcs = output->ncrtc;
meta_output->possible_crtcs = g_new0 (MetaCRTC *, meta_output->n_possible_crtcs);
for (j = 0; j < (unsigned)output->ncrtc; j++)
{
for (k = 0; k < manager->n_crtcs; k++)
{
if ((XID)manager->crtcs[k].crtc_id == output->crtcs[j])
{
meta_output->possible_crtcs[j] = &manager->crtcs[k];
break;
}
}
}
meta_output->crtc = NULL;
for (j = 0; j < manager->n_crtcs; j++)
{
if ((XID)manager->crtcs[j].crtc_id == output->crtc)
{
meta_output->crtc = &manager->crtcs[j];
break;
}
}
meta_output->n_possible_clones = output->nclone; meta_output->n_possible_clones = output->nclone;
meta_output->possible_clones = g_new0 (MetaOutput *, meta_output->n_possible_clones); meta_output->possible_clones = g_new0 (MetaOutput *, meta_output->n_possible_clones);
@@ -881,9 +873,6 @@ meta_monitor_manager_xrandr_read_current (MetaMonitorManager *manager)
else else
meta_output->backlight = -1; meta_output->backlight = -1;
if (meta_output->n_modes == 0 || meta_output->n_possible_crtcs == 0)
meta_monitor_manager_clear_output (meta_output);
else
n_actual_outputs++; n_actual_outputs++;
} }

View File

@@ -60,7 +60,4 @@ void meta_end_modal_for_plugin (MetaCompositor *compositor,
gint64 meta_compositor_monotonic_time_to_server_time (MetaDisplay *display, gint64 meta_compositor_monotonic_time_to_server_time (MetaDisplay *display,
gint64 monotonic_time); gint64 monotonic_time);
void meta_compositor_flash_window (MetaCompositor *compositor,
MetaWindow *window);
#endif /* META_COMPOSITOR_PRIVATE_H */ #endif /* META_COMPOSITOR_PRIVATE_H */

View File

@@ -1249,48 +1249,6 @@ meta_compositor_flash_screen (MetaCompositor *compositor,
clutter_actor_restore_easing_state (flash); clutter_actor_restore_easing_state (flash);
} }
static void
window_flash_out_completed (ClutterTimeline *timeline,
gboolean is_finished,
gpointer user_data)
{
ClutterActor *flash = CLUTTER_ACTOR (user_data);
clutter_actor_destroy (flash);
}
void
meta_compositor_flash_window (MetaCompositor *compositor,
MetaWindow *window)
{
ClutterActor *window_actor =
CLUTTER_ACTOR (meta_window_get_compositor_private (window));
ClutterActor *flash;
ClutterTransition *transition;
flash = clutter_actor_new ();
clutter_actor_set_background_color (flash, CLUTTER_COLOR_Black);
clutter_actor_set_size (flash, window->rect.width, window->rect.height);
clutter_actor_set_position (flash,
window->custom_frame_extents.left,
window->custom_frame_extents.top);
clutter_actor_set_opacity (flash, 0);
clutter_actor_add_child (window_actor, flash);
clutter_actor_save_easing_state (flash);
clutter_actor_set_easing_mode (flash, CLUTTER_EASE_IN_QUAD);
clutter_actor_set_easing_duration (flash, FLASH_TIME_MS);
clutter_actor_set_opacity (flash, 192);
transition = clutter_actor_get_transition (flash, "opacity");
clutter_timeline_set_auto_reverse (CLUTTER_TIMELINE (transition), TRUE);
clutter_timeline_set_repeat_count (CLUTTER_TIMELINE (transition), 2);
g_signal_connect (transition, "stopped",
G_CALLBACK (window_flash_out_completed), flash);
clutter_actor_restore_easing_state (flash);
}
/** /**
* meta_compositor_monotonic_time_to_server_time: * meta_compositor_monotonic_time_to_server_time:
* @display: a #MetaDisplay * @display: a #MetaDisplay

View File

@@ -152,7 +152,6 @@ file_loaded (GObject *source_object,
{ {
MetaBackgroundImage *image = META_BACKGROUND_IMAGE (source_object); MetaBackgroundImage *image = META_BACKGROUND_IMAGE (source_object);
GError *error = NULL; GError *error = NULL;
CoglError *catch_error = NULL;
GTask *task; GTask *task;
CoglTexture *texture; CoglTexture *texture;
GdkPixbuf *pixbuf; GdkPixbuf *pixbuf;
@@ -187,10 +186,9 @@ file_loaded (GObject *source_object,
has_alpha ? COGL_PIXEL_FORMAT_RGBA_8888 : COGL_PIXEL_FORMAT_RGB_888, has_alpha ? COGL_PIXEL_FORMAT_RGBA_8888 : COGL_PIXEL_FORMAT_RGB_888,
row_stride, row_stride,
pixels, 0, pixels, 0,
&catch_error)) NULL))
{ {
g_warning ("Failed to create texture for background"); g_warning ("Failed to create texture for background");
cogl_error_free (catch_error);
cogl_object_unref (texture); cogl_object_unref (texture);
} }

View File

@@ -17,7 +17,6 @@
* along with this program; if not, see <http://www.gnu.org/licenses/>. * along with this program; if not, see <http://www.gnu.org/licenses/>.
*/ */
#include <meta/util.h>
#include <meta/meta-background.h> #include <meta/meta-background.h>
#include <meta/meta-background-image.h> #include <meta/meta-background-image.h>
#include "meta-background-private.h" #include "meta-background-private.h"
@@ -543,7 +542,6 @@ ensure_color_texture (MetaBackground *self)
{ {
ClutterBackend *backend = clutter_get_default_backend (); ClutterBackend *backend = clutter_get_default_backend ();
CoglContext *ctx = clutter_backend_get_cogl_context (backend); CoglContext *ctx = clutter_backend_get_cogl_context (backend);
CoglError *error = NULL;
uint8_t pixels[6]; uint8_t pixels[6];
int width, height; int width, height;
@@ -584,13 +582,7 @@ ensure_color_texture (MetaBackground *self)
COGL_PIXEL_FORMAT_RGB_888, COGL_PIXEL_FORMAT_RGB_888,
width * 3, width * 3,
pixels, pixels,
&error)); NULL));
if (error != NULL)
{
meta_warning ("Failed to allocate color texture: %s\n", error->message);
cogl_error_free (error);
}
} }
} }

View File

@@ -27,7 +27,6 @@
#include <string.h> #include <string.h>
#include <meta/meta-shadow-factory.h> #include <meta/meta-shadow-factory.h>
#include <meta/util.h>
#include "cogl-utils.h" #include "cogl-utils.h"
#include "region-utils.h" #include "region-utils.h"
@@ -708,7 +707,6 @@ make_shadow (MetaShadow *shadow,
{ {
ClutterBackend *backend = clutter_get_default_backend (); ClutterBackend *backend = clutter_get_default_backend ();
CoglContext *ctx = clutter_backend_get_cogl_context (backend); CoglContext *ctx = clutter_backend_get_cogl_context (backend);
CoglError *error = NULL;
int d = get_box_filter_size (shadow->key.radius); int d = get_box_filter_size (shadow->key.radius);
int spread = get_shadow_spread (shadow->key.radius); int spread = get_shadow_spread (shadow->key.radius);
cairo_rectangle_int_t extents; cairo_rectangle_int_t extents;
@@ -806,13 +804,7 @@ make_shadow (MetaShadow *shadow,
(buffer + (buffer +
(y_offset - shadow->outer_border_top) * buffer_width + (y_offset - shadow->outer_border_top) * buffer_width +
(x_offset - shadow->outer_border_left)), (x_offset - shadow->outer_border_left)),
&error)); NULL));
if (error)
{
meta_warning ("Failed to allocate shadow texture: %s\n", error->message);
cogl_error_free (error);
}
cairo_region_destroy (row_convolve_region); cairo_region_destroy (row_convolve_region);
cairo_region_destroy (column_convolve_region); cairo_region_destroy (column_convolve_region);

View File

@@ -36,6 +36,5 @@ void meta_shaped_texture_set_fallback_size (MetaShapedTexture *stex,
guint fallback_width, guint fallback_width,
guint fallback_height); guint fallback_height);
gboolean meta_shaped_texture_is_obscured (MetaShapedTexture *self); gboolean meta_shaped_texture_is_obscured (MetaShapedTexture *self);
cairo_region_t * meta_shaped_texture_get_opaque_region (MetaShapedTexture *stex);
#endif #endif

View File

@@ -303,7 +303,6 @@ set_cogl_texture (MetaShapedTexture *stex,
{ {
priv->tex_width = width; priv->tex_width = width;
priv->tex_height = height; priv->tex_height = height;
meta_shaped_texture_set_mask_texture (stex, NULL);
clutter_actor_queue_relayout (CLUTTER_ACTOR (stex)); clutter_actor_queue_relayout (CLUTTER_ACTOR (stex));
g_signal_emit (stex, signals[SIZE_CHANGED], 0); g_signal_emit (stex, signals[SIZE_CHANGED], 0);
} }
@@ -790,13 +789,6 @@ meta_shaped_texture_set_opaque_region (MetaShapedTexture *stex,
priv->opaque_region = NULL; priv->opaque_region = NULL;
} }
cairo_region_t *
meta_shaped_texture_get_opaque_region (MetaShapedTexture *stex)
{
MetaShapedTexturePrivate *priv = stex->priv;
return priv->opaque_region;
}
/** /**
* meta_shaped_texture_get_image: * meta_shaped_texture_get_image:
* @stex: A #MetaShapedTexture * @stex: A #MetaShapedTexture

View File

@@ -36,14 +36,6 @@
#include "compositor/region-utils.h" #include "compositor/region-utils.h"
enum {
PAINTING,
LAST_SIGNAL
};
static guint signals[LAST_SIGNAL];
struct _MetaSurfaceActorWaylandPrivate struct _MetaSurfaceActorWaylandPrivate
{ {
MetaWaylandSurface *surface; MetaWaylandSurface *surface;
@@ -136,8 +128,7 @@ meta_surface_actor_wayland_get_subsurface_rect (MetaSurfaceActorWayland *self,
MetaRectangle *rect) MetaRectangle *rect)
{ {
MetaWaylandSurface *surface = meta_surface_actor_wayland_get_surface (self); MetaWaylandSurface *surface = meta_surface_actor_wayland_get_surface (self);
MetaWaylandBuffer *buffer = meta_wayland_surface_get_buffer (surface); CoglTexture *texture = surface->buffer->texture;
CoglTexture *texture = buffer->texture;
MetaWindow *toplevel_window; MetaWindow *toplevel_window;
int monitor_scale; int monitor_scale;
float x, y; float x, y;
@@ -356,13 +347,12 @@ meta_surface_actor_wayland_paint (ClutterActor *actor)
if (priv->surface) if (priv->surface)
{ {
MetaWaylandCompositor *compositor = priv->surface->compositor; MetaWaylandCompositor *compositor = priv->surface->compositor;
meta_wayland_surface_update_outputs (priv->surface);
wl_list_insert_list (&compositor->frame_callbacks, &priv->frame_callback_list); wl_list_insert_list (&compositor->frame_callbacks, &priv->frame_callback_list);
wl_list_init (&priv->frame_callback_list); wl_list_init (&priv->frame_callback_list);
} }
g_signal_emit (actor, signals[PAINTING], 0);
CLUTTER_ACTOR_CLASS (meta_surface_actor_wayland_parent_class)->paint (actor); CLUTTER_ACTOR_CLASS (meta_surface_actor_wayland_parent_class)->paint (actor);
} }
@@ -398,13 +388,6 @@ meta_surface_actor_wayland_class_init (MetaSurfaceActorWaylandClass *klass)
surface_actor_class->get_window = meta_surface_actor_wayland_get_window; surface_actor_class->get_window = meta_surface_actor_wayland_get_window;
object_class->dispose = meta_surface_actor_wayland_dispose; object_class->dispose = meta_surface_actor_wayland_dispose;
signals[PAINTING] = g_signal_new ("painting",
G_TYPE_FROM_CLASS (object_class),
G_SIGNAL_RUN_LAST,
0,
NULL, NULL, NULL,
G_TYPE_NONE, 0);
} }
static void static void

View File

@@ -102,7 +102,8 @@ detach_pixmap (MetaSurfaceActorX11 *self)
priv->pixmap = None; priv->pixmap = None;
meta_error_trap_pop (display); meta_error_trap_pop (display);
g_clear_pointer (&priv->texture, cogl_object_unref); cogl_object_unref (priv->texture);
priv->texture = NULL;
} }
static void static void
@@ -113,20 +114,14 @@ set_pixmap (MetaSurfaceActorX11 *self,
CoglContext *ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ()); CoglContext *ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
MetaShapedTexture *stex = meta_surface_actor_get_texture (META_SURFACE_ACTOR (self)); MetaShapedTexture *stex = meta_surface_actor_get_texture (META_SURFACE_ACTOR (self));
CoglError *error = NULL;
CoglTexture *texture; CoglTexture *texture;
g_assert (priv->pixmap == None); g_assert (priv->pixmap == None);
priv->pixmap = pixmap; priv->pixmap = pixmap;
texture = COGL_TEXTURE (cogl_texture_pixmap_x11_new (ctx, priv->pixmap, FALSE, &error)); texture = COGL_TEXTURE (cogl_texture_pixmap_x11_new (ctx, priv->pixmap, FALSE, NULL));
if (error != NULL) if (G_UNLIKELY (!cogl_texture_pixmap_x11_is_using_tfp_extension (COGL_TEXTURE_PIXMAP_X11 (texture))))
{
g_warning ("Failed to allocate stex texture: %s", error->message);
cogl_error_free (error);
}
else if (G_UNLIKELY (!cogl_texture_pixmap_x11_is_using_tfp_extension (COGL_TEXTURE_PIXMAP_X11 (texture))))
g_warning ("NOTE: Not using GLX TFP!\n"); g_warning ("NOTE: Not using GLX TFP!\n");
priv->texture = texture; priv->texture = texture;
@@ -243,33 +238,6 @@ meta_surface_actor_x11_is_visible (MetaSurfaceActor *actor)
return is_visible (self); return is_visible (self);
} }
static gboolean
meta_surface_actor_x11_is_opaque (MetaSurfaceActor *actor)
{
MetaSurfaceActorX11 *self = META_SURFACE_ACTOR_X11 (actor);
MetaSurfaceActorX11Private *priv = meta_surface_actor_x11_get_instance_private (self);
/* If we're not ARGB32, then we're opaque. */
if (!meta_surface_actor_is_argb32 (actor))
return TRUE;
cairo_region_t *opaque_region = meta_surface_actor_get_opaque_region (actor);
/* If we have no opaque region, then no pixels are opaque. */
if (!opaque_region)
return FALSE;
MetaWindow *window = priv->window;
cairo_rectangle_int_t client_area;
meta_window_get_client_area_rect (window, &client_area);
/* Otherwise, check if our opaque region covers our entire surface. */
if (cairo_region_contains_rectangle (opaque_region, &client_area) == CAIRO_REGION_OVERLAP_IN)
return TRUE;
return FALSE;
}
static gboolean static gboolean
meta_surface_actor_x11_should_unredirect (MetaSurfaceActor *actor) meta_surface_actor_x11_should_unredirect (MetaSurfaceActor *actor)
{ {
@@ -287,15 +255,15 @@ meta_surface_actor_x11_should_unredirect (MetaSurfaceActor *actor)
if (window->shape_region != NULL) if (window->shape_region != NULL)
return FALSE; return FALSE;
if (meta_surface_actor_is_argb32 (actor) && !meta_window_requested_bypass_compositor (window))
return FALSE;
if (!meta_window_is_monitor_sized (window)) if (!meta_window_is_monitor_sized (window))
return FALSE; return FALSE;
if (meta_window_requested_bypass_compositor (window)) if (meta_window_requested_bypass_compositor (window))
return TRUE; return TRUE;
if (!meta_surface_actor_x11_is_opaque (actor))
return FALSE;
if (meta_window_is_override_redirect (window)) if (meta_window_is_override_redirect (window))
return TRUE; return TRUE;

View File

@@ -235,13 +235,6 @@ meta_surface_actor_set_opaque_region (MetaSurfaceActor *self,
meta_shaped_texture_set_opaque_region (priv->texture, region); meta_shaped_texture_set_opaque_region (priv->texture, region);
} }
cairo_region_t *
meta_surface_actor_get_opaque_region (MetaSurfaceActor *actor)
{
MetaSurfaceActorPrivate *priv = actor->priv;
return meta_shaped_texture_get_opaque_region (priv->texture);
}
static gboolean static gboolean
is_frozen (MetaSurfaceActor *self) is_frozen (MetaSurfaceActor *self)
{ {

View File

@@ -60,7 +60,6 @@ void meta_surface_actor_set_input_region (MetaSurfaceActor *self,
cairo_region_t *region); cairo_region_t *region);
void meta_surface_actor_set_opaque_region (MetaSurfaceActor *self, void meta_surface_actor_set_opaque_region (MetaSurfaceActor *self,
cairo_region_t *region); cairo_region_t *region);
cairo_region_t * meta_surface_actor_get_opaque_region (MetaSurfaceActor *self);
void meta_surface_actor_process_damage (MetaSurfaceActor *actor, void meta_surface_actor_process_damage (MetaSurfaceActor *actor,
int x, int y, int width, int height); int x, int y, int width, int height);

View File

@@ -1752,17 +1752,9 @@ build_and_scan_frame_mask (MetaWindowActor *self,
} }
else else
{ {
CoglError *error = NULL;
mask_texture = COGL_TEXTURE (cogl_texture_2d_new_from_data (ctx, tex_width, tex_height, mask_texture = COGL_TEXTURE (cogl_texture_2d_new_from_data (ctx, tex_width, tex_height,
COGL_PIXEL_FORMAT_A_8, COGL_PIXEL_FORMAT_A_8,
stride, mask_data, &error)); stride, mask_data, NULL));
if (error)
{
g_warning ("Failed to allocate mask texture: %s", error->message);
cogl_error_free (error);
}
} }
meta_shaped_texture_set_mask_texture (stex, mask_texture); meta_shaped_texture_set_mask_texture (stex, mask_texture);

View File

@@ -255,31 +255,6 @@ get_actor_private (MetaWindowActor *actor)
return priv; return priv;
} }
static ClutterTimeline *
actor_animate (ClutterActor *actor,
ClutterAnimationMode mode,
guint duration,
const gchar *first_property,
...)
{
va_list args;
ClutterTransition *transition;
clutter_actor_save_easing_state (actor);
clutter_actor_set_easing_mode (actor, mode);
clutter_actor_set_easing_duration (actor, duration);
va_start (args, first_property);
g_object_set_valist (G_OBJECT (actor), first_property, args);
va_end (args);
transition = clutter_actor_get_transition (actor, first_property);
clutter_actor_restore_easing_state (actor);
return CLUTTER_TIMELINE (transition);
}
static void static void
on_switch_workspace_effect_complete (ClutterTimeline *timeline, gpointer data) on_switch_workspace_effect_complete (ClutterTimeline *timeline, gpointer data)
{ {
@@ -296,10 +271,7 @@ on_switch_workspace_effect_complete (ClutterTimeline *timeline, gpointer data)
if (apriv->orig_parent) if (apriv->orig_parent)
{ {
g_object_ref (a); clutter_actor_reparent (a, apriv->orig_parent);
clutter_actor_remove_child (clutter_actor_get_parent (a), a);
clutter_actor_add_child (apriv->orig_parent, a);
g_object_unref (a);
apriv->orig_parent = NULL; apriv->orig_parent = NULL;
} }
@@ -388,10 +360,11 @@ switch_workspace (MetaPlugin *plugin,
MetaScreen *screen; MetaScreen *screen;
MetaDefaultPluginPrivate *priv = META_DEFAULT_PLUGIN (plugin)->priv; MetaDefaultPluginPrivate *priv = META_DEFAULT_PLUGIN (plugin)->priv;
GList *l; GList *l;
ClutterActor *workspace0 = clutter_actor_new (); ClutterActor *workspace0 = clutter_group_new ();
ClutterActor *workspace1 = clutter_actor_new (); ClutterActor *workspace1 = clutter_group_new ();
ClutterActor *stage; ClutterActor *stage;
int screen_width, screen_height; int screen_width, screen_height;
ClutterAnimation *animation;
screen = meta_plugin_get_screen (plugin); screen = meta_plugin_get_screen (plugin);
stage = meta_get_stage_for_screen (screen); stage = meta_get_stage_for_screen (screen);
@@ -400,15 +373,17 @@ switch_workspace (MetaPlugin *plugin,
&screen_width, &screen_width,
&screen_height); &screen_height);
clutter_actor_set_pivot_point (workspace1, 1.0, 1.0); clutter_actor_set_anchor_point (workspace1,
screen_width,
screen_height);
clutter_actor_set_position (workspace1, clutter_actor_set_position (workspace1,
screen_width, screen_width,
screen_height); screen_height);
clutter_actor_set_scale (workspace1, 0.0, 0.0); clutter_actor_set_scale (workspace1, 0.0, 0.0);
clutter_actor_add_child (stage, workspace1); clutter_container_add_actor (CLUTTER_CONTAINER (stage), workspace1);
clutter_actor_add_child (stage, workspace0); clutter_container_add_actor (CLUTTER_CONTAINER (stage), workspace0);
if (from == to) if (from == to)
{ {
@@ -431,15 +406,12 @@ switch_workspace (MetaPlugin *plugin,
if (win_workspace == to || win_workspace == from) if (win_workspace == to || win_workspace == from)
{ {
ClutterActor *parent = win_workspace == to ? workspace1 : workspace0;
apriv->orig_parent = clutter_actor_get_parent (actor); apriv->orig_parent = clutter_actor_get_parent (actor);
g_object_ref (actor); clutter_actor_reparent (actor,
clutter_actor_remove_child (clutter_actor_get_parent (actor), actor); win_workspace == to ? workspace1 : workspace0);
clutter_actor_add_child (parent, actor); clutter_actor_show_all (actor);
clutter_actor_show (actor); clutter_actor_raise_top (actor);
clutter_actor_set_child_below_sibling (parent, actor, NULL);
g_object_unref (actor);
} }
else if (win_workspace < 0) else if (win_workspace < 0)
{ {
@@ -459,21 +431,23 @@ switch_workspace (MetaPlugin *plugin,
priv->desktop1 = workspace0; priv->desktop1 = workspace0;
priv->desktop2 = workspace1; priv->desktop2 = workspace1;
priv->tml_switch_workspace1 = actor_animate (workspace0, CLUTTER_EASE_IN_SINE, animation = clutter_actor_animate (workspace0, CLUTTER_EASE_IN_SINE,
SWITCH_TIMEOUT, SWITCH_TIMEOUT,
"scale-x", 1.0, "scale-x", 1.0,
"scale-y", 1.0, "scale-y", 1.0,
NULL); NULL);
priv->tml_switch_workspace1 = clutter_animation_get_timeline (animation);
g_signal_connect (priv->tml_switch_workspace1, g_signal_connect (priv->tml_switch_workspace1,
"completed", "completed",
G_CALLBACK (on_switch_workspace_effect_complete), G_CALLBACK (on_switch_workspace_effect_complete),
plugin); plugin);
priv->tml_switch_workspace2 = actor_animate (workspace1, CLUTTER_EASE_IN_SINE, animation = clutter_actor_animate (workspace1, CLUTTER_EASE_IN_SINE,
SWITCH_TIMEOUT, SWITCH_TIMEOUT,
"scale-x", 0.0, "scale-x", 0.0,
"scale-y", 0.0, "scale-y", 0.0,
NULL); NULL);
priv->tml_switch_workspace2 = clutter_animation_get_timeline (animation);
} }
@@ -530,10 +504,11 @@ minimize (MetaPlugin *plugin, MetaWindowActor *window_actor)
if (type == META_WINDOW_NORMAL) if (type == META_WINDOW_NORMAL)
{ {
ClutterAnimation *animation;
EffectCompleteData *data = g_new0 (EffectCompleteData, 1); EffectCompleteData *data = g_new0 (EffectCompleteData, 1);
ActorPrivate *apriv = get_actor_private (window_actor); ActorPrivate *apriv = get_actor_private (window_actor);
apriv->tml_minimize = actor_animate (actor, animation = clutter_actor_animate (actor,
CLUTTER_EASE_IN_SINE, CLUTTER_EASE_IN_SINE,
MINIMIZE_TIMEOUT, MINIMIZE_TIMEOUT,
"scale-x", 0.0, "scale-x", 0.0,
@@ -541,6 +516,7 @@ minimize (MetaPlugin *plugin, MetaWindowActor *window_actor)
"x", (double)icon_geometry.x, "x", (double)icon_geometry.x,
"y", (double)icon_geometry.y, "y", (double)icon_geometry.y,
NULL); NULL);
apriv->tml_minimize = clutter_animation_get_timeline (animation);
data->plugin = plugin; data->plugin = plugin;
data->actor = actor; data->actor = actor;
g_signal_connect (apriv->tml_minimize, "completed", g_signal_connect (apriv->tml_minimize, "completed",
@@ -585,6 +561,7 @@ map (MetaPlugin *plugin, MetaWindowActor *window_actor)
if (type == META_WINDOW_NORMAL) if (type == META_WINDOW_NORMAL)
{ {
ClutterAnimation *animation;
EffectCompleteData *data = g_new0 (EffectCompleteData, 1); EffectCompleteData *data = g_new0 (EffectCompleteData, 1);
ActorPrivate *apriv = get_actor_private (window_actor); ActorPrivate *apriv = get_actor_private (window_actor);
@@ -593,13 +570,14 @@ map (MetaPlugin *plugin, MetaWindowActor *window_actor)
clutter_actor_set_scale (actor, 0.5, 0.5); clutter_actor_set_scale (actor, 0.5, 0.5);
clutter_actor_show (actor); clutter_actor_show (actor);
apriv->tml_map = actor_animate (actor, animation = clutter_actor_animate (actor,
CLUTTER_EASE_OUT_QUAD, CLUTTER_EASE_OUT_QUAD,
MAP_TIMEOUT, MAP_TIMEOUT,
"opacity", 255, "opacity", 255,
"scale-x", 1.0, "scale-x", 1.0,
"scale-y", 1.0, "scale-y", 1.0,
NULL); NULL);
apriv->tml_map = clutter_animation_get_timeline (animation);
data->actor = actor; data->actor = actor;
data->plugin = plugin; data->plugin = plugin;
g_signal_connect (apriv->tml_map, "completed", g_signal_connect (apriv->tml_map, "completed",
@@ -640,16 +618,18 @@ destroy (MetaPlugin *plugin, MetaWindowActor *window_actor)
if (type == META_WINDOW_NORMAL) if (type == META_WINDOW_NORMAL)
{ {
ClutterAnimation *animation;
EffectCompleteData *data = g_new0 (EffectCompleteData, 1); EffectCompleteData *data = g_new0 (EffectCompleteData, 1);
ActorPrivate *apriv = get_actor_private (window_actor); ActorPrivate *apriv = get_actor_private (window_actor);
apriv->tml_destroy = actor_animate (actor, animation = clutter_actor_animate (actor,
CLUTTER_EASE_OUT_QUAD, CLUTTER_EASE_OUT_QUAD,
DESTROY_TIMEOUT, DESTROY_TIMEOUT,
"opacity", 0, "opacity", 0,
"scale-x", 0.8, "scale-x", 0.8,
"scale-y", 0.8, "scale-y", 0.8,
NULL); NULL);
apriv->tml_destroy = clutter_animation_get_timeline (animation);
data->plugin = plugin; data->plugin = plugin;
data->actor = actor; data->actor = actor;
g_signal_connect (apriv->tml_destroy, "completed", g_signal_connect (apriv->tml_destroy, "completed",
@@ -722,9 +702,7 @@ show_tile_preview (MetaPlugin *plugin,
clutter_actor_show (preview->actor); clutter_actor_show (preview->actor);
window_actor = CLUTTER_ACTOR (meta_window_get_compositor_private (window)); window_actor = CLUTTER_ACTOR (meta_window_get_compositor_private (window));
clutter_actor_set_child_below_sibling (clutter_actor_get_parent (preview->actor), clutter_actor_lower (preview->actor, window_actor);
preview->actor,
window_actor);
preview->tile_rect = *tile_rect; preview->tile_rect = *tile_rect;
} }

View File

@@ -52,7 +52,6 @@
#include "screen-private.h" #include "screen-private.h"
#include "window-private.h" #include "window-private.h"
#include "util-private.h" #include "util-private.h"
#include "compositor/compositor-private.h"
#include <meta/prefs.h> #include <meta/prefs.h>
#include <meta/compositor.h> #include <meta/compositor.h>
#ifdef HAVE_LIBCANBERRA #ifdef HAVE_LIBCANBERRA
@@ -132,12 +131,6 @@ bell_flash_window_frame (MetaWindow *window)
g_source_set_name_by_id (id, "[mutter] bell_unflash_frame"); g_source_set_name_by_id (id, "[mutter] bell_unflash_frame");
} }
static void
bell_flash_window (MetaWindow *window)
{
meta_compositor_flash_window (window->display->compositor, window);
}
/** /**
* bell_flash_frame: * bell_flash_frame:
* @display: The display the bell event came in on * @display: The display the bell event came in on
@@ -152,8 +145,6 @@ bell_flash_frame (MetaDisplay *display,
{ {
if (window && window->frame) if (window && window->frame)
bell_flash_window_frame (window); bell_flash_window_frame (window);
else if (window)
bell_flash_window (window);
else else
bell_flash_fullscreen (display); bell_flash_fullscreen (display);
} }
@@ -212,18 +203,33 @@ bell_audible_notify (MetaDisplay *display,
return FALSE; return FALSE;
} }
gboolean void
meta_bell_notify (MetaDisplay *display, meta_bell_notify (MetaDisplay *display,
MetaWindow *window) XkbAnyEvent *xkb_ev)
{ {
MetaWindow *window;
XkbBellNotifyEvent *xkb_bell_event = (XkbBellNotifyEvent*) xkb_ev;
window = meta_display_lookup_x_window (display, xkb_bell_event->window);
if (!window && display->focus_window && display->focus_window->frame)
window = display->focus_window;
/* flash something */ /* flash something */
if (meta_prefs_get_visual_bell ()) if (meta_prefs_get_visual_bell ())
bell_visual_notify (display, window); bell_visual_notify (display, window);
if (meta_prefs_bell_is_audible ()) if (meta_prefs_bell_is_audible ())
return bell_audible_notify (display, window); {
if (!bell_audible_notify (display, window))
return TRUE; {
/* Force a classic bell if the libcanberra bell failed. */
XkbForceDeviceBell (display->xdisplay,
xkb_bell_event->device,
xkb_bell_event->bell_class,
xkb_bell_event->bell_id,
xkb_bell_event->percent);
}
}
} }
void void

View File

@@ -25,14 +25,15 @@
/** /**
* meta_bell_notify: * meta_bell_notify:
* @display: The display the bell event came in on * @display: The display the bell event came in on
* @window: The window the bell event was received on * @xkb_ev: The bell event we just received
* *
* Gives the user some kind of aural or visual feedback, such as a bell sound * Gives the user some kind of visual bell; in fact, this is our response
* or flash. What type of feedback is invoked depends on the configuration. * to any kind of bell request, but we set it up so that we only get
* If the aural feedback could not be invoked, FALSE is returned. * notified about visual bells, and X deals with audible ones.
*
* If the configure script found we had no XKB, this does not exist.
*/ */
gboolean meta_bell_notify (MetaDisplay *display, void meta_bell_notify (MetaDisplay *display, XkbAnyEvent *xkb_ev);
MetaWindow *window);
/** /**
* meta_bell_set_audible: * meta_bell_set_audible:

View File

@@ -35,7 +35,6 @@
#include <meta/boxes.h> #include <meta/boxes.h>
#include <meta/display.h> #include <meta/display.h>
#include "keybindings-private.h" #include "keybindings-private.h"
#include "startup-notification-private.h"
#include "meta-gesture-tracker-private.h" #include "meta-gesture-tracker-private.h"
#include <meta/prefs.h> #include <meta/prefs.h>
#include <meta/barrier.h> #include <meta/barrier.h>
@@ -277,8 +276,9 @@ struct _MetaDisplay
int xinput_event_base; int xinput_event_base;
int xinput_opcode; int xinput_opcode;
MetaStartupNotification *startup_notification; #ifdef HAVE_STARTUP_NOTIFICATION
SnDisplay *sn_display;
#endif
int xsync_event_base; int xsync_event_base;
int xsync_error_base; int xsync_error_base;
int shape_event_base; int shape_event_base;

View File

@@ -400,6 +400,28 @@ meta_display_remove_pending_pings_for_window (MetaDisplay *display,
} }
#ifdef HAVE_STARTUP_NOTIFICATION
static void
sn_error_trap_push (SnDisplay *sn_display,
Display *xdisplay)
{
MetaDisplay *display;
display = meta_display_for_x_display (xdisplay);
if (display != NULL)
meta_error_trap_push (display);
}
static void
sn_error_trap_pop (SnDisplay *sn_display,
Display *xdisplay)
{
MetaDisplay *display;
display = meta_display_for_x_display (xdisplay);
if (display != NULL)
meta_error_trap_pop (display);
}
#endif
static void static void
enable_compositor (MetaDisplay *display) enable_compositor (MetaDisplay *display)
{ {
@@ -505,20 +527,6 @@ gesture_tracker_state_changed (MetaGestureTracker *tracker,
} }
} }
static void
on_startup_notification_changed (MetaStartupNotification *sn,
gpointer sequence,
MetaDisplay *display)
{
if (!display->screen)
return;
g_slist_free (display->screen->startup_sequences);
display->screen->startup_sequences =
meta_startup_notification_get_sequences (display->startup_notification);
g_signal_emit_by_name (display->screen, "startup-sequence-changed", sequence);
}
/** /**
* meta_display_open: * meta_display_open:
* *
@@ -622,6 +630,12 @@ meta_display_open (void)
display->screen = NULL; display->screen = NULL;
#ifdef HAVE_STARTUP_NOTIFICATION
display->sn_display = sn_display_new (display->xdisplay,
sn_error_trap_push,
sn_error_trap_pop);
#endif
/* Get events */ /* Get events */
meta_display_init_events (display); meta_display_init_events (display);
meta_display_init_events_x11 (display); meta_display_init_events_x11 (display);
@@ -902,10 +916,6 @@ meta_display_open (void)
display->screen = screen; display->screen = screen;
display->startup_notification = meta_startup_notification_get (display);
g_signal_connect (display->startup_notification, "changed",
G_CALLBACK (on_startup_notification_changed), display);
meta_screen_init_workspaces (screen); meta_screen_init_workspaces (screen);
enable_compositor (display); enable_compositor (display);
@@ -1090,7 +1100,6 @@ meta_display_close (MetaDisplay *display,
meta_display_remove_autoraise_callback (display); meta_display_remove_autoraise_callback (display);
g_clear_object (&display->startup_notification);
g_clear_object (&display->gesture_tracker); g_clear_object (&display->gesture_tracker);
if (display->focus_timeout_id) if (display->focus_timeout_id)
@@ -1103,6 +1112,14 @@ meta_display_close (MetaDisplay *display,
meta_screen_free (display->screen, timestamp); meta_screen_free (display->screen, timestamp);
#ifdef HAVE_STARTUP_NOTIFICATION
if (display->sn_display)
{
sn_display_unref (display->sn_display);
display->sn_display = NULL;
}
#endif
/* Must be after all calls to meta_window_unmanage() since they /* Must be after all calls to meta_window_unmanage() since they
* unregister windows * unregister windows
*/ */
@@ -1212,7 +1229,7 @@ meta_grab_op_is_moving (MetaGrabOp op)
} }
/** /**
* meta_display_windows_are_interactable: * meta_grab_op_windows_are_interactable:
* @op: A #MetaGrabOp * @op: A #MetaGrabOp
* *
* Whether windows can be interacted with. * Whether windows can be interacted with.

View File

@@ -182,25 +182,10 @@ meta_display_handle_event (MetaDisplay *display,
sequence = clutter_event_get_event_sequence (event); sequence = clutter_event_get_event_sequence (event);
/* Set the pointer emulating sequence on touch begin, if eligible */ /* Set the pointer emulating sequence on touch begin, if eligible */
if (event->type == CLUTTER_TOUCH_BEGIN) if (event->type == CLUTTER_TOUCH_BEGIN &&
{ !display->pointer_emulating_sequence &&
if (sequence_is_pointer_emulated (display, event)) sequence_is_pointer_emulated (display, event))
{
/* This is the new pointer emulating sequence */
display->pointer_emulating_sequence = sequence; display->pointer_emulating_sequence = sequence;
}
else if (display->pointer_emulating_sequence == sequence)
{
/* This sequence was "pointer emulating" in a prior incarnation,
* but now it isn't. We unset the pointer emulating sequence at
* this point so the current sequence is not mistaken as pointer
* emulating, while we've ensured that it's been deemed
* "pointer emulating" throughout all of the event processing
* of the previous incarnation.
*/
display->pointer_emulating_sequence = NULL;
}
}
#ifdef HAVE_WAYLAND #ifdef HAVE_WAYLAND
MetaWaylandCompositor *compositor = NULL; MetaWaylandCompositor *compositor = NULL;
@@ -350,6 +335,11 @@ meta_display_handle_event (MetaDisplay *display,
} }
#endif #endif
/* Unset the pointer emulating sequence after its end event is processed */
if (event->type == CLUTTER_TOUCH_END &&
display->pointer_emulating_sequence == sequence)
display->pointer_emulating_sequence = NULL;
display->current_time = CurrentTime; display->current_time = CurrentTime;
return bypass_clutter; return bypass_clutter;
} }

View File

@@ -94,11 +94,8 @@ typedef struct
GHashTable *key_bindings_index; GHashTable *key_bindings_index;
xkb_mod_mask_t ignored_modifier_mask; xkb_mod_mask_t ignored_modifier_mask;
xkb_mod_mask_t hyper_mask; xkb_mod_mask_t hyper_mask;
xkb_mod_mask_t virtual_hyper_mask;
xkb_mod_mask_t super_mask; xkb_mod_mask_t super_mask;
xkb_mod_mask_t virtual_super_mask;
xkb_mod_mask_t meta_mask; xkb_mod_mask_t meta_mask;
xkb_mod_mask_t virtual_meta_mask;
MetaKeyCombo overlay_key_combo; MetaKeyCombo overlay_key_combo;
MetaResolvedKeyCombo overlay_resolved_key_combo; MetaResolvedKeyCombo overlay_resolved_key_combo;
gboolean overlay_key_only_pressed; gboolean overlay_key_only_pressed;

View File

@@ -185,18 +185,16 @@ reload_modmap (MetaKeyBindingManager *keys)
struct xkb_keymap *keymap = meta_backend_get_keymap (backend); struct xkb_keymap *keymap = meta_backend_get_keymap (backend);
struct xkb_state *scratch_state; struct xkb_state *scratch_state;
xkb_mod_mask_t scroll_lock_mask; xkb_mod_mask_t scroll_lock_mask;
xkb_mod_mask_t dummy_mask;
/* Modifiers to find. */ /* Modifiers to find. */
struct { struct {
const char *name; const char *name;
xkb_mod_mask_t *mask_p; xkb_mod_mask_t *mask_p;
xkb_mod_mask_t *virtual_mask_p;
} mods[] = { } mods[] = {
{ "ScrollLock", &scroll_lock_mask, &dummy_mask }, { "ScrollLock", &scroll_lock_mask },
{ "Meta", &keys->meta_mask, &keys->virtual_meta_mask }, { "Meta", &keys->meta_mask },
{ "Hyper", &keys->hyper_mask, &keys->virtual_hyper_mask }, { "Hyper", &keys->hyper_mask },
{ "Super", &keys->super_mask, &keys->virtual_super_mask }, { "Super", &keys->super_mask },
}; };
scratch_state = xkb_state_new (keymap); scratch_state = xkb_state_new (keymap);
@@ -205,7 +203,6 @@ reload_modmap (MetaKeyBindingManager *keys)
for (i = 0; i < G_N_ELEMENTS (mods); i++) for (i = 0; i < G_N_ELEMENTS (mods); i++)
{ {
xkb_mod_mask_t *mask_p = mods[i].mask_p; xkb_mod_mask_t *mask_p = mods[i].mask_p;
xkb_mod_mask_t *virtual_mask_p = mods[i].virtual_mask_p;
xkb_mod_index_t idx = xkb_keymap_mod_get_index (keymap, mods[i].name); xkb_mod_index_t idx = xkb_keymap_mod_get_index (keymap, mods[i].name);
if (idx != XKB_MOD_INVALID) if (idx != XKB_MOD_INVALID)
@@ -213,13 +210,9 @@ reload_modmap (MetaKeyBindingManager *keys)
xkb_mod_mask_t vmodmask = (1 << idx); xkb_mod_mask_t vmodmask = (1 << idx);
xkb_state_update_mask (scratch_state, vmodmask, 0, 0, 0, 0, 0); xkb_state_update_mask (scratch_state, vmodmask, 0, 0, 0, 0, 0);
*mask_p = xkb_state_serialize_mods (scratch_state, XKB_STATE_MODS_DEPRESSED) & ~vmodmask; *mask_p = xkb_state_serialize_mods (scratch_state, XKB_STATE_MODS_DEPRESSED) & ~vmodmask;
*virtual_mask_p = vmodmask;
} }
else else
{
*mask_p = 0; *mask_p = 0;
*virtual_mask_p = 0;
}
} }
xkb_state_unref (scratch_state); xkb_state_unref (scratch_state);
@@ -904,9 +897,6 @@ meta_change_button_grab (MetaKeyBindingManager *keys,
int button, int button,
int modmask) int modmask)
{ {
if (meta_is_wayland_compositor ())
return;
MetaBackendX11 *backend = META_BACKEND_X11 (meta_get_backend ()); MetaBackendX11 *backend = META_BACKEND_X11 (meta_get_backend ());
Display *xdisplay = meta_backend_x11_get_xdisplay (backend); Display *xdisplay = meta_backend_x11_get_xdisplay (backend);
@@ -979,6 +969,9 @@ meta_display_grab_window_buttons (MetaDisplay *display,
{ {
MetaKeyBindingManager *keys = &display->key_binding_manager; MetaKeyBindingManager *keys = &display->key_binding_manager;
if (meta_is_wayland_compositor ())
return;
/* Grab Alt + button1 for moving window. /* Grab Alt + button1 for moving window.
* Grab Alt + button2 for resizing window. * Grab Alt + button2 for resizing window.
* Grab Alt + button3 for popping up window menu. * Grab Alt + button3 for popping up window menu.
@@ -1015,6 +1008,9 @@ meta_display_ungrab_window_buttons (MetaDisplay *display,
{ {
MetaKeyBindingManager *keys = &display->key_binding_manager; MetaKeyBindingManager *keys = &display->key_binding_manager;
if (meta_is_wayland_compositor ())
return;
if (keys->window_grab_modifiers == 0) if (keys->window_grab_modifiers == 0)
return; return;
@@ -1041,6 +1037,9 @@ meta_display_grab_focus_window_button (MetaDisplay *display,
{ {
MetaKeyBindingManager *keys = &display->key_binding_manager; MetaKeyBindingManager *keys = &display->key_binding_manager;
if (meta_is_wayland_compositor ())
return;
/* Grab button 1 for activating unfocused windows */ /* Grab button 1 for activating unfocused windows */
meta_verbose ("Grabbing unfocused window buttons for %s\n", window->desc); meta_verbose ("Grabbing unfocused window buttons for %s\n", window->desc);
@@ -1080,6 +1079,9 @@ meta_display_ungrab_focus_window_button (MetaDisplay *display,
{ {
MetaKeyBindingManager *keys = &display->key_binding_manager; MetaKeyBindingManager *keys = &display->key_binding_manager;
if (meta_is_wayland_compositor ())
return;
meta_verbose ("Ungrabbing unfocused window buttons for %s\n", window->desc); meta_verbose ("Ungrabbing unfocused window buttons for %s\n", window->desc);
if (!window->have_focus_click_grab) if (!window->have_focus_click_grab)
@@ -1159,9 +1161,6 @@ meta_change_keygrab (MetaKeyBindingManager *keys,
XISetMask (mask.mask, XI_KeyPress); XISetMask (mask.mask, XI_KeyPress);
XISetMask (mask.mask, XI_KeyRelease); XISetMask (mask.mask, XI_KeyRelease);
if (meta_is_wayland_compositor ())
return;
MetaBackendX11 *backend = META_BACKEND_X11 (meta_get_backend ()); MetaBackendX11 *backend = META_BACKEND_X11 (meta_get_backend ());
Display *xdisplay = meta_backend_x11_get_xdisplay (backend); Display *xdisplay = meta_backend_x11_get_xdisplay (backend);
@@ -1276,6 +1275,11 @@ meta_screen_change_keygrabs (MetaScreen *screen,
void void
meta_screen_grab_keys (MetaScreen *screen) meta_screen_grab_keys (MetaScreen *screen)
{ {
MetaBackend *backend = meta_get_backend ();
if (!META_IS_BACKEND_X11 (backend))
return;
if (screen->keys_grabbed) if (screen->keys_grabbed)
return; return;
@@ -1309,6 +1313,10 @@ meta_window_grab_keys (MetaWindow *window)
MetaDisplay *display = window->display; MetaDisplay *display = window->display;
MetaKeyBindingManager *keys = &display->key_binding_manager; MetaKeyBindingManager *keys = &display->key_binding_manager;
/* Under Wayland, we don't need to grab at all. */
if (meta_is_wayland_compositor ())
return;
if (window->all_keys_grabbed) if (window->all_keys_grabbed)
return; return;
@@ -1376,6 +1384,7 @@ guint
meta_display_grab_accelerator (MetaDisplay *display, meta_display_grab_accelerator (MetaDisplay *display,
const char *accelerator) const char *accelerator)
{ {
MetaBackend *backend = meta_get_backend ();
MetaKeyBindingManager *keys = &display->key_binding_manager; MetaKeyBindingManager *keys = &display->key_binding_manager;
MetaKeyBinding *binding; MetaKeyBinding *binding;
MetaKeyGrab *grab; MetaKeyGrab *grab;
@@ -1399,6 +1408,7 @@ meta_display_grab_accelerator (MetaDisplay *display,
if (get_keybinding (keys, &resolved_combo)) if (get_keybinding (keys, &resolved_combo))
return META_KEYBINDING_ACTION_NONE; return META_KEYBINDING_ACTION_NONE;
if (META_IS_BACKEND_X11 (backend))
meta_change_keygrab (keys, display->screen->xroot, TRUE, &resolved_combo); meta_change_keygrab (keys, display->screen->xroot, TRUE, &resolved_combo);
grab = g_new0 (MetaKeyGrab, 1); grab = g_new0 (MetaKeyGrab, 1);
@@ -1424,6 +1434,7 @@ gboolean
meta_display_ungrab_accelerator (MetaDisplay *display, meta_display_ungrab_accelerator (MetaDisplay *display,
guint action) guint action)
{ {
MetaBackend *backend = meta_get_backend ();
MetaKeyBindingManager *keys = &display->key_binding_manager; MetaKeyBindingManager *keys = &display->key_binding_manager;
MetaKeyBinding *binding; MetaKeyBinding *binding;
MetaKeyGrab *grab; MetaKeyGrab *grab;
@@ -1443,6 +1454,7 @@ meta_display_ungrab_accelerator (MetaDisplay *display,
{ {
guint32 index_key; guint32 index_key;
if (META_IS_BACKEND_X11 (backend))
meta_change_keygrab (keys, display->screen->xroot, FALSE, &binding->resolved_combo); meta_change_keygrab (keys, display->screen->xroot, FALSE, &binding->resolved_combo);
index_key = key_combo_key (&binding->resolved_combo); index_key = key_combo_key (&binding->resolved_combo);
@@ -1470,9 +1482,6 @@ grab_keyboard (Window xwindow,
XISetMask (mask.mask, XI_KeyPress); XISetMask (mask.mask, XI_KeyPress);
XISetMask (mask.mask, XI_KeyRelease); XISetMask (mask.mask, XI_KeyRelease);
if (meta_is_wayland_compositor ())
return TRUE;
/* Grab the keyboard, so we get key releases and all key /* Grab the keyboard, so we get key releases and all key
* presses * presses
*/ */
@@ -1504,9 +1513,6 @@ grab_keyboard (Window xwindow,
static void static void
ungrab_keyboard (guint32 timestamp) ungrab_keyboard (guint32 timestamp)
{ {
if (meta_is_wayland_compositor ())
return;
MetaBackendX11 *backend = META_BACKEND_X11 (meta_get_backend ()); MetaBackendX11 *backend = META_BACKEND_X11 (meta_get_backend ());
Display *xdisplay = meta_backend_x11_get_xdisplay (backend); Display *xdisplay = meta_backend_x11_get_xdisplay (backend);
@@ -1519,6 +1525,10 @@ meta_window_grab_all_keys (MetaWindow *window,
{ {
Window grabwindow; Window grabwindow;
gboolean retval; gboolean retval;
MetaBackend *backend = meta_get_backend ();
if (!META_IS_BACKEND_X11 (backend))
return TRUE;
if (window->all_keys_grabbed) if (window->all_keys_grabbed)
return FALSE; return FALSE;
@@ -1580,6 +1590,11 @@ meta_display_freeze_keyboard (MetaDisplay *display, guint32 timestamp)
void void
meta_display_ungrab_keyboard (MetaDisplay *display, guint32 timestamp) meta_display_ungrab_keyboard (MetaDisplay *display, guint32 timestamp)
{ {
MetaBackend *backend = meta_get_backend ();
if (!META_IS_BACKEND_X11 (backend))
return;
ungrab_keyboard (timestamp); ungrab_keyboard (timestamp);
} }

View File

@@ -82,10 +82,6 @@
#include "wayland/meta-wayland.h" #include "wayland/meta-wayland.h"
#endif #endif
#if defined(HAVE_NATIVE_BACKEND) && defined(HAVE_WAYLAND)
#include <systemd/sd-login.h>
#endif
/* /*
* The exit code we'll return to our parent process when we eventually die. * The exit code we'll return to our parent process when we eventually die.
*/ */
@@ -168,7 +164,6 @@ static gboolean opt_disable_sm;
static gboolean opt_sync; static gboolean opt_sync;
#ifdef HAVE_WAYLAND #ifdef HAVE_WAYLAND
static gboolean opt_wayland; static gboolean opt_wayland;
static gboolean opt_nested;
#endif #endif
#ifdef HAVE_NATIVE_BACKEND #ifdef HAVE_NATIVE_BACKEND
static gboolean opt_display_server; static gboolean opt_display_server;
@@ -217,12 +212,6 @@ static GOptionEntry meta_options[] = {
N_("Run as a wayland compositor"), N_("Run as a wayland compositor"),
NULL NULL
}, },
{
"nested", 0, 0, G_OPTION_ARG_NONE,
&opt_nested,
N_("Run as a nested compositor"),
NULL
},
#endif #endif
#ifdef HAVE_NATIVE_BACKEND #ifdef HAVE_NATIVE_BACKEND
{ {
@@ -302,104 +291,6 @@ on_sigterm (gpointer user_data)
return G_SOURCE_REMOVE; return G_SOURCE_REMOVE;
} }
#if defined(HAVE_WAYLAND) && defined(HAVE_NATIVE_BACKEND)
static char *
find_logind_session_type (void)
{
char **sessions;
char *session_id;
char *session_type;
int ret, i;
ret = sd_pid_get_session (0, &session_id);
if (ret == 0 && session_id != NULL)
{
ret = sd_session_get_type (session_id, &session_type);
free (session_id);
if (ret < 0)
session_type = NULL;
goto out;
}
session_type = NULL;
ret = sd_uid_get_sessions (getuid (), TRUE, &sessions);
if (ret < 0 || sessions == NULL)
goto out;
for (i = 0; sessions[i] != NULL; i++)
{
ret = sd_session_get_type (sessions[i], &session_type);
if (ret < 0)
continue;
if (g_strcmp0 (session_type, "x11") == 0||
g_strcmp0 (session_type, "wayland") == 0)
break;
g_clear_pointer (&session_type, (GDestroyNotify) free);
}
for (i = 0; sessions[i] != NULL; i++)
free (sessions[i]);
free (sessions);
out:
return session_type;
}
static gboolean
check_for_wayland_session_type (void)
{
char *session_type = NULL;
gboolean is_wayland = FALSE;
session_type = find_logind_session_type ();
if (session_type != NULL)
{
is_wayland = g_strcmp0 (session_type, "wayland") == 0;
free (session_type);
}
return is_wayland;
}
#endif
static void
init_backend (void)
{
#ifdef HAVE_WAYLAND
gboolean run_as_wayland_compositor = opt_wayland;
#ifdef HAVE_NATIVE_BACKEND
if (opt_nested && opt_display_server)
{
meta_warning ("Can't run both as nested and as a display server\n");
meta_exit (META_EXIT_ERROR);
}
if (!run_as_wayland_compositor)
run_as_wayland_compositor = check_for_wayland_session_type ();
#ifdef CLUTTER_WINDOWING_EGL
if (opt_display_server || (run_as_wayland_compositor && !opt_nested))
clutter_set_windowing_backend (CLUTTER_WINDOWING_EGL);
else
#endif
#endif
#endif
clutter_set_windowing_backend (CLUTTER_WINDOWING_X11);
#ifdef HAVE_WAYLAND
meta_set_is_wayland_compositor (run_as_wayland_compositor);
#endif
}
/** /**
* meta_init: (skip) * meta_init: (skip)
* *
@@ -432,7 +323,16 @@ meta_init (void)
if (g_getenv ("MUTTER_DEBUG")) if (g_getenv ("MUTTER_DEBUG"))
meta_set_debugging (TRUE); meta_set_debugging (TRUE);
init_backend (); #if defined(CLUTTER_WINDOWING_EGL) && defined(HAVE_NATIVE_BACKEND)
if (opt_display_server)
clutter_set_windowing_backend (CLUTTER_WINDOWING_EGL);
else
#endif
clutter_set_windowing_backend (CLUTTER_WINDOWING_X11);
#ifdef HAVE_WAYLAND
meta_set_is_wayland_compositor (opt_wayland);
#endif
if (g_get_home_dir ()) if (g_get_home_dir ())
if (chdir (g_get_home_dir ()) < 0) if (chdir (g_get_home_dir ()) < 0)

View File

@@ -1,154 +0,0 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* Copyright (C) 2015 Red Hat
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* Written by:
* Jonas Ådahl <jadahl@gmail.com>
*/
#include "config.h"
#include "core/meta-border.h"
#include <math.h>
static inline float
meta_vector2_cross_product (const MetaVector2 a,
const MetaVector2 b)
{
return a.x * b.y - a.y * b.x;
}
static inline MetaVector2
meta_vector2_add (const MetaVector2 a,
const MetaVector2 b)
{
return (MetaVector2) {
.x = a.x + b.x,
.y = a.y + b.y,
};
}
static inline MetaVector2
meta_vector2_multiply_constant (const float c,
const MetaVector2 a)
{
return (MetaVector2) {
.x = c * a.x,
.y = c * a.y,
};
}
gboolean
meta_line2_intersects_with (const MetaLine2 *line1,
const MetaLine2 *line2,
MetaVector2 *intersection)
{
MetaVector2 p = line1->a;
MetaVector2 r = meta_vector2_subtract (line1->b, line1->a);
MetaVector2 q = line2->a;
MetaVector2 s = meta_vector2_subtract (line2->b, line2->a);
float rxs;
float sxr;
float t;
float u;
/*
* The line (p, r) and (q, s) intersects where
*
* p + t r = q + u s
*
* Calculate t:
*
* (p + t r) × s = (q + u s) × s
* p × s + t (r × s) = q × s + u (s × s)
* p × s + t (r × s) = q × s
* t (r × s) = q × s - p × s
* t (r × s) = (q - p) × s
* t = ((q - p) × s) / (r × s)
*
* Using the same method, for u we get:
*
* u = ((p - q) × r) / (s × r)
*/
rxs = meta_vector2_cross_product (r, s);
sxr = meta_vector2_cross_product (s, r);
/* If r × s = 0 then the lines are either parallel or collinear. */
if (fabsf (rxs) < FLT_MIN)
return FALSE;
t = meta_vector2_cross_product (meta_vector2_subtract (q, p), s) / rxs;
u = meta_vector2_cross_product (meta_vector2_subtract (p, q), r) / sxr;
/* The lines only intersect if 0 ≤ t ≤ 1 and 0 ≤ u ≤ 1. */
if (t < 0.0 || t > 1.0 || u < 0.0 || u > 1.0)
return FALSE;
*intersection = meta_vector2_add (p, meta_vector2_multiply_constant (t, r));
return TRUE;
}
gboolean
meta_border_is_horizontal (MetaBorder *border)
{
return border->line.a.y == border->line.b.y;
}
gboolean
meta_border_is_blocking_directions (MetaBorder *border,
MetaBorderMotionDirection directions)
{
if (meta_border_is_horizontal (border))
{
if ((directions & (META_BORDER_MOTION_DIRECTION_POSITIVE_Y |
META_BORDER_MOTION_DIRECTION_NEGATIVE_Y)) == 0)
return FALSE;
}
else
{
if ((directions & (META_BORDER_MOTION_DIRECTION_POSITIVE_X |
META_BORDER_MOTION_DIRECTION_NEGATIVE_X)) == 0)
return FALSE;
}
return (~border->blocking_directions & directions) != directions;
}
unsigned int
meta_border_get_allows_directions (MetaBorder *border)
{
return ~border->blocking_directions &
(META_BORDER_MOTION_DIRECTION_POSITIVE_X |
META_BORDER_MOTION_DIRECTION_POSITIVE_Y |
META_BORDER_MOTION_DIRECTION_NEGATIVE_X |
META_BORDER_MOTION_DIRECTION_NEGATIVE_Y);
}
void
meta_border_set_allows_directions (MetaBorder *border, unsigned int directions)
{
border->blocking_directions =
~directions & (META_BORDER_MOTION_DIRECTION_POSITIVE_X |
META_BORDER_MOTION_DIRECTION_POSITIVE_Y |
META_BORDER_MOTION_DIRECTION_NEGATIVE_X |
META_BORDER_MOTION_DIRECTION_NEGATIVE_Y);
}

View File

@@ -1,84 +0,0 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* Copyright (C) 2015 Red Hat
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* Written by:
* Jonas Ådahl <jadahl@gmail.com>
*/
#ifndef META_BORDER_H
#define META_BORDER_H
#include <glib.h>
typedef enum
{
META_BORDER_MOTION_DIRECTION_POSITIVE_X = 1 << 0,
META_BORDER_MOTION_DIRECTION_POSITIVE_Y = 1 << 1,
META_BORDER_MOTION_DIRECTION_NEGATIVE_X = 1 << 2,
META_BORDER_MOTION_DIRECTION_NEGATIVE_Y = 1 << 3,
} MetaBorderMotionDirection;
typedef struct _MetaVector2
{
float x;
float y;
} MetaVector2;
typedef struct _MetaLine2
{
MetaVector2 a;
MetaVector2 b;
} MetaLine2;
typedef struct _MetaBorder
{
MetaLine2 line;
MetaBorderMotionDirection blocking_directions;
} MetaBorder;
static inline MetaVector2
meta_vector2_subtract (const MetaVector2 a,
const MetaVector2 b)
{
return (MetaVector2) {
.x = a.x - b.x,
.y = a.y - b.y,
};
}
gboolean
meta_line2_intersects_with (const MetaLine2 *line1,
const MetaLine2 *line2,
MetaVector2 *intersection);
gboolean
meta_border_is_horizontal (MetaBorder *border);
gboolean
meta_border_is_blocking_directions (MetaBorder *border,
MetaBorderMotionDirection directions);
unsigned int
meta_border_get_allows_directions (MetaBorder *border);
void
meta_border_set_allows_directions (MetaBorder *border, unsigned int directions);
#endif /* META_BORDER_H */

View File

@@ -85,7 +85,11 @@ struct _MetaScreen
/* Cache the current monitor */ /* Cache the current monitor */
int last_monitor_index; int last_monitor_index;
#ifdef HAVE_STARTUP_NOTIFICATION
SnMonitorContext *sn_context;
GSList *startup_sequences; GSList *startup_sequences;
guint startup_sequence_timeout;
#endif
Window wm_cm_selection_window; Window wm_cm_selection_window;
guint work_area_later; guint work_area_later;

View File

@@ -71,6 +71,11 @@ static void prefs_changed_callback (MetaPreference pref,
static void set_desktop_geometry_hint (MetaScreen *screen); static void set_desktop_geometry_hint (MetaScreen *screen);
static void set_desktop_viewport_hint (MetaScreen *screen); static void set_desktop_viewport_hint (MetaScreen *screen);
#ifdef HAVE_STARTUP_NOTIFICATION
static void meta_screen_sn_event (SnMonitorEvent *event,
void *user_data);
#endif
static void on_monitors_changed (MetaMonitorManager *manager, static void on_monitors_changed (MetaMonitorManager *manager,
MetaScreen *screen); MetaScreen *screen);
@@ -725,6 +730,17 @@ meta_screen_new (MetaDisplay *display,
meta_prefs_add_listener (prefs_changed_callback, screen); meta_prefs_add_listener (prefs_changed_callback, screen);
#ifdef HAVE_STARTUP_NOTIFICATION
screen->sn_context =
sn_monitor_context_new (screen->display->sn_display,
screen->number,
meta_screen_sn_event,
screen,
NULL);
screen->startup_sequences = NULL;
screen->startup_sequence_timeout = 0;
#endif
meta_verbose ("Added screen %d ('%s') root 0x%lx\n", meta_verbose ("Added screen %d ('%s') root 0x%lx\n",
screen->number, screen->screen_name, screen->xroot); screen->number, screen->screen_name, screen->xroot);
@@ -784,6 +800,24 @@ meta_screen_free (MetaScreen *screen,
meta_screen_ungrab_keys (screen); meta_screen_ungrab_keys (screen);
#ifdef HAVE_STARTUP_NOTIFICATION
g_slist_foreach (screen->startup_sequences,
(GFunc) sn_startup_sequence_unref, NULL);
g_slist_free (screen->startup_sequences);
screen->startup_sequences = NULL;
if (screen->startup_sequence_timeout != 0)
{
g_source_remove (screen->startup_sequence_timeout);
screen->startup_sequence_timeout = 0;
}
if (screen->sn_context)
{
sn_monitor_context_unref (screen->sn_context);
screen->sn_context = NULL;
}
#endif
meta_ui_free (screen->ui); meta_ui_free (screen->ui);
meta_stack_free (screen->stack); meta_stack_free (screen->stack);
@@ -1233,7 +1267,6 @@ root_cursor_prepare_at (MetaCursorSprite *cursor_sprite,
monitor = meta_screen_get_monitor_for_point (screen, x, y); monitor = meta_screen_get_monitor_for_point (screen, x, y);
/* Reload the cursor texture if the scale has changed. */ /* Reload the cursor texture if the scale has changed. */
if (monitor)
meta_cursor_sprite_set_theme_scale (cursor_sprite, monitor->scale); meta_cursor_sprite_set_theme_scale (cursor_sprite, monitor->scale);
} }
@@ -2505,6 +2538,208 @@ meta_screen_unshow_desktop (MetaScreen *screen)
meta_screen_update_showing_desktop_hint (screen); meta_screen_update_showing_desktop_hint (screen);
} }
#ifdef HAVE_STARTUP_NOTIFICATION
static gboolean startup_sequence_timeout (void *data);
static void
update_startup_feedback (MetaScreen *screen)
{
if (screen->startup_sequences != NULL)
{
meta_topic (META_DEBUG_STARTUP,
"Setting busy cursor\n");
meta_screen_set_cursor (screen, META_CURSOR_BUSY);
}
else
{
meta_topic (META_DEBUG_STARTUP,
"Setting default cursor\n");
meta_screen_set_cursor (screen, META_CURSOR_DEFAULT);
}
}
static void
add_sequence (MetaScreen *screen,
SnStartupSequence *sequence)
{
meta_topic (META_DEBUG_STARTUP,
"Adding sequence %s\n",
sn_startup_sequence_get_id (sequence));
sn_startup_sequence_ref (sequence);
screen->startup_sequences = g_slist_prepend (screen->startup_sequences,
sequence);
/* our timeout just polls every second, instead of bothering
* to compute exactly when we may next time out
*/
if (screen->startup_sequence_timeout == 0)
{
screen->startup_sequence_timeout = g_timeout_add_seconds (1,
startup_sequence_timeout,
screen);
g_source_set_name_by_id (screen->startup_sequence_timeout,
"[mutter] startup_sequence_timeout");
}
update_startup_feedback (screen);
}
static void
remove_sequence (MetaScreen *screen,
SnStartupSequence *sequence)
{
meta_topic (META_DEBUG_STARTUP,
"Removing sequence %s\n",
sn_startup_sequence_get_id (sequence));
screen->startup_sequences = g_slist_remove (screen->startup_sequences,
sequence);
if (screen->startup_sequences == NULL &&
screen->startup_sequence_timeout != 0)
{
g_source_remove (screen->startup_sequence_timeout);
screen->startup_sequence_timeout = 0;
}
update_startup_feedback (screen);
sn_startup_sequence_unref (sequence);
}
typedef struct
{
GSList *list;
GTimeVal now;
} CollectTimedOutData;
/* This should be fairly long, as it should never be required unless
* apps or .desktop files are buggy, and it's confusing if
* OpenOffice or whatever seems to stop launching - people
* might decide they need to launch it again.
*/
#define STARTUP_TIMEOUT 15000
static void
collect_timed_out_foreach (void *element,
void *data)
{
CollectTimedOutData *ctod = data;
SnStartupSequence *sequence = element;
long tv_sec, tv_usec;
double elapsed;
sn_startup_sequence_get_last_active_time (sequence, &tv_sec, &tv_usec);
elapsed =
((((double)ctod->now.tv_sec - tv_sec) * G_USEC_PER_SEC +
(ctod->now.tv_usec - tv_usec))) / 1000.0;
meta_topic (META_DEBUG_STARTUP,
"Sequence used %g seconds vs. %g max: %s\n",
elapsed, (double) STARTUP_TIMEOUT,
sn_startup_sequence_get_id (sequence));
if (elapsed > STARTUP_TIMEOUT)
ctod->list = g_slist_prepend (ctod->list, sequence);
}
static gboolean
startup_sequence_timeout (void *data)
{
MetaScreen *screen = data;
CollectTimedOutData ctod;
GSList *l;
ctod.list = NULL;
g_get_current_time (&ctod.now);
g_slist_foreach (screen->startup_sequences,
collect_timed_out_foreach,
&ctod);
for (l = ctod.list; l != NULL; l = l->next)
{
SnStartupSequence *sequence = l->data;
meta_topic (META_DEBUG_STARTUP,
"Timed out sequence %s\n",
sn_startup_sequence_get_id (sequence));
sn_startup_sequence_complete (sequence);
}
g_slist_free (ctod.list);
if (screen->startup_sequences != NULL)
{
return TRUE;
}
else
{
/* remove */
screen->startup_sequence_timeout = 0;
return FALSE;
}
}
static void
meta_screen_sn_event (SnMonitorEvent *event,
void *user_data)
{
MetaScreen *screen;
SnStartupSequence *sequence;
screen = user_data;
sequence = sn_monitor_event_get_startup_sequence (event);
sn_startup_sequence_ref (sequence);
switch (sn_monitor_event_get_type (event))
{
case SN_MONITOR_EVENT_INITIATED:
{
const char *wmclass;
wmclass = sn_startup_sequence_get_wmclass (sequence);
meta_topic (META_DEBUG_STARTUP,
"Received startup initiated for %s wmclass %s\n",
sn_startup_sequence_get_id (sequence),
wmclass ? wmclass : "(unset)");
add_sequence (screen, sequence);
}
break;
case SN_MONITOR_EVENT_COMPLETED:
{
meta_topic (META_DEBUG_STARTUP,
"Received startup completed for %s\n",
sn_startup_sequence_get_id (sequence));
remove_sequence (screen,
sn_monitor_event_get_startup_sequence (event));
}
break;
case SN_MONITOR_EVENT_CHANGED:
meta_topic (META_DEBUG_STARTUP,
"Received startup changed for %s\n",
sn_startup_sequence_get_id (sequence));
break;
case SN_MONITOR_EVENT_CANCELED:
meta_topic (META_DEBUG_STARTUP,
"Received startup canceled for %s\n",
sn_startup_sequence_get_id (sequence));
break;
}
g_signal_emit (G_OBJECT (screen), screen_signals[STARTUP_SEQUENCE_CHANGED], 0, sequence);
sn_startup_sequence_unref (sequence);
}
/** /**
* meta_screen_get_startup_sequences: (skip) * meta_screen_get_startup_sequences: (skip)
* @screen: * @screen:
@@ -2516,6 +2751,7 @@ meta_screen_get_startup_sequences (MetaScreen *screen)
{ {
return screen->startup_sequences; return screen->startup_sequences;
} }
#endif
/* Sets the initial_timestamp and initial_workspace properties /* Sets the initial_timestamp and initial_workspace properties
* of a window according to information given us by the * of a window according to information given us by the

View File

@@ -1061,7 +1061,7 @@ stack_sync_to_xserver (MetaStack *stack)
for (tmp = g_list_last(stack->sorted); tmp != NULL; tmp = tmp->prev) for (tmp = g_list_last(stack->sorted); tmp != NULL; tmp = tmp->prev)
{ {
MetaWindow *w = tmp->data; MetaWindow *w = tmp->data;
guint64 top_level_window; Window top_level_window;
guint64 stack_id; guint64 stack_id;
if (w->unmanaging) if (w->unmanaging)
@@ -1100,8 +1100,7 @@ stack_sync_to_xserver (MetaStack *stack)
/* The screen guard window sits above all hidden windows and acts as /* The screen guard window sits above all hidden windows and acts as
* a barrier to input reaching these windows. */ * a barrier to input reaching these windows. */
guint64 guard_window_id = stack->screen->guard_window; g_array_append_val (x11_hidden_stack_ids, stack->screen->guard_window);
g_array_append_val (x11_hidden_stack_ids, guard_window_id);
/* Sync to server */ /* Sync to server */

View File

@@ -1,48 +0,0 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* Copyright (C) 2001, 2002 Havoc Pennington
* Copyright (C) 2002, 2003 Red Hat Inc.
* Some ICCCM manager selection code derived from fvwm2,
* Copyright (C) 2001 Dominik Vogt, Matthias Clasen, and fvwm2 team
* Copyright (C) 2003 Rob Adams
* Copyright (C) 2004-2006 Elijah Newren
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef META_STARTUP_NOTIFICATION_PRIVATE_H
#define META_STARTUP_NOTIFICATION_PRIVATE_H
#include "display-private.h"
#define META_TYPE_STARTUP_NOTIFICATION (meta_startup_notification_get_type ())
G_DECLARE_FINAL_TYPE (MetaStartupNotification,
meta_startup_notification,
META, STARTUP_NOTIFICATION,
GObject)
MetaStartupNotification *
meta_startup_notification_get (MetaDisplay *display);
gboolean meta_startup_notification_handle_xevent (MetaStartupNotification *sn,
XEvent *xevent);
void meta_startup_notification_remove_sequence (MetaStartupNotification *sn,
const gchar *id);
GSList * meta_startup_notification_get_sequences (MetaStartupNotification *sn);
#endif /* META_STARTUP_NOTIFICATION_PRIVATE_H */

View File

@@ -1,770 +0,0 @@
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/*
* Copyright (C) 2001, 2002 Havoc Pennington
* Copyright (C) 2002, 2003 Red Hat Inc.
* Some ICCCM manager selection code derived from fvwm2,
* Copyright (C) 2001 Dominik Vogt, Matthias Clasen, and fvwm2 team
* Copyright (C) 2003 Rob Adams
* Copyright (C) 2004-2006 Elijah Newren
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
#include <config.h>
#include <glib-object.h>
#include <meta/errors.h>
#include "display-private.h"
#include "screen-private.h"
#include "startup-notification-private.h"
/* This should be fairly long, as it should never be required unless
* apps or .desktop files are buggy, and it's confusing if
* OpenOffice or whatever seems to stop launching - people
* might decide they need to launch it again.
*/
#define STARTUP_TIMEOUT 15000000
typedef struct _MetaStartupNotificationSequence MetaStartupNotificationSequence;
typedef struct _MetaStartupNotificationSequenceClass MetaStartupNotificationSequenceClass;
enum {
PROP_SN_0,
PROP_SN_DISPLAY,
N_SN_PROPS
};
enum {
PROP_SEQ_0,
PROP_SEQ_ID,
PROP_SEQ_TIMESTAMP,
N_SEQ_PROPS
};
enum {
SN_CHANGED,
N_SN_SIGNALS
};
static guint sn_signals[N_SN_SIGNALS];
static GParamSpec *sn_props[N_SN_PROPS];
static GParamSpec *seq_props[N_SEQ_PROPS];
typedef struct
{
GSList *list;
gint64 now;
} CollectTimedOutData;
struct _MetaStartupNotification
{
GObject parent_instance;
MetaDisplay *display;
#ifdef HAVE_STARTUP_NOTIFICATION
SnDisplay *sn_display;
SnMonitorContext *sn_context;
#endif
GSList *startup_sequences;
guint startup_sequence_timeout;
};
#define META_TYPE_STARTUP_NOTIFICATION_SEQUENCE \
(meta_startup_notification_sequence_get_type ())
G_DECLARE_DERIVABLE_TYPE (MetaStartupNotificationSequence,
meta_startup_notification_sequence,
META, STARTUP_NOTIFICATION_SEQUENCE,
GObject)
typedef struct {
gchar *id;
gint64 timestamp;
} MetaStartupNotificationSequencePrivate;
struct _MetaStartupNotificationSequenceClass {
GObjectClass parent_class;
void (* complete) (MetaStartupNotificationSequence *sequence);
};
G_DEFINE_TYPE (MetaStartupNotification,
meta_startup_notification,
G_TYPE_OBJECT)
G_DEFINE_TYPE_WITH_PRIVATE (MetaStartupNotificationSequence,
meta_startup_notification_sequence,
G_TYPE_OBJECT)
#ifdef HAVE_STARTUP_NOTIFICATION
enum {
PROP_SEQ_X11_0,
PROP_SEQ_X11_SEQ,
N_SEQ_X11_PROPS
};
struct _MetaStartupNotificationSequenceX11 {
MetaStartupNotificationSequence parent_instance;
SnStartupSequence *seq;
};
static GParamSpec *seq_x11_props[N_SEQ_X11_PROPS];
#define META_TYPE_STARTUP_NOTIFICATION_SEQUENCE_X11 \
(meta_startup_notification_sequence_x11_get_type ())
G_DECLARE_FINAL_TYPE (MetaStartupNotificationSequenceX11,
meta_startup_notification_sequence_x11,
META, STARTUP_NOTIFICATION_SEQUENCE_X11,
MetaStartupNotificationSequence)
G_DEFINE_TYPE (MetaStartupNotificationSequenceX11,
meta_startup_notification_sequence_x11,
META_TYPE_STARTUP_NOTIFICATION_SEQUENCE)
static void meta_startup_notification_ensure_timeout (MetaStartupNotification *sn);
#endif
static void
meta_startup_notification_update_feedback (MetaStartupNotification *sn)
{
MetaScreen *screen = sn->display->screen;
if (sn->startup_sequences != NULL)
{
meta_topic (META_DEBUG_STARTUP,
"Setting busy cursor\n");
meta_screen_set_cursor (screen, META_CURSOR_BUSY);
}
else
{
meta_topic (META_DEBUG_STARTUP,
"Setting default cursor\n");
meta_screen_set_cursor (screen, META_CURSOR_DEFAULT);
}
}
static void
meta_startup_notification_sequence_init (MetaStartupNotificationSequence *seq)
{
}
static void
meta_startup_notification_sequence_finalize (GObject *object)
{
MetaStartupNotificationSequence *seq;
MetaStartupNotificationSequencePrivate *priv;
seq = META_STARTUP_NOTIFICATION_SEQUENCE (object);
priv = meta_startup_notification_sequence_get_instance_private (seq);
g_free (priv->id);
G_OBJECT_CLASS (meta_startup_notification_sequence_parent_class)->finalize (object);
}
static void
meta_startup_notification_sequence_set_property (GObject *object,
guint prop_id,
const GValue *value,
GParamSpec *pspec)
{
MetaStartupNotificationSequence *seq;
MetaStartupNotificationSequencePrivate *priv;
seq = META_STARTUP_NOTIFICATION_SEQUENCE (object);
priv = meta_startup_notification_sequence_get_instance_private (seq);
switch (prop_id)
{
case PROP_SEQ_ID:
priv->id = g_value_dup_string (value);
break;
case PROP_SEQ_TIMESTAMP:
priv->timestamp = g_value_get_int64 (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
meta_startup_notification_sequence_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec)
{
MetaStartupNotificationSequence *seq;
MetaStartupNotificationSequencePrivate *priv;
seq = META_STARTUP_NOTIFICATION_SEQUENCE (object);
priv = meta_startup_notification_sequence_get_instance_private (seq);
switch (prop_id)
{
case PROP_SEQ_ID:
g_value_set_string (value, priv->id);
break;
case PROP_SEQ_TIMESTAMP:
g_value_set_int64 (value, priv->timestamp);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
meta_startup_notification_sequence_class_init (MetaStartupNotificationSequenceClass *klass)
{
GObjectClass *object_class;
object_class = G_OBJECT_CLASS (klass);
object_class->finalize = meta_startup_notification_sequence_finalize;
object_class->set_property = meta_startup_notification_sequence_set_property;
object_class->get_property = meta_startup_notification_sequence_get_property;
seq_props[PROP_SEQ_ID] =
g_param_spec_string ("id",
"ID",
"ID",
NULL,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY);
seq_props[PROP_SEQ_TIMESTAMP] =
g_param_spec_int64 ("timestamp",
"Timestamp",
"Timestamp",
G_MININT64, G_MAXINT64, 0,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY);
g_object_class_install_properties (object_class, N_SEQ_PROPS, seq_props);
}
static const gchar *
meta_startup_notification_sequence_get_id (MetaStartupNotificationSequence *seq)
{
MetaStartupNotificationSequencePrivate *priv;
priv = meta_startup_notification_sequence_get_instance_private (seq);
return priv->id;
}
#ifdef HAVE_STARTUP_NOTIFICATION
static gint64
meta_startup_notification_sequence_get_timestamp (MetaStartupNotificationSequence *seq)
{
MetaStartupNotificationSequencePrivate *priv;
priv = meta_startup_notification_sequence_get_instance_private (seq);
return priv->timestamp;
}
static void
meta_startup_notification_sequence_complete (MetaStartupNotificationSequence *seq)
{
MetaStartupNotificationSequenceClass *klass;
klass = META_STARTUP_NOTIFICATION_SEQUENCE_GET_CLASS (seq);
if (klass->complete)
klass->complete (seq);
}
#endif
#ifdef HAVE_STARTUP_NOTIFICATION
static void
meta_startup_notification_sequence_x11_complete (MetaStartupNotificationSequence *seq)
{
MetaStartupNotificationSequenceX11 *seq_x11;
seq_x11 = META_STARTUP_NOTIFICATION_SEQUENCE_X11 (seq);
sn_startup_sequence_complete (seq_x11->seq);
}
static void
meta_startup_notification_sequence_x11_finalize (GObject *object)
{
MetaStartupNotificationSequenceX11 *seq;
seq = META_STARTUP_NOTIFICATION_SEQUENCE_X11 (object);
sn_startup_sequence_unref (seq->seq);
G_OBJECT_CLASS (meta_startup_notification_sequence_x11_parent_class)->finalize (object);
}
static void
meta_startup_notification_sequence_x11_set_property (GObject *object,
guint prop_id,
const GValue *value,
GParamSpec *pspec)
{
MetaStartupNotificationSequenceX11 *seq;
seq = META_STARTUP_NOTIFICATION_SEQUENCE_X11 (object);
switch (prop_id)
{
case PROP_SEQ_X11_SEQ:
seq->seq = g_value_get_pointer (value);
sn_startup_sequence_ref (seq->seq);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
meta_startup_notification_sequence_x11_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec)
{
MetaStartupNotificationSequenceX11 *seq;
seq = META_STARTUP_NOTIFICATION_SEQUENCE_X11 (object);
switch (prop_id)
{
case PROP_SEQ_X11_SEQ:
g_value_set_pointer (value, seq->seq);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
meta_startup_notification_sequence_x11_init (MetaStartupNotificationSequenceX11 *seq)
{
}
static void
meta_startup_notification_sequence_x11_class_init (MetaStartupNotificationSequenceX11Class *klass)
{
MetaStartupNotificationSequenceClass *seq_class;
GObjectClass *object_class;
seq_class = META_STARTUP_NOTIFICATION_SEQUENCE_CLASS (klass);
seq_class->complete = meta_startup_notification_sequence_x11_complete;
object_class = G_OBJECT_CLASS (klass);
object_class->finalize = meta_startup_notification_sequence_x11_finalize;
object_class->set_property = meta_startup_notification_sequence_x11_set_property;
object_class->get_property = meta_startup_notification_sequence_x11_get_property;
seq_x11_props[PROP_SEQ_X11_SEQ] =
g_param_spec_pointer ("seq",
"Sequence",
"Sequence",
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY);
g_object_class_install_properties (object_class, N_SEQ_X11_PROPS,
seq_x11_props);
}
static MetaStartupNotificationSequence *
meta_startup_notification_sequence_x11_new (SnStartupSequence *seq)
{
gint64 timestamp;
timestamp = sn_startup_sequence_get_timestamp (seq) * 1000;
return g_object_new (META_TYPE_STARTUP_NOTIFICATION_SEQUENCE_X11,
"id", sn_startup_sequence_get_id (seq),
"timestamp", timestamp,
"seq", seq,
NULL);
}
static void
meta_startup_notification_add_sequence_internal (MetaStartupNotification *sn,
MetaStartupNotificationSequence *seq)
{
sn->startup_sequences = g_slist_prepend (sn->startup_sequences,
g_object_ref (seq));
meta_startup_notification_ensure_timeout (sn);
meta_startup_notification_update_feedback (sn);
}
static void
collect_timed_out_foreach (void *element,
void *data)
{
MetaStartupNotificationSequence *sequence = element;
CollectTimedOutData *ctod = data;
gint64 elapsed, timestamp;
timestamp = meta_startup_notification_sequence_get_timestamp (sequence);
elapsed = ctod->now - timestamp;
meta_topic (META_DEBUG_STARTUP,
"Sequence used %ld ms vs. %d max: %s\n",
elapsed, STARTUP_TIMEOUT,
meta_startup_notification_sequence_get_id (sequence));
if (elapsed > STARTUP_TIMEOUT)
ctod->list = g_slist_prepend (ctod->list, sequence);
}
static gboolean
startup_sequence_timeout (void *data)
{
MetaStartupNotification *sn = data;
CollectTimedOutData ctod;
GSList *l;
ctod.list = NULL;
ctod.now = g_get_monotonic_time ();
g_slist_foreach (sn->startup_sequences,
collect_timed_out_foreach,
&ctod);
for (l = ctod.list; l != NULL; l = l->next)
{
MetaStartupNotificationSequence *sequence = l->data;
meta_topic (META_DEBUG_STARTUP,
"Timed out sequence %s\n",
meta_startup_notification_sequence_get_id (sequence));
meta_startup_notification_sequence_complete (sequence);
}
g_slist_free (ctod.list);
if (sn->startup_sequences != NULL)
{
return TRUE;
}
else
{
/* remove */
sn->startup_sequence_timeout = 0;
return FALSE;
}
}
static void
meta_startup_notification_ensure_timeout (MetaStartupNotification *sn)
{
if (sn->startup_sequence_timeout != 0)
return;
/* our timeout just polls every second, instead of bothering
* to compute exactly when we may next time out
*/
sn->startup_sequence_timeout = g_timeout_add_seconds (1,
startup_sequence_timeout,
sn);
g_source_set_name_by_id (sn->startup_sequence_timeout,
"[mutter] startup_sequence_timeout");
}
#endif
static void
meta_startup_notification_remove_sequence_internal (MetaStartupNotification *sn,
MetaStartupNotificationSequence *seq)
{
sn->startup_sequences = g_slist_remove (sn->startup_sequences, seq);
meta_startup_notification_update_feedback (sn);
if (sn->startup_sequences == NULL &&
sn->startup_sequence_timeout != 0)
{
g_source_remove (sn->startup_sequence_timeout);
sn->startup_sequence_timeout = 0;
}
g_object_unref (seq);
}
static MetaStartupNotificationSequence *
meta_startup_notification_lookup_sequence (MetaStartupNotification *sn,
const gchar *id)
{
MetaStartupNotificationSequence *seq;
const gchar *seq_id;
GSList *l;
for (l = sn->startup_sequences; l; l = l->next)
{
seq = l->data;
seq_id = meta_startup_notification_sequence_get_id (seq);
if (g_str_equal (seq_id, id))
return l->data;
}
return NULL;
}
static void
meta_startup_notification_init (MetaStartupNotification *sn)
{
}
static void
meta_startup_notification_finalize (GObject *object)
{
MetaStartupNotification *sn = META_STARTUP_NOTIFICATION (object);
#ifdef HAVE_STARTUP_NOTIFICATION
sn_monitor_context_unref (sn->sn_context);
sn_display_unref (sn->sn_display);
#endif
if (sn->startup_sequence_timeout)
g_source_remove (sn->startup_sequence_timeout);
g_slist_foreach (sn->startup_sequences, (GFunc) g_object_unref, NULL);
g_slist_free (sn->startup_sequences);
sn->startup_sequences = NULL;
G_OBJECT_CLASS (meta_startup_notification_parent_class)->finalize (object);
}
static void
meta_startup_notification_set_property (GObject *object,
guint prop_id,
const GValue *value,
GParamSpec *pspec)
{
MetaStartupNotification *sn = META_STARTUP_NOTIFICATION (object);
switch (prop_id)
{
case PROP_SN_DISPLAY:
sn->display = g_value_get_object (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
meta_startup_notification_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec)
{
MetaStartupNotification *sn = META_STARTUP_NOTIFICATION (object);
switch (prop_id)
{
case PROP_SN_DISPLAY:
g_value_set_object (value, sn->display);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
#ifdef HAVE_STARTUP_NOTIFICATION
static void
sn_error_trap_push (SnDisplay *sn_display,
Display *xdisplay)
{
MetaDisplay *display;
display = meta_display_for_x_display (xdisplay);
if (display != NULL)
meta_error_trap_push (display);
}
static void
sn_error_trap_pop (SnDisplay *sn_display,
Display *xdisplay)
{
MetaDisplay *display;
display = meta_display_for_x_display (xdisplay);
if (display != NULL)
meta_error_trap_pop (display);
}
static void
meta_startup_notification_sn_event (SnMonitorEvent *event,
void *user_data)
{
MetaStartupNotification *sn = user_data;
MetaStartupNotificationSequence *seq;
SnStartupSequence *sequence;
sequence = sn_monitor_event_get_startup_sequence (event);
sn_startup_sequence_ref (sequence);
switch (sn_monitor_event_get_type (event))
{
case SN_MONITOR_EVENT_INITIATED:
{
const char *wmclass;
wmclass = sn_startup_sequence_get_wmclass (sequence);
meta_topic (META_DEBUG_STARTUP,
"Received startup initiated for %s wmclass %s\n",
sn_startup_sequence_get_id (sequence),
wmclass ? wmclass : "(unset)");
seq = meta_startup_notification_sequence_x11_new (sequence);
meta_startup_notification_add_sequence_internal (sn, seq);
g_object_unref (seq);
}
break;
case SN_MONITOR_EVENT_COMPLETED:
{
meta_topic (META_DEBUG_STARTUP,
"Received startup completed for %s\n",
sn_startup_sequence_get_id (sequence));
meta_startup_notification_remove_sequence (sn, sn_startup_sequence_get_id (sequence));
}
break;
case SN_MONITOR_EVENT_CHANGED:
meta_topic (META_DEBUG_STARTUP,
"Received startup changed for %s\n",
sn_startup_sequence_get_id (sequence));
break;
case SN_MONITOR_EVENT_CANCELED:
meta_topic (META_DEBUG_STARTUP,
"Received startup canceled for %s\n",
sn_startup_sequence_get_id (sequence));
break;
}
g_signal_emit (sn, sn_signals[SN_CHANGED], 0, sequence);
sn_startup_sequence_unref (sequence);
}
#endif
static void
meta_startup_notification_constructed (GObject *object)
{
MetaStartupNotification *sn = META_STARTUP_NOTIFICATION (object);
g_assert (sn->display != NULL);
#ifdef HAVE_STARTUP_NOTIFICATION
sn->sn_display = sn_display_new (sn->display->xdisplay,
sn_error_trap_push,
sn_error_trap_pop);
sn->sn_context =
sn_monitor_context_new (sn->sn_display,
sn->display->screen->number,
meta_startup_notification_sn_event,
sn,
NULL);
#endif
sn->startup_sequences = NULL;
sn->startup_sequence_timeout = 0;
}
static void
meta_startup_notification_class_init (MetaStartupNotificationClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->constructed = meta_startup_notification_constructed;
object_class->finalize = meta_startup_notification_finalize;
object_class->set_property = meta_startup_notification_set_property;
object_class->get_property = meta_startup_notification_get_property;
sn_props[PROP_SN_DISPLAY] =
g_param_spec_object ("display",
"Display",
"Display",
META_TYPE_DISPLAY,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS);
sn_signals[SN_CHANGED] =
g_signal_new ("changed",
META_TYPE_STARTUP_NOTIFICATION,
G_SIGNAL_RUN_LAST,
0, NULL, NULL, NULL,
G_TYPE_NONE, 1, G_TYPE_POINTER);
g_object_class_install_properties (object_class, N_SN_PROPS, sn_props);
}
MetaStartupNotification *
meta_startup_notification_get (MetaDisplay *display)
{
static MetaStartupNotification *notification = NULL;
if (!notification)
notification = g_object_new (META_TYPE_STARTUP_NOTIFICATION,
"display", display,
NULL);
return notification;
}
void
meta_startup_notification_remove_sequence (MetaStartupNotification *sn,
const gchar *id)
{
MetaStartupNotificationSequence *seq;
seq = meta_startup_notification_lookup_sequence (sn, id);
if (seq)
meta_startup_notification_remove_sequence_internal (sn, seq);
}
gboolean
meta_startup_notification_handle_xevent (MetaStartupNotification *sn,
XEvent *xevent)
{
#ifdef HAVE_STARTUP_NOTIFICATION
return sn_display_process_event (sn->sn_display, xevent);
#endif
return FALSE;
}
GSList *
meta_startup_notification_get_sequences (MetaStartupNotification *sn)
{
GSList *sequences = NULL;
#ifdef HAVE_STARTUP_NOTIFICATION
GSList *l;
/* We return a list of SnStartupSequences here */
for (l = sn->startup_sequences; l; l = l->next)
{
MetaStartupNotificationSequenceX11 *seq_x11;
if (!META_IS_STARTUP_NOTIFICATION_SEQUENCE_X11 (l->data))
continue;
seq_x11 = META_STARTUP_NOTIFICATION_SEQUENCE_X11 (l->data);
sequences = g_slist_prepend (sequences, seq_x11->seq);
}
#endif
return sequences;
}

View File

@@ -49,9 +49,6 @@ meta_topic_real_valist (MetaDebugTopic topic,
va_list args) G_GNUC_PRINTF(2, 0); va_list args) G_GNUC_PRINTF(2, 0);
#endif #endif
static gboolean
meta_later_remove_from_list (guint later_id, GSList **laters_list);
static gint verbose_topics = 0; static gint verbose_topics = 0;
static gboolean is_debugging = FALSE; static gboolean is_debugging = FALSE;
static gboolean replace_current = FALSE; static gboolean replace_current = FALSE;
@@ -742,14 +739,7 @@ typedef struct
gboolean run_once; gboolean run_once;
} MetaLater; } MetaLater;
static GSList *laters[] = { static GSList *laters = NULL;
NULL, /* META_LATER_RESIZE */
NULL, /* META_LATER_CALC_SHOWING */
NULL, /* META_LATER_CHECK_FULLSCREEN */
NULL, /* META_LATER_SYNC_STACK */
NULL, /* META_LATER_BEFORE_REDRAW */
NULL, /* META_LATER_IDLE */
};
/* This is a dummy timeline used to get the Clutter master clock running */ /* This is a dummy timeline used to get the Clutter master clock running */
static ClutterTimeline *later_timeline; static ClutterTimeline *later_timeline;
static guint later_repaint_func = 0; static guint later_repaint_func = 0;
@@ -782,14 +772,25 @@ destroy_later (MetaLater *later)
unref_later (later); unref_later (later);
} }
static void /* Used to sort the list of laters with the highest priority
run_repaint_laters (GSList **laters_list) * functions first.
*/
static int
compare_laters (gconstpointer a,
gconstpointer b)
{
return ((const MetaLater *)a)->when - ((const MetaLater *)b)->when;
}
static gboolean
run_repaint_laters (gpointer data)
{ {
GSList *laters_copy; GSList *laters_copy;
GSList *l; GSList *l;
gboolean keep_timeline_running = FALSE;
laters_copy = NULL; laters_copy = NULL;
for (l = *laters_list; l; l = l->next) for (l = laters; l; l = l->next)
{ {
MetaLater *later = l->data; MetaLater *later = l->data;
if (later->source == 0 || if (later->source == 0 ||
@@ -805,41 +806,22 @@ run_repaint_laters (GSList **laters_list)
{ {
MetaLater *later = l->data; MetaLater *later = l->data;
if (!later->func || !later->func (later->data)) if (later->func && later->func (later->data))
meta_later_remove_from_list (later->id, laters_list);
unref_later (later);
}
g_slist_free (laters_copy);
}
static gboolean
run_all_repaint_laters (gpointer data)
{ {
guint i;
GSList *l;
gboolean keep_timeline_running = FALSE;
for (i = 0; i < G_N_ELEMENTS (laters); i++)
{
run_repaint_laters (&laters[i]);
}
for (i = 0; i < G_N_ELEMENTS (laters); i++)
{
for (l = laters[i]; l; l = l->next)
{
MetaLater *later = l->data;
if (later->source == 0) if (later->source == 0)
keep_timeline_running = TRUE; keep_timeline_running = TRUE;
} }
else
meta_later_remove (later->id);
unref_later (later);
} }
if (!keep_timeline_running) if (!keep_timeline_running)
clutter_timeline_stop (later_timeline); clutter_timeline_stop (later_timeline);
/* Just keep the repaint func around - it's cheap if the lists are empty */ g_slist_free (laters_copy);
/* Just keep the repaint func around - it's cheap if the list is empty */
return TRUE; return TRUE;
} }
@@ -850,7 +832,7 @@ ensure_later_repaint_func (void)
later_timeline = clutter_timeline_new (G_MAXUINT); later_timeline = clutter_timeline_new (G_MAXUINT);
if (later_repaint_func == 0) if (later_repaint_func == 0)
later_repaint_func = clutter_threads_add_repaint_func (run_all_repaint_laters, later_repaint_func = clutter_threads_add_repaint_func (run_repaint_laters,
NULL, NULL); NULL, NULL);
/* Make sure the repaint function gets run */ /* Make sure the repaint function gets run */
@@ -906,7 +888,7 @@ meta_later_add (MetaLaterType when,
later->data = data; later->data = data;
later->notify = notify; later->notify = notify;
laters[when] = g_slist_prepend (laters[when], later); laters = g_slist_insert_sorted (laters, later, compare_laters);
switch (when) switch (when)
{ {
@@ -938,29 +920,6 @@ meta_later_add (MetaLaterType when,
return later->id; return later->id;
} }
static gboolean
meta_later_remove_from_list (guint later_id, GSList **laters_list)
{
GSList *l;
for (l = *laters_list; l; l = l->next)
{
MetaLater *later = l->data;
if (later->id == later_id)
{
*laters_list = g_slist_delete_link (*laters_list, l);
/* If this was a "repaint func" later, we just let the
* repaint func run and get removed
*/
destroy_later (later);
return TRUE;
}
}
return FALSE;
}
/** /**
* meta_later_remove: * meta_later_remove:
* @later_id: the integer ID returned from meta_later_add() * @later_id: the integer ID returned from meta_later_add()
@@ -970,14 +929,22 @@ meta_later_remove_from_list (guint later_id, GSList **laters_list)
void void
meta_later_remove (guint later_id) meta_later_remove (guint later_id)
{ {
guint i; GSList *l;
for (i = 0; i < G_N_ELEMENTS (laters); i++) for (l = laters; l; l = l->next)
{ {
if (meta_later_remove_from_list (later_id, &laters[i])) MetaLater *later = l->data;
if (later->id == later_id)
{
laters = g_slist_delete_link (laters, l);
/* If this was a "repaint func" later, we just let the
* repaint func run and get removed
*/
destroy_later (later);
return; return;
} }
} }
}
MetaLocaleDirection MetaLocaleDirection
meta_get_locale_direction (void) meta_get_locale_direction (void)

View File

@@ -726,7 +726,7 @@ client_window_should_be_mapped (MetaWindow *window)
{ {
#ifdef HAVE_WAYLAND #ifdef HAVE_WAYLAND
if (window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND && if (window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND &&
!meta_wayland_surface_get_buffer (window->surface)) !window->surface->buffer)
return FALSE; return FALSE;
#endif #endif
@@ -1554,7 +1554,7 @@ meta_window_should_be_showing (MetaWindow *window)
{ {
#ifdef HAVE_WAYLAND #ifdef HAVE_WAYLAND
if (window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND && if (window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND &&
!meta_wayland_surface_get_buffer (window->surface)) !window->surface->buffer)
return FALSE; return FALSE;
#endif #endif
@@ -1579,10 +1579,8 @@ implement_showing (MetaWindow *window,
* windows we might want to know where they are on the screen, * windows we might want to know where they are on the screen,
* so we should place the window even if we're hiding it rather * so we should place the window even if we're hiding it rather
* than showing it. * than showing it.
* Force placing windows only when they should be already mapped,
* see #751887
*/ */
if (!window->placed && client_window_should_be_mapped (window)) if (!window->placed)
meta_window_force_placement (window); meta_window_force_placement (window);
meta_window_hide (window); meta_window_hide (window);
@@ -3536,7 +3534,10 @@ meta_window_update_for_monitors_changed (MetaWindow *window)
{ {
const MetaMonitorInfo *old, *new; const MetaMonitorInfo *old, *new;
if (window->override_redirect || window->type == META_WINDOW_DESKTOP) if (window->type == META_WINDOW_DESKTOP)
return;
if (window->override_redirect)
{ {
meta_window_update_monitor (window, FALSE); meta_window_update_monitor (window, FALSE);
return; return;
@@ -5302,11 +5303,6 @@ meta_window_recalc_features (MetaWindow *window)
meta_window_recalc_skip_features (window); meta_window_recalc_skip_features (window);
/* To prevent users from losing windows, let's prevent users from
* minimizing skip-taskbar windows through the window decorations. */
if (window->skip_taskbar)
window->has_minimize_func = FALSE;
meta_topic (META_DEBUG_WINDOW_OPS, meta_topic (META_DEBUG_WINDOW_OPS,
"Window %s decorated = %d border_only = %d has_close = %d has_minimize = %d has_maximize = %d has_move = %d has_shade = %d skip_taskbar = %d skip_pager = %d\n", "Window %s decorated = %d border_only = %d has_close = %d has_minimize = %d has_maximize = %d has_move = %d has_shade = %d skip_taskbar = %d skip_pager = %d\n",
window->desc, window->desc,
@@ -7388,31 +7384,10 @@ meta_window_set_gtk_dbus_properties (MetaWindow *window,
g_object_thaw_notify (G_OBJECT (window)); g_object_thaw_notify (G_OBJECT (window));
} }
static gboolean
check_transient_for_loop (MetaWindow *window,
MetaWindow *parent)
{
while (parent)
{
if (parent->transient_for == window)
return TRUE;
parent = parent->transient_for;
}
return FALSE;
}
void void
meta_window_set_transient_for (MetaWindow *window, meta_window_set_transient_for (MetaWindow *window,
MetaWindow *parent) MetaWindow *parent)
{ {
if (check_transient_for_loop (window, parent))
{
meta_warning ("Setting %s transient for %s would create a loop.\n",
window->desc, parent->desc);
return;
}
if (meta_window_appears_focused (window) && window->transient_for != NULL) if (meta_window_appears_focused (window) && window->transient_for != NULL)
meta_window_propagate_focus_appearance (window, FALSE); meta_window_propagate_focus_appearance (window, FALSE);
@@ -7438,14 +7413,14 @@ meta_window_set_transient_for (MetaWindow *window,
} }
} }
/* We know this won't create a reference cycle because we check for loops */
g_clear_object (&window->transient_for);
window->transient_for = parent ? g_object_ref (parent) : NULL;
/* update stacking constraints */ /* update stacking constraints */
if (!window->override_redirect) if (!window->override_redirect)
meta_stack_update_transient (window->screen->stack, window); meta_stack_update_transient (window->screen->stack, window);
/* We know this won't create a reference cycle because we check for loops */
g_clear_object (&window->transient_for);
window->transient_for = parent ? g_object_ref (parent) : NULL;
/* possibly change its group. We treat being a window's transient as /* possibly change its group. We treat being a window's transient as
* equivalent to making it your group leader, to work around shortcomings * equivalent to making it your group leader, to work around shortcomings
* in programs such as xmms-- see #328211. * in programs such as xmms-- see #328211.
@@ -7456,7 +7431,7 @@ meta_window_set_transient_for (MetaWindow *window,
meta_window_group_leader_changed (window); meta_window_group_leader_changed (window);
if (!window->constructing && !window->override_redirect) if (!window->constructing && !window->override_redirect)
meta_window_queue (window, META_QUEUE_MOVE_RESIZE | META_QUEUE_CALC_SHOWING); meta_window_queue (window, META_QUEUE_MOVE_RESIZE);
if (meta_window_appears_focused (window) && window->transient_for != NULL) if (meta_window_appears_focused (window) && window->transient_for != NULL)
meta_window_propagate_focus_appearance (window, TRUE); meta_window_propagate_focus_appearance (window, TRUE);
@@ -7695,29 +7670,13 @@ meta_window_handle_ungrabbed_event (MetaWindow *window,
MetaDisplay *display = window->display; MetaDisplay *display = window->display;
gboolean unmodified; gboolean unmodified;
gboolean is_window_grab; gboolean is_window_grab;
ClutterModifierType grab_mods, event_mods;
gfloat x, y;
guint button;
if (window->frame && meta_ui_frame_handle_event (window->frame->ui_frame, event)) if (window->frame && meta_ui_frame_handle_event (window->frame->ui_frame, event))
return; return;
if (event->type != CLUTTER_BUTTON_PRESS && if (event->type != CLUTTER_BUTTON_PRESS)
event->type != CLUTTER_TOUCH_BEGIN)
return; return;
if (event->type == CLUTTER_TOUCH_BEGIN)
{
ClutterEventSequence *sequence;
button = 1;
sequence = clutter_event_get_event_sequence (event);
if (!meta_display_is_pointer_emulating_sequence (window->display, sequence))
return;
}
else
button = clutter_event_get_button (event);
if (display->grab_op != META_GRAB_OP_NONE) if (display->grab_op != META_GRAB_OP_NONE)
return; return;
@@ -7728,22 +7687,6 @@ meta_window_handle_ungrabbed_event (MetaWindow *window,
if (window->override_redirect) if (window->override_redirect)
return; return;
/* Don't focus panels--they must explicitly request focus.
* See bug 160470
*/
if (window->type != META_WINDOW_DOCK)
{
meta_topic (META_DEBUG_FOCUS,
"Focusing %s due to button %u press (display.c)\n",
window->desc, button);
meta_window_focus (window, event->any.time);
}
else
/* However, do allow terminals to lose focus due to new
* window mappings after the user clicks on a panel.
*/
display->allow_terminal_deactivation = TRUE;
/* We have three passive button grabs: /* We have three passive button grabs:
* - on any button, without modifiers => focuses and maybe raises the window * - on any button, without modifiers => focuses and maybe raises the window
* - on resize button, with modifiers => start an interactive resizing * - on resize button, with modifiers => start an interactive resizing
@@ -7764,12 +7707,9 @@ meta_window_handle_ungrabbed_event (MetaWindow *window,
* care about. Just let the event through. * care about. Just let the event through.
*/ */
grab_mods = meta_display_get_window_grab_modifiers (display); ClutterModifierType grab_mods = meta_display_get_window_grab_modifiers (display);
event_mods = clutter_event_get_state (event); unmodified = (event->button.modifier_state & grab_mods) == 0;
unmodified = (event_mods & grab_mods) == 0; is_window_grab = (event->button.modifier_state & grab_mods) == grab_mods;
is_window_grab = (event_mods & grab_mods) == grab_mods;
clutter_event_get_coords (event, &x, &y);
if (unmodified) if (unmodified)
{ {
@@ -7778,8 +7718,27 @@ meta_window_handle_ungrabbed_event (MetaWindow *window,
else else
meta_topic (META_DEBUG_FOCUS, meta_topic (META_DEBUG_FOCUS,
"Not raising window on click due to don't-raise-on-click option\n"); "Not raising window on click due to don't-raise-on-click option\n");
/* Don't focus panels--they must explicitly request focus.
* See bug 160470
*/
if (window->type != META_WINDOW_DOCK)
{
meta_topic (META_DEBUG_FOCUS,
"Focusing %s due to unmodified button %u press (display.c)\n",
window->desc, event->button.button);
meta_window_focus (window, event->any.time);
} }
else if (is_window_grab && (int) button == meta_prefs_get_mouse_button_resize ()) else
/* However, do allow terminals to lose focus due to new
* window mappings after the user clicks on a panel.
*/
display->allow_terminal_deactivation = TRUE;
meta_verbose ("Allowing events time %u\n",
(unsigned int)event->button.time);
}
else if (is_window_grab && (int) event->button.button == meta_prefs_get_mouse_button_resize ())
{ {
if (window->has_resize_func) if (window->has_resize_func)
{ {
@@ -7790,10 +7749,10 @@ meta_window_handle_ungrabbed_event (MetaWindow *window,
meta_window_get_frame_rect (window, &frame_rect); meta_window_get_frame_rect (window, &frame_rect);
west = x < (frame_rect.x + 1 * frame_rect.width / 3); west = event->button.x < (frame_rect.x + 1 * frame_rect.width / 3);
east = x > (frame_rect.x + 2 * frame_rect.width / 3); east = event->button.x > (frame_rect.x + 2 * frame_rect.width / 3);
north = y < (frame_rect.y + 1 * frame_rect.height / 3); north = event->button.y < (frame_rect.y + 1 * frame_rect.height / 3);
south = y > (frame_rect.y + 2 * frame_rect.height / 3); south = event->button.y > (frame_rect.y + 2 * frame_rect.height / 3);
if (west) if (west)
op |= META_GRAB_OP_WINDOW_DIR_WEST; op |= META_GRAB_OP_WINDOW_DIR_WEST;
@@ -7811,21 +7770,23 @@ meta_window_handle_ungrabbed_event (MetaWindow *window,
op, op,
TRUE, TRUE,
FALSE, FALSE,
button, event->button.button,
0, 0,
event->any.time, event->any.time,
x, y); event->button.x,
event->button.y);
} }
} }
else if (is_window_grab && (int) button == meta_prefs_get_mouse_button_menu ()) else if (is_window_grab && (int) event->button.button == meta_prefs_get_mouse_button_menu ())
{ {
if (meta_prefs_get_raise_on_click ()) if (meta_prefs_get_raise_on_click ())
meta_window_raise (window); meta_window_raise (window);
meta_window_show_menu (window, meta_window_show_menu (window,
META_WINDOW_MENU_WM, META_WINDOW_MENU_WM,
x, y); event->button.x,
event->button.y);
} }
else if (is_window_grab && (int) button == 1) else if (is_window_grab && (int) event->button.button == 1)
{ {
if (window->has_move_func) if (window->has_move_func)
{ {
@@ -7835,10 +7796,11 @@ meta_window_handle_ungrabbed_event (MetaWindow *window,
META_GRAB_OP_MOVING, META_GRAB_OP_MOVING,
TRUE, TRUE,
FALSE, FALSE,
button, event->button.button,
0, 0,
event->any.time, event->any.time,
x, y); event->button.x,
event->button.y);
} }
} }
} }

View File

@@ -520,6 +520,7 @@ void meta_frame_borders_clear (MetaFrameBorders *self);
* @META_LAYER_TOP: Top layer * @META_LAYER_TOP: Top layer
* @META_LAYER_DOCK: Dock layer * @META_LAYER_DOCK: Dock layer
* @META_LAYER_FULLSCREEN: Fullscreen layer * @META_LAYER_FULLSCREEN: Fullscreen layer
* @META_LAYER_FOCUSED_WINDOW: Focused window layer
* @META_LAYER_OVERRIDE_REDIRECT: Override-redirect layer * @META_LAYER_OVERRIDE_REDIRECT: Override-redirect layer
* @META_LAYER_LAST: Marks the end of the #MetaStackLayer enumeration * @META_LAYER_LAST: Marks the end of the #MetaStackLayer enumeration
* *
@@ -534,6 +535,7 @@ typedef enum
META_LAYER_TOP = 4, /* Same as DOCK; see EWMH and bug 330717 */ META_LAYER_TOP = 4, /* Same as DOCK; see EWMH and bug 330717 */
META_LAYER_DOCK = 4, META_LAYER_DOCK = 4,
META_LAYER_FULLSCREEN = 5, META_LAYER_FULLSCREEN = 5,
META_LAYER_FOCUSED_WINDOW = 6,
META_LAYER_OVERRIDE_REDIRECT = 7, META_LAYER_OVERRIDE_REDIRECT = 7,
META_LAYER_LAST = 8 META_LAYER_LAST = 8
} MetaStackLayer; } MetaStackLayer;

View File

@@ -34,6 +34,4 @@ MetaMonitorManager *meta_monitor_manager_get (void);
gint meta_monitor_manager_get_monitor_for_output (MetaMonitorManager *manager, gint meta_monitor_manager_get_monitor_for_output (MetaMonitorManager *manager,
guint id); guint id);
gboolean meta_monitor_manager_get_is_builtin_display_on (MetaMonitorManager *manager);
#endif /* META_MONITOR_MANAGER_H */ #endif /* META_MONITOR_MANAGER_H */

View File

@@ -9,8 +9,6 @@
<method name="TakeControl"> <method name="TakeControl">
<arg name="force" type="b"/> <arg name="force" type="b"/>
</method> </method>
<method name="ReleaseControl">
</method>
<method name="TakeDevice"> <method name="TakeDevice">
<annotation name="org.gtk.GDBus.C.UnixFD" value="true"/> <annotation name="org.gtk.GDBus.C.UnixFD" value="true"/>
<arg name="major" type="u" direction="in"/> <arg name="major" type="u" direction="in"/>

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