Compare commits

..

12 Commits

Author SHA1 Message Date
Carlos Garnacho
cb16822780 backends/native: Expose all transform modes in CRTCs
We can only honor this properly in the MUTTER_STAGE_VIEWS=1 case. When using
the legacy view, software implemented transforms are only exposed if there is
only one output, as we can only transform the entire stage there.

https://bugzilla.gnome.org/show_bug.cgi?id=745079
2016-08-23 19:24:35 +02:00
Carlos Garnacho
06112b1b0f backends/native: Set offscreen on the transformed MetaRendererViews
The texture is only created if the view is transformed at the software level,
otherwise the texture is NULL, and rendering happens on the onscreen.

https://bugzilla.gnome.org/show_bug.cgi?id=745079
2016-08-23 19:24:35 +02:00
Carlos Garnacho
c7ff89bb01 backends/native: Refactor onscreen creation into separate function
And use the right size, regarless of view transform.

https://bugzilla.gnome.org/show_bug.cgi?id=745079
2016-08-23 19:24:35 +02:00
Carlos Garnacho
f36ae220c1 backends/native: Use framebuffer size on swap_buffers implementation
Instead of ClutterStageView layout, which may be affected by transformations.

https://bugzilla.gnome.org/show_bug.cgi?id=745079
2016-08-23 19:24:35 +02:00
Carlos Garnacho
8a50db5959 backends/native: Set transform on MetaRendererViews
Only do this if mutter uses the multiple stage views feature. This
is uneffective at the moment because no back texture is set yet.

https://bugzilla.gnome.org/show_bug.cgi?id=745079
2016-08-23 19:24:35 +02:00
Carlos Garnacho
8f05b0e020 backends: Add MetaStageView::transform property
This property updates the ClutterStageView pipeline, so the texture is applied
with the corresponding transform.

https://bugzilla.gnome.org/show_bug.cgi?id=745079
2016-08-23 19:24:35 +02:00
Carlos Garnacho
534f3aa5c9 clutter/cogl: Transform swap buffers regions into onscreen coordinates
Those are given in view coordinates, so we must transform into onscreen
coordinates in order to perform swap_buffers on the right damage regions.

https://bugzilla.gnome.org/show_bug.cgi?id=745079
2016-08-23 19:24:35 +02:00
Carlos Garnacho
f1a0985e3a clutter: Hook up ClutterStageView render-to-texture
"Blit" the result on the framebuffer after each view is painted.
This of course only applies if there is an offscreen buffer to
perform any blitting. Otherwise the onscreen framebuffer is rendered
to directly.

https://bugzilla.gnome.org/show_bug.cgi?id=745079
2016-08-23 19:24:35 +02:00
Carlos Garnacho
6302ffe8ac clutter: Add infrastructure to render ClutterStageViews to offscreen
The offscreen is given through the ::back-buffer property, the ClutterStageView
will set up the the CoglPipeline used to render it back to the "onscreen"
framebuffer.

The pipeline can be altered through the setup_pipeline() vfunc, so ClutterStageView
implementations can alter the default behavior of blitting from offscreen to
onscreen with no transformations.

https://bugzilla.gnome.org/show_bug.cgi?id=745079
2016-08-23 19:24:21 +02:00
Carlos Garnacho
acc2ad9658 backends/native: Refactor g_object_set() call
Makes sense to update ::layout inside meta_renderer_native_set_legacy_view_size().

https://bugzilla.gnome.org/show_bug.cgi?id=745079
2016-08-23 18:16:54 +02:00
Carlos Garnacho
d58f94dd47 backends/native: Remove unneeded call
The call to _cogl_framebuffer_winsys_update_size() results in no-op here,
as the framebuffer has already the right size when rebuilding the views.

https://bugzilla.gnome.org/show_bug.cgi?id=745079
2016-08-23 18:16:54 +02:00
Carlos Garnacho
c63558dded backends/native: Split hw supported CRTC rotation modes
Those will need a separate treatment from the modes that we eventually
support through "software", so split those into a separate enum so we
can can do the right thing when applying the configuration.

Also, add a helper function that returns the transform that the software
fallbacks should perform, which should be "normal" if the rotation is
already handled via hw.

https://bugzilla.gnome.org/show_bug.cgi?id=745079
2016-08-23 18:16:49 +02:00
292 changed files with 18505 additions and 35150 deletions

1
.gitignore vendored
View File

@@ -86,7 +86,6 @@ src/pointer-constraints-unstable-v*-server-protocol.h
src/xdg-foreign-unstable-v*-protocol.c src/xdg-foreign-unstable-v*-protocol.c
src/xdg-foreign-unstable-v*-server-protocol.h src/xdg-foreign-unstable-v*-server-protocol.h
src/meta/meta-version.h src/meta/meta-version.h
src/libmutter-*.pc
doc/reference/*.args doc/reference/*.args
doc/reference/*.bak doc/reference/*.bak
doc/reference/*.hierarchy doc/reference/*.hierarchy

264
NEWS
View File

@@ -1,267 +1,3 @@
3.24.4
======
* Fix wacom cursor offset on wayland [Jason; #784009]
* Do not throttle motion events on tablet tools [Carlos; #783535]
* Handle left-handed mode on pen/eraser devices [Carlos; #782027]
* Fix crash when decreasing number of workspaces [Florian; #784223]
* Fix crash when moving across on-adjacent monitors [Jonas; #783630]
* Fix window moving/resizing via tablet tools [Jason; #777333]
* Improve stability of tablet plugs/unplugs [Carlos; #784881]
* Implement tablet rings/strips configuration [Carlos; #782033]
* Support tablet wheel events on wayland [Jason; #783716]
* Misc. bug fixes [Carlos, Jonas; #784402, #784867, #781723]
Contributors:
Jonas Ådahl, Carlos Garnacho, Jason Gerecke, Florian Müllner
Translations:
Jordi Mas [ca]
3.24.3
======
* Fix handling of tiled monitors [Jonas; #781723]
* Fix swapped red and blue channels in CoglTexture data [Carlos; #779234]
* Fix glitches when opening a window maximized [Olivier; #781353, #782183]
* Implement support for disable-while-typing option [Evan; #764852]
* Consider subsurfaces when grabbing [mindtree; #781811]
* Fix handling of left-handed mode on pen/eraser devices [Carlos; #782027]
* Fix output cycling in non-display-attached tablets [Carlos; #782032]
* Fix wacom cursor offset on wayland [Jason; #784009]
* Handle EXIF orientation of backgrounds [Silvère; #783125]
* Misc. bug fixes [Jonas, Bastien, Ikey, Carlos; #782156, #780407, #757661,
#783113, #781703]
Contributors:
mitchmindtree, Jonas Ådahl, Ikey Doherty, Olivier Fourdan, Carlos Garnacho,
Jason Gerecke, Silvère Latchurié, Bastien Nocera, Evan Welsh
3.24.2
======
* Don't crash when wayland clients commit to destroyed surfaces [Jonas; #781391]
* Fix frame updates on hide-titlebar-when-maximized changes [Florian; #781862]
* Fix accessible screen coordinates on X11 [Florian; #781902]
* Fix copy+paste of UTF8 strings between X11 and wayland [Carlos; #782472]
* Fix non-wayland builds [Chris; #780533]
* Misc. bug fixes [Philip, Matthias, Nigel; #781242, #780215, #759085]
Contributors:
Jonas Ådahl, Philip Chimento, Carlos Garnacho, Matthias Liertzer,
Florian Müllner, Nigel Taylor, Chris Vine
Translations:
Jordi Mas [ca]
3.24.1
======
* Always sync window geometry on state changes [Jonas; #780292]
* Use EGL instead of GLX when drawing using GLES [Jonas; #771636]
* Fix HiDPI detection on vertical monitor layouts [Carlos; #777687]
* Get double-click timing from desktop mouse settings [Armin; #771576]
* Scale relative motion deltas with monitor scale [Jonas, Carlos; #778119]
* Use texture fallback when setting hardware cursor fails [Jente; #770020]
* Fix lock-up when using additional theme variants [Shantanu; #780254]
Contributors:
Jonas Ådahl, Carlos Garnacho, Shantanu Goel, Jente Hidskes, Armin Krezović,
Florian Müllner
Translations:
Yuras Shumovich [be], Yosef Or Boczko [he], Tom Tryfonidis [el]
3.24.0
======
Translations:
Yuri Myasoedov [ru], Rūdolfs Mazurs [lv], Jordi Mas [ca]
3.23.92
=======
* Properly handle EGLOutput acquire errors [Jonas, Miguel; #779112]
* Fix crash when a window closes during Alt+Tab [Rui; #779483]
* Implement DnD handling code in wayland [Hyungwon; #765003]
* Fix fallout from pixel conversion optimization in 3.23.91 [Carlos; #779234]
* Fix mouse input stopping to work in applications [Carlos; #763246]
* Fix DnD between QT5 and GTK3 applications on wayland [Carlos; #779757]
* Make EDID reading less fragile [Jonas; #779837]
* Add support for tablet grouping [Carlos; #779986]
* Misc. bug fixes and cleanups [Rui, Jonas; #779436, #779001, #779745]
Contributors:
Jonas Ådahl, Miguel A. Vico, Olivier Fourdan, Carlos Garnacho,
Hyungwon Hwang, Rui Matos
Translations:
Chao-Hsiung Liao [zh_TW], Sveinn í Felli [is], Ask Hjorth Larsen [da],
Changwoo Ryu [ko], Aurimas Černius [lt], GNOME Translation Robot [gd],
Marek Černocký [cs], Fran Dieguez [gl], Dušan Kazik [sk]
3.23.91
=======
* Give libinput read-only access to /sys [Carlos; #778472]
* Allow edge-scrolling without 2-finger-scroll capable devices [Rui; #778554]
* Fullscreen windows on the requested monitor on wayland [Rui; #772525]
* Implement threaded swap_event fallback for NVIDIA driver [Owen; #779039]
* Avoid pixel conversions when storing textures from cairo [Carlos; #779234]
* Misc. bug fixes [Piotr, Rui, Florian; #772218, #776919, #778831, #642652]
Contributors:
Piotr Drąg, Carlos Garnacho, Rui Matos, Florian Müllner, Owen W. Taylor
Translations:
Inaki Larranaga Murgoitio [eu], Daniel Mustieles [es], Claude Paroz [fr],
Mario Blättermann [de], Kjartan Maraas [nb], Piotr Drąg [pl],
Andika Triwidada [id], Anders Jonsson [sv], Milo Casagrande [it],
Fabio Tomat [fur], Rafael Fontenelle [pt_BR],
Мирослав Николић [sr, sr@latin], Balázs Meskó [hu], Chao-Hsiung Liao [zh_TW]
3.23.90
=======
* Fix window menu placement with HiDPI [Jonas; #776055]
* Improve EGLStream support [Jonas; #773629]
* Start moving low-level monitor configuration into mutter [Jonas; #777732]
* Fix erroneous key event repeats [Rui; #774989]
* Don't hardcode seat ID in ClutterDeviceManager [Carlos; #778092]
* Fix "ghost" cursors in multi-monitor setups [Jonas; #771056]
* Use eglGetPlatformDisplay [Adam; #772422]
* Fix erratic raise_or_lower behavior [Jose; #705200]
* Fix coordinate mapping of absolute devices [Carlos; #774115]
* Show OSD on tablet mode switches [Carlos; #771098]
* Make mutter libs parallel installable [Jonas; #777317]
* Only apply keymap when not running nested [Jonas; #777800]
* Set right scale for tablet tool cursors on HiDPI [Carlos; #778474]
* Adjust server-side shadows to match Adwaita [Juraj; #744667]
* Misc. bug fixes [Jonas, Bastien, Carlos, Peter, Lionel, Jeremy, Florian;
#774891, #777389, #777691, #778262, #776543, #778684, #778699, #744667]
Contributors:
Jonas Ådahl, Jeremy Bicha, Piotr Drąg, Juraj Fiala, Carlos Garnacho,
Peter Hutterer, Adam Jackson, Lionel Landwerlin, Jose Marino, Rui Matos,
Florian Müllner, Bastien Nocera
Translations:
Kjartan Maraas [nb], Mandy Wang [zh_CN], Marek Černocký [cs],
Anders Jonsson [sv], Dušan Kazik [sk], Piotr Drąg [pl], Matej Urbančič [sl]
3.23.3
======
* Fix frequent freezes in multihead setups on wayland [Rui; #774557]
* Preserve root window mask on XSelectionRequest [Olivier; #776128]
* Misc. bug fixes [Carlos, Florian, Rui, Olivier; #775478, #774891, #775986,
#776036]
Contributors:
Olivier Fourdan, Carlos Garnacho, Rui Matos, Florian Müllner
3.23.2
======
* Stack docks below other windows on fullscreen monitors [Rui; #772937]
* Fix popup grabs blocking screen lock on wayland [Rui; #771235]
* Handle touchpad pinch gestures with more than two fingers [Carlos; #765937]
* Implement drawing tablet support on X11 [Carlos; #773779]
* Fix some Wine games starting minimized [Carlos; #774333]
* Fix switching between two finger- and edge scrolling on wayland [Rui; #771744]
* Implement support for EGLStream/EGLDevice [Jonas; #773629]
* Add size_changed vfunc to handle async client size changes [Rui; #770345]
* Change focus window on clicks with any modifiers [Rui; #746642]
* Misc. bug fixes and cleanups [Carlos, Daniel, Jonas, Rui; #771067, #774330, #774613,
#771297, #774135, #774827, #774923]
Contributors:
Jonas Ådahl, Carlos Garnacho, Rui Matos, Florian Müllner, Daniel Stone
Translations:
Kjartan Maraas [nb]
3.23.1
======
* Fix handling of Escape shortcut in force-quit dialog [Landry; #737109]
* Improve pointer constraints support [Jonas; #771859]
* Really fix framebuffer capture origin offset [Rui; #771502]
* Fix session going into idle mode immediately on startup [Rui; #772839]
* Fix mirror mode with stage views [Rui; #773115]
* Fall back to X with connectors spread across multiple GPUs [Ray; #771442]
* Fix various crashes on wayland [Jonas, Carlos; #771646, #771858, #772929]
* Fix various placement issues on wayland [Olivier, Jonas, Sjoerd; #772729,
#768039, #771841, #771841, #773141]
* Misc. bug fixes [Rui, Jonas, Olivier; #771019, #773116, #772914, #773210]
Contributors:
Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Rui Matos, Landry MINOZA,
Sjoerd Simons, Ray Strode
Translations:
Theppitak Karoonboonyanan [th], Kjartan Maraas [nb], Hannie Dumoleyn [nl],
liushuyu [zh_CN]
3.22.1
======
* Fix feedback loop between StClipboard and X11 bridge [Carlos; #760745]
* Fall back gracefully if DRM plane rotation fails [Carlos; #772512]
* Approximate native monitor backend behavior to X [Rui; #772176]
* Fix crash on VT switch on wayland [Jonas; #771646]
* Expose Flatpak ID for application matching [Florian; #772613, #772614]
Contributors:
Jonas Ådahl, Carlos Garnacho, Rui Matos, Florian Müllner, Olav Vitters
Translations:
Inaki Larranaga Murgoitio [eu], Milo Casagrande [it]
3.22.0
======
* Fix wayland crashes [Jonas; #771305, #771345, #770940, #771495]
* Fix display rotation on wayland [Jonas; #770672]
* Fix framebuffer capture origin offset [Rui; #771502]
* Misc. bug fixes [Jonas, Florian, Carlos; #770937, #771536, #771628, #771549]
Contributors:
Jonas Ådahl, Carlos Garnacho, Rui Matos, Florian Müllner
Translations:
Ask Hjorth Larsen [da], Charles Monzat [fr], Stas Solovey [ru],
Tom Tryfonidis [el], David King [en_GB]
3.21.92
=======
* Fix absolute pointer motion events on wayland [Jonas; #770557]
* Default to using stage views [Jonas; #770366]
* Fix animated cursors on wayland [Rui; #749913]
* Fix various crashes on wayland [Jonas; #757568, #770727, #770992]
* Fix screen capture for stage views not at (0, 0) [Jonas; #770127]
* Compress motion events instead of discarding them [Jonas; #771049]
* Fix XWayland pointer warp emulation [Jonas; #771050]
* Add common monitor modes in KMS backend [Rui; #744544]
* Temporarily use g-s-d schemas for tablet configuration [Carlos; #771315]
* Misc. bug fixes [Jonas, Carlos; #770402, #770647, #770991, #770994, #770929]
Contributors:
Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Rui Matos, Florian Müllner
Translations:
Changwoo Ryu [ko], Baurzhan Muftakhidinov [kk], Anders Jonsson [sv],
Tiago Santos [pt], Rafael Fontenelle [pt_BR], Mario Blättermann [de],
Alexander Shopov [bg], Rūdolfs Mazurs [lv], Fran Dieguez [gl],
Trần Ngọc Quân [vi], Piotr Drąg [pl], Мирослав Николић [sr, sr@latin]
3.21.91
=======
* Add support for xdg-foreign protocol [Jonas; #769786]
* Support monitor rotation on wayland [Carlos; #745079]
* Port xdg-shell implementation to unstable v6 [Jonas; #769936]
* Handle unsupported buffer sizes more gracefully [Olivier; #770387]
* Use the same output naming logic as the X server on wayland [Rui; #770338]
* Fix replies in gnome-shell's chat notifications on wayland [Florian; #758167]
* Misc. bug fixes and cleanups [Bastien, Sjoerd, Jonas; #769276, #769636,
#770131, #770324, #769731]
Contributors:
Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Rui Matos, Florian Müllner,
Bastien Nocera, Sjoerd Simons
Translations:
Piotr Drąg [pl], Mario Blättermann [de], Andika Triwidada [id],
Enrico Nicoletto [pt_BR], Мирослав Николић [sr, sr@latin]
3.21.90 3.21.90
======= =======
* Consider XDG_SESSION_TYPE when determining session type [Jouke; #759388] * Consider XDG_SESSION_TYPE when determining session type [Jouke; #759388]

View File

@@ -6,23 +6,16 @@ test -z "$srcdir" && srcdir=.
REQUIRED_AUTOMAKE_VERSION=1.11 REQUIRED_AUTOMAKE_VERSION=1.11
olddir="$(pwd)" (test -f $srcdir/configure.ac \
&& test -d $srcdir/src) || {
cd "${srcdir}"
(test -f configure.ac \
&& test -d src) || {
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
echo " top-level mutter directory" echo " top-level metacity directory"
exit 1 exit 1
} }
aclocal --install || exit 1 which gnome-autogen.sh || {
intltoolize --force --copy --automake || exit 1 echo "You need to install gnome-common from GNOME Subversion (or from"
autoreconf --verbose --force --install || exit 1 echo "your distribution's package manager)."
exit 1
cd "${olddir}" }
. gnome-autogen.sh
if [ "$NOCONFIGURE" = "" ]; then
"${srcdir}/configure" "$@" || exit 1
fi

View File

@@ -25,7 +25,6 @@ AM_CPPFLAGS = \
-I$(top_builddir)/clutter \ -I$(top_builddir)/clutter \
-I$(top_srcdir)/../cogl \ -I$(top_srcdir)/../cogl \
-I$(top_builddir)/../cogl \ -I$(top_builddir)/../cogl \
-I$(top_builddir)/../cogl/cogl \
$(CLUTTER_DEPRECATED_CFLAGS) \ $(CLUTTER_DEPRECATED_CFLAGS) \
$(CLUTTER_DEBUG_CFLAGS) \ $(CLUTTER_DEBUG_CFLAGS) \
$(CLUTTER_HIDDEN_VISIBILITY_CFLAGS) \ $(CLUTTER_HIDDEN_VISIBILITY_CFLAGS) \
@@ -37,7 +36,7 @@ AM_CFLAGS = $(CLUTTER_CFLAGS) $(MAINTAINER_CFLAGS)
INTROSPECTION_GIRS = INTROSPECTION_GIRS =
# the base include path for headers # the base include path for headers
clutter_base_includedir = $(includedir)/mutter/clutter-$(LIBMUTTER_API_VERSION) clutter_base_includedir = $(includedir)/mutter/clutter-$(CLUTTER_API_VERSION)
clutter_includedir = $(clutter_base_includedir)/clutter clutter_includedir = $(clutter_base_includedir)/clutter
clutter_deprecateddir = $(clutter_base_includedir)/clutter/deprecated clutter_deprecateddir = $(clutter_base_includedir)/clutter/deprecated
@@ -113,6 +112,7 @@ source_h = \
clutter-snap-constraint.h \ clutter-snap-constraint.h \
clutter-stage.h \ clutter-stage.h \
clutter-stage-manager.h \ clutter-stage-manager.h \
clutter-stage-view.h \
clutter-tap-action.h \ clutter-tap-action.h \
clutter-test-utils.h \ clutter-test-utils.h \
clutter-texture.h \ clutter-texture.h \
@@ -198,6 +198,7 @@ source_c = \
clutter-snap-constraint.c \ clutter-snap-constraint.c \
clutter-stage.c \ clutter-stage.c \
clutter-stage-manager.c \ clutter-stage-manager.c \
clutter-stage-view.c \
clutter-stage-window.c \ clutter-stage-window.c \
clutter-tap-action.c \ clutter-tap-action.c \
clutter-test-utils.c \ clutter-test-utils.c \
@@ -239,7 +240,6 @@ source_h_priv = \
clutter-settings-private.h \ clutter-settings-private.h \
clutter-stage-manager-private.h \ clutter-stage-manager-private.h \
clutter-stage-private.h \ clutter-stage-private.h \
clutter-stage-view.h \
clutter-stage-window.h \ clutter-stage-window.h \
$(NULL) $(NULL)
@@ -248,7 +248,6 @@ source_c_priv = \
clutter-easing.c \ clutter-easing.c \
clutter-event-translator.c \ clutter-event-translator.c \
clutter-id-pool.c \ clutter-id-pool.c \
clutter-stage-view.c \
$(NULL) $(NULL)
# deprecated installed headers # deprecated installed headers
@@ -356,7 +355,7 @@ EXTRA_DIST += clutter-version.h.in clutter-version.h
# key symbol update script # key symbol update script
EXTRA_DIST += clutter-keysyms-update.pl EXTRA_DIST += clutter-keysyms-update.pl
pc_files += mutter-clutter-$(LIBMUTTER_API_VERSION).pc pc_files += mutter-clutter-$(CLUTTER_API_VERSION).pc
# in order to be compatible with Clutter < 1.10, when we shipped a single # in order to be compatible with Clutter < 1.10, when we shipped a single
# shared library whose name was determined by the single backend it # shared library whose name was determined by the single backend it
@@ -414,13 +413,11 @@ x11_source_c_priv = \
x11_source_c += \ x11_source_c += \
x11/clutter-device-manager-xi2.c \ x11/clutter-device-manager-xi2.c \
x11/clutter-input-device-xi2.c \ x11/clutter-input-device-xi2.c \
x11/clutter-input-device-tool-xi2.c \
$(NULL) $(NULL)
x11_source_h_priv += \ x11_source_h_priv += \
x11/clutter-device-manager-xi2.h \ x11/clutter-device-manager-xi2.h \
x11/clutter-input-device-xi2.h \ x11/clutter-input-device-xi2.h \
x11/clutter-input-device-tool-xi2.h \
$(NULL) $(NULL)
x11_source_c += \ x11_source_c += \
@@ -442,10 +439,10 @@ x11_introspection = $(x11_source_c) $(x11_source_h)
clutterx11_includedir = $(clutter_includedir)/x11 clutterx11_includedir = $(clutter_includedir)/x11
clutterx11_include_HEADERS = $(x11_source_h) clutterx11_include_HEADERS = $(x11_source_h)
mutter-clutter-x11-@LIBMUTTER_API_VERSION@.pc: mutter-clutter-$(LIBMUTTER_API_VERSION).pc mutter-clutter-x11-$(CLUTTER_API_VERSION).pc: mutter-clutter-$(CLUTTER_API_VERSION).pc
$(QUIET_GEN)cp -f $< $(@F) $(QUIET_GEN)cp -f $< $(@F)
pc_files += mutter-clutter-x11-$(LIBMUTTER_API_VERSION).pc pc_files += mutter-clutter-x11-$(CLUTTER_API_VERSION).pc
# Shared cogl backend files # Shared cogl backend files
cogl_source_h = cogl_source_h =
@@ -583,17 +580,17 @@ nodist_clutter_include_HEADERS = clutter-config.h $(built_source_h)
clutter_deprecated_HEADERS = $(deprecated_h) clutter_deprecated_HEADERS = $(deprecated_h)
mutterlibdir = $(libdir)/mutter mutterlibdir = $(libdir)/mutter
mutterlib_LTLIBRARIES = libmutter-clutter-@LIBMUTTER_API_VERSION@.la mutterlib_LTLIBRARIES = libmutter-clutter-@CLUTTER_API_VERSION@.la
libmutter_clutter_@LIBMUTTER_API_VERSION@_la_LIBADD = \ libmutter_clutter_@CLUTTER_API_VERSION@_la_LIBADD = \
$(LIBM) \ $(LIBM) \
$(CLUTTER_LIBS) \ $(CLUTTER_LIBS) \
$(top_builddir)/../cogl/cogl/libmutter-cogl-$(LIBMUTTER_API_VERSION).la \ $(top_builddir)/../cogl/cogl/libmutter-cogl.la \
$(top_builddir)/../cogl/cogl-pango/libmutter-cogl-pango-$(LIBMUTTER_API_VERSION).la \ $(top_builddir)/../cogl/cogl-pango/libmutter-cogl-pango.la \
$(top_builddir)/../cogl/cogl-path/libmutter-cogl-path-$(LIBMUTTER_API_VERSION).la \ $(top_builddir)/../cogl/cogl-path/libmutter-cogl-path.la \
$(NULL) $(NULL)
libmutter_clutter_@LIBMUTTER_API_VERSION@_la_SOURCES = \ libmutter_clutter_@CLUTTER_API_VERSION@_la_SOURCES = \
$(backend_source_c) \ $(backend_source_c) \
$(backend_source_h) \ $(backend_source_h) \
$(backend_source_c_priv) \ $(backend_source_c_priv) \
@@ -611,12 +608,12 @@ libmutter_clutter_@LIBMUTTER_API_VERSION@_la_SOURCES = \
$(cally_sources_private) \ $(cally_sources_private) \
$(NULL) $(NULL)
nodist_libmutter_clutter_@LIBMUTTER_API_VERSION@_la_SOURCES = \ nodist_libmutter_clutter_@CLUTTER_API_VERSION@_la_SOURCES = \
$(backend_source_built) \ $(backend_source_built) \
$(built_source_c) \ $(built_source_c) \
$(built_source_h) $(built_source_h)
libmutter_clutter_@LIBMUTTER_API_VERSION@_la_LDFLAGS = \ libmutter_clutter_@CLUTTER_API_VERSION@_la_LDFLAGS = \
$(CLUTTER_LINK_FLAGS) \ $(CLUTTER_LINK_FLAGS) \
$(CLUTTER_LT_LDFLAGS) \ $(CLUTTER_LT_LDFLAGS) \
-export-dynamic \ -export-dynamic \
@@ -630,13 +627,13 @@ install-exec-local:
rm -f $$lib.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION); \ rm -f $$lib.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION); \
) ; \ ) ; \
(cd $(DESTDIR)$(mutterlibdir) && \ (cd $(DESTDIR)$(mutterlibdir) && \
{ ln -s -f libmutter-clutter-$(LIBMUTTER_API_VERSION).so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib.0 || \ { ln -s -f libmutter-clutter-$(CLUTTER_API_VERSION).so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib.0 || \
{ rm -f $$lib.0 && ln -s libmutter-clutter-$(LIBMUTTER_API_VERSION).so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib.0; }; \ { rm -f $$lib.0 && ln -s libmutter-clutter-1.0.so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib.0; }; \
} \ } \
) ; \ ) ; \
(cd $(DESTDIR)$(mutterlibdir) && \ (cd $(DESTDIR)$(mutterlibdir) && \
{ ln -s -f libmutter-clutter-$(LIBMUTTER_API_VERSION).so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib || \ { ln -s -f libmutter-clutter-$(CLUTTER_API_VERSION).so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib || \
{ rm -f $$lib && ln -s libmutter-clutter-$(LIBMUTTER_API_VERSION).so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib; }; \ { rm -f $$lib && ln -s libmutter-clutter-1.0.so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib; }; \
} \ } \
) ; \ ) ; \
done done
@@ -644,65 +641,59 @@ install-exec-local:
# gobject-introspection rules # gobject-introspection rules
-include $(INTROSPECTION_MAKEFILE) -include $(INTROSPECTION_MAKEFILE)
INTROSPECTION_SCANNER_ARGS = \ INTROSPECTION_SCANNER_ARGS = --add-include-path=$(top_builddir)/../cogl/cogl --add-include-path=$(top_builddir)/../cogl/cogl-pango
--add-include-path=$(top_builddir)/../cogl/cogl \ INTROSPECTION_COMPILER_ARGS = --includedir=$(top_builddir)/../cogl/cogl --includedir=$(top_builddir)/../cogl/cogl-pango
--add-include-path=$(top_builddir)/../cogl/cogl-pango
INTROSPECTION_COMPILER_ARGS = \
--includedir=$(top_builddir)/../cogl/cogl \
--includedir=$(top_builddir)/../cogl/cogl-pango
INTROSPECTION_SCANNER_ENV = \
PKG_CONFIG_PATH=$(top_builddir)/../cogl/cogl/:$(top_builddir)/../cogl/cogl-pango/:$${PKG_CONFIG_PATH}
Clutter-@LIBMUTTER_API_VERSION@.gir: libmutter-clutter-@LIBMUTTER_API_VERSION@.la Makefile Clutter-@CLUTTER_API_VERSION@.gir: libmutter-clutter-@CLUTTER_API_VERSION@.la Makefile
Clutter_@LIBMUTTER_API_VERSION@_gir_NAMESPACE = Clutter Clutter_@CLUTTER_API_VERSION_AM@_gir_NAMESPACE = Clutter
Clutter_@LIBMUTTER_API_VERSION@_gir_VERSION = @LIBMUTTER_API_VERSION@ Clutter_@CLUTTER_API_VERSION_AM@_gir_VERSION = @CLUTTER_API_VERSION@
Clutter_@LIBMUTTER_API_VERSION@_gir_LIBS = libmutter-clutter-@LIBMUTTER_API_VERSION@.la Clutter_@CLUTTER_API_VERSION_AM@_gir_LIBS = libmutter-clutter-@CLUTTER_API_VERSION@.la
Clutter_@LIBMUTTER_API_VERSION@_gir_FILES = \ Clutter_@CLUTTER_API_VERSION_AM@_gir_FILES = \
$(clutter_include_HEADERS) \ $(clutter_include_HEADERS) \
$(clutter_deprecated_HEADERS) \ $(clutter_deprecated_HEADERS) \
$(nodist_clutter_include_HEADERS) \ $(nodist_clutter_include_HEADERS) \
$(source_c) \ $(source_c) \
$(deprecated_c) \ $(deprecated_c) \
$(built_source_c) $(built_source_c)
Clutter_@LIBMUTTER_API_VERSION@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS) Clutter_@CLUTTER_API_VERSION_AM@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS)
Clutter_@LIBMUTTER_API_VERSION@_gir_INCLUDES = GL-1.0 GObject-2.0 cairo-1.0 Cogl-@LIBMUTTER_API_VERSION@ CoglPango-@LIBMUTTER_API_VERSION@ Atk-1.0 Json-1.0 Clutter_@CLUTTER_API_VERSION_AM@_gir_INCLUDES = GL-1.0 GObject-2.0 cairo-1.0 Cogl-1.0 CoglPango-1.0 Atk-1.0 Json-1.0
Clutter_@LIBMUTTER_API_VERSION@_gir_SCANNERFLAGS = \ Clutter_@CLUTTER_API_VERSION_AM@_gir_SCANNERFLAGS = \
--warn-all \ --warn-all \
--c-include='clutter/clutter.h' \ --c-include='clutter/clutter.h' \
--pkg-export=mutter-clutter-@LIBMUTTER_API_VERSION@ --pkg-export=mutter-clutter-@CLUTTER_API_VERSION@
INTROSPECTION_GIRS += Clutter-@LIBMUTTER_API_VERSION@.gir INTROSPECTION_GIRS += Clutter-@CLUTTER_API_VERSION@.gir
Cally-@LIBMUTTER_API_VERSION@.gir: Makefile Clutter-@LIBMUTTER_API_VERSION@.gir Cally-@CLUTTER_API_VERSION@.gir: Makefile Clutter-@CLUTTER_API_VERSION@.gir
Cally_@LIBMUTTER_API_VERSION@_gir_NAMESPACE = Cally Cally_@CLUTTER_API_VERSION_AM@_gir_NAMESPACE = Cally
Cally_@LIBMUTTER_API_VERSION@_gir_VERSION = @LIBMUTTER_API_VERSION@ Cally_@CLUTTER_API_VERSION_AM@_gir_VERSION = @CLUTTER_API_VERSION@
Cally_@LIBMUTTER_API_VERSION@_gir_LIBS = libmutter-clutter-@LIBMUTTER_API_VERSION@.la Cally_@CLUTTER_API_VERSION_AM@_gir_LIBS = libmutter-clutter-@CLUTTER_API_VERSION@.la
Cally_@LIBMUTTER_API_VERSION@_gir_FILES = $(cally_sources_h) $(cally_sources_c) Cally_@CLUTTER_API_VERSION_AM@_gir_FILES = $(cally_sources_h) $(cally_sources_c)
Cally_@LIBMUTTER_API_VERSION@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS) Cally_@CLUTTER_API_VERSION_AM@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS)
Cally_@LIBMUTTER_API_VERSION@_gir_SCANNERFLAGS = \ Cally_@CLUTTER_API_VERSION_AM@_gir_SCANNERFLAGS = \
--warn-all \ --warn-all \
--c-include='cally/cally.h' \ --c-include='cally/cally.h' \
--pkg-export=mutter-cally-@LIBMUTTER_API_VERSION@ \ --pkg-export=mutter-cally-@CLUTTER_API_VERSION@ \
--include-uninstalled=$(top_builddir)/clutter/Clutter-@LIBMUTTER_API_VERSION@.gir --include-uninstalled=$(top_builddir)/clutter/Clutter-@CLUTTER_API_VERSION@.gir
INTROSPECTION_GIRS += Cally-@LIBMUTTER_API_VERSION@.gir INTROSPECTION_GIRS += Cally-@CLUTTER_API_VERSION@.gir
ClutterX11-@LIBMUTTER_API_VERSION@.gir: Makefile Clutter-@LIBMUTTER_API_VERSION@.gir ClutterX11-@CLUTTER_API_VERSION@.gir: Makefile Clutter-@CLUTTER_API_VERSION@.gir
ClutterX11_@LIBMUTTER_API_VERSION@_gir_NAMESPACE = ClutterX11 ClutterX11_@CLUTTER_API_VERSION_AM@_gir_NAMESPACE = ClutterX11
ClutterX11_@LIBMUTTER_API_VERSION@_gir_INCLUDES = xlib-2.0 ClutterX11_@CLUTTER_API_VERSION_AM@_gir_INCLUDES = xlib-2.0
ClutterX11_@LIBMUTTER_API_VERSION@_gir_LIBS = libmutter-clutter-@LIBMUTTER_API_VERSION@.la ClutterX11_@CLUTTER_API_VERSION_AM@_gir_LIBS = libmutter-clutter-@CLUTTER_API_VERSION@.la
ClutterX11_@LIBMUTTER_API_VERSION@_gir_FILES = $(x11_introspection) ClutterX11_@CLUTTER_API_VERSION_AM@_gir_FILES = $(x11_introspection)
ClutterX11_@LIBMUTTER_API_VERSION@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS) ClutterX11_@CLUTTER_API_VERSION_AM@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS)
ClutterX11_@LIBMUTTER_API_VERSION@_gir_SCANNERFLAGS = \ ClutterX11_@CLUTTER_API_VERSION_AM@_gir_SCANNERFLAGS = \
--warn-all \ --warn-all \
--c-include='clutter/x11/clutter-x11.h' \ --c-include='clutter/x11/clutter-x11.h' \
--pkg-export=mutter-clutter-x11-@LIBMUTTER_API_VERSION@ \ --pkg-export=mutter-clutter-x11-@CLUTTER_API_VERSION@ \
--include-uninstalled=$(top_builddir)/clutter/Clutter-@LIBMUTTER_API_VERSION@.gir --include-uninstalled=$(top_builddir)/clutter/Clutter-@CLUTTER_API_VERSION@.gir
INTROSPECTION_GIRS += ClutterX11-@LIBMUTTER_API_VERSION@.gir INTROSPECTION_GIRS += ClutterX11-@CLUTTER_API_VERSION@.gir
# INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to # INTROSPECTION_GIRDIR/INTROSPECTION_TYPELIBDIR aren't the right place to
# install anything - we need to install inside our prefix. # install anything - we need to install inside our prefix.

View File

@@ -781,7 +781,7 @@ _cally_actor_get_top_level_origin (ClutterActor *actor,
"position of the stage"); "position of the stage");
} }
else else
#endif #else
{ {
static gboolean yet_warned = FALSE; static gboolean yet_warned = FALSE;
@@ -793,6 +793,7 @@ _cally_actor_get_top_level_origin (ClutterActor *actor,
"atk_component_get_extents() with ATK_XY_SCREEN."); "atk_component_get_extents() with ATK_XY_SCREEN.");
} }
} }
#endif
if (xp) if (xp)
*xp = x; *xp = x;

View File

@@ -54,7 +54,6 @@
struct _ClutterClonePrivate struct _ClutterClonePrivate
{ {
ClutterActor *clone_source; ClutterActor *clone_source;
gulong source_destroy_id;
}; };
G_DEFINE_TYPE_WITH_PRIVATE (ClutterClone, clutter_clone, CLUTTER_TYPE_ACTOR) G_DEFINE_TYPE_WITH_PRIVATE (ClutterClone, clutter_clone, CLUTTER_TYPE_ACTOR)
@@ -377,13 +376,6 @@ clutter_clone_new (ClutterActor *source)
return g_object_new (CLUTTER_TYPE_CLONE, "source", source, NULL); return g_object_new (CLUTTER_TYPE_CLONE, "source", source, NULL);
} }
static void
on_source_destroyed (ClutterActor *source,
ClutterClone *self)
{
clutter_clone_set_source_internal (self, NULL);
}
static void static void
clutter_clone_set_source_internal (ClutterClone *self, clutter_clone_set_source_internal (ClutterClone *self,
ClutterActor *source) ClutterActor *source)
@@ -395,8 +387,6 @@ clutter_clone_set_source_internal (ClutterClone *self,
if (priv->clone_source != NULL) if (priv->clone_source != NULL)
{ {
g_signal_handler_disconnect (priv->clone_source, priv->source_destroy_id);
priv->source_destroy_id = 0;
_clutter_actor_detach_clone (priv->clone_source, CLUTTER_ACTOR (self)); _clutter_actor_detach_clone (priv->clone_source, CLUTTER_ACTOR (self));
g_object_unref (priv->clone_source); g_object_unref (priv->clone_source);
priv->clone_source = NULL; priv->clone_source = NULL;
@@ -406,8 +396,6 @@ clutter_clone_set_source_internal (ClutterClone *self,
{ {
priv->clone_source = g_object_ref (source); priv->clone_source = g_object_ref (source);
_clutter_actor_attach_clone (priv->clone_source, CLUTTER_ACTOR (self)); _clutter_actor_attach_clone (priv->clone_source, CLUTTER_ACTOR (self));
priv->source_destroy_id = g_signal_connect (priv->clone_source, "destroy",
G_CALLBACK (on_source_destroyed), self);
} }
g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_SOURCE]); g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_SOURCE]);

View File

@@ -48,7 +48,7 @@
#include "clutter-debug.h" #include "clutter-debug.h"
/* XXX - keep in sync with the ClutterStaticColor enumeration order */ /* XXX - keep in sync with the ClutterStaticColor enumeration order */
static const ClutterColor static_colors[] = { static const ClutterColor const static_colors[] = {
/* CGA/EGA color palette */ /* CGA/EGA color palette */
{ 0xff, 0xff, 0xff, 0xff }, /* white */ { 0xff, 0xff, 0xff, 0xff }, /* white */
{ 0x00, 0x00, 0x00, 0xff }, /* black */ { 0x00, 0x00, 0x00, 0xff }, /* black */

View File

@@ -154,15 +154,6 @@ struct _ClutterInputDeviceClass
guint *evdev_keycode); guint *evdev_keycode);
void (* update_from_tool) (ClutterInputDevice *device, void (* update_from_tool) (ClutterInputDevice *device,
ClutterInputDeviceTool *tool); ClutterInputDeviceTool *tool);
gboolean (* is_mode_switch_button) (ClutterInputDevice *device,
guint group,
guint button);
gint (* get_group_n_modes) (ClutterInputDevice *device,
gint group);
gboolean (* is_grouped) (ClutterInputDevice *device,
ClutterInputDevice *other_device);
}; };
/* Platform-dependent interface */ /* Platform-dependent interface */
@@ -197,10 +188,6 @@ void _clutter_device_manager_select_stage_events (ClutterDeviceMa
ClutterStage *stage); ClutterStage *stage);
ClutterBackend *_clutter_device_manager_get_backend (ClutterDeviceManager *device_manager); ClutterBackend *_clutter_device_manager_get_backend (ClutterDeviceManager *device_manager);
void _clutter_device_manager_compress_motion (ClutterDeviceManager *device_manger,
ClutterEvent *event,
const ClutterEvent *to_discard);
/* input device */ /* input device */
gboolean _clutter_input_device_has_sequence (ClutterInputDevice *device, gboolean _clutter_input_device_has_sequence (ClutterInputDevice *device,
ClutterEventSequence *sequence); ClutterEventSequence *sequence);

View File

@@ -48,7 +48,6 @@
#include "clutter-private.h" #include "clutter-private.h"
#include "clutter-stage-private.h" #include "clutter-stage-private.h"
#include "clutter-virtual-input-device.h" #include "clutter-virtual-input-device.h"
#include "clutter-input-device-tool.h"
struct _ClutterDeviceManagerPrivate struct _ClutterDeviceManagerPrivate
{ {
@@ -71,7 +70,6 @@ enum
{ {
DEVICE_ADDED, DEVICE_ADDED,
DEVICE_REMOVED, DEVICE_REMOVED,
TOOL_CHANGED,
LAST_SIGNAL LAST_SIGNAL
}; };
@@ -186,16 +184,6 @@ clutter_device_manager_class_init (ClutterDeviceManagerClass *klass)
_clutter_marshal_VOID__OBJECT, _clutter_marshal_VOID__OBJECT,
G_TYPE_NONE, 1, G_TYPE_NONE, 1,
CLUTTER_TYPE_INPUT_DEVICE); CLUTTER_TYPE_INPUT_DEVICE);
manager_signals[TOOL_CHANGED] =
g_signal_new (I_("tool-changed"),
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST,
0, NULL, NULL,
_clutter_marshal_VOID__OBJECT_OBJECT,
G_TYPE_NONE, 2,
CLUTTER_TYPE_INPUT_DEVICE,
CLUTTER_TYPE_INPUT_DEVICE_TOOL);
} }
static void static void
@@ -470,20 +458,3 @@ clutter_device_manager_create_virtual_device (ClutterDeviceManager *device_man
return manager_class->create_virtual_device (device_manager, return manager_class->create_virtual_device (device_manager,
device_type); device_type);
} }
void
_clutter_device_manager_compress_motion (ClutterDeviceManager *device_manager,
ClutterEvent *event,
const ClutterEvent *to_discard)
{
ClutterDeviceManagerClass *manager_class;
g_return_if_fail (CLUTTER_IS_DEVICE_MANAGER (device_manager));
manager_class = CLUTTER_DEVICE_MANAGER_GET_CLASS (device_manager);
if (!manager_class->compress_motion)
return;
manager_class->compress_motion (device_manager, event, to_discard);
}

View File

@@ -83,14 +83,11 @@ struct _ClutterDeviceManagerClass
ClutterInputDevice *device); ClutterInputDevice *device);
void (* select_stage_events) (ClutterDeviceManager *manager, void (* select_stage_events) (ClutterDeviceManager *manager,
ClutterStage *stage); ClutterStage *stage);
ClutterVirtualInputDevice *(* create_virtual_device) (ClutterDeviceManager *device_manager, ClutterVirtualInputDevice *(* create_virtual_device) (ClutterDeviceManager *manager,
ClutterInputDeviceType device_type); ClutterInputDeviceType device_type);
void (* compress_motion) (ClutterDeviceManager *device_manger,
ClutterEvent *event,
const ClutterEvent *to_discard);
/* padding */ /* padding */
gpointer _padding[6]; gpointer _padding[7];
}; };
CLUTTER_AVAILABLE_IN_1_2 CLUTTER_AVAILABLE_IN_1_2

View File

@@ -1990,28 +1990,22 @@ clutter_event_remove_filter (guint id)
} }
/** /**
* clutter_event_get_touchpad_gesture_finger_count: * clutter_event_get_gesture_swipe_finger_count:
* @event: a touchpad swipe/pinch event * @event: a touchpad swipe event
* *
* Returns the number of fingers that is triggering the touchpad gesture. * Returns the number of fingers that is triggering the touchpad gesture.
* *
* Returns: the number of fingers in the gesture. * Returns: the number of fingers swiping.
* *
* Since: 1.24 * Since: 1.24
**/ **/
guint guint
clutter_event_get_touchpad_gesture_finger_count (const ClutterEvent *event) clutter_event_get_gesture_swipe_finger_count (const ClutterEvent *event)
{ {
g_return_val_if_fail (event != NULL, 0); g_return_val_if_fail (event != NULL, 0);
g_return_val_if_fail (event->type == CLUTTER_TOUCHPAD_SWIPE || g_return_val_if_fail (event->type == CLUTTER_TOUCHPAD_SWIPE, 0);
event->type == CLUTTER_TOUCHPAD_PINCH, 0);
if (event->type == CLUTTER_TOUCHPAD_SWIPE) return event->touchpad_swipe.n_fingers;
return event->touchpad_swipe.n_fingers;
else if (event->type == CLUTTER_TOUCHPAD_PINCH)
return event->touchpad_pinch.n_fingers;
return 0;
} }
/** /**
@@ -2179,61 +2173,3 @@ clutter_event_get_mode_group (const ClutterEvent *event)
return 0; return 0;
} }
} }
/**
* clutter_event_get_pad_event_details:
* @event: a pad event
* @number: (out) (optional): ring/strip/button number
* @mode: (out) (optional): pad mode as per the event
* @value: (out) (optional): event axis value
*
* Returns the details of a pad event.
*
* Returns: #TRUE if event details could be obtained
**/
gboolean
clutter_event_get_pad_event_details (const ClutterEvent *event,
guint *number,
guint *mode,
gdouble *value)
{
guint n, m;
gdouble v;
g_return_val_if_fail (event != NULL, FALSE);
g_return_val_if_fail (event->type == CLUTTER_PAD_BUTTON_PRESS ||
event->type == CLUTTER_PAD_BUTTON_RELEASE ||
event->type == CLUTTER_PAD_RING ||
event->type == CLUTTER_PAD_STRIP, FALSE);
switch (event->type)
{
case CLUTTER_PAD_BUTTON_PRESS:
case CLUTTER_PAD_BUTTON_RELEASE:
n = event->pad_button.button;
m = event->pad_button.mode;
v = 0.0;
break;
case CLUTTER_PAD_RING:
n = event->pad_ring.ring_number;
m = event->pad_ring.mode;
v = event->pad_ring.angle;
break;
case CLUTTER_PAD_STRIP:
n = event->pad_strip.strip_number;
m = event->pad_strip.mode;
v = event->pad_strip.value;
break;
default:
return FALSE;
}
if (number)
*number = n;
if (mode)
*mode = m;
if (value)
*value = v;
return TRUE;
}

View File

@@ -459,7 +459,6 @@ struct _ClutterTouchpadPinchEvent
gfloat dy; gfloat dy;
gfloat angle_delta; gfloat angle_delta;
gfloat scale; gfloat scale;
guint n_fingers;
}; };
/** /**
@@ -508,7 +507,6 @@ struct _ClutterPadButtonEvent
guint32 button; guint32 button;
guint32 group; guint32 group;
ClutterInputDevice *device; ClutterInputDevice *device;
guint32 mode;
}; };
struct _ClutterPadStripEvent struct _ClutterPadStripEvent
@@ -524,7 +522,6 @@ struct _ClutterPadStripEvent
guint32 strip_number; guint32 strip_number;
guint32 group; guint32 group;
gdouble value; gdouble value;
guint32 mode;
}; };
struct _ClutterPadRingEvent struct _ClutterPadRingEvent
@@ -540,7 +537,6 @@ struct _ClutterPadRingEvent
guint32 ring_number; guint32 ring_number;
guint32 group; guint32 group;
gdouble angle; gdouble angle;
guint32 mode;
}; };
/** /**
@@ -756,7 +752,7 @@ CLUTTER_AVAILABLE_IN_1_2
const ClutterEvent * clutter_get_current_event (void); const ClutterEvent * clutter_get_current_event (void);
CLUTTER_AVAILABLE_IN_1_24 CLUTTER_AVAILABLE_IN_1_24
guint clutter_event_get_touchpad_gesture_finger_count (const ClutterEvent *event); guint clutter_event_get_gesture_swipe_finger_count (const ClutterEvent *event);
CLUTTER_AVAILABLE_IN_1_24 CLUTTER_AVAILABLE_IN_1_24
gdouble clutter_event_get_gesture_pinch_angle_delta (const ClutterEvent *event); gdouble clutter_event_get_gesture_pinch_angle_delta (const ClutterEvent *event);
@@ -778,12 +774,6 @@ ClutterScrollFinishFlags clutter_event_get_scroll_finish_flags (const Clut
CLUTTER_AVAILABLE_IN_ALL CLUTTER_AVAILABLE_IN_ALL
guint clutter_event_get_mode_group (const ClutterEvent *event); guint clutter_event_get_mode_group (const ClutterEvent *event);
CLUTTER_AVAILABLE_IN_MUTTER
gboolean clutter_event_get_pad_event_details (const ClutterEvent *event,
guint *number,
guint *mode,
gdouble *value);
G_END_DECLS G_END_DECLS

View File

@@ -2175,63 +2175,6 @@ clutter_input_device_get_n_mode_groups (ClutterInputDevice *device)
return device->n_mode_groups; return device->n_mode_groups;
} }
gint
clutter_input_device_get_group_n_modes (ClutterInputDevice *device,
gint group)
{
ClutterInputDeviceClass *device_class;
g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device), 0);
g_return_val_if_fail (clutter_input_device_get_device_type (device) ==
CLUTTER_PAD_DEVICE, 0);
g_return_val_if_fail (group >= 0, 0);
device_class = CLUTTER_INPUT_DEVICE_GET_CLASS (device);
if (device_class->get_group_n_modes)
return device_class->get_group_n_modes (device, group);
return 0;
}
gboolean
clutter_input_device_is_mode_switch_button (ClutterInputDevice *device,
guint group,
guint button)
{
ClutterInputDeviceClass *device_class;
g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device), FALSE);
g_return_val_if_fail (clutter_input_device_get_device_type (device) ==
CLUTTER_PAD_DEVICE, FALSE);
device_class = CLUTTER_INPUT_DEVICE_GET_CLASS (device);
if (device_class->is_mode_switch_button)
return device_class->is_mode_switch_button (device, group, button);
return FALSE;
}
gint
clutter_input_device_get_mode_switch_button_group (ClutterInputDevice *device,
guint button)
{
gint group;
g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device), -1);
g_return_val_if_fail (clutter_input_device_get_device_type (device) ==
CLUTTER_PAD_DEVICE, -1);
for (group = 0; group < device->n_mode_groups; group++)
{
if (clutter_input_device_is_mode_switch_button (device, group, button))
return group;
}
return -1;
}
const gchar * const gchar *
clutter_input_device_get_device_node (ClutterInputDevice *device) clutter_input_device_get_device_node (ClutterInputDevice *device)
{ {
@@ -2243,15 +2186,10 @@ clutter_input_device_get_device_node (ClutterInputDevice *device)
ClutterInputDeviceMapping ClutterInputDeviceMapping
clutter_input_device_get_mapping_mode (ClutterInputDevice *device) clutter_input_device_get_mapping_mode (ClutterInputDevice *device)
{ {
ClutterInputDeviceType device_type;
g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device), g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device),
CLUTTER_INPUT_DEVICE_MAPPING_ABSOLUTE); CLUTTER_INPUT_DEVICE_MAPPING_ABSOLUTE);
g_return_val_if_fail (clutter_input_device_get_device_type (device) ==
device_type = clutter_input_device_get_device_type (device); CLUTTER_TABLET_DEVICE,
g_return_val_if_fail (device_type == CLUTTER_TABLET_DEVICE ||
device_type == CLUTTER_PEN_DEVICE ||
device_type == CLUTTER_ERASER_DEVICE,
CLUTTER_INPUT_DEVICE_MAPPING_ABSOLUTE); CLUTTER_INPUT_DEVICE_MAPPING_ABSOLUTE);
return device->mapping_mode; return device->mapping_mode;
@@ -2261,14 +2199,9 @@ void
clutter_input_device_set_mapping_mode (ClutterInputDevice *device, clutter_input_device_set_mapping_mode (ClutterInputDevice *device,
ClutterInputDeviceMapping mapping) ClutterInputDeviceMapping mapping)
{ {
ClutterInputDeviceType device_type;
g_return_if_fail (CLUTTER_IS_INPUT_DEVICE (device)); g_return_if_fail (CLUTTER_IS_INPUT_DEVICE (device));
g_return_if_fail (clutter_input_device_get_device_type (device) ==
device_type = clutter_input_device_get_device_type (device); CLUTTER_TABLET_DEVICE);
g_return_if_fail (device_type == CLUTTER_TABLET_DEVICE ||
device_type == CLUTTER_PEN_DEVICE ||
device_type == CLUTTER_ERASER_DEVICE);
if (device->mapping_mode == mapping) if (device->mapping_mode == mapping)
return; return;
@@ -2276,13 +2209,3 @@ clutter_input_device_set_mapping_mode (ClutterInputDevice *device,
device->mapping_mode = mapping; device->mapping_mode = mapping;
g_object_notify (G_OBJECT (device), "mapping-mode"); g_object_notify (G_OBJECT (device), "mapping-mode");
} }
gboolean
clutter_input_device_is_grouped (ClutterInputDevice *device,
ClutterInputDevice *other_device)
{
g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device), FALSE);
g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (other_device), FALSE);
return CLUTTER_INPUT_DEVICE_GET_CLASS (device)->is_grouped (device, other_device);
}

View File

@@ -147,18 +147,6 @@ gint clutter_input_device_get_n_strips (ClutterInputDev
CLUTTER_AVAILABLE_IN_ALL CLUTTER_AVAILABLE_IN_ALL
gint clutter_input_device_get_n_mode_groups (ClutterInputDevice *device); gint clutter_input_device_get_n_mode_groups (ClutterInputDevice *device);
CLUTTER_AVAILABLE_IN_ALL
gint clutter_input_device_get_group_n_modes (ClutterInputDevice *device,
gint group);
CLUTTER_AVAILABLE_IN_ALL
gboolean clutter_input_device_is_mode_switch_button (ClutterInputDevice *device,
guint group,
guint button);
CLUTTER_AVAILABLE_IN_ALL
gint clutter_input_device_get_mode_switch_button_group (ClutterInputDevice *device,
guint button);
CLUTTER_AVAILABLE_IN_ALL CLUTTER_AVAILABLE_IN_ALL
const gchar * clutter_input_device_get_device_node (ClutterInputDevice *device); const gchar * clutter_input_device_get_device_node (ClutterInputDevice *device);
@@ -168,9 +156,6 @@ ClutterInputDeviceMapping clutter_input_device_get_mapping_mode (ClutterInputDev
CLUTTER_AVAILABLE_IN_ALL CLUTTER_AVAILABLE_IN_ALL
void clutter_input_device_set_mapping_mode (ClutterInputDevice *device, void clutter_input_device_set_mapping_mode (ClutterInputDevice *device,
ClutterInputDeviceMapping mapping); ClutterInputDeviceMapping mapping);
CLUTTER_AVAILABLE_IN_ALL
gboolean clutter_input_device_is_grouped (ClutterInputDevice *device,
ClutterInputDevice *other_device);
G_END_DECLS G_END_DECLS

View File

@@ -719,8 +719,14 @@ clutter_get_text_direction (void)
} }
else else
{ {
/* Re-use GTK+'s LTR/RTL handling */ /* Translators: Leave this UNTRANSLATED if your language is
const char *e = g_dgettext ("gtk30", "default:LTR"); * left-to-right. If your language is right-to-left
* (e.g. Hebrew, Arabic), translate it to "default:RTL".
*
* Do NOT translate it to non-English e.g. "predefinito:LTR"! If
* it isn't default:LTR or default:RTL it will not work.
*/
char *e = _("default:LTR");
if (strcmp (e, "default:RTL") == 0) if (strcmp (e, "default:RTL") == 0)
dir = CLUTTER_TEXT_DIRECTION_RTL; dir = CLUTTER_TEXT_DIRECTION_RTL;

View File

@@ -23,7 +23,6 @@ VOID:OBJECT
VOID:OBJECT,FLAGS VOID:OBJECT,FLAGS
VOID:OBJECT,FLOAT,FLOAT VOID:OBJECT,FLOAT,FLOAT
VOID:OBJECT,FLOAT,FLOAT,FLAGS VOID:OBJECT,FLOAT,FLOAT,FLAGS
VOID:OBJECT,OBJECT
VOID:OBJECT,PARAM VOID:OBJECT,PARAM
VOID:OBJECT,POINTER VOID:OBJECT,POINTER
VOID:OBJECT,UINT VOID:OBJECT,UINT

View File

@@ -115,12 +115,36 @@ clutter_stage_view_invalidate_offscreen_blit_pipeline (ClutterStageView *view)
g_clear_pointer (&priv->pipeline, cogl_object_unref); g_clear_pointer (&priv->pipeline, cogl_object_unref);
} }
static void
transform_rect_to_onscreen (ClutterStageView *view,
const cairo_rectangle_t *rect,
cairo_rectangle_t *rect_out)
{
float x1, y1, x2, y2;
x1 = rect->x;
y1 = rect->y;
clutter_stage_view_transform_to_onscreen (view, &x1, &y1);
x2 = rect->x + rect->width;
y2 = rect->y + rect->height;
clutter_stage_view_transform_to_onscreen (view, &x2, &y2);
*rect_out = (cairo_rectangle_t) {
.x = MIN (x1, x2),
.y = MIN (y1, y2),
.width = ABS (x2 - x1),
.height = ABS (y2 - y1)
};
}
void void
clutter_stage_view_blit_offscreen (ClutterStageView *view, clutter_stage_view_blit_offscreen (ClutterStageView *view,
const cairo_rectangle_int_t *rect) const cairo_rectangle_int_t *rect)
{ {
ClutterStageViewPrivate *priv = ClutterStageViewPrivate *priv =
clutter_stage_view_get_instance_private (view); clutter_stage_view_get_instance_private (view);
cairo_rectangle_t texture_rect, onscreen_rect;
CoglMatrix matrix; CoglMatrix matrix;
clutter_stage_view_ensure_offscreen_blit_pipeline (view); clutter_stage_view_ensure_offscreen_blit_pipeline (view);
@@ -134,9 +158,25 @@ clutter_stage_view_blit_offscreen (ClutterStageView *view,
cogl_matrix_scale (&matrix, 2, -2, 0); cogl_matrix_scale (&matrix, 2, -2, 0);
cogl_framebuffer_set_projection_matrix (priv->framebuffer, &matrix); cogl_framebuffer_set_projection_matrix (priv->framebuffer, &matrix);
cogl_framebuffer_draw_rectangle (priv->framebuffer, texture_rect = (cairo_rectangle_t) {
priv->pipeline, .x = (double) rect->x / cogl_framebuffer_get_width (priv->offscreen),
0, 0, 1, 1); .y = (double) rect->y / cogl_framebuffer_get_height (priv->offscreen),
.width = (double) rect->width / cogl_framebuffer_get_width (priv->offscreen),
.height = (double) rect->height / cogl_framebuffer_get_height (priv->offscreen)
};
transform_rect_to_onscreen (view, &texture_rect, &onscreen_rect);
cogl_framebuffer_draw_textured_rectangle (priv->framebuffer,
priv->pipeline,
onscreen_rect.x,
onscreen_rect.y,
onscreen_rect.x + onscreen_rect.width,
onscreen_rect.y + onscreen_rect.height,
texture_rect.x,
texture_rect.y,
texture_rect.x + texture_rect.width,
texture_rect.y + texture_rect.height);
cogl_framebuffer_pop_matrix (priv->framebuffer); cogl_framebuffer_pop_matrix (priv->framebuffer);
} }
@@ -179,24 +219,16 @@ clutter_stage_view_set_dirty_projection (ClutterStageView *view,
priv->dirty_projection = dirty; priv->dirty_projection = dirty;
} }
void
clutter_stage_view_get_offscreen_transformation_matrix (ClutterStageView *view,
CoglMatrix *matrix)
{
ClutterStageViewClass *view_class = CLUTTER_STAGE_VIEW_GET_CLASS (view);
view_class->get_offscreen_transformation_matrix (view, matrix);
}
void void
clutter_stage_view_transform_to_onscreen (ClutterStageView *view, clutter_stage_view_transform_to_onscreen (ClutterStageView *view,
gfloat *x, gfloat *x,
gfloat *y) gfloat *y)
{ {
ClutterStageViewClass *view_class = CLUTTER_STAGE_VIEW_GET_CLASS (view);
gfloat z = 0, w = 1; gfloat z = 0, w = 1;
CoglMatrix matrix; CoglMatrix matrix;
clutter_stage_view_get_offscreen_transformation_matrix (view, &matrix); view_class->get_offscreen_transformation_matrix (view, &matrix);
cogl_matrix_get_inverse (&matrix, &matrix); cogl_matrix_get_inverse (&matrix, &matrix);
cogl_matrix_transform_point (&matrix, x, y, &z, &w); cogl_matrix_transform_point (&matrix, x, y, &z, &w);
} }

View File

@@ -70,8 +70,4 @@ gboolean clutter_stage_view_is_dirty_projection (ClutterStageView *view);
void clutter_stage_view_set_dirty_projection (ClutterStageView *view, void clutter_stage_view_set_dirty_projection (ClutterStageView *view,
gboolean dirty); gboolean dirty);
CLUTTER_AVAILABLE_IN_MUTTER
void clutter_stage_view_get_offscreen_transformation_matrix (ClutterStageView *view,
CoglMatrix *matrix);
#endif /* __CLUTTER_STAGE_VIEW_H__ */ #endif /* __CLUTTER_STAGE_VIEW_H__ */

View File

@@ -676,6 +676,12 @@ clutter_stage_do_paint_view (ClutterStage *stage,
_clutter_stage_paint_volume_stack_free_all (stage); _clutter_stage_paint_volume_stack_free_all (stage);
_clutter_stage_update_active_framebuffer (stage, framebuffer); _clutter_stage_update_active_framebuffer (stage, framebuffer);
clutter_actor_paint (CLUTTER_ACTOR (stage)); clutter_actor_paint (CLUTTER_ACTOR (stage));
if (clutter_stage_view_get_onscreen (view) !=
clutter_stage_view_get_framebuffer (view))
{
clutter_stage_view_blit_offscreen (view, clip);
}
} }
/* This provides a common point of entry for painting the scenegraph /* This provides a common point of entry for painting the scenegraph
@@ -971,7 +977,6 @@ _clutter_stage_process_queued_events (ClutterStage *stage)
ClutterEvent *next_event; ClutterEvent *next_event;
ClutterInputDevice *device; ClutterInputDevice *device;
ClutterInputDevice *next_device; ClutterInputDevice *next_device;
ClutterInputDeviceType device_type;
gboolean check_device = FALSE; gboolean check_device = FALSE;
event = l->data; event = l->data;
@@ -987,16 +992,8 @@ _clutter_stage_process_queued_events (ClutterStage *stage)
if (device != NULL && next_device != NULL) if (device != NULL && next_device != NULL)
check_device = TRUE; check_device = TRUE;
device_type = clutter_input_device_get_device_type (device); /* Skip consecutive motion events coming from the same device */
if (priv->throttle_motion_events && next_event != NULL)
/* Skip consecutive motion events coming from the same device,
* except those of tablet tools, since users of these events
* want no precision loss.
*/
if (priv->throttle_motion_events && next_event != NULL &&
device_type != CLUTTER_TABLET_DEVICE &&
device_type != CLUTTER_PEN_DEVICE &&
device_type != CLUTTER_ERASER_DEVICE)
{ {
if (event->type == CLUTTER_MOTION && if (event->type == CLUTTER_MOTION &&
(next_event->type == CLUTTER_MOTION || (next_event->type == CLUTTER_MOTION ||
@@ -1007,16 +1004,6 @@ _clutter_stage_process_queued_events (ClutterStage *stage)
"Omitting motion event at %d, %d", "Omitting motion event at %d, %d",
(int) event->motion.x, (int) event->motion.x,
(int) event->motion.y); (int) event->motion.y);
if (next_event->type == CLUTTER_MOTION)
{
ClutterDeviceManager *device_manager =
clutter_device_manager_get_default ();
_clutter_device_manager_compress_motion (device_manager,
next_event, event);
}
goto next_event; goto next_event;
} }
else if (event->type == CLUTTER_TOUCH_UPDATE && else if (event->type == CLUTTER_TOUCH_UPDATE &&
@@ -1413,6 +1400,8 @@ _clutter_stage_do_pick_on_view (ClutterStage *stage,
view_layout.height); view_layout.height);
_clutter_stage_window_get_dirty_pixel (priv->impl, view, &dirty_x, &dirty_y); _clutter_stage_window_get_dirty_pixel (priv->impl, view, &dirty_x, &dirty_y);
dirty_x -= view_layout.x;
dirty_y -= view_layout.y;
if (G_LIKELY (!(clutter_pick_debug_flags & CLUTTER_DEBUG_DUMP_PICK_BUFFERS))) if (G_LIKELY (!(clutter_pick_debug_flags & CLUTTER_DEBUG_DUMP_PICK_BUFFERS)))
{ {
@@ -1463,10 +1452,10 @@ _clutter_stage_do_pick_on_view (ClutterStage *stage,
used. The format is requested as pre-multiplied because Cogl used. The format is requested as pre-multiplied because Cogl
assumes that all pixels in the framebuffer are premultiplied so assumes that all pixels in the framebuffer are premultiplied so
it avoids a conversion. */ it avoids a conversion. */
cogl_framebuffer_read_pixels (fb, cogl_read_pixels (read_x, read_y, 1, 1,
read_x, read_y, 1, 1, COGL_READ_PIXELS_COLOR_BUFFER,
COGL_PIXEL_FORMAT_RGBA_8888_PRE, COGL_PIXEL_FORMAT_RGBA_8888_PRE,
pixel); pixel);
if (G_UNLIKELY (clutter_pick_debug_flags & CLUTTER_DEBUG_DUMP_PICK_BUFFERS)) if (G_UNLIKELY (clutter_pick_debug_flags & CLUTTER_DEBUG_DUMP_PICK_BUFFERS))
{ {
@@ -4693,7 +4682,6 @@ capture_view (ClutterStage *stage,
uint8_t *data; uint8_t *data;
int stride; int stride;
CoglBitmap *bitmap; CoglBitmap *bitmap;
cairo_rectangle_int_t view_layout;
framebuffer = clutter_stage_view_get_framebuffer (view); framebuffer = clutter_stage_view_get_framebuffer (view);
@@ -4718,11 +4706,8 @@ capture_view (ClutterStage *stage,
stride, stride,
data); data);
clutter_stage_view_get_layout (view, &view_layout);
cogl_framebuffer_read_pixels_into_bitmap (framebuffer, cogl_framebuffer_read_pixels_into_bitmap (framebuffer,
rect->x - view_layout.x, rect->x, rect->y,
rect->y - view_layout.y,
COGL_READ_PIXELS_COLOR_BUFFER, COGL_READ_PIXELS_COLOR_BUFFER,
bitmap); bitmap);

View File

@@ -420,12 +420,6 @@ paint_stage (ClutterStageCogl *stage_cogl,
_clutter_stage_maybe_setup_viewport (stage, view); _clutter_stage_maybe_setup_viewport (stage, view);
_clutter_stage_paint_view (stage, view, clip); _clutter_stage_paint_view (stage, view, clip);
if (clutter_stage_view_get_onscreen (view) !=
clutter_stage_view_get_framebuffer (view))
{
clutter_stage_view_blit_offscreen (view, clip);
}
} }
static void static void
@@ -806,9 +800,7 @@ clutter_stage_cogl_get_dirty_pixel (ClutterStageWindow *stage_window,
int *x, int *x,
int *y) int *y)
{ {
CoglFramebuffer *framebuffer = clutter_stage_view_get_framebuffer (view);
gboolean has_buffer_age = gboolean has_buffer_age =
cogl_is_onscreen (framebuffer) &&
cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_BUFFER_AGE); cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_BUFFER_AGE);
cairo_rectangle_int_t *rect; cairo_rectangle_int_t *rect;
@@ -822,13 +814,10 @@ clutter_stage_cogl_get_dirty_pixel (ClutterStageWindow *stage_window,
ClutterStageViewCogl *view_cogl = CLUTTER_STAGE_VIEW_COGL (view); ClutterStageViewCogl *view_cogl = CLUTTER_STAGE_VIEW_COGL (view);
ClutterStageViewCoglPrivate *view_priv = ClutterStageViewCoglPrivate *view_priv =
clutter_stage_view_cogl_get_instance_private (view_cogl); clutter_stage_view_cogl_get_instance_private (view_cogl);
cairo_rectangle_int_t view_layout;
clutter_stage_view_get_layout (view, &view_layout);
rect = &view_priv->damage_history[DAMAGE_HISTORY (view_priv->damage_index - 1)]; rect = &view_priv->damage_history[DAMAGE_HISTORY (view_priv->damage_index - 1)];
*x = rect->x - view_layout.x; *x = rect->x;
*y = rect->y - view_layout.y; *y = rect->y;
} }
} }

View File

@@ -102,9 +102,6 @@ struct _ClutterDeviceManagerEvdevPrivate
gpointer constrain_data; gpointer constrain_data;
GDestroyNotify constrain_data_notify; GDestroyNotify constrain_data_notify;
ClutterRelativeMotionFilter relative_motion_filter;
gpointer relative_motion_filter_user_data;
ClutterStageManager *stage_manager; ClutterStageManager *stage_manager;
guint stage_added_handler; guint stage_added_handler;
guint stage_removed_handler; guint stage_removed_handler;
@@ -127,7 +124,6 @@ G_DEFINE_TYPE_WITH_CODE (ClutterDeviceManagerEvdev,
static ClutterOpenDeviceCallback device_open_callback; static ClutterOpenDeviceCallback device_open_callback;
static ClutterCloseDeviceCallback device_close_callback; static ClutterCloseDeviceCallback device_close_callback;
static gpointer device_callback_data; static gpointer device_callback_data;
static gchar * evdev_seat_id;
#ifdef CLUTTER_ENABLE_DEBUG #ifdef CLUTTER_ENABLE_DEBUG
static const char *device_type_str[] = { static const char *device_type_str[] = {
@@ -267,22 +263,6 @@ _clutter_device_manager_evdev_constrain_pointer (ClutterDeviceManagerEvdev *mana
} }
} }
void
_clutter_device_manager_evdev_filter_relative_motion (ClutterDeviceManagerEvdev *manager_evdev,
ClutterInputDevice *device,
float x,
float y,
float *dx,
float *dy)
{
ClutterDeviceManagerEvdevPrivate *priv = manager_evdev->priv;
if (!priv->relative_motion_filter)
return;
priv->relative_motion_filter (device, x, y, dx, dy,
priv->relative_motion_filter_user_data);
}
static ClutterEvent * static ClutterEvent *
new_absolute_motion_event (ClutterInputDevice *input_device, new_absolute_motion_event (ClutterInputDevice *input_device,
@@ -331,9 +311,6 @@ new_absolute_motion_event (ClutterInputDevice *input_device,
_clutter_xkb_translate_state (event, seat->xkb, seat->button_state); _clutter_xkb_translate_state (event, seat->xkb, seat->button_state);
event->motion.x = x; event->motion.x = x;
event->motion.y = y; event->motion.y = y;
clutter_input_device_evdev_translate_coordinates (input_device, stage,
&event->motion.x,
&event->motion.y);
event->motion.axes = axes; event->motion.axes = axes;
clutter_event_set_source_device (event, input_device); clutter_event_set_source_device (event, input_device);
@@ -377,23 +354,11 @@ notify_relative_tool_motion (ClutterInputDevice *input_device,
gfloat dy, gfloat dy,
gdouble *axes) gdouble *axes)
{ {
ClutterInputDeviceEvdev *device_evdev;
ClutterEvent *event; ClutterEvent *event;
ClutterSeatEvdev *seat;
gfloat x, y; gfloat x, y;
device_evdev = CLUTTER_INPUT_DEVICE_EVDEV (input_device);
seat = _clutter_input_device_evdev_get_seat (device_evdev);
x = input_device->current_x + dx; x = input_device->current_x + dx;
y = input_device->current_y + dy; y = input_device->current_y + dy;
_clutter_device_manager_evdev_filter_relative_motion (seat->manager_evdev,
input_device,
seat->pointer_x,
seat->pointer_y,
&dx,
&dy);
event = new_absolute_motion_event (input_device, time_us, x, y, axes); event = new_absolute_motion_event (input_device, time_us, x, y, axes);
_clutter_evdev_event_set_relative_motion (event, dx, dy, 0, 0); _clutter_evdev_event_set_relative_motion (event, dx, dy, 0, 0);
@@ -544,10 +509,6 @@ notify_touch_event (ClutterInputDevice *input_device,
event->touch.device = seat->core_pointer; event->touch.device = seat->core_pointer;
event->touch.x = x; event->touch.x = x;
event->touch.y = y; event->touch.y = y;
clutter_input_device_evdev_translate_coordinates (input_device, stage,
&event->touch.x,
&event->touch.y);
/* "NULL" sequences are special cased in clutter */ /* "NULL" sequences are special cased in clutter */
event->touch.sequence = GINT_TO_POINTER (slot + 1); event->touch.sequence = GINT_TO_POINTER (slot + 1);
_clutter_xkb_translate_state (event, seat->xkb, seat->button_state); _clutter_xkb_translate_state (event, seat->xkb, seat->button_state);
@@ -569,8 +530,7 @@ notify_pinch_gesture_event (ClutterInputDevice *input_device,
gdouble dx, gdouble dx,
gdouble dy, gdouble dy,
gdouble angle_delta, gdouble angle_delta,
gdouble scale, gdouble scale)
guint n_fingers)
{ {
ClutterInputDeviceEvdev *device_evdev; ClutterInputDeviceEvdev *device_evdev;
ClutterSeatEvdev *seat; ClutterSeatEvdev *seat;
@@ -601,7 +561,6 @@ notify_pinch_gesture_event (ClutterInputDevice *input_device,
event->touchpad_pinch.dy = dy; event->touchpad_pinch.dy = dy;
event->touchpad_pinch.angle_delta = angle_delta; event->touchpad_pinch.angle_delta = angle_delta;
event->touchpad_pinch.scale = scale; event->touchpad_pinch.scale = scale;
event->touchpad_pinch.n_fingers = n_fingers;
_clutter_xkb_translate_state (event, seat->xkb, seat->button_state); _clutter_xkb_translate_state (event, seat->xkb, seat->button_state);
@@ -699,7 +658,6 @@ notify_pad_button (ClutterInputDevice *input_device,
guint64 time_us, guint64 time_us,
guint32 button, guint32 button,
guint32 mode_group, guint32 mode_group,
guint32 mode,
guint32 pressed) guint32 pressed)
{ {
ClutterInputDeviceEvdev *device_evdev; ClutterInputDeviceEvdev *device_evdev;
@@ -725,7 +683,6 @@ notify_pad_button (ClutterInputDevice *input_device,
event->pad_button.stage = stage; event->pad_button.stage = stage;
event->pad_button.button = button; event->pad_button.button = button;
event->pad_button.group = mode_group; event->pad_button.group = mode_group;
event->pad_button.mode = mode;
clutter_event_set_device (event, input_device); clutter_event_set_device (event, input_device);
clutter_event_set_source_device (event, input_device); clutter_event_set_source_device (event, input_device);
clutter_event_set_time (event, us2ms (time_us)); clutter_event_set_time (event, us2ms (time_us));
@@ -741,7 +698,6 @@ notify_pad_strip (ClutterInputDevice *input_device,
guint32 strip_number, guint32 strip_number,
guint32 strip_source, guint32 strip_source,
guint32 mode_group, guint32 mode_group,
guint32 mode,
gdouble value) gdouble value)
{ {
ClutterInputDeviceEvdev *device_evdev; ClutterInputDeviceEvdev *device_evdev;
@@ -771,7 +727,6 @@ notify_pad_strip (ClutterInputDevice *input_device,
event->pad_strip.strip_number = strip_number; event->pad_strip.strip_number = strip_number;
event->pad_strip.value = value; event->pad_strip.value = value;
event->pad_strip.group = mode_group; event->pad_strip.group = mode_group;
event->pad_strip.mode = mode;
clutter_event_set_device (event, input_device); clutter_event_set_device (event, input_device);
clutter_event_set_source_device (event, input_device); clutter_event_set_source_device (event, input_device);
clutter_event_set_time (event, us2ms (time_us)); clutter_event_set_time (event, us2ms (time_us));
@@ -787,7 +742,6 @@ notify_pad_ring (ClutterInputDevice *input_device,
guint32 ring_number, guint32 ring_number,
guint32 ring_source, guint32 ring_source,
guint32 mode_group, guint32 mode_group,
guint32 mode,
gdouble angle) gdouble angle)
{ {
ClutterInputDeviceEvdev *device_evdev; ClutterInputDeviceEvdev *device_evdev;
@@ -817,7 +771,6 @@ notify_pad_ring (ClutterInputDevice *input_device,
event->pad_ring.ring_number = ring_number; event->pad_ring.ring_number = ring_number;
event->pad_ring.angle = angle; event->pad_ring.angle = angle;
event->pad_ring.group = mode_group; event->pad_ring.group = mode_group;
event->pad_ring.mode = mode;
clutter_event_set_device (event, input_device); clutter_event_set_device (event, input_device);
clutter_event_set_source_device (event, input_device); clutter_event_set_source_device (event, input_device);
clutter_event_set_time (event, us2ms (time_us)); clutter_event_set_time (event, us2ms (time_us));
@@ -1255,17 +1208,11 @@ input_device_update_tool (ClutterInputDevice *input_device,
} }
} }
if (evdev_device->last_tool != tool) evdev_device->last_tool = tool;
{
evdev_device->last_tool = tool;
g_signal_emit_by_name (clutter_device_manager_get_default (),
"tool-changed", input_device, tool);
}
} }
static gdouble * static gdouble *
translate_tablet_axes (struct libinput_event_tablet_tool *tablet_event, translate_tablet_axes (struct libinput_event_tablet_tool *tablet_event)
ClutterInputDeviceTool *tool)
{ {
GArray *axes = g_array_new (FALSE, FALSE, sizeof (gdouble)); GArray *axes = g_array_new (FALSE, FALSE, sizeof (gdouble));
struct libinput_tablet_tool *libinput_tool; struct libinput_tablet_tool *libinput_tool;
@@ -1287,7 +1234,6 @@ translate_tablet_axes (struct libinput_event_tablet_tool *tablet_event,
if (libinput_tablet_tool_has_pressure (libinput_tool)) if (libinput_tablet_tool_has_pressure (libinput_tool))
{ {
value = libinput_event_tablet_tool_get_pressure (tablet_event); value = libinput_event_tablet_tool_get_pressure (tablet_event);
value = clutter_input_device_tool_evdev_translate_pressure (tool, value);
g_array_append_val (axes, value); g_array_append_val (axes, value);
} }
@@ -1671,7 +1617,6 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
struct libinput_event_gesture *gesture_event = struct libinput_event_gesture *gesture_event =
libinput_event_get_gesture_event (event); libinput_event_get_gesture_event (event);
ClutterTouchpadGesturePhase phase; ClutterTouchpadGesturePhase phase;
guint n_fingers;
guint64 time_us; guint64 time_us;
if (libinput_event_get_type (event) == LIBINPUT_EVENT_GESTURE_PINCH_BEGIN) if (libinput_event_get_type (event) == LIBINPUT_EVENT_GESTURE_PINCH_BEGIN)
@@ -1680,10 +1625,9 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
phase = libinput_event_gesture_get_cancelled (gesture_event) ? phase = libinput_event_gesture_get_cancelled (gesture_event) ?
CLUTTER_TOUCHPAD_GESTURE_PHASE_CANCEL : CLUTTER_TOUCHPAD_GESTURE_PHASE_END; CLUTTER_TOUCHPAD_GESTURE_PHASE_CANCEL : CLUTTER_TOUCHPAD_GESTURE_PHASE_END;
n_fingers = libinput_event_gesture_get_finger_count (gesture_event);
device = libinput_device_get_user_data (libinput_device); device = libinput_device_get_user_data (libinput_device);
time_us = libinput_event_gesture_get_time_usec (gesture_event); time_us = libinput_event_gesture_get_time_usec (gesture_event);
notify_pinch_gesture_event (device, phase, time_us, 0, 0, 0, 0, n_fingers); notify_pinch_gesture_event (device, phase, time_us, 0, 0, 0, 0);
break; break;
} }
case LIBINPUT_EVENT_GESTURE_PINCH_UPDATE: case LIBINPUT_EVENT_GESTURE_PINCH_UPDATE:
@@ -1691,10 +1635,8 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
struct libinput_event_gesture *gesture_event = struct libinput_event_gesture *gesture_event =
libinput_event_get_gesture_event (event); libinput_event_get_gesture_event (event);
gdouble angle_delta, scale, dx, dy; gdouble angle_delta, scale, dx, dy;
guint n_fingers;
guint64 time_us; guint64 time_us;
n_fingers = libinput_event_gesture_get_finger_count (gesture_event);
device = libinput_device_get_user_data (libinput_device); device = libinput_device_get_user_data (libinput_device);
time_us = libinput_event_gesture_get_time_usec (gesture_event); time_us = libinput_event_gesture_get_time_usec (gesture_event);
angle_delta = libinput_event_gesture_get_angle_delta (gesture_event); angle_delta = libinput_event_gesture_get_angle_delta (gesture_event);
@@ -1704,7 +1646,7 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
notify_pinch_gesture_event (device, notify_pinch_gesture_event (device,
CLUTTER_TOUCHPAD_GESTURE_PHASE_UPDATE, CLUTTER_TOUCHPAD_GESTURE_PHASE_UPDATE,
time_us, dx, dy, angle_delta, scale, n_fingers); time_us, dx, dy, angle_delta, scale);
break; break;
} }
case LIBINPUT_EVENT_GESTURE_SWIPE_BEGIN: case LIBINPUT_EVENT_GESTURE_SWIPE_BEGIN:
@@ -1765,8 +1707,7 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
if (!stage) if (!stage)
break; break;
axes = translate_tablet_axes (tablet_event, axes = translate_tablet_axes (tablet_event);
evdev_device->last_tool);
if (!axes) if (!axes)
break; break;
@@ -1806,11 +1747,8 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
libinput_tool = libinput_event_tablet_tool_get_tool (tablet_event); libinput_tool = libinput_event_tablet_tool_get_tool (tablet_event);
if (state == LIBINPUT_TABLET_TOOL_PROXIMITY_STATE_IN) input_device_update_tool (device, libinput_tool);
input_device_update_tool (device, libinput_tool);
notify_proximity (device, time, state == LIBINPUT_TABLET_TOOL_PROXIMITY_STATE_IN); notify_proximity (device, time, state == LIBINPUT_TABLET_TOOL_PROXIMITY_STATE_IN);
if (state == LIBINPUT_TABLET_TOOL_PROXIMITY_STATE_OUT)
input_device_update_tool (device, NULL);
break; break;
} }
case LIBINPUT_EVENT_TABLET_TOOL_BUTTON: case LIBINPUT_EVENT_TABLET_TOOL_BUTTON:
@@ -1852,7 +1790,7 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
case LIBINPUT_EVENT_TABLET_PAD_BUTTON: case LIBINPUT_EVENT_TABLET_PAD_BUTTON:
{ {
guint64 time; guint64 time;
guint32 button_state, button, group, mode; guint32 button_state, button, group;
struct libinput_tablet_pad_mode_group *mode_group; struct libinput_tablet_pad_mode_group *mode_group;
struct libinput_event_tablet_pad *pad_event = struct libinput_event_tablet_pad *pad_event =
libinput_event_get_tablet_pad_event (event); libinput_event_get_tablet_pad_event (event);
@@ -1862,18 +1800,17 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
mode_group = libinput_event_tablet_pad_get_mode_group (pad_event); mode_group = libinput_event_tablet_pad_get_mode_group (pad_event);
group = libinput_tablet_pad_mode_group_get_index (mode_group); group = libinput_tablet_pad_mode_group_get_index (mode_group);
mode = libinput_event_tablet_pad_get_mode (pad_event);
button = libinput_event_tablet_pad_get_button_number (pad_event); button = libinput_event_tablet_pad_get_button_number (pad_event);
button_state = libinput_event_tablet_pad_get_button_state (pad_event) == button_state = libinput_event_tablet_pad_get_button_state (pad_event) ==
LIBINPUT_BUTTON_STATE_PRESSED; LIBINPUT_BUTTON_STATE_PRESSED;
notify_pad_button (device, time, button, group, mode, button_state); notify_pad_button (device, time, button, group, button_state);
break; break;
} }
case LIBINPUT_EVENT_TABLET_PAD_STRIP: case LIBINPUT_EVENT_TABLET_PAD_STRIP:
{ {
guint64 time; guint64 time;
guint32 number, source, group, mode; guint32 number, source, group;
struct libinput_tablet_pad_mode_group *mode_group; struct libinput_tablet_pad_mode_group *mode_group;
struct libinput_event_tablet_pad *pad_event = struct libinput_event_tablet_pad *pad_event =
libinput_event_get_tablet_pad_event (event); libinput_event_get_tablet_pad_event (event);
@@ -1887,15 +1824,14 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
mode_group = libinput_event_tablet_pad_get_mode_group (pad_event); mode_group = libinput_event_tablet_pad_get_mode_group (pad_event);
group = libinput_tablet_pad_mode_group_get_index (mode_group); group = libinput_tablet_pad_mode_group_get_index (mode_group);
mode = libinput_event_tablet_pad_get_mode (pad_event);
notify_pad_strip (device, time, number, source, group, mode, value); notify_pad_strip (device, time, number, source, group, value);
break; break;
} }
case LIBINPUT_EVENT_TABLET_PAD_RING: case LIBINPUT_EVENT_TABLET_PAD_RING:
{ {
guint64 time; guint64 time;
guint32 number, source, group, mode; guint32 number, source, group;
struct libinput_tablet_pad_mode_group *mode_group; struct libinput_tablet_pad_mode_group *mode_group;
struct libinput_event_tablet_pad *pad_event = struct libinput_event_tablet_pad *pad_event =
libinput_event_get_tablet_pad_event (event); libinput_event_get_tablet_pad_event (event);
@@ -1909,9 +1845,8 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
mode_group = libinput_event_tablet_pad_get_mode_group (pad_event); mode_group = libinput_event_tablet_pad_get_mode_group (pad_event);
group = libinput_tablet_pad_mode_group_get_index (mode_group); group = libinput_tablet_pad_mode_group_get_index (mode_group);
mode = libinput_event_tablet_pad_get_mode (pad_event);
notify_pad_ring (device, time, number, source, group, mode, angle); notify_pad_ring (device, time, number, source, group, angle);
break; break;
} }
default: default:
@@ -2035,31 +1970,6 @@ clutter_device_manager_evdev_create_virtual_device (ClutterDeviceManager *manag
NULL); NULL);
} }
static void
clutter_device_manager_evdev_compress_motion (ClutterDeviceManager *device_manger,
ClutterEvent *event,
const ClutterEvent *to_discard)
{
double dx, dy;
double dx_unaccel, dy_unaccel;
double dst_dx = 0.0, dst_dy = 0.0;
double dst_dx_unaccel = 0.0, dst_dy_unaccel = 0.0;
if (!clutter_evdev_event_get_relative_motion (to_discard,
&dx, &dy,
&dx_unaccel, &dy_unaccel))
return;
clutter_evdev_event_get_relative_motion (event,
&dst_dx, &dst_dy,
&dst_dx_unaccel, &dst_dy_unaccel);
_clutter_evdev_event_set_relative_motion (event,
dx + dst_dx,
dy + dst_dy,
dx_unaccel + dst_dx_unaccel,
dy_unaccel + dst_dy_unaccel);
}
/* /*
* GObject implementation * GObject implementation
*/ */
@@ -2093,8 +2003,7 @@ clutter_device_manager_evdev_constructed (GObject *gobject)
return; return;
} }
if (libinput_udev_assign_seat (priv->libinput, if (libinput_udev_assign_seat (priv->libinput, "seat0") == -1)
evdev_seat_id ? evdev_seat_id : "seat0") == -1)
{ {
g_critical ("Failed to assign a seat to the libinput object."); g_critical ("Failed to assign a seat to the libinput object.");
libinput_unref (priv->libinput); libinput_unref (priv->libinput);
@@ -2201,7 +2110,6 @@ clutter_device_manager_evdev_class_init (ClutterDeviceManagerEvdevClass *klass)
manager_class->get_core_device = clutter_device_manager_evdev_get_core_device; manager_class->get_core_device = clutter_device_manager_evdev_get_core_device;
manager_class->get_device = clutter_device_manager_evdev_get_device; manager_class->get_device = clutter_device_manager_evdev_get_device;
manager_class->create_virtual_device = clutter_device_manager_evdev_create_virtual_device; manager_class->create_virtual_device = clutter_device_manager_evdev_create_virtual_device;
manager_class->compress_motion = clutter_device_manager_evdev_compress_motion;
} }
static void static void
@@ -2327,12 +2235,6 @@ _clutter_device_manager_evdev_acquire_device_id (ClutterDeviceManagerEvdev *mana
return next_id; return next_id;
} }
void
_clutter_device_manager_evdev_dispatch (ClutterDeviceManagerEvdev *manager_evdev)
{
dispatch_libinput (manager_evdev);
}
static int static int
compare_ids (gconstpointer a, compare_ids (gconstpointer a,
gconstpointer b) gconstpointer b)
@@ -2602,60 +2504,6 @@ clutter_evdev_set_keyboard_layout_index (ClutterDeviceManager *evdev,
xkb_state_update_mask (state, depressed_mods, latched_mods, locked_mods, 0, 0, idx); xkb_state_update_mask (state, depressed_mods, latched_mods, locked_mods, 0, 0, idx);
} }
/**
* clutter_evdev_set_keyboard_numlock: (skip)
* @evdev: the #ClutterDeviceManager created by the evdev backend
* @numlock_set: TRUE to set NumLock ON, FALSE otherwise.
*
* Sets the NumLock state on the backend's #xkb_state .
*
* Stability: unstable
*/
void
clutter_evdev_set_keyboard_numlock (ClutterDeviceManager *evdev,
gboolean numlock_state)
{
ClutterDeviceManagerEvdev *manager_evdev;
ClutterDeviceManagerEvdevPrivate *priv;
GSList *iter;
xkb_mod_mask_t numlock;
g_return_if_fail (CLUTTER_IS_DEVICE_MANAGER_EVDEV (evdev));
manager_evdev = CLUTTER_DEVICE_MANAGER_EVDEV (evdev);
priv = manager_evdev->priv;
numlock = (1 << xkb_keymap_mod_get_index(priv->keymap, "Mod2"));
for (iter = priv->seats; iter; iter = iter->next)
{
ClutterSeatEvdev *seat = iter->data;
xkb_mod_mask_t depressed_mods;
xkb_mod_mask_t latched_mods;
xkb_mod_mask_t locked_mods;
xkb_mod_mask_t group_mods;
depressed_mods = xkb_state_serialize_mods (seat->xkb, XKB_STATE_MODS_DEPRESSED);
latched_mods = xkb_state_serialize_mods (seat->xkb, XKB_STATE_MODS_LATCHED);
locked_mods = xkb_state_serialize_mods (seat->xkb, XKB_STATE_MODS_LOCKED);
group_mods = xkb_state_serialize_layout (seat->xkb, XKB_STATE_LAYOUT_EFFECTIVE);
if (numlock_state)
locked_mods |= numlock;
else
locked_mods &= ~numlock;
xkb_state_update_mask (seat->xkb,
depressed_mods,
latched_mods,
locked_mods,
0, 0,
group_mods);
clutter_seat_evdev_sync_leds (seat);
}
}
/** /**
* clutter_evdev_set_pointer_constrain_callback: * clutter_evdev_set_pointer_constrain_callback:
* @evdev: the #ClutterDeviceManager created by the evdev backend * @evdev: the #ClutterDeviceManager created by the evdev backend
@@ -2692,23 +2540,6 @@ clutter_evdev_set_pointer_constrain_callback (ClutterDeviceManager *e
priv->constrain_data_notify = user_data_notify; priv->constrain_data_notify = user_data_notify;
} }
void
clutter_evdev_set_relative_motion_filter (ClutterDeviceManager *evdev,
ClutterRelativeMotionFilter filter,
gpointer user_data)
{
ClutterDeviceManagerEvdev *manager_evdev;
ClutterDeviceManagerEvdevPrivate *priv;
g_return_if_fail (CLUTTER_IS_DEVICE_MANAGER_EVDEV (evdev));
manager_evdev = CLUTTER_DEVICE_MANAGER_EVDEV (evdev);
priv = manager_evdev->priv;
priv->relative_motion_filter = filter;
priv->relative_motion_filter_user_data = user_data;
}
/** /**
* clutter_evdev_set_keyboard_repeat: * clutter_evdev_set_keyboard_repeat:
* @evdev: the #ClutterDeviceManager created by the evdev backend * @evdev: the #ClutterDeviceManager created by the evdev backend
@@ -2860,18 +2691,3 @@ clutter_evdev_warp_pointer (ClutterInputDevice *pointer_device,
{ {
notify_absolute_motion (pointer_device, ms2us(time_), x, y, NULL); notify_absolute_motion (pointer_device, ms2us(time_), x, y, NULL);
} }
/**
* clutter_evdev_set_seat_id:
* @seat_id: The seat ID
*
* Sets the seat to assign to the libinput context.
*
* For reliable effects, this function must be called before clutter_init().
*/
void
clutter_evdev_set_seat_id (const gchar *seat_id)
{
g_free (evdev_seat_id);
evdev_seat_id = g_strdup (seat_id);
}

View File

@@ -76,15 +76,6 @@ void _clutter_device_manager_evdev_constrain_pointer (ClutterDeviceManagerEvdev
float *new_x, float *new_x,
float *new_y); float *new_y);
void _clutter_device_manager_evdev_filter_relative_motion (ClutterDeviceManagerEvdev *manager_evdev,
ClutterInputDevice *device,
float x,
float y,
float *dx,
float *dy);
void _clutter_device_manager_evdev_dispatch (ClutterDeviceManagerEvdev *manager_evdev);
static inline guint64 static inline guint64
us (guint64 us) us (guint64 us)
{ {

View File

@@ -57,9 +57,6 @@ void clutter_evdev_set_device_callbacks (ClutterOpenDeviceCallback open_callba
ClutterCloseDeviceCallback close_callback, ClutterCloseDeviceCallback close_callback,
gpointer user_data); gpointer user_data);
CLUTTER_AVAILABLE_IN_ALL
void clutter_evdev_set_seat_id (const gchar *seat_id);
CLUTTER_AVAILABLE_IN_1_10 CLUTTER_AVAILABLE_IN_1_10
void clutter_evdev_release_devices (void); void clutter_evdev_release_devices (void);
CLUTTER_AVAILABLE_IN_1_10 CLUTTER_AVAILABLE_IN_1_10
@@ -97,18 +94,6 @@ void clutter_evdev_set_pointer_constrain_callback (ClutterDeviceManager
gpointer user_data, gpointer user_data,
GDestroyNotify user_data_notify); GDestroyNotify user_data_notify);
typedef void (*ClutterRelativeMotionFilter) (ClutterInputDevice *device,
float x,
float y,
float *dx,
float *dy,
gpointer user_data);
CLUTTER_AVAILABLE_IN_MUTTER
void clutter_evdev_set_relative_motion_filter (ClutterDeviceManager *evdev,
ClutterRelativeMotionFilter filter,
gpointer user_data);
CLUTTER_AVAILABLE_IN_1_16 CLUTTER_AVAILABLE_IN_1_16
void clutter_evdev_set_keyboard_map (ClutterDeviceManager *evdev, void clutter_evdev_set_keyboard_map (ClutterDeviceManager *evdev,
struct xkb_keymap *keymap); struct xkb_keymap *keymap);
@@ -120,10 +105,6 @@ CLUTTER_AVAILABLE_IN_1_20
void clutter_evdev_set_keyboard_layout_index (ClutterDeviceManager *evdev, void clutter_evdev_set_keyboard_layout_index (ClutterDeviceManager *evdev,
xkb_layout_index_t idx); xkb_layout_index_t idx);
CLUTTER_AVAILABLE_IN_1_26
void clutter_evdev_set_keyboard_numlock (ClutterDeviceManager *evdev,
gboolean numlock_state);
CLUTTER_AVAILABLE_IN_1_18 CLUTTER_AVAILABLE_IN_1_18
void clutter_evdev_set_keyboard_repeat (ClutterDeviceManager *evdev, void clutter_evdev_set_keyboard_repeat (ClutterDeviceManager *evdev,
gboolean repeat, gboolean repeat,
@@ -165,14 +146,6 @@ gboolean clutter_evdev_event_get_relative_motion (const ClutterEvent *event,
double *dx_unaccel, double *dx_unaccel,
double *dy_unaccel); double *dy_unaccel);
CLUTTER_AVAILABLE_IN_ALL
void clutter_evdev_input_device_tool_set_pressure_curve (ClutterInputDeviceTool *tool,
gdouble curve[4]);
CLUTTER_AVAILABLE_IN_ALL
void clutter_evdev_input_device_tool_set_button_code (ClutterInputDeviceTool *tool,
guint button,
guint evcode);
G_END_DECLS G_END_DECLS
#endif /* __CLUTTER_EVDEV_H__ */ #endif /* __CLUTTER_EVDEV_H__ */

View File

@@ -35,8 +35,6 @@
#include "clutter-input-device-evdev.h" #include "clutter-input-device-evdev.h"
#include "clutter-device-manager-evdev.h" #include "clutter-device-manager-evdev.h"
#include "cairo-gobject.h"
typedef struct _ClutterInputDeviceClass ClutterInputDeviceEvdevClass; typedef struct _ClutterInputDeviceClass ClutterInputDeviceEvdevClass;
#define clutter_input_device_evdev_get_type _clutter_input_device_evdev_get_type #define clutter_input_device_evdev_get_type _clutter_input_device_evdev_get_type
@@ -45,15 +43,6 @@ G_DEFINE_TYPE (ClutterInputDeviceEvdev,
clutter_input_device_evdev, clutter_input_device_evdev,
CLUTTER_TYPE_INPUT_DEVICE) CLUTTER_TYPE_INPUT_DEVICE)
enum {
PROP_0,
PROP_DEVICE_MATRIX,
PROP_OUTPUT_ASPECT_RATIO,
N_PROPS
};
static GParamSpec *obj_props[N_PROPS] = { 0 };
static void static void
clutter_input_device_evdev_finalize (GObject *object) clutter_input_device_evdev_finalize (GObject *object)
{ {
@@ -70,53 +59,6 @@ clutter_input_device_evdev_finalize (GObject *object)
G_OBJECT_CLASS (clutter_input_device_evdev_parent_class)->finalize (object); G_OBJECT_CLASS (clutter_input_device_evdev_parent_class)->finalize (object);
} }
static void
clutter_input_device_evdev_set_property (GObject *object,
guint prop_id,
const GValue *value,
GParamSpec *pspec)
{
ClutterInputDeviceEvdev *device = CLUTTER_INPUT_DEVICE_EVDEV (object);
switch (prop_id)
{
case PROP_DEVICE_MATRIX:
{
const cairo_matrix_t *matrix = g_value_get_boxed (value);
cairo_matrix_init_identity (&device->device_matrix);
cairo_matrix_multiply (&device->device_matrix,
&device->device_matrix, matrix);
break;
}
case PROP_OUTPUT_ASPECT_RATIO:
device->output_ratio = g_value_get_double (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
}
static void
clutter_input_device_evdev_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec)
{
ClutterInputDeviceEvdev *device = CLUTTER_INPUT_DEVICE_EVDEV (object);
switch (prop_id)
{
case PROP_DEVICE_MATRIX:
g_value_set_boxed (value, &device->device_matrix);
break;
case PROP_OUTPUT_ASPECT_RATIO:
g_value_set_double (value, device->output_ratio);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
}
static gboolean static gboolean
clutter_input_device_evdev_keycode_to_evdev (ClutterInputDevice *device, clutter_input_device_evdev_keycode_to_evdev (ClutterInputDevice *device,
guint hardware_keycode, guint hardware_keycode,
@@ -163,89 +105,22 @@ clutter_input_device_evdev_update_from_tool (ClutterInputDevice *device,
if (libinput_tablet_tool_has_slider (evdev_tool->tool)) if (libinput_tablet_tool_has_slider (evdev_tool->tool))
_clutter_input_device_add_axis (device, CLUTTER_INPUT_AXIS_SLIDER, -1, 1, 0); _clutter_input_device_add_axis (device, CLUTTER_INPUT_AXIS_SLIDER, -1, 1, 0);
if (libinput_tablet_tool_has_wheel (evdev_tool->tool))
_clutter_input_device_add_axis (device, CLUTTER_INPUT_AXIS_WHEEL, -180, 180, 0);
g_object_thaw_notify (G_OBJECT (device)); g_object_thaw_notify (G_OBJECT (device));
} }
static gboolean
clutter_input_device_evdev_is_mode_switch_button (ClutterInputDevice *device,
guint group,
guint button)
{
struct libinput_device *libinput_device;
struct libinput_tablet_pad_mode_group *mode_group;
libinput_device = clutter_evdev_input_device_get_libinput_device (device);
mode_group = libinput_device_tablet_pad_get_mode_group (libinput_device, group);
return libinput_tablet_pad_mode_group_button_is_toggle (mode_group, button) != 0;
}
static gint
clutter_input_device_evdev_get_group_n_modes (ClutterInputDevice *device,
gint group)
{
struct libinput_device *libinput_device;
struct libinput_tablet_pad_mode_group *mode_group;
libinput_device = clutter_evdev_input_device_get_libinput_device (device);
mode_group = libinput_device_tablet_pad_get_mode_group (libinput_device, group);
return libinput_tablet_pad_mode_group_get_num_modes (mode_group);
}
static gboolean
clutter_input_device_evdev_is_grouped (ClutterInputDevice *device,
ClutterInputDevice *other_device)
{
struct libinput_device *libinput_device, *other_libinput_device;
libinput_device = clutter_evdev_input_device_get_libinput_device (device);
other_libinput_device = clutter_evdev_input_device_get_libinput_device (other_device);
return libinput_device_get_device_group (libinput_device) ==
libinput_device_get_device_group (other_libinput_device);
}
static void static void
clutter_input_device_evdev_class_init (ClutterInputDeviceEvdevClass *klass) clutter_input_device_evdev_class_init (ClutterInputDeviceEvdevClass *klass)
{ {
GObjectClass *object_class = G_OBJECT_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->finalize = clutter_input_device_evdev_finalize; object_class->finalize = clutter_input_device_evdev_finalize;
object_class->set_property = clutter_input_device_evdev_set_property;
object_class->get_property = clutter_input_device_evdev_get_property;
klass->keycode_to_evdev = clutter_input_device_evdev_keycode_to_evdev; klass->keycode_to_evdev = clutter_input_device_evdev_keycode_to_evdev;
klass->update_from_tool = clutter_input_device_evdev_update_from_tool; klass->update_from_tool = clutter_input_device_evdev_update_from_tool;
klass->is_mode_switch_button = clutter_input_device_evdev_is_mode_switch_button;
klass->get_group_n_modes = clutter_input_device_evdev_get_group_n_modes;
klass->is_grouped = clutter_input_device_evdev_is_grouped;
obj_props[PROP_DEVICE_MATRIX] =
g_param_spec_boxed ("device-matrix",
P_("Device input matrix"),
P_("Device input matrix"),
CAIRO_GOBJECT_TYPE_MATRIX,
CLUTTER_PARAM_READWRITE);
obj_props[PROP_OUTPUT_ASPECT_RATIO] =
g_param_spec_double ("output-aspect-ratio",
P_("Output aspect ratio"),
P_("Output aspect ratio"),
0, G_MAXDOUBLE, 0,
CLUTTER_PARAM_READWRITE);
g_object_class_install_properties (object_class, N_PROPS, obj_props);
} }
static void static void
clutter_input_device_evdev_init (ClutterInputDeviceEvdev *self) clutter_input_device_evdev_init (ClutterInputDeviceEvdev *self)
{ {
cairo_matrix_init_identity (&self->device_matrix);
self->device_aspect_ratio = 0;
self->output_ratio = 0;
} }
/* /*
@@ -268,7 +143,6 @@ _clutter_input_device_evdev_new (ClutterDeviceManager *manager,
gchar *vendor, *product; gchar *vendor, *product;
gint device_id, n_rings = 0, n_strips = 0, n_groups = 1; gint device_id, n_rings = 0, n_strips = 0, n_groups = 1;
gchar *node_path; gchar *node_path;
gdouble width, height;
type = _clutter_input_device_evdev_determine_type (libinput_device); type = _clutter_input_device_evdev_determine_type (libinput_device);
vendor = g_strdup_printf ("%.4x", libinput_device_get_id_vendor (libinput_device)); vendor = g_strdup_printf ("%.4x", libinput_device_get_id_vendor (libinput_device));
@@ -308,9 +182,6 @@ _clutter_input_device_evdev_new (ClutterDeviceManager *manager,
g_free (vendor); g_free (vendor);
g_free (product); g_free (product);
if (libinput_device_get_size (libinput_device, &width, &height) == 0)
device->device_aspect_ratio = width / height;
return CLUTTER_INPUT_DEVICE (device); return CLUTTER_INPUT_DEVICE (device);
} }
@@ -442,39 +313,3 @@ clutter_evdev_event_sequence_get_slot (const ClutterEventSequence *sequence)
return GPOINTER_TO_INT (sequence) - 1; return GPOINTER_TO_INT (sequence) - 1;
} }
void
clutter_input_device_evdev_translate_coordinates (ClutterInputDevice *device,
ClutterStage *stage,
gfloat *x,
gfloat *y)
{
ClutterInputDeviceEvdev *device_evdev = CLUTTER_INPUT_DEVICE_EVDEV (device);
double min_x = 0, min_y = 0, max_x = 1, max_y = 1;
gdouble stage_width, stage_height;
double x_d, y_d;
stage_width = clutter_actor_get_width (CLUTTER_ACTOR (stage));
stage_height = clutter_actor_get_height (CLUTTER_ACTOR (stage));
x_d = *x / stage_width;
y_d = *y / stage_height;
/* Apply aspect ratio */
if (device_evdev->output_ratio > 0 &&
device_evdev->device_aspect_ratio > 0)
{
gdouble ratio = device_evdev->device_aspect_ratio / device_evdev->output_ratio;
if (ratio > 1)
x_d *= ratio;
else if (ratio < 1)
y_d *= 1 / ratio;
}
cairo_matrix_transform_point (&device_evdev->device_matrix, &min_x, &min_y);
cairo_matrix_transform_point (&device_evdev->device_matrix, &max_x, &max_y);
cairo_matrix_transform_point (&device_evdev->device_matrix, &x_d, &y_d);
*x = CLAMP (x_d, MIN (min_x, max_x), MAX (min_x, max_x)) * stage_width;
*y = CLAMP (y_d, MIN (min_y, max_y), MAX (min_y, max_y)) * stage_height;
}

View File

@@ -66,10 +66,6 @@ struct _ClutterInputDeviceEvdev
struct libinput_device *libinput_device; struct libinput_device *libinput_device;
ClutterSeatEvdev *seat; ClutterSeatEvdev *seat;
ClutterInputDeviceTool *last_tool; ClutterInputDeviceTool *last_tool;
cairo_matrix_t device_matrix;
gdouble device_aspect_ratio; /* w:h */
gdouble output_ratio; /* w:h */
}; };
GType _clutter_input_device_evdev_get_type (void) G_GNUC_CONST; GType _clutter_input_device_evdev_get_type (void) G_GNUC_CONST;
@@ -106,11 +102,6 @@ void _clutter_evdev_event_set_relative_motion (ClutterEvent *event,
double dx_unaccel, double dx_unaccel,
double dy_unaccel); double dy_unaccel);
void clutter_input_device_evdev_translate_coordinates (ClutterInputDevice *device,
ClutterStage *stage,
gfloat *x,
gfloat *y);
G_END_DECLS G_END_DECLS
#endif /* __CLUTTER_INPUT_DEVICE_EVDEV_H__ */ #endif /* __CLUTTER_INPUT_DEVICE_EVDEV_H__ */

View File

@@ -26,7 +26,6 @@
#endif #endif
#include "clutter-input-device-tool-evdev.h" #include "clutter-input-device-tool-evdev.h"
#include "clutter-evdev.h"
G_DEFINE_TYPE (ClutterInputDeviceToolEvdev, clutter_input_device_tool_evdev, G_DEFINE_TYPE (ClutterInputDeviceToolEvdev, clutter_input_device_tool_evdev,
CLUTTER_TYPE_INPUT_DEVICE_TOOL) CLUTTER_TYPE_INPUT_DEVICE_TOOL)
@@ -36,7 +35,6 @@ clutter_input_device_tool_evdev_finalize (GObject *object)
{ {
ClutterInputDeviceToolEvdev *tool = CLUTTER_INPUT_DEVICE_TOOL_EVDEV (object); ClutterInputDeviceToolEvdev *tool = CLUTTER_INPUT_DEVICE_TOOL_EVDEV (object);
g_hash_table_unref (tool->button_map);
libinput_tablet_tool_unref (tool->tool); libinput_tablet_tool_unref (tool->tool);
G_OBJECT_CLASS (clutter_input_device_tool_evdev_parent_class)->finalize (object); G_OBJECT_CLASS (clutter_input_device_tool_evdev_parent_class)->finalize (object);
@@ -53,7 +51,6 @@ clutter_input_device_tool_evdev_class_init (ClutterInputDeviceToolEvdevClass *kl
static void static void
clutter_input_device_tool_evdev_init (ClutterInputDeviceToolEvdev *tool) clutter_input_device_tool_evdev_init (ClutterInputDeviceToolEvdev *tool)
{ {
tool->button_map = g_hash_table_new (NULL, NULL);
} }
ClutterInputDeviceTool * ClutterInputDeviceTool *
@@ -73,96 +70,3 @@ clutter_input_device_tool_evdev_new (struct libinput_tablet_tool *tool,
return CLUTTER_INPUT_DEVICE_TOOL (evdev_tool); return CLUTTER_INPUT_DEVICE_TOOL (evdev_tool);
} }
void
clutter_evdev_input_device_tool_set_pressure_curve (ClutterInputDeviceTool *tool,
gdouble curve[4])
{
ClutterInputDeviceToolEvdev *evdev_tool;
g_return_if_fail (CLUTTER_IS_INPUT_DEVICE_TOOL_EVDEV (tool));
g_return_if_fail (curve[0] >= 0 && curve[0] <= 1 &&
curve[1] >= 0 && curve[1] <= 1 &&
curve[2] >= 0 && curve[2] <= 1 &&
curve[3] >= 0 && curve[3] <= 1);
evdev_tool = CLUTTER_INPUT_DEVICE_TOOL_EVDEV (tool);
evdev_tool->pressure_curve[0] = curve[0];
evdev_tool->pressure_curve[1] = curve[1];
evdev_tool->pressure_curve[2] = curve[2];
evdev_tool->pressure_curve[3] = curve[3];
}
void
clutter_evdev_input_device_tool_set_button_code (ClutterInputDeviceTool *tool,
guint button,
guint evcode)
{
ClutterInputDeviceToolEvdev *evdev_tool;
g_return_if_fail (CLUTTER_IS_INPUT_DEVICE_TOOL_EVDEV (tool));
evdev_tool = CLUTTER_INPUT_DEVICE_TOOL_EVDEV (tool);
if (evcode == 0)
{
g_hash_table_remove (evdev_tool->button_map, GUINT_TO_POINTER (button));
}
else
{
g_hash_table_insert (evdev_tool->button_map, GUINT_TO_POINTER (button),
GUINT_TO_POINTER (evcode));
}
}
static gdouble
calculate_bezier_position (gdouble pos,
gdouble x1,
gdouble y1,
gdouble x2,
gdouble y2)
{
gdouble int1_y, int2_y;
pos = CLAMP (pos, 0, 1);
/* Intersection between 0,0 and x1,y1 */
int1_y = pos * y1;
/* Intersection between x2,y2 and 1,1 */
int2_y = (pos * (1 - y2)) + y2;
/* Find the new position in the line traced by the previous points */
return (pos * (int2_y - int1_y)) + int1_y;
}
gdouble
clutter_input_device_tool_evdev_translate_pressure (ClutterInputDeviceTool *tool,
gdouble pressure)
{
ClutterInputDeviceToolEvdev *evdev_tool;
g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE_TOOL (tool), pressure);
evdev_tool = CLUTTER_INPUT_DEVICE_TOOL_EVDEV (tool);
return calculate_bezier_position (CLAMP (pressure, 0, 1),
evdev_tool->pressure_curve[0],
evdev_tool->pressure_curve[1],
evdev_tool->pressure_curve[2],
evdev_tool->pressure_curve[3]);
}
guint
clutter_input_device_tool_evdev_get_button_code (ClutterInputDeviceTool *tool,
guint button)
{
ClutterInputDeviceToolEvdev *evdev_tool;
g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE_TOOL (tool), 0);
evdev_tool = CLUTTER_INPUT_DEVICE_TOOL_EVDEV (tool);
return GPOINTER_TO_UINT (g_hash_table_lookup (evdev_tool->button_map,
GUINT_TO_POINTER (button)));
}

View File

@@ -59,8 +59,6 @@ struct _ClutterInputDeviceToolEvdev
{ {
ClutterInputDeviceTool parent_instance; ClutterInputDeviceTool parent_instance;
struct libinput_tablet_tool *tool; struct libinput_tablet_tool *tool;
GHashTable *button_map;
gdouble pressure_curve[4];
}; };
struct _ClutterInputDeviceToolEvdevClass struct _ClutterInputDeviceToolEvdevClass
@@ -74,11 +72,6 @@ ClutterInputDeviceTool * clutter_input_device_tool_evdev_new (struct libinp
guint64 serial, guint64 serial,
ClutterInputDeviceToolType type); ClutterInputDeviceToolType type);
gdouble clutter_input_device_tool_evdev_translate_pressure (ClutterInputDeviceTool *tool,
gdouble pressure);
guint clutter_input_device_tool_evdev_get_button_code (ClutterInputDeviceTool *tool,
guint button);
G_END_DECLS G_END_DECLS
#endif /* __CLUTTER_INPUT_DEVICE_EVDEV_TOOL_H__ */ #endif /* __CLUTTER_INPUT_DEVICE_EVDEV_TOOL_H__ */

View File

@@ -32,7 +32,6 @@
#include "clutter-event-private.h" #include "clutter-event-private.h"
#include "clutter-input-device-evdev.h" #include "clutter-input-device-evdev.h"
#include "clutter-input-device-tool-evdev.h"
#include "clutter-main.h" #include "clutter-main.h"
/* Try to keep the pointer inside the stage. Hopefully no one is using /* Try to keep the pointer inside the stage. Hopefully no one is using
@@ -186,19 +185,15 @@ keyboard_repeat (gpointer data)
{ {
ClutterSeatEvdev *seat = data; ClutterSeatEvdev *seat = data;
GSource *source; GSource *source;
guint32 time_ms;
/* There might be events queued in libinput that could cancel the
repeat timer. */
_clutter_device_manager_evdev_dispatch (seat->manager_evdev);
if (!seat->repeat_timer)
return G_SOURCE_REMOVE;
g_return_val_if_fail (seat->repeat_device != NULL, G_SOURCE_REMOVE); g_return_val_if_fail (seat->repeat_device != NULL, G_SOURCE_REMOVE);
source = g_main_context_find_source_by_id (NULL, seat->repeat_timer); source = g_main_context_find_source_by_id (NULL, seat->repeat_timer);
time_ms = g_source_get_time (source) / 1000;
clutter_seat_evdev_notify_key (seat, clutter_seat_evdev_notify_key (seat,
seat->repeat_device, seat->repeat_device,
g_source_get_time (source), ms2us (time_ms),
seat->repeat_key, seat->repeat_key,
AUTOREPEAT_VALUE, AUTOREPEAT_VALUE,
FALSE); FALSE);
@@ -405,13 +400,6 @@ clutter_seat_evdev_notify_relative_motion (ClutterSeatEvdev *seat,
if (!_clutter_input_device_get_stage (input_device)) if (!_clutter_input_device_get_stage (input_device))
return; return;
_clutter_device_manager_evdev_filter_relative_motion (seat->manager_evdev,
input_device,
seat->pointer_x,
seat->pointer_y,
&dx,
&dy);
new_x = seat->pointer_x + dx; new_x = seat->pointer_x + dx;
new_y = seat->pointer_y + dy; new_y = seat->pointer_y + dy;
event = new_absolute_motion_event (seat, input_device, event = new_absolute_motion_event (seat, input_device,
@@ -433,7 +421,7 @@ void clutter_seat_evdev_notify_absolute_motion (ClutterSeatEvdev *seat,
{ {
ClutterEvent *event; ClutterEvent *event;
event = new_absolute_motion_event (seat, input_device, time_us, x, y, axes); event = new_absolute_motion_event (seat, input_device, time_us, x, x, axes);
queue_event (event); queue_event (event);
} }
@@ -445,7 +433,6 @@ clutter_seat_evdev_notify_button (ClutterSeatEvdev *seat,
uint32_t button, uint32_t button,
uint32_t state) uint32_t state)
{ {
ClutterInputDeviceEvdev *device_evdev = (ClutterInputDeviceEvdev *) input_device;
ClutterStage *stage; ClutterStage *stage;
ClutterEvent *event = NULL; ClutterEvent *event = NULL;
gint button_nr; gint button_nr;
@@ -541,21 +528,13 @@ clutter_seat_evdev_notify_button (ClutterSeatEvdev *seat,
clutter_event_set_device (event, seat->core_pointer); clutter_event_set_device (event, seat->core_pointer);
clutter_event_set_source_device (event, input_device); clutter_event_set_source_device (event, input_device);
if (device_evdev->last_tool)
{
/* Apply the button event code as per the tool mapping */
guint mapped_button;
mapped_button = clutter_input_device_tool_evdev_get_button_code (device_evdev->last_tool,
button_nr);
if (mapped_button != 0)
button = mapped_button;
}
_clutter_evdev_event_set_event_code (event, button); _clutter_evdev_event_set_event_code (event, button);
if (clutter_input_device_get_device_type (input_device) == CLUTTER_TABLET_DEVICE) if (clutter_input_device_get_device_type (input_device) == CLUTTER_TABLET_DEVICE)
{ {
ClutterInputDeviceEvdev *device_evdev =
CLUTTER_INPUT_DEVICE_EVDEV (input_device);
clutter_event_set_device_tool (event, device_evdev->last_tool); clutter_event_set_device_tool (event, device_evdev->last_tool);
clutter_event_set_device (event, input_device); clutter_event_set_device (event, input_device);
} }

View File

@@ -3,8 +3,8 @@ exec_prefix=@exec_prefix@
libdir=@libdir@/mutter libdir=@libdir@/mutter
includedir=@includedir@/mutter includedir=@includedir@/mutter
apiversion=@LIBMUTTER_API_VERSION@ apiversion=@CLUTTER_API_VERSION@
requires=@CLUTTER_REQUIRES@ mutter-cogl-@LIBMUTTER_API_VERSION@ requires=@CLUTTER_REQUIRES@ mutter-cogl-1.0
requires_private=@CLUTTER_REQUIRES_PRIVATE@ requires_private=@CLUTTER_REQUIRES_PRIVATE@
backends=@CLUTTER_BACKENDS@ backends=@CLUTTER_BACKENDS@
@@ -17,7 +17,7 @@ cogl_driver=deprecated
Name: Mutter Clutter Name: Mutter Clutter
Description: Mutter's Clutter Private Library Description: Mutter's Clutter Private Library
Version: @MUTTER_VERSION@ Version: @VERSION@
Libs: -L${libdir} -lmutter-clutter-${apiversion} Libs: -L${libdir} -lmutter-clutter-${apiversion}
Cflags: -I${includedir}/clutter-${apiversion} Cflags: -I${includedir}/clutter-${apiversion}
Requires: ${requires} Requires: ${requires}

View File

@@ -29,8 +29,6 @@
#include "clutter-backend-x11.h" #include "clutter-backend-x11.h"
#include "clutter-input-device-xi2.h" #include "clutter-input-device-xi2.h"
#include "clutter-input-device-tool-xi2.h"
#include "clutter-virtual-input-device-x11.h"
#include "clutter-stage-x11.h" #include "clutter-stage-x11.h"
#include "clutter-backend.h" #include "clutter-backend.h"
@@ -66,14 +64,6 @@ static const char *clutter_input_axis_atom_names[] = {
#define N_AXIS_ATOMS G_N_ELEMENTS (clutter_input_axis_atom_names) #define N_AXIS_ATOMS G_N_ELEMENTS (clutter_input_axis_atom_names)
enum {
PAD_AXIS_FIRST = 3, /* First axes are always x/y/pressure, ignored in pads */
PAD_AXIS_STRIP1 = PAD_AXIS_FIRST,
PAD_AXIS_STRIP2,
PAD_AXIS_RING1,
PAD_AXIS_RING2,
};
static Atom clutter_input_axis_atoms[N_AXIS_ATOMS] = { 0, }; static Atom clutter_input_axis_atoms[N_AXIS_ATOMS] = { 0, };
static void clutter_event_translator_iface_init (ClutterEventTranslatorIface *iface); static void clutter_event_translator_iface_init (ClutterEventTranslatorIface *iface);
@@ -367,36 +357,6 @@ get_device_node_path (ClutterBackendX11 *backend_x11,
return node_path; return node_path;
} }
static void
get_pad_features (XIDeviceInfo *info,
guint *n_rings,
guint *n_strips)
{
gint i, rings = 0, strips = 0;
for (i = PAD_AXIS_FIRST; i < info->num_classes; i++)
{
XIValuatorClassInfo *valuator = (XIValuatorClassInfo*) info->classes[i];
int axis = valuator->number;
if (valuator->type != XIValuatorClass)
continue;
if (valuator->max <= 1)
continue;
/* Ring/strip axes are fixed in pad devices as handled by the
* wacom driver. Match those to detect pad features.
*/
if (axis == PAD_AXIS_STRIP1 || axis == PAD_AXIS_STRIP2)
strips++;
else if (axis == PAD_AXIS_RING1 || axis == PAD_AXIS_RING2)
rings++;
}
*n_rings = rings;
*n_strips = strips;
}
static ClutterInputDevice * static ClutterInputDevice *
create_device (ClutterDeviceManagerXI2 *manager_xi2, create_device (ClutterDeviceManagerXI2 *manager_xi2,
ClutterBackendX11 *backend_x11, ClutterBackendX11 *backend_x11,
@@ -406,7 +366,7 @@ create_device (ClutterDeviceManagerXI2 *manager_xi2,
ClutterInputDevice *retval; ClutterInputDevice *retval;
ClutterInputMode mode; ClutterInputMode mode;
gboolean is_enabled; gboolean is_enabled;
guint num_touches = 0, num_rings = 0, num_strips = 0; guint num_touches = 0;
gchar *vendor_id = NULL, *product_id = NULL, *node_path = NULL; gchar *vendor_id = NULL, *product_id = NULL, *node_path = NULL;
if (info->use == XIMasterKeyboard || info->use == XISlaveKeyboard) if (info->use == XIMasterKeyboard || info->use == XISlaveKeyboard)
@@ -434,8 +394,6 @@ create_device (ClutterDeviceManagerXI2 *manager_xi2,
source = CLUTTER_ERASER_DEVICE; source = CLUTTER_ERASER_DEVICE;
else if (strstr (name, "cursor") != NULL) else if (strstr (name, "cursor") != NULL)
source = CLUTTER_CURSOR_DEVICE; source = CLUTTER_CURSOR_DEVICE;
else if (strstr (name, " pad") != NULL)
source = CLUTTER_PAD_DEVICE;
else if (strstr (name, "wacom") != NULL || strstr (name, "pen") != NULL) else if (strstr (name, "wacom") != NULL || strstr (name, "pen") != NULL)
source = CLUTTER_PEN_DEVICE; source = CLUTTER_PEN_DEVICE;
else if (strstr (name, "touchpad") != NULL) else if (strstr (name, "touchpad") != NULL)
@@ -474,12 +432,6 @@ create_device (ClutterDeviceManagerXI2 *manager_xi2,
node_path = get_device_node_path (backend_x11, info); node_path = get_device_node_path (backend_x11, info);
} }
if (source == CLUTTER_PAD_DEVICE)
{
is_enabled = TRUE;
get_pad_features (info, &num_rings, &num_strips);
}
retval = g_object_new (CLUTTER_TYPE_INPUT_DEVICE_XI2, retval = g_object_new (CLUTTER_TYPE_INPUT_DEVICE_XI2,
"name", info->name, "name", info->name,
"id", info->deviceid, "id", info->deviceid,
@@ -492,8 +444,6 @@ create_device (ClutterDeviceManagerXI2 *manager_xi2,
"vendor-id", vendor_id, "vendor-id", vendor_id,
"product-id", product_id, "product-id", product_id,
"device-node", node_path, "device-node", node_path,
"n-rings", num_rings,
"n-strips", num_strips,
NULL); NULL);
translate_device_classes (backend_x11->xdpy, retval, translate_device_classes (backend_x11->xdpy, retval,
@@ -510,46 +460,6 @@ create_device (ClutterDeviceManagerXI2 *manager_xi2,
return retval; return retval;
} }
static void
pad_passive_button_grab (ClutterInputDevice *device)
{
XIGrabModifiers xi_grab_mods = { XIAnyModifier, };
XIEventMask xi_event_mask;
gint device_id, rc;
device_id = clutter_input_device_get_device_id (device);
xi_event_mask.deviceid = device_id;
xi_event_mask.mask_len = XIMaskLen (XI_LASTEVENT);
xi_event_mask.mask = g_new0 (unsigned char, xi_event_mask.mask_len);
XISetMask (xi_event_mask.mask, XI_Motion);
XISetMask (xi_event_mask.mask, XI_ButtonPress);
XISetMask (xi_event_mask.mask, XI_ButtonRelease);
clutter_x11_trap_x_errors ();
rc = XIGrabButton (clutter_x11_get_default_display (),
device_id, XIAnyButton,
clutter_x11_get_root_window (), None,
XIGrabModeSync, XIGrabModeSync,
True, &xi_event_mask, 1, &xi_grab_mods);
if (rc != 0)
{
g_warning ("Could not passively grab pad device: %s",
clutter_input_device_get_device_name (device));
}
else
{
XIAllowEvents (clutter_x11_get_default_display (),
device_id, XIAsyncDevice,
CLUTTER_CURRENT_TIME);
}
clutter_x11_untrap_x_errors ();
g_free (xi_event_mask.mask);
}
static ClutterInputDevice * static ClutterInputDevice *
add_device (ClutterDeviceManagerXI2 *manager_xi2, add_device (ClutterDeviceManagerXI2 *manager_xi2,
ClutterBackendX11 *backend_x11, ClutterBackendX11 *backend_x11,
@@ -584,9 +494,6 @@ add_device (ClutterDeviceManagerXI2 *manager_xi2,
g_warning ("Unhandled device: %s", g_warning ("Unhandled device: %s",
clutter_input_device_get_device_name (device)); clutter_input_device_get_device_name (device));
if (clutter_input_device_get_device_type (device) == CLUTTER_PAD_DEVICE)
pad_passive_button_grab (device);
/* relationships between devices and signal emissions are not /* relationships between devices and signal emissions are not
* necessary while we're constructing the device manager instance * necessary while we're constructing the device manager instance
*/ */
@@ -893,54 +800,6 @@ translate_axes (ClutterInputDevice *device,
return retval; return retval;
} }
static gboolean
translate_pad_axis (ClutterInputDevice *device,
XIValuatorState *valuators,
ClutterEventType *evtype,
guint *number,
gdouble *value)
{
double *values;
gint i;
values = valuators->values;
for (i = PAD_AXIS_FIRST; i < valuators->mask_len * 8; i++)
{
gdouble val;
guint axis_number = 0;
if (!XIMaskIsSet (valuators->mask, i))
continue;
val = *values++;
if (val <= 0)
continue;
_clutter_input_device_translate_axis (device, i, val, value);
if (i == PAD_AXIS_RING1 || i == PAD_AXIS_RING2)
{
*evtype = CLUTTER_PAD_RING;
(*value) *= 360.0;
}
else if (i == PAD_AXIS_STRIP1 || i == PAD_AXIS_STRIP2)
{
*evtype = CLUTTER_PAD_STRIP;
}
else
continue;
if (i == PAD_AXIS_STRIP2 || i == PAD_AXIS_RING2)
axis_number++;
*number = axis_number;
return TRUE;
}
return FALSE;
}
static void static void
translate_coords (ClutterStageX11 *stage_x11, translate_coords (ClutterStageX11 *stage_x11,
gdouble event_x, gdouble event_x,
@@ -1047,126 +906,6 @@ clutter_device_manager_xi2_select_stage_events (ClutterDeviceManager *manager,
g_free (mask); g_free (mask);
} }
static guint
device_get_tool_serial (ClutterBackendX11 *backend_x11,
ClutterInputDevice *device)
{
gulong nitems, bytes_after;
guint32 *data = NULL;
guint serial_id = 0;
int rc, format;
Atom type;
Atom prop;
prop = XInternAtom (backend_x11->xdpy, "Wacom Serial IDs", True);
if (prop == None)
return 0;
clutter_x11_trap_x_errors ();
rc = XIGetProperty (backend_x11->xdpy,
clutter_input_device_get_device_id (device),
prop, 0, 4, FALSE, XA_INTEGER, &type, &format, &nitems, &bytes_after,
(guchar **) &data);
clutter_x11_untrap_x_errors ();
if (rc == Success && type == XA_INTEGER && format == 32 && nitems >= 4)
serial_id = data[3];
XFree (data);
return serial_id;
}
static void
handle_property_event (ClutterDeviceManagerXI2 *manager_xi2,
XIEvent *event)
{
XIPropertyEvent *xev = (XIPropertyEvent *) event;
ClutterBackendX11 *backend_x11 = CLUTTER_BACKEND_X11 (clutter_get_default_backend ());
Atom serial_ids_prop = XInternAtom (backend_x11->xdpy, "Wacom Serial IDs", True);
ClutterInputDevice *device;
device = g_hash_table_lookup (manager_xi2->devices_by_id,
GINT_TO_POINTER (xev->deviceid));
if (!device)
return;
if (xev->property == serial_ids_prop)
{
ClutterInputDeviceTool *tool = NULL;
ClutterInputDeviceToolType type;
guint serial_id;
serial_id = device_get_tool_serial (backend_x11, device);
if (serial_id != 0)
{
tool = g_hash_table_lookup (manager_xi2->tools_by_serial,
GUINT_TO_POINTER (serial_id));
if (!tool)
{
type = clutter_input_device_get_device_type (device) == CLUTTER_ERASER_DEVICE ?
CLUTTER_INPUT_DEVICE_TOOL_ERASER : CLUTTER_INPUT_DEVICE_TOOL_PEN;
tool = clutter_input_device_tool_xi2_new (serial_id, type);
g_hash_table_insert (manager_xi2->tools_by_serial,
GUINT_TO_POINTER (serial_id),
tool);
}
}
clutter_input_device_xi2_update_tool (device, tool);
g_signal_emit_by_name (manager_xi2, "tool-changed", device, tool);
}
}
static gboolean
translate_pad_event (ClutterEvent *event,
XIDeviceEvent *xev,
ClutterInputDevice *device)
{
gdouble value;
guint number;
if (!translate_pad_axis (device, &xev->valuators,
&event->any.type,
&number, &value))
return FALSE;
/* When touching a ring/strip a first XI_Motion event
* is generated. Use it to reset the pad state, so
* later events actually have a directionality.
*/
if (xev->evtype == XI_Motion)
value = -1;
if (event->any.type == CLUTTER_PAD_RING)
{
event->pad_ring.ring_number = number;
event->pad_ring.angle = value;
}
else
{
event->pad_strip.strip_number = number;
event->pad_strip.value = value;
}
event->any.time = xev->time;
clutter_event_set_device (event, device);
clutter_event_set_source_device (event, device);
CLUTTER_NOTE (EVENT,
"%s: win:0x%x, device:%d '%s', time:%d "
"(value:%f)",
event->any.type == CLUTTER_PAD_RING
? "pad ring "
: "pad strip",
(unsigned int) xev->event,
device->id,
device->device_name,
event->any.time, value);
return TRUE;
}
static ClutterTranslateReturn static ClutterTranslateReturn
clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator, clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
gpointer native, gpointer native,
@@ -1198,8 +937,7 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
return CLUTTER_TRANSLATE_REMOVE; return CLUTTER_TRANSLATE_REMOVE;
if (!(xi_event->evtype == XI_HierarchyChanged || if (!(xi_event->evtype == XI_HierarchyChanged ||
xi_event->evtype == XI_DeviceChanged || xi_event->evtype == XI_DeviceChanged))
xi_event->evtype == XI_PropertyEvent))
{ {
stage = get_event_stage (translator, xi_event); stage = get_event_stage (translator, xi_event);
if (stage == NULL || CLUTTER_ACTOR_IN_DESTRUCTION (stage)) if (stage == NULL || CLUTTER_ACTOR_IN_DESTRUCTION (stage))
@@ -1340,59 +1078,6 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
stage != NULL) stage != NULL)
_clutter_input_device_set_stage (device, stage); _clutter_input_device_set_stage (device, stage);
if (clutter_input_device_get_device_type (source_device) == CLUTTER_PAD_DEVICE)
{
/* We got these events because of the passive button grab */
XIAllowEvents (clutter_x11_get_default_display (),
xev->sourceid,
XIAsyncDevice,
xev->time);
event->any.stage = stage;
if (xev->detail >= 4 && xev->detail <= 7)
{
retval = CLUTTER_TRANSLATE_REMOVE;
if (xi_event->evtype == XI_ButtonPress &&
translate_pad_event (event, xev, source_device))
retval = CLUTTER_TRANSLATE_QUEUE;
break;
}
event->any.type =
(xi_event->evtype == XI_ButtonPress) ? CLUTTER_PAD_BUTTON_PRESS
: CLUTTER_PAD_BUTTON_RELEASE;
event->any.time = xev->time;
/* The 4-7 button range is taken as non-existent on pad devices,
* let the buttons above that take over this range.
*/
if (xev->detail > 7)
xev->detail -= 4;
/* Pad buttons are 0-indexed */
event->pad_button.button = xev->detail - 1;
clutter_event_set_device (event, device);
clutter_event_set_source_device (event, source_device);
CLUTTER_NOTE (EVENT,
"%s: win:0x%x, device:%d '%s', time:%d "
"(button:%d)",
event->any.type == CLUTTER_BUTTON_PRESS
? "pad button press "
: "pad button release",
(unsigned int) stage_x11->xwin,
device->id,
device->device_name,
event->any.time,
event->pad_button.button);
retval = CLUTTER_TRANSLATE_QUEUE;
break;
}
switch (xev->detail) switch (xev->detail)
{ {
case 4: case 4:
@@ -1472,8 +1157,6 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
clutter_event_set_source_device (event, source_device); clutter_event_set_source_device (event, source_device);
clutter_event_set_device (event, device); clutter_event_set_device (event, device);
clutter_event_set_device_tool (event,
clutter_input_device_xi2_get_current_tool (source_device));
event->button.axes = translate_axes (event->button.device, event->button.axes = translate_axes (event->button.device,
event->button.x, event->button.x,
@@ -1531,15 +1214,6 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
device = g_hash_table_lookup (manager_xi2->devices_by_id, device = g_hash_table_lookup (manager_xi2->devices_by_id,
GINT_TO_POINTER (xev->deviceid)); GINT_TO_POINTER (xev->deviceid));
if (clutter_input_device_get_device_type (source_device) == CLUTTER_PAD_DEVICE)
{
event->any.stage = stage;
if (translate_pad_event (event, xev, source_device))
retval = CLUTTER_TRANSLATE_QUEUE;
break;
}
/* Set the stage for core events coming out of nowhere (see bug #684509) */ /* Set the stage for core events coming out of nowhere (see bug #684509) */
if (clutter_input_device_get_device_mode (device) == CLUTTER_INPUT_MODE_MASTER && if (clutter_input_device_get_device_mode (device) == CLUTTER_INPUT_MODE_MASTER &&
clutter_input_device_get_pointer_stage (device) == NULL && clutter_input_device_get_pointer_stage (device) == NULL &&
@@ -1591,8 +1265,6 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
clutter_event_set_source_device (event, source_device); clutter_event_set_source_device (event, source_device);
clutter_event_set_device (event, device); clutter_event_set_device (event, device);
clutter_event_set_device_tool (event,
clutter_input_device_xi2_get_current_tool (source_device));
event->motion.axes = translate_axes (event->motion.device, event->motion.axes = translate_axes (event->motion.device,
event->motion.x, event->motion.x,
@@ -1794,10 +1466,6 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
case XI_FocusOut: case XI_FocusOut:
retval = CLUTTER_TRANSLATE_CONTINUE; retval = CLUTTER_TRANSLATE_CONTINUE;
break; break;
case XI_PropertyEvent:
handle_property_event (manager_xi2, xi_event);
retval = CLUTTER_TRANSLATE_CONTINUE;
break;
} }
return retval; return retval;
@@ -1975,7 +1643,6 @@ clutter_device_manager_xi2_constructed (GObject *gobject)
XISetMask (mask, XI_HierarchyChanged); XISetMask (mask, XI_HierarchyChanged);
XISetMask (mask, XI_DeviceChanged); XISetMask (mask, XI_DeviceChanged);
XISetMask (mask, XI_PropertyEvent);
event_mask.deviceid = XIAllDevices; event_mask.deviceid = XIAllDevices;
event_mask.mask_len = sizeof (mask); event_mask.mask_len = sizeof (mask);
@@ -2011,16 +1678,6 @@ clutter_device_manager_xi2_set_property (GObject *gobject,
} }
} }
static ClutterVirtualInputDevice *
clutter_device_manager_xi2_create_virtual_device (ClutterDeviceManager *manager,
ClutterInputDeviceType device_type)
{
return g_object_new (CLUTTER_TYPE_VIRTUAL_INPUT_DEVICE_X11,
"device-manager", manager,
"device-type", device_type,
NULL);
}
static void static void
clutter_device_manager_xi2_class_init (ClutterDeviceManagerXI2Class *klass) clutter_device_manager_xi2_class_init (ClutterDeviceManagerXI2Class *klass)
{ {
@@ -2048,7 +1705,6 @@ clutter_device_manager_xi2_class_init (ClutterDeviceManagerXI2Class *klass)
manager_class->get_core_device = clutter_device_manager_xi2_get_core_device; manager_class->get_core_device = clutter_device_manager_xi2_get_core_device;
manager_class->get_device = clutter_device_manager_xi2_get_device; manager_class->get_device = clutter_device_manager_xi2_get_device;
manager_class->select_stage_events = clutter_device_manager_xi2_select_stage_events; manager_class->select_stage_events = clutter_device_manager_xi2_select_stage_events;
manager_class->create_virtual_device = clutter_device_manager_xi2_create_virtual_device;
} }
static void static void
@@ -2057,6 +1713,4 @@ clutter_device_manager_xi2_init (ClutterDeviceManagerXI2 *self)
self->devices_by_id = g_hash_table_new_full (NULL, NULL, self->devices_by_id = g_hash_table_new_full (NULL, NULL,
NULL, NULL,
(GDestroyNotify) g_object_unref); (GDestroyNotify) g_object_unref);
self->tools_by_serial = g_hash_table_new_full (NULL, NULL, NULL,
(GDestroyNotify) g_object_unref);
} }

View File

@@ -43,7 +43,6 @@ struct _ClutterDeviceManagerXI2
ClutterDeviceManager parent_instance; ClutterDeviceManager parent_instance;
GHashTable *devices_by_id; GHashTable *devices_by_id;
GHashTable *tools_by_serial;
GSList *all_devices; GSList *all_devices;

View File

@@ -1,51 +0,0 @@
/*
* Clutter.
*
* An OpenGL based 'interactive canvas' library.
*
* Copyright © 2016 Red Hat
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
* Author: Carlos Garnacho <carlosg@gnome.org>
*/
#ifdef HAVE_CONFIG_H
#include "clutter-build-config.h"
#endif
#include "clutter-input-device-tool-xi2.h"
G_DEFINE_TYPE (ClutterInputDeviceToolXI2, clutter_input_device_tool_xi2,
CLUTTER_TYPE_INPUT_DEVICE_TOOL)
static void
clutter_input_device_tool_xi2_class_init (ClutterInputDeviceToolXI2Class *klass)
{
}
static void
clutter_input_device_tool_xi2_init (ClutterInputDeviceToolXI2 *tool)
{
}
ClutterInputDeviceTool *
clutter_input_device_tool_xi2_new (guint serial,
ClutterInputDeviceToolType type)
{
return g_object_new (CLUTTER_TYPE_INPUT_DEVICE_TOOL_XI2,
"type", type,
"serial", serial,
NULL);
}

View File

@@ -1,74 +0,0 @@
/*
* Clutter.
*
* An OpenGL based 'interactive canvas' library.
*
* Copyright © 2016 Red Hat
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
* Author: Carlos Garnacho <carlosg@gnome.org>
*/
#ifndef __CLUTTER_INPUT_DEVICE_XI2_TOOL_H__
#define __CLUTTER_INPUT_DEVICE_XI2_TOOL_H__
#include <clutter/clutter-input-device-tool.h>
G_BEGIN_DECLS
#define CLUTTER_TYPE_INPUT_DEVICE_TOOL_XI2 (clutter_input_device_tool_xi2_get_type ())
#define CLUTTER_INPUT_DEVICE_TOOL_XI2(o) \
(G_TYPE_CHECK_INSTANCE_CAST ((o), \
CLUTTER_TYPE_INPUT_DEVICE_TOOL_XI2, ClutterInputDeviceToolXI2))
#define CLUTTER_IS_INPUT_DEVICE_TOOL_XI2(o) \
(G_TYPE_CHECK_INSTANCE_TYPE ((o), \
CLUTTER_TYPE_INPUT_DEVICE_TOOL_XI2))
#define CLUTTER_INPUT_DEVICE_TOOL_XI2_CLASS(c) \
(G_TYPE_CHECK_CLASS_CAST ((c), \
CLUTTER_TYPE_INPUT_DEVICE_TOOL_XI2, ClutterInputDeviceToolXI2Class))
#define CLUTTER_IS_INPUT_DEVICE_TOOL_XI2_CLASS(c) \
(G_TYPE_CHECK_CLASS_TYPE ((c), \
CLUTTER_TYPE_INPUT_DEVICE_TOOL_XI2))
#define CLUTTER_INPUT_DEVICE_TOOL_XI2_GET_CLASS(o) \
(G_TYPE_INSTANCE_GET_CLASS ((o), \
CLUTTER_TYPE_INPUT_DEVICE_TOOL_XI2, ClutterInputDeviceToolXI2Class))
typedef struct _ClutterInputDeviceToolXI2 ClutterInputDeviceToolXI2;
typedef struct _ClutterInputDeviceToolXI2Class ClutterInputDeviceToolXI2Class;
struct _ClutterInputDeviceToolXI2
{
ClutterInputDeviceTool parent_instance;
struct libinput_tablet_tool *tool;
};
struct _ClutterInputDeviceToolXI2Class
{
ClutterInputDeviceToolClass parent_class;
};
GType clutter_input_device_tool_xi2_get_type (void) G_GNUC_CONST;
ClutterInputDeviceTool * clutter_input_device_tool_xi2_new (guint serial,
ClutterInputDeviceToolType type);
G_END_DECLS
#endif /* __CLUTTER_INPUT_DEVICE_XI2_TOOL_H__ */

View File

@@ -44,7 +44,6 @@ struct _ClutterInputDeviceXI2
ClutterInputDevice device; ClutterInputDevice device;
gint device_id; gint device_id;
ClutterInputDeviceTool *current_tool;
}; };
#define N_BUTTONS 5 #define N_BUTTONS 5
@@ -80,13 +79,6 @@ clutter_input_device_xi2_keycode_to_evdev (ClutterInputDevice *device,
return TRUE; return TRUE;
} }
static gboolean
clutter_input_device_xi2_is_grouped (ClutterInputDevice *device,
ClutterInputDevice *other_device)
{
return FALSE;
}
static void static void
clutter_input_device_xi2_class_init (ClutterInputDeviceXI2Class *klass) clutter_input_device_xi2_class_init (ClutterInputDeviceXI2Class *klass)
{ {
@@ -96,7 +88,6 @@ clutter_input_device_xi2_class_init (ClutterInputDeviceXI2Class *klass)
gobject_class->constructed = clutter_input_device_xi2_constructed; gobject_class->constructed = clutter_input_device_xi2_constructed;
device_class->keycode_to_evdev = clutter_input_device_xi2_keycode_to_evdev; device_class->keycode_to_evdev = clutter_input_device_xi2_keycode_to_evdev;
device_class->is_grouped = clutter_input_device_xi2_is_grouped;
} }
static void static void
@@ -181,18 +172,3 @@ _clutter_input_device_xi2_translate_state (ClutterEvent *event,
_clutter_event_set_state_full (event, button, base, latched, locked, effective); _clutter_event_set_state_full (event, button, base, latched, locked, effective);
} }
void
clutter_input_device_xi2_update_tool (ClutterInputDevice *device,
ClutterInputDeviceTool *tool)
{
ClutterInputDeviceXI2 *device_xi2 = CLUTTER_INPUT_DEVICE_XI2 (device);
g_set_object (&device_xi2->current_tool, tool);
}
ClutterInputDeviceTool *
clutter_input_device_xi2_get_current_tool (ClutterInputDevice *device)
{
ClutterInputDeviceXI2 *device_xi2 = CLUTTER_INPUT_DEVICE_XI2 (device);
return device_xi2->current_tool;
}

View File

@@ -41,9 +41,6 @@ void _clutter_input_device_xi2_translate_state (ClutterEvent *event,
XIModifierState *modifiers_state, XIModifierState *modifiers_state,
XIButtonState *buttons_state, XIButtonState *buttons_state,
XIGroupState *group_state); XIGroupState *group_state);
void clutter_input_device_xi2_update_tool (ClutterInputDevice *device,
ClutterInputDeviceTool *tool);
ClutterInputDeviceTool * clutter_input_device_xi2_get_current_tool (ClutterInputDevice *device);
G_END_DECLS G_END_DECLS

View File

@@ -6,6 +6,7 @@ static const struct {
const char *xsetting_name; const char *xsetting_name;
const char *settings_property; const char *settings_property;
} _clutter_settings_map[] = { } _clutter_settings_map[] = {
{ "Net/DoubleClickTime", "double-click-time" },
{ "Net/DoubleClickDistance", "double-click-distance" }, { "Net/DoubleClickDistance", "double-click-distance" },
{ "Net/DndDragThreshold", "dnd-drag-threshold" }, { "Net/DndDragThreshold", "dnd-drag-threshold" },
{ "Gtk/FontName", "font-name" }, { "Gtk/FontName", "font-name" },

View File

@@ -27,9 +27,6 @@
#include <glib-object.h> #include <glib-object.h>
#include "clutter-x11.h"
#include "X11/extensions/XTest.h"
#include "clutter-virtual-input-device.h" #include "clutter-virtual-input-device.h"
#include "x11/clutter-virtual-input-device-x11.h" #include "x11/clutter-virtual-input-device-x11.h"
@@ -64,8 +61,6 @@ clutter_virtual_input_device_x11_notify_button (ClutterVirtualInputDevice *virtu
uint32_t button, uint32_t button,
ClutterButtonState button_state) ClutterButtonState button_state)
{ {
XTestFakeButtonEvent (clutter_x11_get_default_display (),
button, button_state == CLUTTER_BUTTON_STATE_PRESSED, 0);
} }
static void static void
@@ -74,21 +69,6 @@ clutter_virtual_input_device_x11_notify_key (ClutterVirtualInputDevice *virtual_
uint32_t key, uint32_t key,
ClutterKeyState key_state) ClutterKeyState key_state)
{ {
XTestFakeKeyEvent (clutter_x11_get_default_display (),
key, key_state == CLUTTER_KEY_STATE_PRESSED, 0);
}
static void
clutter_virtual_input_device_x11_notify_keyval (ClutterVirtualInputDevice *virtual_device,
uint64_t time_us,
uint32_t keyval,
ClutterKeyState key_state)
{
KeyCode keycode;
keycode = XKeysymToKeycode (clutter_x11_get_default_display (), keyval);
XTestFakeKeyEvent (clutter_x11_get_default_display (),
keycode, key_state == CLUTTER_KEY_STATE_PRESSED, 0);
} }
static void static void
@@ -106,5 +86,4 @@ clutter_virtual_input_device_x11_class_init (ClutterVirtualInputDeviceX11Class *
virtual_input_device_class->notify_absolute_motion = clutter_virtual_input_device_x11_notify_absolute_motion; virtual_input_device_class->notify_absolute_motion = clutter_virtual_input_device_x11_notify_absolute_motion;
virtual_input_device_class->notify_button = clutter_virtual_input_device_x11_notify_button; virtual_input_device_class->notify_button = clutter_virtual_input_device_x11_notify_button;
virtual_input_device_class->notify_key = clutter_virtual_input_device_x11_notify_key; virtual_input_device_class->notify_key = clutter_virtual_input_device_x11_notify_key;
virtual_input_device_class->notify_keyval = clutter_virtual_input_device_x11_notify_keyval;
} }

View File

@@ -42,6 +42,9 @@ m4_define([clutter_release_status],
m4_define([clutter_version], [clutter_major_version.clutter_minor_version.clutter_micro_version]) m4_define([clutter_version], [clutter_major_version.clutter_minor_version.clutter_micro_version])
# change this only when breaking the API
m4_define([clutter_api_version], [1.0])
AC_PREREQ([2.63]) AC_PREREQ([2.63])
AC_INIT([clutter], AC_INIT([clutter],
@@ -58,18 +61,12 @@ AC_CONFIG_MACRO_DIR([build/autotools])
AM_INIT_AUTOMAKE([1.11 foreign -Wno-portability no-define no-dist-gzip dist-xz tar-ustar]) AM_INIT_AUTOMAKE([1.11 foreign -Wno-portability no-define no-dist-gzip dist-xz tar-ustar])
AM_SILENT_RULES([yes]) AM_SILENT_RULES([yes])
dnl = Check that we are configured by mutter ==============================
AC_ARG_VAR([MUTTER_VERSION])
AC_ARG_VAR([LIBMUTTER_API_VERSION])
AS_IF([test "x$MUTTER_VERSION" = "x"],
[AC_MSG_ERROR([Clutter can only be configured by mutter])],)
AC_SUBST([CLUTTER_MAJOR_VERSION], [clutter_major_version]) AC_SUBST([CLUTTER_MAJOR_VERSION], [clutter_major_version])
AC_SUBST([CLUTTER_MINOR_VERSION], [clutter_minor_version]) AC_SUBST([CLUTTER_MINOR_VERSION], [clutter_minor_version])
AC_SUBST([CLUTTER_MICRO_VERSION], [clutter_micro_version]) AC_SUBST([CLUTTER_MICRO_VERSION], [clutter_micro_version])
AC_SUBST([CLUTTER_VERSION], [clutter_version]) AC_SUBST([CLUTTER_VERSION], [clutter_version])
AC_SUBST([CLUTTER_API_VERSION], [clutter_api_version])
AC_SUBST([CLUTTER_API_VERSION_AM], [$CLUTTER_MAJOR_VERSION\_0])
AC_SUBST([CLUTTER_RELEASE_STATUS], [clutter_release_status]) AC_SUBST([CLUTTER_RELEASE_STATUS], [clutter_release_status])
m4_define([lt_current], [m4_eval(100 * clutter_minor_version + clutter_micro_version - clutter_interface_age)]) m4_define([lt_current], [m4_eval(100 * clutter_minor_version + clutter_micro_version - clutter_interface_age)])
@@ -385,22 +382,6 @@ AS_IF([test "x$SUPPORT_X11" = "x1"],
[AC_MSG_ERROR([not found])] [AC_MSG_ERROR([not found])]
) )
# XTEST (required)
AC_MSG_CHECKING([for XTest extension])
PKG_CHECK_EXISTS([xtst], [have_xtest=yes], [have_xtest=no])
AS_IF([test "x$have_xtest" = "xyes"],
[
AC_DEFINE(HAVE_XTEST, [1], [Define to 1 if we have the XTest X extension])
X11_LIBS="$X11_LIBS -lXtst"
X11_PC_FILES="$X11_PC_FILES xtst"
X11_EXTS="$X11_EXTS xtst"
AC_MSG_RESULT([found])
],
[AC_MSG_ERROR([Not found])]
)
# X Generic Extensions (optional) # X Generic Extensions (optional)
clutter_save_CPPFLAGS="$CPPFLAGS" clutter_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $X11_CFLAGS" CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
@@ -784,7 +765,7 @@ AC_CONFIG_FILES([
clutter/Makefile clutter/Makefile
clutter/clutter-config.h clutter/clutter-config.h
clutter/clutter-version.h clutter/clutter-version.h
clutter/mutter-clutter-$LIBMUTTER_API_VERSION.pc:clutter/mutter-clutter.pc.in clutter/mutter-clutter-$CLUTTER_API_VERSION.pc:clutter/mutter-clutter.pc.in
tests/Makefile tests/Makefile
tests/accessibility/Makefile tests/accessibility/Makefile

View File

@@ -21,7 +21,7 @@ all_examples += \
image-content image-content
endif endif
LDADD = $(top_builddir)/clutter/libmutter-clutter-@LIBMUTTER_API_VERSION@.la $(CLUTTER_LIBS) $(GDK_PIXBUF_LIBS) $(LIBM) LDADD = $(top_builddir)/clutter/libmutter-clutter-@CLUTTER_API_VERSION@.la $(CLUTTER_LIBS) $(GDK_PIXBUF_LIBS) $(LIBM)
AM_CFLAGS = $(CLUTTER_CFLAGS) $(GDK_PIXBUF_CFLAGS) $(MAINTAINER_CFLAGS) AM_CFLAGS = $(CLUTTER_CFLAGS) $(GDK_PIXBUF_CFLAGS) $(MAINTAINER_CFLAGS)
AM_CPPFLAGS = \ AM_CPPFLAGS = \
-DG_DISABLE_SINGLE_INCLUDES \ -DG_DISABLE_SINGLE_INCLUDES \

View File

@@ -1,5 +1,5 @@
common_ldadd = \ common_ldadd = \
$(top_builddir)/clutter/libmutter-clutter-@LIBMUTTER_API_VERSION@.la $(top_builddir)/clutter/libmutter-clutter-@CLUTTER_API_VERSION@.la
common_sources = \ common_sources = \
cally-examples-util.c \ cally-examples-util.c \
@@ -11,7 +11,6 @@ AM_CPPFLAGS = \
-DGLIB_DISABLE_DEPRECATION_WARNINGS \ -DGLIB_DISABLE_DEPRECATION_WARNINGS \
-I$(top_srcdir)/../cogl \ -I$(top_srcdir)/../cogl \
-I$(top_builddir)/../cogl \ -I$(top_builddir)/../cogl \
-I$(top_builddir)/../cogl/cogl \
-I$(top_srcdir) \ -I$(top_srcdir) \
-I$(top_builddir) \ -I$(top_builddir) \
-I$(top_srcdir)/clutter \ -I$(top_srcdir)/clutter \

View File

@@ -3,13 +3,12 @@ installed_testdir = $(libexecdir)/installed-tests/mutter-clutter
include $(top_srcdir)/build/autotools/glib-tap.mk include $(top_srcdir)/build/autotools/glib-tap.mk
AM_CFLAGS = -g $(CLUTTER_CFLAGS) $(MAINTAINER_CFLAGS) AM_CFLAGS = -g $(CLUTTER_CFLAGS) $(MAINTAINER_CFLAGS)
LDADD = $(top_builddir)/../cogl/cogl/libmutter-cogl-@LIBMUTTER_API_VERSION@.la $(top_builddir)/clutter/libmutter-clutter-@LIBMUTTER_API_VERSION@.la $(CLUTTER_LIBS) $(LIBM) LDADD = $(top_builddir)/../cogl/cogl/libmutter-cogl.la $(top_builddir)/clutter/libmutter-clutter-1.0.la $(CLUTTER_LIBS) $(LIBM)
AM_LDFLAGS = -export-dynamic AM_LDFLAGS = -export-dynamic
AM_CPPFLAGS = \ AM_CPPFLAGS = \
-DG_LOG_DOMAIN=\"Clutter-Conform\" \ -DG_LOG_DOMAIN=\"Clutter-Conform\" \
-I$(top_srcdir)/../cogl \ -I$(top_srcdir)/../cogl \
-I$(top_builddir)/../cogl \ -I$(top_builddir)/../cogl \
-I$(top_builddir)/../cogl/cogl \
-I$(top_srcdir) \ -I$(top_srcdir) \
-I$(top_builddir) \ -I$(top_builddir) \
-DCOGL_DISABLE_DEPRECATION_WARNINGS \ -DCOGL_DISABLE_DEPRECATION_WARNINGS \
@@ -79,7 +78,7 @@ script_tests = \
test-script-timeline-markers.json \ test-script-timeline-markers.json \
test-state-1.json test-state-1.json
TESTS_ENVIRONMENT += G_ENABLE_DIAGNOSTIC=0 CLUTTER_ENABLE_DIAGNOSTIC=0 CLUTTER_SCALE=1 TESTS_ENVIRONMENT += G_ENABLE_DIAGNOSTIC=0 CLUTTER_ENABLE_DIAGNOSTIC=0
# simple rules for generating a Git ignore file for the conformance test suite # simple rules for generating a Git ignore file for the conformance test suite
$(srcdir)/.gitignore: Makefile $(srcdir)/.gitignore: Makefile

View File

@@ -350,8 +350,7 @@ actor_replace_child (void)
g_assert_cmpstr (clutter_actor_get_name (iter), ==, "qux"); g_assert_cmpstr (clutter_actor_get_name (iter), ==, "qux");
clutter_actor_add_child (actor, g_object_new (CLUTTER_TYPE_ACTOR, clutter_actor_add_child (actor, g_object_new (CLUTTER_TYPE_ACTOR,
"name", "foo", "name", "foo"));
NULL));
clutter_actor_replace_child (actor, iter, clutter_actor_replace_child (actor, iter,
g_object_new (CLUTTER_TYPE_ACTOR, g_object_new (CLUTTER_TYPE_ACTOR,

View File

@@ -110,8 +110,8 @@ clean-wrappers:
.PHONY: wrappers clean-wrappers .PHONY: wrappers clean-wrappers
common_ldadd = \ common_ldadd = \
$(top_builddir)/clutter/libmutter-clutter-@LIBMUTTER_API_VERSION@.la \ $(top_builddir)/clutter/libmutter-clutter-@CLUTTER_API_VERSION@.la \
$(top_builddir)/../cogl/cogl/libmutter-cogl-@LIBMUTTER_API_VERSION@.la $(top_builddir)/../cogl/cogl/libmutter-cogl.la
check_PROGRAMS = test-interactive check_PROGRAMS = test-interactive
check_SCRIPTS = wrappers check_SCRIPTS = wrappers
@@ -127,7 +127,6 @@ test_interactive_CPPFLAGS = \
-DCLUTTER_DISABLE_DEPRECATION_WARNINGS \ -DCLUTTER_DISABLE_DEPRECATION_WARNINGS \
-I$(top_srcdir)/../cogl \ -I$(top_srcdir)/../cogl \
-I$(top_builddir)/../cogl \ -I$(top_builddir)/../cogl \
-I$(top_builddir)/../cogl/cogl \
-I$(top_srcdir) \ -I$(top_srcdir) \
-I$(top_builddir) \ -I$(top_builddir) \
-I$(top_srcdir)/clutter \ -I$(top_srcdir)/clutter \

View File

@@ -1,6 +1,6 @@
common_ldadd = \ common_ldadd = \
$(top_builddir)/clutter/libmutter-clutter-@LIBMUTTER_API_VERSION@.la \ $(top_builddir)/clutter/libmutter-clutter-@CLUTTER_API_VERSION@.la \
$(top_builddir)/../cogl/cogl/libmutter-cogl-@LIBMUTTER_API_VERSION@.la $(top_builddir)/../cogl/cogl/libmutter-cogl.la
check_PROGRAMS = \ check_PROGRAMS = \
@@ -20,7 +20,6 @@ AM_CPPFLAGS = \
-DTESTS_DATA_DIR=\""$(top_srcdir)/tests/data/"\" \ -DTESTS_DATA_DIR=\""$(top_srcdir)/tests/data/"\" \
-I$(top_srcdir)/../cogl \ -I$(top_srcdir)/../cogl \
-I$(top_builddir)/../cogl \ -I$(top_builddir)/../cogl \
-I$(top_builddir)/../cogl/cogl \
-I$(top_srcdir) \ -I$(top_srcdir) \
-I$(top_builddir) \ -I$(top_builddir) \
-I$(top_srcdir)/clutter \ -I$(top_srcdir)/clutter \

View File

@@ -7,7 +7,7 @@ check_PROGRAMS = \
test-state-mini \ test-state-mini \
test-state-pick test-state-pick
common_ldadd = $(top_builddir)/clutter/libmutter-clutter-@LIBMUTTER_API_VERSION@.la common_ldadd = $(top_builddir)/clutter/libmutter-clutter-@CLUTTER_API_VERSION@.la
LDADD = $(common_ldadd) $(CLUTTER_LIBS) $(LIBM) LDADD = $(common_ldadd) $(CLUTTER_LIBS) $(LIBM)
@@ -21,7 +21,6 @@ AM_CPPFLAGS = \
-DTESTS_DATA_DIR=\""$(top_srcdir)/tests/data/"\" \ -DTESTS_DATA_DIR=\""$(top_srcdir)/tests/data/"\" \
-I$(top_srcdir)/../cogl \ -I$(top_srcdir)/../cogl \
-I$(top_builddir)/../cogl \ -I$(top_builddir)/../cogl \
-I$(top_builddir)/../cogl/cogl \
-I$(top_srcdir) \ -I$(top_srcdir) \
-I$(top_builddir) \ -I$(top_builddir) \
-I$(top_srcdir)/clutter \ -I$(top_srcdir)/clutter \

View File

@@ -2,10 +2,8 @@
NULL = NULL =
DISTCLEANFILES =
mutterlibdir = $(libdir)/mutter mutterlibdir = $(libdir)/mutter
mutterlib_LTLIBRARIES = libmutter-cogl-gles2-@LIBMUTTER_API_VERSION@.la mutterlib_LTLIBRARIES = libmutter-cogl-gles2.la
AM_CPPFLAGS = \ AM_CPPFLAGS = \
-I$(top_srcdir) \ -I$(top_srcdir) \
@@ -13,8 +11,8 @@ AM_CPPFLAGS = \
AM_CFLAGS = $(COGL_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS) $(MAINTAINER_CFLAGS) AM_CFLAGS = $(COGL_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS) $(MAINTAINER_CFLAGS)
libmutter_cogl_gles2_@LIBMUTTER_API_VERSION@_la_SOURCES = cogl-gles2-api.c libmutter_cogl_gles2_la_SOURCES = cogl-gles2-api.c
libmutter_cogl_gles2_@LIBMUTTER_API_VERSION@_la_LDFLAGS = \ libmutter_cogl_gles2_la_LDFLAGS = \
-no-undefined \ -no-undefined \
-rpath $(mutterlibdir) \ -rpath $(mutterlibdir) \
-avoid-version \ -avoid-version \
@@ -27,9 +25,7 @@ coglgles2include_HEADERS = \
GLES2/gl2ext.h \ GLES2/gl2ext.h \
GLES2/gl2platform.h GLES2/gl2platform.h
pc_files = mutter-cogl-gles2-$(LIBMUTTER_API_VERSION).pc pc_files = mutter-cogl-gles2-1.0.pc
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = $(pc_files) pkgconfig_DATA = $(pc_files)
DISTCLEANFILES += $(pc_files)

View File

@@ -2,12 +2,12 @@ prefix=@prefix@
exec_prefix=@exec_prefix@ exec_prefix=@exec_prefix@
libdir=@libdir@/mutter libdir=@libdir@/mutter
includedir=@includedir@/mutter includedir=@includedir@/mutter
apiversion=@LIBMUTTER_API_VERSION@ apiversion=1.0
requires=@COGL_PKG_REQUIRES@ mutter-cogl-@LIBMUTTER_API_VERSION@ requires=@COGL_PKG_REQUIRES@ mutter-cogl-1.0
Name: Cogl Name: Cogl
Description: An object oriented GL/GLES Abstraction/Utility Layer Description: An object oriented GL/GLES Abstraction/Utility Layer
Version: @MUTTER_VERSION@ Version: @COGL_1_VERSION@
Libs: -L${libdir} -lmutter-cogl-gles2-@LIBMUTTER_API_VERSION@ Libs: -L${libdir} -lmutter-cogl-gles2
Cflags: -I${includedir}/cogl Cflags: -I${includedir}/cogl
Requires: ${requires} Requires: ${requires}

View File

@@ -23,13 +23,13 @@ source_h_priv = \
$(NULL) $(NULL)
mutterlibdir = $(libdir)/mutter mutterlibdir = $(libdir)/mutter
mutterlib_LTLIBRARIES = libmutter-cogl-pango-@LIBMUTTER_API_VERSION@.la mutterlib_LTLIBRARIES = libmutter-cogl-pango.la
libmutter_cogl_pango_@LIBMUTTER_API_VERSION@_la_SOURCES = $(source_c) $(source_h) $(source_h_priv) libmutter_cogl_pango_la_SOURCES = $(source_c) $(source_h) $(source_h_priv)
libmutter_cogl_pango_@LIBMUTTER_API_VERSION@_la_CFLAGS = $(COGL_DEP_CFLAGS) $(COGL_PANGO_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS) $(MAINTAINER_CFLAGS) libmutter_cogl_pango_la_CFLAGS = $(COGL_DEP_CFLAGS) $(COGL_PANGO_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS) $(MAINTAINER_CFLAGS)
libmutter_cogl_pango_@LIBMUTTER_API_VERSION@_la_LIBADD = $(top_builddir)/cogl/libmutter-cogl-$(LIBMUTTER_API_VERSION).la libmutter_cogl_pango_la_LIBADD = $(top_builddir)/cogl/libmutter-cogl.la
libmutter_cogl_pango_@LIBMUTTER_API_VERSION@_la_LIBADD += $(COGL_DEP_LIBS) $(COGL_PANGO_DEP_LIBS) $(COGL_EXTRA_LDFLAGS) libmutter_cogl_pango_la_LIBADD += $(COGL_DEP_LIBS) $(COGL_PANGO_DEP_LIBS) $(COGL_EXTRA_LDFLAGS)
libmutter_cogl_pango_@LIBMUTTER_API_VERSION@_la_LDFLAGS = \ libmutter_cogl_pango_la_LDFLAGS = \
-export-dynamic \ -export-dynamic \
-rpath $(mutterlibdir) \ -rpath $(mutterlibdir) \
-export-symbols-regex "^cogl_pango_.*" \ -export-symbols-regex "^cogl_pango_.*" \
@@ -49,7 +49,7 @@ cogl_base_includedir = $(includedir)/mutter
cogl_pangoheadersdir = $(cogl_base_includedir)/cogl/cogl-pango cogl_pangoheadersdir = $(cogl_base_includedir)/cogl/cogl-pango
cogl_pangoheaders_HEADERS = $(source_h) cogl_pangoheaders_HEADERS = $(source_h)
pc_files = mutter-cogl-pango-$(LIBMUTTER_API_VERSION).pc pc_files = mutter-cogl-pango-1.0.pc
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = $(pc_files) pkgconfig_DATA = $(pc_files)
@@ -65,23 +65,23 @@ INTROSPECTION_GIRS =
if HAVE_INTROSPECTION if HAVE_INTROSPECTION
INTROSPECTION_COMPILER_ARGS=--includedir=$(top_builddir)/cogl INTROSPECTION_COMPILER_ARGS=--includedir=$(top_builddir)/cogl
CoglPango-@LIBMUTTER_API_VERSION@.gir: libmutter-cogl-pango-$(LIBMUTTER_API_VERSION).la Makefile CoglPango-1.0.gir: libmutter-cogl-pango.la Makefile
CoglPango_@LIBMUTTER_API_VERSION@_gir_NAMESPACE = CoglPango CoglPango_1_0_gir_NAMESPACE = CoglPango
CoglPango_@LIBMUTTER_API_VERSION@_gir_VERSION = @LIBMUTTER_API_VERSION@ CoglPango_1_0_gir_VERSION = 1.0
CoglPango_@LIBMUTTER_API_VERSION@_gir_LIBS = $(top_builddir)/cogl/libmutter-cogl-$(LIBMUTTER_API_VERSION).la libmutter-cogl-pango-$(LIBMUTTER_API_VERSION).la CoglPango_1_0_gir_LIBS = $(top_builddir)/cogl/libmutter-cogl.la libmutter-cogl-pango.la
CoglPango_@LIBMUTTER_API_VERSION@_gir_FILES = $(source_h) $(source_c) CoglPango_1_0_gir_FILES = $(source_h) $(source_c)
CoglPango_@LIBMUTTER_API_VERSION@_gir_CFLAGS = $(AM_CPPFLAGS) $(COGL_DEP_CFLAGS) $(COGL_PANGO_DEP_CFLAGS) CoglPango_1_0_gir_CFLAGS = $(AM_CPPFLAGS) $(COGL_DEP_CFLAGS) $(COGL_PANGO_DEP_CFLAGS)
CoglPango_@LIBMUTTER_API_VERSION@_gir_INCLUDES = Pango-1.0 PangoCairo-1.0 CoglPango_1_0_gir_INCLUDES = Pango-1.0 PangoCairo-1.0
CoglPango_@LIBMUTTER_API_VERSION@_gir_EXPORT_PACKAGES = mutter-cogl-pango-@LIBMUTTER_API_VERSION@ CoglPango_1_0_gir_EXPORT_PACKAGES = mutter-cogl-pango-1.0
CoglPango_@LIBMUTTER_API_VERSION@_gir_SCANNERFLAGS = \ CoglPango_1_0_gir_SCANNERFLAGS = \
--warn-all \ --warn-all \
--identifier-prefix=CoglPango \ --identifier-prefix=CoglPango \
--symbol-prefix=cogl_pango \ --symbol-prefix=cogl_pango \
--c-include='cogl-pango/cogl-pango.h' \ --c-include='cogl-pango/cogl-pango.h' \
--include-uninstalled=$(top_builddir)/cogl/Cogl-@LIBMUTTER_API_VERSION@.gir --include-uninstalled=$(top_builddir)/cogl/Cogl-1.0.gir
INTROSPECTION_GIRS += CoglPango-@LIBMUTTER_API_VERSION@.gir INTROSPECTION_GIRS += CoglPango-1.0.gir
girdir = $(mutterlibdir) girdir = $(mutterlibdir)
gir_DATA = $(INTROSPECTION_GIRS) gir_DATA = $(INTROSPECTION_GIRS)

View File

@@ -2,12 +2,12 @@ prefix=@prefix@
exec_prefix=@exec_prefix@ exec_prefix=@exec_prefix@
libdir=@libdir@/mutter libdir=@libdir@/mutter
includedir=@includedir@/mutter includedir=@includedir@/mutter
apiversion=@LIBMUTTER_API_VERSION@ apiversion=1.0
requires=@COGL_PKG_REQUIRES@ mutter-cogl-@LIBMUTTER_API_VERSION@ requires=@COGL_PKG_REQUIRES@ mutter-cogl-1.0
Name: Cogl Name: Cogl
Description: An object oriented GL/GLES Abstraction/Utility Layer Description: An object oriented GL/GLES Abstraction/Utility Layer
Version: @MUTTER_VERSION@ Version: @COGL_1_VERSION@
Libs: -L${libdir} -lmutter-cogl-pango-@LIBMUTTER_API_VERSION@ Libs: -L${libdir} -lmutter-cogl-pango
Cflags: -I${includedir}/cogl Cflags: -I${includedir}/cogl
Requires: ${requires} Requires: ${requires}

View File

@@ -65,14 +65,14 @@ glib_enum_headers = $(source_1_x_h)
include $(top_srcdir)/build/autotools/Makefile.am.enums include $(top_srcdir)/build/autotools/Makefile.am.enums
mutterlibdir = $(libdir)/mutter mutterlibdir = $(libdir)/mutter
mutterlib_LTLIBRARIES = libmutter-cogl-path-@LIBMUTTER_API_VERSION@.la mutterlib_LTLIBRARIES = libmutter-cogl-path.la
libmutter_cogl_path_@LIBMUTTER_API_VERSION@_la_SOURCES = $(source_c) $(source_h) libmutter_cogl_path_la_SOURCES = $(source_c) $(source_h)
nodist_libmutter_cogl_path_@LIBMUTTER_API_VERSION@_la_SOURCES = $(BUILT_SOURCES) nodist_libmutter_cogl_path_la_SOURCES = $(BUILT_SOURCES)
libmutter_cogl_path_@LIBMUTTER_API_VERSION@_la_CFLAGS = $(COGL_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS) $(MAINTAINER_CFLAGS) libmutter_cogl_path_la_CFLAGS = $(COGL_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS) $(MAINTAINER_CFLAGS)
libmutter_cogl_path_@LIBMUTTER_API_VERSION@_la_LIBADD = $(top_builddir)/cogl/libmutter-cogl-$(LIBMUTTER_API_VERSION).la libmutter_cogl_path_la_LIBADD = $(top_builddir)/cogl/libmutter-cogl.la
libmutter_cogl_path_@LIBMUTTER_API_VERSION@_la_LIBADD += $(COGL_DEP_LIBS) $(COGL_EXTRA_LDFLAGS) libmutter_cogl_path_la_LIBADD += $(COGL_DEP_LIBS) $(COGL_EXTRA_LDFLAGS)
libmutter_cogl_path_@LIBMUTTER_API_VERSION@_la_LDFLAGS = \ libmutter_cogl_path_la_LDFLAGS = \
-export-dynamic \ -export-dynamic \
-export-symbols-regex "^(cogl|cogl2)_(framebuffer|path|is|clip|[sg]et)_.*" \ -export-symbols-regex "^(cogl|cogl2)_(framebuffer|path|is|clip|[sg]et)_.*" \
-no-undefined \ -no-undefined \
@@ -94,7 +94,7 @@ cogl_pathheadersdir = $(cogl_base_includedir)/cogl/cogl-path
cogl_pathheaders_HEADERS = $(source_h) cogl_pathheaders_HEADERS = $(source_h)
nodist_cogl_pathheaders_HEADERS = cogl-path-enum-types.h nodist_cogl_pathheaders_HEADERS = cogl-path-enum-types.h
pc_files = mutter-cogl-path-$(LIBMUTTER_API_VERSION).pc pc_files = mutter-cogl-path-1.0.pc
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = $(pc_files) pkgconfig_DATA = $(pc_files)

View File

@@ -2,12 +2,12 @@ prefix=@prefix@
exec_prefix=@exec_prefix@ exec_prefix=@exec_prefix@
libdir=@libdir@/mutter libdir=@libdir@/mutter
includedir=@includedir@/mutter includedir=@includedir@/mutter
apiversion=@LIBMUTTER_API_VERSION@ apiversion=1.0
requires=@COGL_PKG_REQUIRES@ mutter-cogl-@LIBMUTTER_API_VERSION@ requires=@COGL_PKG_REQUIRES@ mutter-cogl-1.0
Name: Cogl Name: Cogl
Description: A 2D path drawing library for Cogl Description: A 2D path drawing library for Cogl
Version: @MUTTER_VERSION@ Version: @COGL_1_VERSION@
Libs: -L${libdir} -lmutter-cogl-path-@LIBMUTTER_API_VERSION@ Libs: -L${libdir} -lmutter-cogl-path
Cflags: -I${includedir}/cogl Cflags: -I${includedir}/cogl
Requires: ${requires} Requires: ${requires}

View File

@@ -41,7 +41,7 @@ BUILT_SOURCES += cogl-defines.h cogl-egl-defines.h cogl-gl-header.h
DISTCLEANFILES += cogl-defines.h cogl-egl-defines.h cogl-gl-header.h DISTCLEANFILES += cogl-defines.h cogl-egl-defines.h cogl-gl-header.h
EXTRA_DIST += cogl-defines.h.in cogl-egl-defines.h.in cogl-gl-header.h.in EXTRA_DIST += cogl-defines.h.in cogl-egl-defines.h.in cogl-gl-header.h.in
pc_files = mutter-cogl-$(LIBMUTTER_API_VERSION).pc pc_files = mutter-cogl-1.0.pc
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = $(pc_files) pkgconfig_DATA = $(pc_files)
@@ -439,23 +439,23 @@ cogl_sources_c += \
endif endif
mutterlibdir = $(libdir)/mutter mutterlibdir = $(libdir)/mutter
mutterlib_LTLIBRARIES = libmutter-cogl-@LIBMUTTER_API_VERSION@.la mutterlib_LTLIBRARIES = libmutter-cogl.la
libmutter_cogl_@LIBMUTTER_API_VERSION@_la_LIBADD = $(LIBM) $(COGL_DEP_LIBS) $(COGL_EXTRA_LDFLAGS) libmutter_cogl_la_LIBADD = $(LIBM) $(COGL_DEP_LIBS) $(COGL_EXTRA_LDFLAGS)
if UNIT_TESTS if UNIT_TESTS
libmutter_cogl_@LIBMUTTER_API_VERSION@_la_LIBADD += $(top_builddir)/test-fixtures/libtest-fixtures.la libmutter_cogl_la_LIBADD += $(top_builddir)/test-fixtures/libtest-fixtures.la
endif endif
# XXX: The aim is to eventually get rid of all private API exports # XXX: The aim is to eventually get rid of all private API exports
# for cogl-pango. # for cogl-pango.
libmutter_cogl_@LIBMUTTER_API_VERSION@_la_LDFLAGS = \ libmutter_cogl_la_LDFLAGS = \
-no-undefined \ -no-undefined \
-avoid-version \ -avoid-version \
-export-dynamic \ -export-dynamic \
-rpath $(mutterlibdir) \ -rpath $(mutterlibdir) \
-export-symbols-regex "^(cogl|_cogl_debug_flags|_cogl_atlas_new|_cogl_atlas_add_reorganize_callback|_cogl_atlas_reserve_space|_cogl_callback|_cogl_util_get_eye_planes_for_screen_poly|_cogl_atlas_texture_remove_reorganize_callback|_cogl_atlas_texture_add_reorganize_callback|_cogl_texture_get_format|_cogl_texture_foreach_sub_texture_in_region|_cogl_texture_set_region|_cogl_profile_trace_message|_cogl_context_get_default|_cogl_framebuffer_get_stencil_bits|_cogl_clip_stack_push_rectangle|_cogl_framebuffer_get_modelview_stack|_cogl_object_default_unref|_cogl_pipeline_foreach_layer_internal|_cogl_clip_stack_push_primitive|_cogl_buffer_unmap_for_fill_or_fallback|_cogl_framebuffer_draw_primitive|_cogl_debug_instances|_cogl_framebuffer_get_projection_stack|_cogl_pipeline_layer_get_texture|_cogl_buffer_map_for_fill_or_fallback|_cogl_texture_can_hardware_repeat|_cogl_pipeline_prune_to_n_layers|_cogl_primitive_draw|test_|unit_test_|_cogl_winsys_glx_get_vtable|_cogl_winsys_egl_xlib_get_vtable|_cogl_winsys_egl_get_vtable|_cogl_closure_disconnect|_cogl_onscreen_notify_complete|_cogl_onscreen_notify_frame_sync|_cogl_winsys_egl_renderer_connect_common|_cogl_winsys_error_quark|_cogl_set_error|_cogl_poll_renderer_add_fd|_cogl_poll_renderer_add_idle|_cogl_framebuffer_winsys_update_size|_cogl_winsys_egl_make_current|_cogl_pixel_format_get_bytes_per_pixel).*" -export-symbols-regex "^(cogl|_cogl_debug_flags|_cogl_atlas_new|_cogl_atlas_add_reorganize_callback|_cogl_atlas_reserve_space|_cogl_callback|_cogl_util_get_eye_planes_for_screen_poly|_cogl_atlas_texture_remove_reorganize_callback|_cogl_atlas_texture_add_reorganize_callback|_cogl_texture_get_format|_cogl_texture_foreach_sub_texture_in_region|_cogl_profile_trace_message|_cogl_context_get_default|_cogl_framebuffer_get_stencil_bits|_cogl_clip_stack_push_rectangle|_cogl_framebuffer_get_modelview_stack|_cogl_object_default_unref|_cogl_pipeline_foreach_layer_internal|_cogl_clip_stack_push_primitive|_cogl_buffer_unmap_for_fill_or_fallback|_cogl_framebuffer_draw_primitive|_cogl_debug_instances|_cogl_framebuffer_get_projection_stack|_cogl_pipeline_layer_get_texture|_cogl_buffer_map_for_fill_or_fallback|_cogl_texture_can_hardware_repeat|_cogl_pipeline_prune_to_n_layers|_cogl_primitive_draw|test_|unit_test_|_cogl_winsys_glx_get_vtable|_cogl_winsys_egl_xlib_get_vtable|_cogl_winsys_egl_get_vtable|_cogl_closure_disconnect|_cogl_onscreen_notify_complete|_cogl_onscreen_notify_frame_sync|_cogl_winsys_egl_renderer_connect_common|_cogl_winsys_error_quark|_cogl_set_error|_cogl_poll_renderer_add_fd|_cogl_poll_renderer_add_idle|_cogl_framebuffer_winsys_update_size|_cogl_winsys_egl_make_current).*"
libmutter_cogl_@LIBMUTTER_API_VERSION@_la_SOURCES = $(cogl_sources_c) libmutter_cogl_la_SOURCES = $(cogl_sources_c)
nodist_libmutter_cogl_@LIBMUTTER_API_VERSION@_la_SOURCES = $(BUILT_SOURCES) nodist_libmutter_cogl_la_SOURCES = $(BUILT_SOURCES)
# Cogl installed headers # Cogl installed headers
cogl_headers = \ cogl_headers = \
@@ -483,22 +483,22 @@ EXTRA_DIST += \
INTROSPECTION_GIRS = INTROSPECTION_GIRS =
if HAVE_INTROSPECTION if HAVE_INTROSPECTION
Cogl-@LIBMUTTER_API_VERSION@.gir: libmutter-cogl-$(LIBMUTTER_API_VERSION).la Makefile Cogl-1.0.gir: libmutter-cogl.la Makefile
Cogl_@LIBMUTTER_API_VERSION@_gir_NAMESPACE = Cogl Cogl_1_0_gir_NAMESPACE = Cogl
Cogl_@LIBMUTTER_API_VERSION@_gir_VERSION = $(LIBMUTTER_API_VERSION) Cogl_1_0_gir_VERSION = 1.0
Cogl_@LIBMUTTER_API_VERSION@_gir_LIBS = libmutter-cogl-$(LIBMUTTER_API_VERSION).la Cogl_1_0_gir_LIBS = libmutter-cogl.la
if UNIT_TESTS if UNIT_TESTS
Cogl_@LIBMUTTER_API_VERSION@_gir_LIBS += $(top_builddir)/test-fixtures/libtest-fixtures.la Cogl_1_0_gir_LIBS += $(top_builddir)/test-fixtures/libtest-fixtures.la
endif endif
Cogl_@LIBMUTTER_API_VERSION@_gir_FILES = $(cogl_1_public_h) Cogl_1_0_gir_FILES = $(cogl_1_public_h)
Cogl_@LIBMUTTER_API_VERSION@_gir_CFLAGS = $(AM_CPPFLAGS) $(COGL_DEP_CFLAGS) -UCOGL_COMPILATION -D__COGL_H_INSIDE__ -D__COGL_XLIB_H_INSIDE__ -D__COGL_EGL_H_INSIDE__ -D__COGL_GLX_H_INSIDE__ -DCOGL_GIR_SCANNING Cogl_1_0_gir_CFLAGS = $(AM_CPPFLAGS) $(COGL_DEP_CFLAGS) -UCOGL_COMPILATION -D__COGL_H_INSIDE__ -D__COGL_XLIB_H_INSIDE__ -D__COGL_EGL_H_INSIDE__ -D__COGL_GLX_H_INSIDE__ -DCOGL_GIR_SCANNING
Cogl_@LIBMUTTER_API_VERSION@_gir_INCLUDES = GL-1.0 GObject-2.0 Cogl_1_0_gir_INCLUDES = GL-1.0 GObject-2.0
Cogl_@LIBMUTTER_API_VERSION@_gir_EXPORT_PACKAGES = mutter-cogl-@LIBMUTTER_API_VERSION@ Cogl_1_0_gir_EXPORT_PACKAGES = mutter-cogl-1.0
Cogl_@LIBMUTTER_API_VERSION@_gir_SCANNERFLAGS = --warn-all --c-include='cogl/cogl.h' Cogl_1_0_gir_SCANNERFLAGS = --warn-all --c-include='cogl/cogl.h'
INTROSPECTION_GIRS += Cogl-@LIBMUTTER_API_VERSION@.gir INTROSPECTION_GIRS += Cogl-1.0.gir
girdir = $(mutterlibdir) girdir = $(mutterlibdir)
gir_DATA = $(INTROSPECTION_GIRS) gir_DATA = $(INTROSPECTION_GIRS)

View File

@@ -262,7 +262,6 @@ typedef enum _CoglFeatureID
COGL_FEATURE_ID_PER_VERTEX_POINT_SIZE, COGL_FEATURE_ID_PER_VERTEX_POINT_SIZE,
COGL_FEATURE_ID_TEXTURE_RG, COGL_FEATURE_ID_TEXTURE_RG,
COGL_FEATURE_ID_BUFFER_AGE, COGL_FEATURE_ID_BUFFER_AGE,
COGL_FEATURE_ID_TEXTURE_EGL_IMAGE_EXTERNAL,
/*< private >*/ /*< private >*/
_COGL_N_FEATURE_IDS /*< skip >*/ _COGL_N_FEATURE_IDS /*< skip >*/

View File

@@ -55,13 +55,6 @@ struct _CoglDriverVtable
GLenum *out_glintformat, GLenum *out_glintformat,
GLenum *out_glformat, GLenum *out_glformat,
GLenum *out_gltype); GLenum *out_gltype);
CoglPixelFormat
(* pixel_format_to_gl_with_target) (CoglContext *context,
CoglPixelFormat format,
CoglPixelFormat target_format,
GLenum *out_glintformat,
GLenum *out_glformat,
GLenum *out_gltype);
CoglBool CoglBool
(* update_features) (CoglContext *context, (* update_features) (CoglContext *context,

View File

@@ -152,7 +152,6 @@ typedef long GLsizeiptr;
#define GL_POLYGON_OFFSET_FILL 0x8037 #define GL_POLYGON_OFFSET_FILL 0x8037
#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
#define GL_SAMPLE_COVERAGE 0x80A0 #define GL_SAMPLE_COVERAGE 0x80A0
#define GL_TEXTURE_EXTERNAL_OES 0x8D65
/* ErrorCode */ /* ErrorCode */
#define GL_NO_ERROR 0 #define GL_NO_ERROR 0

View File

@@ -111,14 +111,6 @@ _cogl_glsl_shader_set_source_with_boilerplate (CoglContext *ctx,
lengths[count++] = sizeof (texture_3d_extension) - 1; lengths[count++] = sizeof (texture_3d_extension) - 1;
} }
if (cogl_has_feature (ctx, COGL_FEATURE_ID_TEXTURE_EGL_IMAGE_EXTERNAL))
{
static const char texture_3d_extension[] =
"#extension GL_OES_EGL_image_external : require\n";
strings[count] = texture_3d_extension;
lengths[count++] = sizeof (texture_3d_extension) - 1;
}
if (shader_gl_type == GL_VERTEX_SHADER) if (shader_gl_type == GL_VERTEX_SHADER)
{ {
strings[count] = vertex_boilerplate; strings[count] = vertex_boilerplate;

View File

@@ -51,9 +51,6 @@ typedef struct _CoglGLXDisplay
CoglBool found_fbconfig; CoglBool found_fbconfig;
CoglBool fbconfig_has_rgba_visual; CoglBool fbconfig_has_rgba_visual;
CoglBool is_direct;
CoglBool have_vblank_counter;
CoglBool can_vblank_wait;
GLXFBConfig fbconfig; GLXFBConfig fbconfig;
/* Single context for all wins */ /* Single context for all wins */

View File

@@ -43,6 +43,8 @@ typedef struct _CoglGLXRenderer
int glx_error_base; int glx_error_base;
int glx_event_base; int glx_event_base;
CoglBool is_direct;
/* Vblank stuff */ /* Vblank stuff */
int dri_fd; int dri_fd;

View File

@@ -169,8 +169,7 @@ check_qualcomm_vendor (const CoglGpuInfoStrings *strings)
static CoglBool static CoglBool
check_nvidia_vendor (const CoglGpuInfoStrings *strings) check_nvidia_vendor (const CoglGpuInfoStrings *strings)
{ {
if (strcmp (strings->vendor_string, "NVIDIA") != 0 && if (strcmp (strings->vendor_string, "NVIDIA") != 0)
strcmp (strings->vendor_string, "NVIDIA Corporation") != 0)
return FALSE; return FALSE;
return TRUE; return TRUE;

View File

@@ -42,7 +42,7 @@
#include <cogl/winsys/cogl-winsys-egl-private.h> #include <cogl/winsys/cogl-winsys-egl-private.h>
#include <cogl/winsys/cogl-winsys-private.h> #include <cogl/winsys/cogl-winsys-private.h>
void cogl_renderer_set_custom_winsys (CoglRenderer *renderer, void cogl_renderer_set_custom_winsys (CoglRenderer *renderer,
CoglCustomWinsysVtableGetter winsys_vtable_getter); CoglWinsysVtableGetter winsys_vtable_getter);
#endif /* __COGL_MUTTER_H___ */ #endif /* __COGL_MUTTER_H___ */

View File

@@ -44,7 +44,7 @@ typedef struct _CoglObject CoglObject;
/** /**
* CoglObject: (ref-func cogl_object_ref) (unref-func cogl_object_unref) * CoglObject: (ref-func cogl_object_ref) (unref-func cogl_object_unref)
* (set-value-func cogl_object_value_set_object) * (set-value-func cogl_object_value_set_object)
* (get-value-func cogl_object_value_get_object) * (get-value-func cogl_object_get_object)
*/ */
/** /**

View File

@@ -62,7 +62,7 @@ COGL_BEGIN_DECLS
/** /**
* CoglPrimitive: (ref-func cogl_object_ref) (unref-func cogl_object_unref) * CoglPrimitive: (ref-func cogl_object_ref) (unref-func cogl_object_unref)
* (set-value-func cogl_object_value_set_object) * (set-value-func cogl_object_value_set_object)
* (get-value-func cogl_object_value_get_object) * (get-value-func cogl_object_get_object)
*/ */
/** /**

View File

@@ -77,9 +77,6 @@ typedef enum
COGL_PRIVATE_FEATURE_GL_PROGRAMMABLE, COGL_PRIVATE_FEATURE_GL_PROGRAMMABLE,
COGL_PRIVATE_FEATURE_GL_EMBEDDED, COGL_PRIVATE_FEATURE_GL_EMBEDDED,
COGL_PRIVATE_FEATURE_GL_WEB, COGL_PRIVATE_FEATURE_GL_WEB,
/* This is currently only implemented for GLX, but isn't actually
* that winsys dependent */
COGL_PRIVATE_FEATURE_THREADED_SWAP_WAIT,
COGL_N_PRIVATE_FEATURES COGL_N_PRIVATE_FEATURES
} CoglPrivateFeature; } CoglPrivateFeature;

View File

@@ -39,13 +39,12 @@
#include "cogl-texture-driver.h" #include "cogl-texture-driver.h"
#include "cogl-context.h" #include "cogl-context.h"
#include "cogl-closure-list-private.h" #include "cogl-closure-list-private.h"
#include "cogl-mutter.h"
#ifdef COGL_HAS_XLIB_SUPPORT #ifdef COGL_HAS_XLIB_SUPPORT
#include <X11/Xlib.h> #include <X11/Xlib.h>
#endif #endif
typedef const CoglWinsysVtable *(*CoglCustomWinsysVtableGetter) (CoglRenderer *renderer);
struct _CoglRenderer struct _CoglRenderer
{ {
CoglObject _parent; CoglObject _parent;
@@ -54,7 +53,7 @@ struct _CoglRenderer
const CoglDriverVtable *driver_vtable; const CoglDriverVtable *driver_vtable;
const CoglTextureDriver *texture_driver; const CoglTextureDriver *texture_driver;
const CoglWinsysVtable *winsys_vtable; const CoglWinsysVtable *winsys_vtable;
CoglCustomWinsysVtableGetter custom_winsys_vtable_getter; CoglWinsysVtableGetter custom_winsys_vtable_getter;
CoglWinsysID winsys_id_override; CoglWinsysID winsys_id_override;
GList *constraints; GList *constraints;
@@ -70,7 +69,6 @@ struct _CoglRenderer
Display *foreign_xdpy; Display *foreign_xdpy;
CoglBool xlib_enable_event_retrieval; CoglBool xlib_enable_event_retrieval;
CoglBool xlib_want_reset_on_video_memory_purge; CoglBool xlib_want_reset_on_video_memory_purge;
CoglBool xlib_enable_threaded_swap_wait;
#endif #endif
CoglDriver driver; CoglDriver driver;

View File

@@ -285,17 +285,6 @@ cogl_xlib_renderer_request_reset_on_video_memory_purge (CoglRenderer *renderer,
renderer->xlib_want_reset_on_video_memory_purge = enable; renderer->xlib_want_reset_on_video_memory_purge = enable;
} }
void
cogl_xlib_renderer_set_threaded_swap_wait_enabled (CoglRenderer *renderer,
CoglBool enable)
{
_COGL_RETURN_IF_FAIL (cogl_is_renderer (renderer));
/* NB: Renderers are considered immutable once connected */
_COGL_RETURN_IF_FAIL (!renderer->connected);
renderer->xlib_enable_threaded_swap_wait = enable;
}
#endif /* COGL_HAS_XLIB_SUPPORT */ #endif /* COGL_HAS_XLIB_SUPPORT */
CoglBool CoglBool
@@ -565,8 +554,8 @@ _cogl_renderer_choose_driver (CoglRenderer *renderer,
/* Final connection API */ /* Final connection API */
void void
cogl_renderer_set_custom_winsys (CoglRenderer *renderer, cogl_renderer_set_custom_winsys (CoglRenderer *renderer,
CoglCustomWinsysVtableGetter winsys_vtable_getter) CoglWinsysVtableGetter winsys_vtable_getter)
{ {
renderer->custom_winsys_vtable_getter = winsys_vtable_getter; renderer->custom_winsys_vtable_getter = winsys_vtable_getter;
} }
@@ -575,11 +564,10 @@ static CoglBool
connect_custom_winsys (CoglRenderer *renderer, connect_custom_winsys (CoglRenderer *renderer,
CoglError **error) CoglError **error)
{ {
const CoglWinsysVtable *winsys; const CoglWinsysVtable *winsys = renderer->custom_winsys_vtable_getter();
CoglError *tmp_error = NULL; CoglError *tmp_error = NULL;
GString *error_message; GString *error_message;
winsys = renderer->custom_winsys_vtable_getter (renderer);
renderer->winsys_vtable = winsys; renderer->winsys_vtable = winsys;
error_message = g_string_new (""); error_message = g_string_new ("");

View File

@@ -36,6 +36,10 @@
#include "cogl-texture-private.h" #include "cogl-texture-private.h"
#include "cogl-texture-2d.h" #include "cogl-texture-2d.h"
#ifdef COGL_HAS_EGL_SUPPORT
#include "cogl-egl-defines.h"
#endif
struct _CoglTexture2D struct _CoglTexture2D
{ {
CoglTexture _parent; CoglTexture _parent;
@@ -55,23 +59,30 @@ struct _CoglTexture2D
GLenum gl_internal_format; GLenum gl_internal_format;
/* The texture object number */ /* The texture object number */
GLuint gl_texture; GLuint gl_texture;
GLenum gl_target;
GLenum gl_legacy_texobj_min_filter; GLenum gl_legacy_texobj_min_filter;
GLenum gl_legacy_texobj_mag_filter; GLenum gl_legacy_texobj_mag_filter;
GLint gl_legacy_texobj_wrap_mode_s; GLint gl_legacy_texobj_wrap_mode_s;
GLint gl_legacy_texobj_wrap_mode_t; GLint gl_legacy_texobj_wrap_mode_t;
CoglTexturePixel first_pixel; CoglTexturePixel first_pixel;
struct {
void *user_data;
GDestroyNotify destroy;
} egl_image_external;
}; };
CoglTexture2D * CoglTexture2D *
_cogl_texture_2d_new_from_bitmap (CoglBitmap *bmp, _cogl_texture_2d_new_from_bitmap (CoglBitmap *bmp,
CoglBool can_convert_in_place); CoglBool can_convert_in_place);
#if defined (COGL_HAS_EGL_SUPPORT) && defined (EGL_KHR_image_base)
/* NB: The reason we require the width, height and format to be passed
* even though they may seem redundant is because GLES 1/2 don't
* provide a way to query these properties. */
CoglTexture2D *
_cogl_egl_texture_2d_new_from_image (CoglContext *ctx,
int width,
int height,
CoglPixelFormat format,
EGLImageKHR image,
CoglError **error);
#endif
CoglTexture2D * CoglTexture2D *
_cogl_texture_2d_create_base (CoglContext *ctx, _cogl_texture_2d_create_base (CoglContext *ctx,
int width, int width,

View File

@@ -110,8 +110,6 @@ _cogl_texture_2d_create_base (CoglContext *ctx,
tex_2d->mipmaps_dirty = TRUE; tex_2d->mipmaps_dirty = TRUE;
tex_2d->auto_mipmap = TRUE; tex_2d->auto_mipmap = TRUE;
tex_2d->gl_target = GL_TEXTURE_2D;
tex_2d->is_foreign = FALSE; tex_2d->is_foreign = FALSE;
ctx->driver_vtable->texture_2d_init (tex_2d); ctx->driver_vtable->texture_2d_init (tex_2d);
@@ -238,12 +236,12 @@ cogl_texture_2d_new_from_data (CoglContext *ctx,
* even though they may seem redundant is because GLES 1/2 don't * even though they may seem redundant is because GLES 1/2 don't
* provide a way to query these properties. */ * provide a way to query these properties. */
CoglTexture2D * CoglTexture2D *
cogl_egl_texture_2d_new_from_image (CoglContext *ctx, _cogl_egl_texture_2d_new_from_image (CoglContext *ctx,
int width, int width,
int height, int height,
CoglPixelFormat format, CoglPixelFormat format,
EGLImageKHR image, EGLImageKHR image,
CoglError **error) CoglError **error)
{ {
CoglTextureLoader *loader; CoglTextureLoader *loader;
CoglTexture2D *tex; CoglTexture2D *tex;
@@ -432,11 +430,11 @@ cogl_wayland_texture_2d_new_from_buffer (CoglContext *ctx,
EGL_WAYLAND_BUFFER_WL, EGL_WAYLAND_BUFFER_WL,
buffer, buffer,
NULL); NULL);
tex = cogl_egl_texture_2d_new_from_image (ctx, tex = _cogl_egl_texture_2d_new_from_image (ctx,
width, height, width, height,
internal_format, internal_format,
image, image,
error); error);
_cogl_egl_destroy_image (ctx, image); _cogl_egl_destroy_image (ctx, image);
return tex; return tex;
} }
@@ -559,7 +557,7 @@ _cogl_texture_2d_get_gl_texture (CoglTexture *tex,
GLuint handle; GLuint handle;
if (out_gl_target) if (out_gl_target)
*out_gl_target = tex_2d->gl_target; *out_gl_target = GL_TEXTURE_2D;
handle = ctx->driver_vtable->texture_2d_get_gl_handle (tex_2d); handle = ctx->driver_vtable->texture_2d_get_gl_handle (tex_2d);

View File

@@ -40,10 +40,6 @@
#include "cogl-context.h" #include "cogl-context.h"
#include "cogl-bitmap.h" #include "cogl-bitmap.h"
#ifdef COGL_HAS_EGL_SUPPORT
#include "cogl-egl-defines.h"
#endif
COGL_BEGIN_DECLS COGL_BEGIN_DECLS
/** /**
@@ -231,40 +227,6 @@ cogl_texture_2d_new_from_data (CoglContext *ctx,
CoglTexture2D * CoglTexture2D *
cogl_texture_2d_new_from_bitmap (CoglBitmap *bitmap); cogl_texture_2d_new_from_bitmap (CoglBitmap *bitmap);
#if defined (COGL_HAS_EGL_SUPPORT) && defined (EGL_KHR_image_base)
/* NB: The reason we require the width, height and format to be passed
* even though they may seem redundant is because GLES 1/2 don't
* provide a way to query these properties. */
CoglTexture2D *
cogl_egl_texture_2d_new_from_image (CoglContext *ctx,
int width,
int height,
CoglPixelFormat format,
EGLImageKHR image,
CoglError **error);
typedef gboolean (*CoglTexture2DEGLImageExternalAlloc) (CoglTexture2D *tex_2d,
gpointer user_data,
GError **error);
CoglTexture2D *
cogl_texture_2d_new_from_egl_image_external (CoglContext *ctx,
int width,
int height,
CoglTexture2DEGLImageExternalAlloc alloc,
gpointer user_data,
GDestroyNotify destroy,
CoglError **error);
void
cogl_texture_2d_egl_image_external_bind (CoglTexture2D *tex_2d);
void
cogl_texture_2d_egl_image_external_alloc_finish (CoglTexture2D *tex_2d,
void *user_data,
GDestroyNotify destroy);
#endif
COGL_END_DECLS COGL_END_DECLS
#endif /* __COGL_TEXTURE_2D_H */ #endif /* __COGL_TEXTURE_2D_H */

View File

@@ -198,7 +198,6 @@ struct _CoglTextureDriver
CoglPixelFormat CoglPixelFormat
(* find_best_gl_get_data_format) (CoglContext *context, (* find_best_gl_get_data_format) (CoglContext *context,
CoglPixelFormat format, CoglPixelFormat format,
CoglPixelFormat target_format,
GLenum *closest_gl_format, GLenum *closest_gl_format,
GLenum *closest_gl_type); GLenum *closest_gl_type);
}; };

View File

@@ -37,7 +37,6 @@
#include "cogl-spans.h" #include "cogl-spans.h"
#include "cogl-meta-texture.h" #include "cogl-meta-texture.h"
#include "cogl-framebuffer.h" #include "cogl-framebuffer.h"
#include "cogl-texture-2d.h"
#ifdef COGL_HAS_EGL_SUPPORT #ifdef COGL_HAS_EGL_SUPPORT
#include "cogl-egl-defines.h" #include "cogl-egl-defines.h"
@@ -155,8 +154,7 @@ typedef enum _CoglTextureSoureType {
COGL_TEXTURE_SOURCE_TYPE_SIZED = 1, COGL_TEXTURE_SOURCE_TYPE_SIZED = 1,
COGL_TEXTURE_SOURCE_TYPE_BITMAP, COGL_TEXTURE_SOURCE_TYPE_BITMAP,
COGL_TEXTURE_SOURCE_TYPE_EGL_IMAGE, COGL_TEXTURE_SOURCE_TYPE_EGL_IMAGE,
COGL_TEXTURE_SOURCE_TYPE_GL_FOREIGN, COGL_TEXTURE_SOURCE_TYPE_GL_FOREIGN
COGL_TEXTURE_SOURCE_TYPE_EGL_IMAGE_EXTERNAL
} CoglTextureSourceType; } CoglTextureSourceType;
typedef struct _CoglTextureLoader typedef struct _CoglTextureLoader
@@ -181,14 +179,6 @@ typedef struct _CoglTextureLoader
int height; int height;
CoglPixelFormat format; CoglPixelFormat format;
} egl_image; } egl_image;
#endif
#if defined (COGL_HAS_EGL_SUPPORT)
struct {
int width;
int height;
CoglTexture2DEGLImageExternalAlloc alloc;
CoglPixelFormat format;
} egl_image_external;
#endif #endif
struct { struct {
int width; int width;

View File

@@ -160,7 +160,6 @@ _cogl_texture_free_loader (CoglTexture *texture)
case COGL_TEXTURE_SOURCE_TYPE_SIZED: case COGL_TEXTURE_SOURCE_TYPE_SIZED:
case COGL_TEXTURE_SOURCE_TYPE_EGL_IMAGE: case COGL_TEXTURE_SOURCE_TYPE_EGL_IMAGE:
case COGL_TEXTURE_SOURCE_TYPE_GL_FOREIGN: case COGL_TEXTURE_SOURCE_TYPE_GL_FOREIGN:
case COGL_TEXTURE_SOURCE_TYPE_EGL_IMAGE_EXTERNAL:
break; break;
case COGL_TEXTURE_SOURCE_TYPE_BITMAP: case COGL_TEXTURE_SOURCE_TYPE_BITMAP:
cogl_object_unref (loader->src.bitmap.bitmap); cogl_object_unref (loader->src.bitmap.bitmap);
@@ -1059,7 +1058,6 @@ cogl_texture_get_data (CoglTexture *texture,
closest_format = closest_format =
ctx->texture_driver->find_best_gl_get_data_format (ctx, ctx->texture_driver->find_best_gl_get_data_format (ctx,
texture_format,
format, format,
&closest_gl_format, &closest_gl_format,
&closest_gl_type); &closest_gl_type);

View File

@@ -167,36 +167,6 @@ void
cogl_xlib_renderer_set_event_retrieval_enabled (CoglRenderer *renderer, cogl_xlib_renderer_set_event_retrieval_enabled (CoglRenderer *renderer,
CoglBool enable); CoglBool enable);
/**
* cogl_xlib_renderer_set_threaded_swap_wait_enabled:
* @renderer: a #CoglRenderer
* @enable: The new value
*
* Sets whether Cogl is allowed to use a separate threaded to wait for the
* completion of glXSwapBuffers() and call the frame callback for the
* corresponding #CoglOnscreen. This is a way of emulating the
* INTEL_swap_event extension, and will only ever be used if
* INTEL_swap_event is not present; it will also only be used for
* specific white-listed drivers that are known to work correctly with
* multiple contexts sharing state between threads.
*
* The advantage of enabling this is that it will allow your main loop
* to do other work while waiting for the system to be ready to draw
* the next frame, instead of blocking in glXSwapBuffers(). A disadvantage
* is that the driver will be prevented from buffering up multiple frames
* even if it thinks that it would be advantageous. In general, this
* will work best for something like a system compositor that is doing
* simple drawing but handling lots of other complex tasks.
*
* If you enable this, you must call XInitThreads() before any other
* X11 calls in your program. (See the documentation for XInitThreads())
*
* Stability: unstable
*/
void
cogl_xlib_renderer_set_threaded_swap_wait_enabled (CoglRenderer *renderer,
CoglBool enable);
/** /**
* cogl_xlib_renderer_get_display: (skip) * cogl_xlib_renderer_get_display: (skip)
*/ */

View File

@@ -1418,15 +1418,6 @@ _cogl_framebuffer_gl_read_pixels_into_bitmap (CoglFramebuffer *framebuffer,
&gl_format, &gl_format,
&gl_type); &gl_type);
/* As we are reading pixels, we want to consider the bitmap according to
* its real pixel format, not the swizzled channels we pretend face to the
* pipeline.
*/
if ((format == COGL_PIXEL_FORMAT_BGRA_8888 ||
format == COGL_PIXEL_FORMAT_BGRA_8888_PRE) &&
_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_TEXTURE_SWIZZLE))
gl_format = GL_BGRA;
/* NB: All offscreen rendering is done upside down so there is no need /* NB: All offscreen rendering is done upside down so there is no need
* to flip in this case... */ * to flip in this case... */
if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_MESA_PACK_INVERT) && if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_MESA_PACK_INVERT) &&

View File

@@ -46,31 +46,11 @@
#include "cogl-error-private.h" #include "cogl-error-private.h"
#include "cogl-util-gl-private.h" #include "cogl-util-gl-private.h"
#if defined (COGL_HAS_EGL_SUPPORT)
/* We need this define from GLES2, but can't include the header
as its type definitions may conflict with the GL ones
*/
#ifndef GL_OES_EGL_image_external
#define GL_OES_EGL_image_external 1
#define GL_TEXTURE_EXTERNAL_OES 0x8D65
#define GL_TEXTURE_BINDING_EXTERNAL_OES 0x8D67
#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES 0x8D68
#define GL_SAMPLER_EXTERNAL_OES 0x8D66
#endif /* GL_OES_EGL_image_external */
#endif /* defined (COGL_HAS_EGL_SUPPORT) */
void void
_cogl_texture_2d_gl_free (CoglTexture2D *tex_2d) _cogl_texture_2d_gl_free (CoglTexture2D *tex_2d)
{ {
if (!tex_2d->is_foreign && tex_2d->gl_texture) if (!tex_2d->is_foreign && tex_2d->gl_texture)
_cogl_delete_gl_texture (tex_2d->gl_texture); _cogl_delete_gl_texture (tex_2d->gl_texture);
#if defined (COGL_HAS_EGL_SUPPORT)
g_clear_pointer (&tex_2d->egl_image_external.user_data,
tex_2d->egl_image_external.destroy);
#endif
} }
CoglBool CoglBool
@@ -121,9 +101,6 @@ _cogl_texture_2d_gl_init (CoglTexture2D *tex_2d)
/* Wrap mode not yet set */ /* Wrap mode not yet set */
tex_2d->gl_legacy_texobj_wrap_mode_s = GL_FALSE; tex_2d->gl_legacy_texobj_wrap_mode_s = GL_FALSE;
tex_2d->gl_legacy_texobj_wrap_mode_t = GL_FALSE; tex_2d->gl_legacy_texobj_wrap_mode_t = GL_FALSE;
tex_2d->egl_image_external.user_data = NULL;
tex_2d->egl_image_external.destroy = NULL;
} }
static CoglBool static CoglBool
@@ -462,96 +439,6 @@ allocate_from_gl_foreign (CoglTexture2D *tex_2d,
return TRUE; return TRUE;
} }
#if defined (COGL_HAS_EGL_SUPPORT)
static CoglBool
allocate_custom_egl_image_external (CoglTexture2D *tex_2d,
CoglTextureLoader *loader,
CoglError **error)
{
CoglTexture *tex = COGL_TEXTURE (tex_2d);
CoglContext *ctx = tex->context;
CoglPixelFormat internal_format = loader->src.egl_image_external.format;
_cogl_gl_util_clear_gl_errors (ctx);
GE (ctx, glActiveTexture (GL_TEXTURE0));
GE (ctx, glGenTextures (1, &tex_2d->gl_texture));
GE (ctx, glBindTexture (GL_TEXTURE_EXTERNAL_OES,
tex_2d->gl_texture));
if (_cogl_gl_util_get_error (ctx) != GL_NO_ERROR)
{
_cogl_set_error (error,
COGL_TEXTURE_ERROR,
COGL_TEXTURE_ERROR_BAD_PARAMETER,
"Could not create a CoglTexture2D from a given "
"EGLImage");
GE( ctx, glDeleteTextures (1, &tex_2d->gl_texture) );
return FALSE;
}
GE (ctx, glTexParameteri(GL_TEXTURE_EXTERNAL_OES,
GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE));
GE (ctx, glTexParameteri(GL_TEXTURE_EXTERNAL_OES,
GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE));
if (!loader->src.egl_image_external.alloc (tex_2d,
tex_2d->egl_image_external.user_data,
error))
{
GE (ctx, glBindTexture (GL_TEXTURE_EXTERNAL_OES, 0));
GE (ctx, glDeleteTextures (1, &tex_2d->gl_texture));
return FALSE;
}
GE (ctx, glBindTexture (GL_TEXTURE_EXTERNAL_OES, 0));
tex_2d->internal_format = internal_format;
tex_2d->gl_target = GL_TEXTURE_EXTERNAL_OES;
return TRUE;
}
CoglTexture2D *
cogl_texture_2d_new_from_egl_image_external (CoglContext *ctx,
int width,
int height,
CoglTexture2DEGLImageExternalAlloc alloc,
gpointer user_data,
GDestroyNotify destroy,
CoglError **error)
{
CoglTextureLoader *loader;
CoglTexture2D *tex_2d;
CoglPixelFormat internal_format = COGL_PIXEL_FORMAT_ANY;
_COGL_RETURN_VAL_IF_FAIL (_cogl_context_get_winsys (ctx)->constraints &
COGL_RENDERER_CONSTRAINT_USES_EGL,
NULL);
_COGL_RETURN_VAL_IF_FAIL (cogl_has_feature (ctx,
COGL_FEATURE_ID_TEXTURE_EGL_IMAGE_EXTERNAL),
NULL);
loader = _cogl_texture_create_loader ();
loader->src_type = COGL_TEXTURE_SOURCE_TYPE_EGL_IMAGE_EXTERNAL;
loader->src.egl_image_external.width = width;
loader->src.egl_image_external.height = height;
loader->src.egl_image_external.alloc = alloc;
loader->src.egl_image_external.format = internal_format;
tex_2d = _cogl_texture_2d_create_base (ctx, width, height,
internal_format, loader);
tex_2d->egl_image_external.user_data = user_data;
tex_2d->egl_image_external.destroy = destroy;
return tex_2d;
}
#endif /* defined (COGL_HAS_EGL_SUPPORT) */
CoglBool CoglBool
_cogl_texture_2d_gl_allocate (CoglTexture *tex, _cogl_texture_2d_gl_allocate (CoglTexture *tex,
CoglError **error) CoglError **error)
@@ -575,8 +462,6 @@ _cogl_texture_2d_gl_allocate (CoglTexture *tex,
#endif #endif
case COGL_TEXTURE_SOURCE_TYPE_GL_FOREIGN: case COGL_TEXTURE_SOURCE_TYPE_GL_FOREIGN:
return allocate_from_gl_foreign (tex_2d, loader, error); return allocate_from_gl_foreign (tex_2d, loader, error);
case COGL_TEXTURE_SOURCE_TYPE_EGL_IMAGE_EXTERNAL:
return allocate_custom_egl_image_external (tex_2d, loader, error);
} }
g_return_val_if_reached (FALSE); g_return_val_if_reached (FALSE);
@@ -772,12 +657,11 @@ _cogl_texture_2d_gl_copy_from_bitmap (CoglTexture2D *tex_2d,
upload_format = cogl_bitmap_get_format (upload_bmp); upload_format = cogl_bitmap_get_format (upload_bmp);
ctx->driver_vtable->pixel_format_to_gl_with_target (ctx, ctx->driver_vtable->pixel_format_to_gl (ctx,
upload_format, upload_format,
_cogl_texture_get_format (tex), NULL, /* internal format */
NULL, /* internal gl format */ &gl_format,
&gl_format, &gl_type);
&gl_type);
/* If this touches the first pixel then we'll update our copy */ /* If this touches the first pixel then we'll update our copy */
if (dst_x == 0 && dst_y == 0 && if (dst_x == 0 && dst_y == 0 &&

View File

@@ -96,12 +96,11 @@ _cogl_driver_pixel_format_from_gl_internal (CoglContext *context,
} }
static CoglPixelFormat static CoglPixelFormat
_cogl_driver_pixel_format_to_gl_with_target (CoglContext *context, _cogl_driver_pixel_format_to_gl (CoglContext *context,
CoglPixelFormat format, CoglPixelFormat format,
CoglPixelFormat target_format, GLenum *out_glintformat,
GLenum *out_glintformat, GLenum *out_glformat,
GLenum *out_glformat, GLenum *out_gltype)
GLenum *out_gltype)
{ {
CoglPixelFormat required_format; CoglPixelFormat required_format;
GLenum glintformat = 0; GLenum glintformat = 0;
@@ -175,16 +174,7 @@ _cogl_driver_pixel_format_to_gl_with_target (CoglContext *context,
case COGL_PIXEL_FORMAT_BGRA_8888: case COGL_PIXEL_FORMAT_BGRA_8888:
case COGL_PIXEL_FORMAT_BGRA_8888_PRE: case COGL_PIXEL_FORMAT_BGRA_8888_PRE:
glintformat = GL_RGBA; glintformat = GL_RGBA;
/* If the driver has texture_swizzle, pretend internal glformat = GL_BGRA;
* and buffer format are the same here, the pixels
* will be flipped through this extension.
*/
if (target_format == format &&
_cogl_has_private_feature
(context, COGL_PRIVATE_FEATURE_TEXTURE_SWIZZLE))
glformat = GL_RGBA;
else
glformat = GL_BGRA;
gltype = GL_UNSIGNED_BYTE; gltype = GL_UNSIGNED_BYTE;
break; break;
@@ -299,20 +289,6 @@ _cogl_driver_pixel_format_to_gl_with_target (CoglContext *context,
return required_format; return required_format;
} }
static CoglPixelFormat
_cogl_driver_pixel_format_to_gl (CoglContext *context,
CoglPixelFormat format,
GLenum *out_glintformat,
GLenum *out_glformat,
GLenum *out_gltype)
{
return _cogl_driver_pixel_format_to_gl_with_target (context,
format, format,
out_glintformat,
out_glformat,
out_gltype);
}
static CoglBool static CoglBool
_cogl_get_gl_version (CoglContext *ctx, _cogl_get_gl_version (CoglContext *ctx,
int *major_out, int *major_out,
@@ -693,7 +669,6 @@ _cogl_driver_gl =
{ {
_cogl_driver_pixel_format_from_gl_internal, _cogl_driver_pixel_format_from_gl_internal,
_cogl_driver_pixel_format_to_gl, _cogl_driver_pixel_format_to_gl,
_cogl_driver_pixel_format_to_gl_with_target,
_cogl_driver_update_features, _cogl_driver_update_features,
_cogl_offscreen_gl_allocate, _cogl_offscreen_gl_allocate,
_cogl_offscreen_gl_free, _cogl_offscreen_gl_free,

View File

@@ -114,18 +114,6 @@ _cogl_texture_driver_gen (CoglContext *ctx,
red_swizzle) ); red_swizzle) );
} }
/* If swizzle extension is available, prefer it to flip bgra buffers to rgba */
if ((internal_format == COGL_PIXEL_FORMAT_BGRA_8888 ||
internal_format == COGL_PIXEL_FORMAT_BGRA_8888_PRE) &&
_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_TEXTURE_SWIZZLE))
{
static const GLint bgra_swizzle[] = { GL_BLUE, GL_GREEN, GL_RED, GL_ALPHA };
GE( ctx, glTexParameteriv (gl_target,
GL_TEXTURE_SWIZZLE_RGBA,
bgra_swizzle) );
}
return tex; return tex;
} }
@@ -533,16 +521,14 @@ static CoglPixelFormat
_cogl_texture_driver_find_best_gl_get_data_format _cogl_texture_driver_find_best_gl_get_data_format
(CoglContext *context, (CoglContext *context,
CoglPixelFormat format, CoglPixelFormat format,
CoglPixelFormat target_format,
GLenum *closest_gl_format, GLenum *closest_gl_format,
GLenum *closest_gl_type) GLenum *closest_gl_type)
{ {
return context->driver_vtable->pixel_format_to_gl_with_target (context, return context->driver_vtable->pixel_format_to_gl (context,
format, format,
target_format, NULL, /* don't need */
NULL, /* don't need */ closest_gl_format,
closest_gl_format, closest_gl_type);
closest_gl_type);
} }
const CoglTextureDriver const CoglTextureDriver

View File

@@ -67,12 +67,11 @@ _cogl_driver_pixel_format_from_gl_internal (CoglContext *context,
} }
static CoglPixelFormat static CoglPixelFormat
_cogl_driver_pixel_format_to_gl_with_target (CoglContext *context, _cogl_driver_pixel_format_to_gl (CoglContext *context,
CoglPixelFormat format, CoglPixelFormat format,
CoglPixelFormat target_format, GLenum *out_glintformat,
GLenum *out_glintformat, GLenum *out_glformat,
GLenum *out_glformat, GLenum *out_gltype)
GLenum *out_gltype)
{ {
CoglPixelFormat required_format; CoglPixelFormat required_format;
GLenum glintformat; GLenum glintformat;
@@ -220,20 +219,6 @@ _cogl_driver_pixel_format_to_gl_with_target (CoglContext *context,
return required_format; return required_format;
} }
static CoglPixelFormat
_cogl_driver_pixel_format_to_gl (CoglContext *context,
CoglPixelFormat format,
GLenum *out_glintformat,
GLenum *out_glformat,
GLenum *out_gltype)
{
return _cogl_driver_pixel_format_to_gl_with_target (context,
format, format,
out_glintformat,
out_glformat,
out_gltype);
}
static CoglBool static CoglBool
_cogl_get_gl_version (CoglContext *ctx, _cogl_get_gl_version (CoglContext *ctx,
int *major_out, int *major_out,
@@ -472,7 +457,6 @@ _cogl_driver_gles =
{ {
_cogl_driver_pixel_format_from_gl_internal, _cogl_driver_pixel_format_from_gl_internal,
_cogl_driver_pixel_format_to_gl, _cogl_driver_pixel_format_to_gl,
_cogl_driver_pixel_format_to_gl_with_target,
_cogl_driver_update_features, _cogl_driver_update_features,
_cogl_offscreen_gl_allocate, _cogl_offscreen_gl_allocate,
_cogl_offscreen_gl_free, _cogl_offscreen_gl_free,

View File

@@ -615,7 +615,6 @@ static CoglPixelFormat
_cogl_texture_driver_find_best_gl_get_data_format _cogl_texture_driver_find_best_gl_get_data_format
(CoglContext *context, (CoglContext *context,
CoglPixelFormat format, CoglPixelFormat format,
CoglPixelFormat target_format,
GLenum *closest_gl_format, GLenum *closest_gl_format,
GLenum *closest_gl_type) GLenum *closest_gl_type)
{ {

View File

@@ -61,7 +61,6 @@ _cogl_driver_nop =
{ {
NULL, /* pixel_format_from_gl_internal */ NULL, /* pixel_format_from_gl_internal */
NULL, /* pixel_format_to_gl */ NULL, /* pixel_format_to_gl */
NULL, /* pixel_format_to_gl_with_target */
_cogl_driver_update_features, _cogl_driver_update_features,
_cogl_offscreen_nop_allocate, _cogl_offscreen_nop_allocate,
_cogl_offscreen_nop_free, _cogl_offscreen_nop_free,

View File

@@ -2,12 +2,12 @@ prefix=@prefix@
exec_prefix=@exec_prefix@ exec_prefix=@exec_prefix@
libdir=@libdir@/mutter libdir=@libdir@/mutter
includedir=@includedir@/mutter includedir=@includedir@/mutter
apiversion=@LIBMUTTER_API_VERSION@ apiversion=1.0
requires=@COGL_PKG_REQUIRES@ requires=@COGL_PKG_REQUIRES@
Name: Cogl Name: Cogl
Description: An object oriented GL/GLES Abstraction/Utility Layer Description: An object oriented GL/GLES Abstraction/Utility Layer
Version: @MUTTER_VERSION@ Version: @COGL_1_VERSION@
Libs: -L${libdir} -lmutter-cogl-@LIBMUTTER_API_VERSION@ Libs: -L${libdir} -lmutter-cogl
Cflags: -I${includedir}/cogl Cflags: -I${includedir}/cogl
Requires: ${requires} Requires: ${requires}

View File

@@ -48,7 +48,6 @@
#include "cogl-texture-pixmap-x11-private.h" #include "cogl-texture-pixmap-x11-private.h"
#include "cogl-texture-2d-private.h" #include "cogl-texture-2d-private.h"
#include "cogl-texture-2d.h"
#include "cogl-error-private.h" #include "cogl-error-private.h"
#include "cogl-poll-private.h" #include "cogl-poll-private.h"
@@ -262,39 +261,6 @@ _cogl_winsys_renderer_disconnect (CoglRenderer *renderer)
g_slice_free (CoglRendererEGL, egl_renderer); g_slice_free (CoglRendererEGL, egl_renderer);
} }
static EGLDisplay
_cogl_winsys_egl_get_display (void *native)
{
EGLDisplay dpy = NULL;
const char *client_exts = eglQueryString (NULL, EGL_EXTENSIONS);
if (g_strstr_len (client_exts, -1, "EGL_KHR_platform_base"))
{
PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display =
(void *) eglGetProcAddress ("eglGetPlatformDisplay");
if (get_platform_display)
dpy = get_platform_display (EGL_PLATFORM_X11_KHR, native, NULL);
if (dpy)
return dpy;
}
if (g_strstr_len (client_exts, -1, "EGL_EXT_platform_base"))
{
PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display =
(void *) eglGetProcAddress ("eglGetPlatformDisplayEXT");
if (get_platform_display)
dpy = get_platform_display (EGL_PLATFORM_X11_KHR, native, NULL);
if (dpy)
return dpy;
}
return eglGetDisplay ((EGLNativeDisplayType) native);
}
static CoglBool static CoglBool
_cogl_winsys_renderer_connect (CoglRenderer *renderer, _cogl_winsys_renderer_connect (CoglRenderer *renderer,
CoglError **error) CoglError **error)
@@ -311,7 +277,8 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer,
if (!_cogl_xlib_renderer_connect (renderer, error)) if (!_cogl_xlib_renderer_connect (renderer, error))
goto error; goto error;
egl_renderer->edpy = _cogl_winsys_egl_get_display (xlib_renderer->xdpy); egl_renderer->edpy =
eglGetDisplay ((EGLNativeDisplayType) xlib_renderer->xdpy);
if (!_cogl_winsys_egl_renderer_connect_common (renderer, error)) if (!_cogl_winsys_egl_renderer_connect_common (renderer, error))
goto error; goto error;
@@ -323,19 +290,6 @@ error:
return FALSE; return FALSE;
} }
static int
_cogl_winsys_egl_add_config_attributes (CoglDisplay *display,
CoglFramebufferConfig *config,
EGLint *attributes)
{
int i = 0;
attributes[i++] = EGL_SURFACE_TYPE;
attributes[i++] = EGL_WINDOW_BIT;
return i;
}
static CoglBool static CoglBool
_cogl_winsys_egl_display_setup (CoglDisplay *display, _cogl_winsys_egl_display_setup (CoglDisplay *display,
CoglError **error) CoglError **error)
@@ -774,12 +728,12 @@ _cogl_winsys_texture_pixmap_x11_create (CoglTexturePixmapX11 *tex_pixmap)
COGL_PIXEL_FORMAT_RGB_888); COGL_PIXEL_FORMAT_RGB_888);
egl_tex_pixmap->texture = COGL_TEXTURE ( egl_tex_pixmap->texture = COGL_TEXTURE (
cogl_egl_texture_2d_new_from_image (ctx, _cogl_egl_texture_2d_new_from_image (ctx,
tex->width, tex->width,
tex->height, tex->height,
texture_format, texture_format,
egl_tex_pixmap->image, egl_tex_pixmap->image,
NULL)); NULL));
tex_pixmap->winsys = egl_tex_pixmap; tex_pixmap->winsys = egl_tex_pixmap;
@@ -840,7 +794,6 @@ _cogl_winsys_texture_pixmap_x11_get_texture (CoglTexturePixmapX11 *tex_pixmap,
static const CoglWinsysEGLVtable static const CoglWinsysEGLVtable
_cogl_winsys_egl_vtable = _cogl_winsys_egl_vtable =
{ {
.add_config_attributes = _cogl_winsys_egl_add_config_attributes,
.display_setup = _cogl_winsys_egl_display_setup, .display_setup = _cogl_winsys_egl_display_setup,
.display_destroy = _cogl_winsys_egl_display_destroy, .display_destroy = _cogl_winsys_egl_display_destroy,
.context_created = _cogl_winsys_egl_context_created, .context_created = _cogl_winsys_egl_context_created,

View File

@@ -233,11 +233,11 @@ egl_attributes_from_framebuffer_config (CoglDisplay *display,
CoglRendererEGL *egl_renderer = renderer->winsys; CoglRendererEGL *egl_renderer = renderer->winsys;
int i = 0; int i = 0;
/* Let the platform add attributes first, including setting the /* Let the platform add attributes first */
* EGL_SURFACE_TYPE */ if (egl_renderer->platform_vtable->add_config_attributes)
i = egl_renderer->platform_vtable->add_config_attributes (display, i = egl_renderer->platform_vtable->add_config_attributes (display,
config, config,
attributes); attributes);
if (config->need_stencil) if (config->need_stencil)
{ {
@@ -269,6 +269,9 @@ egl_attributes_from_framebuffer_config (CoglDisplay *display,
EGL_OPENGL_ES_BIT : EGL_OPENGL_ES_BIT :
EGL_OPENGL_ES2_BIT); EGL_OPENGL_ES2_BIT);
attributes[i++] = EGL_SURFACE_TYPE;
attributes[i++] = EGL_WINDOW_BIT;
if (config->samples_per_pixel) if (config->samples_per_pixel)
{ {
attributes[i++] = EGL_SAMPLE_BUFFERS; attributes[i++] = EGL_SAMPLE_BUFFERS;
@@ -1025,13 +1028,6 @@ _cogl_egl_create_image (CoglContext *ctx,
if (target == EGL_NATIVE_PIXMAP_KHR) if (target == EGL_NATIVE_PIXMAP_KHR)
egl_ctx = EGL_NO_CONTEXT; egl_ctx = EGL_NO_CONTEXT;
else else
#endif
#ifdef COGL_HAS_WAYLAND_EGL_SERVER_SUPPORT
/* The WL_bind_wayland_display spec states that EGL_NO_CONTEXT is to be used
* in conjunction with the EGL_WAYLAND_BUFFER_WL target */
if (target == EGL_WAYLAND_BUFFER_WL)
egl_ctx = EGL_NO_CONTEXT;
else
#endif #endif
egl_ctx = egl_display->egl_context; egl_ctx = egl_display->egl_context;

View File

@@ -65,16 +65,12 @@
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <sys/time.h> #include <sys/time.h>
#include <errno.h>
#include <fcntl.h> #include <fcntl.h>
#include <time.h> #include <time.h>
#include <unistd.h>
#include <GL/glx.h> #include <GL/glx.h>
#include <X11/Xlib.h> #include <X11/Xlib.h>
#include <glib.h>
/* This is a relatively new extension */ /* This is a relatively new extension */
#ifndef GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV #ifndef GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV
#define GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x20F7 #define GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x20F7
@@ -104,14 +100,6 @@ typedef struct _CoglOnscreenGLX
CoglBool pending_sync_notify; CoglBool pending_sync_notify;
CoglBool pending_complete_notify; CoglBool pending_complete_notify;
CoglBool pending_resize_notify; CoglBool pending_resize_notify;
GThread *swap_wait_thread;
GQueue *swap_wait_queue;
GCond swap_wait_cond;
GMutex swap_wait_mutex;
int swap_wait_pipe[2];
GLXContext swap_wait_context;
CoglBool closing_down;
} CoglOnscreenGLX; } CoglOnscreenGLX;
typedef struct _CoglPixmapTextureEyeGLX typedef struct _CoglPixmapTextureEyeGLX
@@ -204,15 +192,6 @@ find_onscreen_for_xid (CoglContext *context, uint32_t xid)
return NULL; return NULL;
} }
static int64_t
get_monotonic_time_ns (void)
{
struct timespec ts;
clock_gettime (CLOCK_MONOTONIC, &ts);
return ts.tv_sec * G_GINT64_CONSTANT (1000000000) + ts.tv_nsec;
}
static void static void
ensure_ust_type (CoglRenderer *renderer, ensure_ust_type (CoglRenderer *renderer,
GLXDrawable drawable) GLXDrawable drawable)
@@ -223,6 +202,7 @@ ensure_ust_type (CoglRenderer *renderer,
int64_t msc; int64_t msc;
int64_t sbc; int64_t sbc;
struct timeval tv; struct timeval tv;
struct timespec ts;
int64_t current_system_time; int64_t current_system_time;
int64_t current_monotonic_time; int64_t current_monotonic_time;
@@ -252,7 +232,9 @@ ensure_ust_type (CoglRenderer *renderer,
/* This is the time source that the newer (fixed) linux drm /* This is the time source that the newer (fixed) linux drm
* drivers use (Linux >= 3.8) */ * drivers use (Linux >= 3.8) */
current_monotonic_time = get_monotonic_time_ns () / 1000; clock_gettime (CLOCK_MONOTONIC, &ts);
current_monotonic_time = (ts.tv_sec * G_GINT64_CONSTANT (1000000)) +
(ts.tv_nsec / G_GINT64_CONSTANT (1000));
if (current_monotonic_time > ust - 1000000 && if (current_monotonic_time > ust - 1000000 &&
current_monotonic_time < ust + 1000000) current_monotonic_time < ust + 1000000)
@@ -308,9 +290,6 @@ _cogl_winsys_get_clock_time (CoglContext *context)
{ {
CoglGLXRenderer *glx_renderer = context->display->renderer->winsys; CoglGLXRenderer *glx_renderer = context->display->renderer->winsys;
if (!glx_renderer->glXWaitForMsc)
return get_monotonic_time_ns ();
/* We don't call ensure_ust_type() because we don't have a drawable /* We don't call ensure_ust_type() because we don't have a drawable
* to work with. cogl_get_clock_time() is documented to only work * to work with. cogl_get_clock_time() is documented to only work
* once a valid, non-zero, timestamp has been retrieved from Cogl. * once a valid, non-zero, timestamp has been retrieved from Cogl.
@@ -331,7 +310,10 @@ _cogl_winsys_get_clock_time (CoglContext *context)
} }
case COGL_GLX_UST_IS_MONOTONIC_TIME: case COGL_GLX_UST_IS_MONOTONIC_TIME:
{ {
return get_monotonic_time_ns (); struct timespec ts;
clock_gettime (CLOCK_MONOTONIC, &ts);
return ts.tv_sec * G_GINT64_CONSTANT (1000000000) + ts.tv_nsec;
} }
} }
@@ -730,25 +712,23 @@ update_base_winsys_features (CoglRenderer *renderer)
g_strfreev (split_extensions); g_strfreev (split_extensions);
/* The GLX_SGI_video_sync spec explicitly states this extension /* Note: the GLX_SGI_video_sync spec explicitly states this extension
* only works for direct contexts; we don't know per-renderer * only works for direct contexts. */
* if the context is direct or not, so we turn off the feature if (!glx_renderer->is_direct)
* flag; we still use the extension within this file looking {
* instead at glx_display->have_vblank_counter. glx_renderer->glXGetVideoSync = NULL;
*/ glx_renderer->glXWaitVideoSync = NULL;
COGL_FLAGS_SET (glx_renderer->base_winsys_features, COGL_FLAGS_SET (glx_renderer->base_winsys_features,
COGL_WINSYS_FEATURE_VBLANK_COUNTER, COGL_WINSYS_FEATURE_VBLANK_COUNTER,
FALSE); FALSE);
}
COGL_FLAGS_SET (glx_renderer->base_winsys_features, COGL_FLAGS_SET (glx_renderer->base_winsys_features,
COGL_WINSYS_FEATURE_MULTIPLE_ONSCREEN, COGL_WINSYS_FEATURE_MULTIPLE_ONSCREEN,
TRUE); TRUE);
/* Because of the direct-context dependency, the VBLANK_WAIT feature if (glx_renderer->glXWaitVideoSync ||
* doesn't reflect the presence of GLX_SGI_video_sync. glx_renderer->glXWaitForMsc)
*/
if (glx_renderer->glXWaitForMsc)
COGL_FLAGS_SET (glx_renderer->base_winsys_features, COGL_FLAGS_SET (glx_renderer->base_winsys_features,
COGL_WINSYS_FEATURE_VBLANK_WAIT, COGL_WINSYS_FEATURE_VBLANK_WAIT,
TRUE); TRUE);
@@ -881,7 +861,7 @@ update_winsys_features (CoglContext *context, CoglError **error)
* by the SwapInterval so we have to throttle swap_region requests * by the SwapInterval so we have to throttle swap_region requests
* manually... */ * manually... */
if (_cogl_winsys_has_feature (COGL_WINSYS_FEATURE_SWAP_REGION) && if (_cogl_winsys_has_feature (COGL_WINSYS_FEATURE_SWAP_REGION) &&
(glx_display->have_vblank_counter || glx_display->can_vblank_wait)) _cogl_winsys_has_feature (COGL_WINSYS_FEATURE_VBLANK_WAIT))
COGL_FLAGS_SET (context->winsys_features, COGL_FLAGS_SET (context->winsys_features,
COGL_WINSYS_FEATURE_SWAP_REGION_THROTTLE, TRUE); COGL_WINSYS_FEATURE_SWAP_REGION_THROTTLE, TRUE);
@@ -897,29 +877,6 @@ update_winsys_features (CoglContext *context, CoglError **error)
COGL_FEATURE_ID_PRESENTATION_TIME, COGL_FEATURE_ID_PRESENTATION_TIME,
TRUE); TRUE);
} }
else
{
CoglGpuInfo *info = &context->gpu;
if (glx_display->have_vblank_counter &&
context->display->renderer->xlib_enable_threaded_swap_wait &&
info->vendor == COGL_GPU_INFO_VENDOR_NVIDIA)
{
COGL_FLAGS_SET (context->winsys_features,
COGL_WINSYS_FEATURE_SYNC_AND_COMPLETE_EVENT, TRUE);
COGL_FLAGS_SET (context->winsys_features,
COGL_WINSYS_FEATURE_SWAP_BUFFERS_EVENT, TRUE);
/* TODO: remove this deprecated feature */
COGL_FLAGS_SET (context->features,
COGL_FEATURE_ID_SWAP_BUFFERS_EVENT,
TRUE);
COGL_FLAGS_SET (context->features,
COGL_FEATURE_ID_PRESENTATION_TIME,
TRUE);
COGL_FLAGS_SET (context->private_features,
COGL_PRIVATE_FEATURE_THREADED_SWAP_WAIT,
TRUE);
}
}
/* We'll manually handle queueing dirty events in response to /* We'll manually handle queueing dirty events in response to
* Expose events from X */ * Expose events from X */
@@ -1182,13 +1139,11 @@ create_context (CoglDisplay *display, CoglError **error)
return FALSE; return FALSE;
} }
glx_display->is_direct = glx_renderer->is_direct =
glx_renderer->glXIsDirect (xlib_renderer->xdpy, glx_display->glx_context); glx_renderer->glXIsDirect (xlib_renderer->xdpy, glx_display->glx_context);
glx_display->have_vblank_counter = glx_display->is_direct && glx_renderer->glXWaitVideoSync;
glx_display->can_vblank_wait = glx_renderer->glXWaitForMsc || glx_display->have_vblank_counter;
COGL_NOTE (WINSYS, "Setting %s context", COGL_NOTE (WINSYS, "Setting %s context",
glx_display->is_direct ? "direct" : "indirect"); glx_renderer->is_direct ? "direct" : "indirect");
/* XXX: GLX doesn't let us make a context current without a window /* XXX: GLX doesn't let us make a context current without a window
* so we create a dummy window that we can use while no CoglOnscreen * so we create a dummy window that we can use while no CoglOnscreen
@@ -1516,8 +1471,7 @@ _cogl_winsys_onscreen_init (CoglOnscreen *onscreen,
} }
#ifdef GLX_INTEL_swap_event #ifdef GLX_INTEL_swap_event
if (_cogl_winsys_has_feature (COGL_WINSYS_FEATURE_SYNC_AND_COMPLETE_EVENT) && if (_cogl_winsys_has_feature (COGL_WINSYS_FEATURE_SYNC_AND_COMPLETE_EVENT))
!_cogl_has_private_feature (context, COGL_PRIVATE_FEATURE_THREADED_SWAP_WAIT))
{ {
GLXDrawable drawable = GLXDrawable drawable =
glx_onscreen->glxwin ? glx_onscreen->glxwin : xlib_onscreen->xwin; glx_onscreen->glxwin ? glx_onscreen->glxwin : xlib_onscreen->xwin;
@@ -1560,31 +1514,6 @@ _cogl_winsys_onscreen_deinit (CoglOnscreen *onscreen)
xlib_onscreen->output = NULL; xlib_onscreen->output = NULL;
} }
if (glx_onscreen->swap_wait_thread)
{
g_mutex_lock (&glx_onscreen->swap_wait_mutex);
glx_onscreen->closing_down = TRUE;
g_cond_signal (&glx_onscreen->swap_wait_cond);
g_mutex_unlock (&glx_onscreen->swap_wait_mutex);
g_thread_join (glx_onscreen->swap_wait_thread);
glx_onscreen->swap_wait_thread = NULL;
g_cond_clear (&glx_onscreen->swap_wait_cond);
g_mutex_clear (&glx_onscreen->swap_wait_mutex);
g_queue_free (glx_onscreen->swap_wait_queue);
glx_onscreen->swap_wait_queue = NULL;
_cogl_poll_renderer_remove_fd (context->display->renderer,
glx_onscreen->swap_wait_pipe[0]);
close (glx_onscreen->swap_wait_pipe[0]);
close (glx_onscreen->swap_wait_pipe[1]);
glx_renderer->glXDestroyContext (xlib_renderer->xdpy,
glx_onscreen->swap_wait_context);
}
_cogl_xlib_renderer_trap_errors (context->display->renderer, &old_state); _cogl_xlib_renderer_trap_errors (context->display->renderer, &old_state);
drawable = drawable =
@@ -1726,13 +1655,12 @@ _cogl_winsys_wait_for_vblank (CoglOnscreen *onscreen)
CoglContext *ctx = framebuffer->context; CoglContext *ctx = framebuffer->context;
CoglGLXRenderer *glx_renderer; CoglGLXRenderer *glx_renderer;
CoglXlibRenderer *xlib_renderer; CoglXlibRenderer *xlib_renderer;
CoglGLXDisplay *glx_display;
glx_renderer = ctx->display->renderer->winsys; glx_renderer = ctx->display->renderer->winsys;
xlib_renderer = _cogl_xlib_renderer_get_data (ctx->display->renderer); xlib_renderer = _cogl_xlib_renderer_get_data (ctx->display->renderer);
glx_display = ctx->display->winsys;
if (glx_display->can_vblank_wait) if (glx_renderer->glXWaitForMsc ||
glx_renderer->glXGetVideoSync)
{ {
CoglFrameInfo *info = g_queue_peek_tail (&onscreen->pending_frame_infos); CoglFrameInfo *info = g_queue_peek_tail (&onscreen->pending_frame_infos);
@@ -1754,13 +1682,16 @@ _cogl_winsys_wait_for_vblank (CoglOnscreen *onscreen)
else else
{ {
uint32_t current_count; uint32_t current_count;
struct timespec ts;
glx_renderer->glXGetVideoSync (&current_count); glx_renderer->glXGetVideoSync (&current_count);
glx_renderer->glXWaitVideoSync (2, glx_renderer->glXWaitVideoSync (2,
(current_count + 1) % 2, (current_count + 1) % 2,
&current_count); &current_count);
info->presentation_time = get_monotonic_time_ns (); clock_gettime (CLOCK_MONOTONIC, &ts);
info->presentation_time =
ts.tv_sec * G_GINT64_CONSTANT (1000000000) + ts.tv_nsec;
} }
} }
} }
@@ -1818,199 +1749,6 @@ set_frame_info_output (CoglOnscreen *onscreen,
} }
} }
static gpointer
threaded_swap_wait (gpointer data)
{
CoglOnscreen *onscreen = data;
CoglOnscreenGLX *glx_onscreen = onscreen->winsys;
CoglFramebuffer *framebuffer = COGL_FRAMEBUFFER (onscreen);
CoglContext *context = framebuffer->context;
CoglDisplay *display = context->display;
CoglXlibRenderer *xlib_renderer = _cogl_xlib_renderer_get_data (display->renderer);
CoglGLXDisplay *glx_display = display->winsys;
CoglGLXRenderer *glx_renderer = display->renderer->winsys;
GLXDrawable dummy_drawable;
if (glx_display->dummy_glxwin)
dummy_drawable = glx_display->dummy_glxwin;
else
dummy_drawable = glx_display->dummy_xwin;
glx_renderer->glXMakeContextCurrent (xlib_renderer->xdpy,
dummy_drawable,
dummy_drawable,
glx_onscreen->swap_wait_context);
g_mutex_lock (&glx_onscreen->swap_wait_mutex);
while (TRUE)
{
gpointer queue_element;
uint32_t vblank_counter;
while (!glx_onscreen->closing_down && glx_onscreen->swap_wait_queue->length == 0)
g_cond_wait (&glx_onscreen->swap_wait_cond, &glx_onscreen->swap_wait_mutex);
if (glx_onscreen->closing_down)
break;
queue_element = g_queue_pop_tail (glx_onscreen->swap_wait_queue);
vblank_counter = GPOINTER_TO_UINT(queue_element);
g_mutex_unlock (&glx_onscreen->swap_wait_mutex);
glx_renderer->glXWaitVideoSync (2,
(vblank_counter + 1) % 2,
&vblank_counter);
g_mutex_lock (&glx_onscreen->swap_wait_mutex);
if (!glx_onscreen->closing_down)
{
int bytes_written = 0;
union {
char bytes[8];
int64_t presentation_time;
} u;
u.presentation_time = get_monotonic_time_ns ();
while (bytes_written < 8)
{
int res = write (glx_onscreen->swap_wait_pipe[1], u.bytes + bytes_written, 8 - bytes_written);
if (res == -1)
{
if (errno != EINTR)
g_error ("Error writing to swap notification pipe: %s\n",
g_strerror (errno));
}
else
{
bytes_written += res;
}
}
}
}
g_mutex_unlock (&glx_onscreen->swap_wait_mutex);
glx_renderer->glXMakeContextCurrent (xlib_renderer->xdpy,
None,
None,
NULL);
return NULL;
}
static int64_t
threaded_swap_wait_pipe_prepare (void *user_data)
{
return -1;
}
static void
threaded_swap_wait_pipe_dispatch (void *user_data, int revents)
{
CoglOnscreen *onscreen = user_data;
CoglOnscreenGLX *glx_onscreen = onscreen->winsys;
CoglFrameInfo *info;
if ((revents & COGL_POLL_FD_EVENT_IN))
{
int bytes_read = 0;
union {
char bytes[8];
int64_t presentation_time;
} u;
while (bytes_read < 8)
{
int res = read (glx_onscreen->swap_wait_pipe[0], u.bytes + bytes_read, 8 - bytes_read);
if (res == -1)
{
if (errno != EINTR)
g_error ("Error reading from swap notification pipe: %s\n",
g_strerror (errno));
}
else
{
bytes_read += res;
}
}
set_sync_pending (onscreen);
set_complete_pending (onscreen);
info = g_queue_peek_head (&onscreen->pending_frame_infos);
info->presentation_time = u.presentation_time;
}
}
static void
start_threaded_swap_wait (CoglOnscreen *onscreen,
uint32_t vblank_counter)
{
CoglOnscreenGLX *glx_onscreen = onscreen->winsys;
CoglFramebuffer *framebuffer = COGL_FRAMEBUFFER (onscreen);
CoglContext *context = framebuffer->context;
if (glx_onscreen->swap_wait_thread == NULL)
{
CoglDisplay *display = context->display;
CoglGLXRenderer *glx_renderer = display->renderer->winsys;
CoglGLXDisplay *glx_display = display->winsys;
CoglOnscreenXlib *xlib_onscreen = onscreen->winsys;
CoglXlibRenderer *xlib_renderer =
_cogl_xlib_renderer_get_data (display->renderer);
GLXDrawable drawable =
glx_onscreen->glxwin ? glx_onscreen->glxwin : xlib_onscreen->xwin;
int i;
ensure_ust_type (display->renderer, drawable);
if ((pipe (glx_onscreen->swap_wait_pipe) == -1))
g_error ("Couldn't create pipe for swap notification: %s\n",
g_strerror (errno));
for (i = 0; i < 2; i++)
{
if (fcntl(glx_onscreen->swap_wait_pipe[i], F_SETFD,
fcntl(glx_onscreen->swap_wait_pipe[i], F_GETFD, 0) | FD_CLOEXEC) == -1)
g_error ("Couldn't set swap notification pipe CLOEXEC: %s\n",
g_strerror (errno));
}
_cogl_poll_renderer_add_fd (display->renderer,
glx_onscreen->swap_wait_pipe[0],
COGL_POLL_FD_EVENT_IN,
threaded_swap_wait_pipe_prepare,
threaded_swap_wait_pipe_dispatch,
onscreen);
glx_onscreen->swap_wait_queue = g_queue_new ();
g_mutex_init (&glx_onscreen->swap_wait_mutex);
g_cond_init (&glx_onscreen->swap_wait_cond);
glx_onscreen->swap_wait_context =
glx_renderer->glXCreateNewContext (xlib_renderer->xdpy,
glx_display->fbconfig,
GLX_RGBA_TYPE,
glx_display->glx_context,
True);
glx_onscreen->swap_wait_thread = g_thread_new ("cogl_glx_swap_wait",
threaded_swap_wait,
onscreen);
}
g_mutex_lock (&glx_onscreen->swap_wait_mutex);
g_queue_push_head (glx_onscreen->swap_wait_queue, GUINT_TO_POINTER(vblank_counter));
g_cond_signal (&glx_onscreen->swap_wait_cond);
g_mutex_unlock (&glx_onscreen->swap_wait_mutex);
}
static void static void
_cogl_winsys_onscreen_swap_region (CoglOnscreen *onscreen, _cogl_winsys_onscreen_swap_region (CoglOnscreen *onscreen,
const int *user_rectangles, const int *user_rectangles,
@@ -2021,7 +1759,6 @@ _cogl_winsys_onscreen_swap_region (CoglOnscreen *onscreen,
CoglXlibRenderer *xlib_renderer = CoglXlibRenderer *xlib_renderer =
_cogl_xlib_renderer_get_data (context->display->renderer); _cogl_xlib_renderer_get_data (context->display->renderer);
CoglGLXRenderer *glx_renderer = context->display->renderer->winsys; CoglGLXRenderer *glx_renderer = context->display->renderer->winsys;
CoglGLXDisplay *glx_display = context->display->winsys;
CoglOnscreenXlib *xlib_onscreen = onscreen->winsys; CoglOnscreenXlib *xlib_onscreen = onscreen->winsys;
CoglOnscreenGLX *glx_onscreen = onscreen->winsys; CoglOnscreenGLX *glx_onscreen = onscreen->winsys;
GLXDrawable drawable = GLXDrawable drawable =
@@ -2078,8 +1815,9 @@ _cogl_winsys_onscreen_swap_region (CoglOnscreen *onscreen,
if (framebuffer->config.swap_throttled) if (framebuffer->config.swap_throttled)
{ {
have_counter = glx_display->have_vblank_counter; have_counter =
can_wait = glx_display->can_vblank_wait; _cogl_winsys_has_feature (COGL_WINSYS_FEATURE_VBLANK_COUNTER);
can_wait = _cogl_winsys_has_feature (COGL_WINSYS_FEATURE_VBLANK_WAIT);
} }
else else
{ {
@@ -2236,7 +1974,6 @@ _cogl_winsys_onscreen_swap_buffers_with_damage (CoglOnscreen *onscreen,
CoglXlibRenderer *xlib_renderer = CoglXlibRenderer *xlib_renderer =
_cogl_xlib_renderer_get_data (context->display->renderer); _cogl_xlib_renderer_get_data (context->display->renderer);
CoglGLXRenderer *glx_renderer = context->display->renderer->winsys; CoglGLXRenderer *glx_renderer = context->display->renderer->winsys;
CoglGLXDisplay *glx_display = context->display->winsys;
CoglOnscreenXlib *xlib_onscreen = onscreen->winsys; CoglOnscreenXlib *xlib_onscreen = onscreen->winsys;
CoglOnscreenGLX *glx_onscreen = onscreen->winsys; CoglOnscreenGLX *glx_onscreen = onscreen->winsys;
CoglBool have_counter; CoglBool have_counter;
@@ -2254,38 +1991,21 @@ _cogl_winsys_onscreen_swap_buffers_with_damage (CoglOnscreen *onscreen,
if (framebuffer->config.swap_throttled) if (framebuffer->config.swap_throttled)
{ {
have_counter = glx_display->have_vblank_counter; uint32_t end_frame_vsync_counter = 0;
if (glx_renderer->glXSwapInterval) have_counter =
_cogl_winsys_has_feature (COGL_WINSYS_FEATURE_VBLANK_COUNTER);
/* If the swap_region API is also being used then we need to track
* the vsync counter for each swap request so we can manually
* throttle swap_region requests. */
if (have_counter)
end_frame_vsync_counter = _cogl_winsys_get_vsync_counter (context);
if (!glx_renderer->glXSwapInterval)
{ {
if (_cogl_has_private_feature (context, COGL_PRIVATE_FEATURE_THREADED_SWAP_WAIT)) CoglBool can_wait =
{ _cogl_winsys_has_feature (COGL_WINSYS_FEATURE_VBLANK_WAIT);
/* If we didn't wait for the GPU here, then it's easy to get the case
* where there is a VBlank between the point where we get the vsync counter
* and the point where the GPU is ready to actually perform the glXSwapBuffers(),
* and the swap wait terminates at the first VBlank rather than the one
* where the swap buffers happens. Calling glFinish() here makes this a
* rare race since the GPU is already ready to swap when we call glXSwapBuffers().
* The glFinish() also prevents any serious damage if the rare race happens,
* since it will wait for the preceding glXSwapBuffers() and prevent us from
* getting premanently ahead. (For NVIDIA drivers, glFinish() after glXSwapBuffers()
* waits for the buffer swap to happen.)
*/
_cogl_winsys_wait_for_gpu (onscreen);
start_threaded_swap_wait (onscreen, _cogl_winsys_get_vsync_counter (context));
}
}
else
{
CoglBool can_wait = have_counter || glx_display->can_vblank_wait;
uint32_t end_frame_vsync_counter = 0;
/* If the swap_region API is also being used then we need to track
* the vsync counter for each swap request so we can manually
* throttle swap_region requests. */
if (have_counter)
end_frame_vsync_counter = _cogl_winsys_get_vsync_counter (context);
/* If we are going to wait for VBLANK manually, we not only /* If we are going to wait for VBLANK manually, we not only
* need to flush out pending drawing to the GPU before we * need to flush out pending drawing to the GPU before we

View File

@@ -83,16 +83,6 @@ AC_CONFIG_HEADERS(cogl-config.h)
AC_CONFIG_HEADERS(cogl-mutter-config.h) AC_CONFIG_HEADERS(cogl-mutter-config.h)
AC_GNU_SOURCE AC_GNU_SOURCE
dnl ================================================================
dnl Check that we are configured by mutter
dnl ================================================================
AC_ARG_VAR([MUTTER_VERSION])
AC_ARG_VAR([LIBMUTTER_API_VERSION])
AS_IF([test "x$MUTTER_VERSION" = "x"],
[AC_MSG_ERROR([Clutter can only be configured by mutter])],)
dnl ================================================================ dnl ================================================================
dnl Required versions for dependencies dnl Required versions for dependencies
dnl ================================================================ dnl ================================================================
@@ -955,16 +945,16 @@ AC_OUTPUT(
Makefile Makefile
test-fixtures/Makefile test-fixtures/Makefile
cogl/Makefile cogl/Makefile
cogl/mutter-cogl-$LIBMUTTER_API_VERSION.pc:cogl/mutter-cogl.pc.in cogl/mutter-cogl-1.0.pc
cogl/cogl-defines.h cogl/cogl-defines.h
cogl/cogl-gl-header.h cogl/cogl-gl-header.h
cogl/cogl-egl-defines.h cogl/cogl-egl-defines.h
cogl-pango/Makefile cogl-pango/Makefile
cogl-pango/mutter-cogl-pango-$LIBMUTTER_API_VERSION.pc:cogl-pango/mutter-cogl-pango.pc.in cogl-pango/mutter-cogl-pango-1.0.pc
cogl-path/Makefile cogl-path/Makefile
cogl-path/mutter-cogl-path-$LIBMUTTER_API_VERSION.pc:cogl-path/mutter-cogl-path.pc.in cogl-path/mutter-cogl-path-1.0.pc
cogl-gles2/Makefile cogl-gles2/Makefile
cogl-gles2/mutter-cogl-gles2-$LIBMUTTER_API_VERSION.pc:cogl-gles2/mutter-cogl-gles2.pc.in cogl-gles2/mutter-cogl-gles2-1.0.pc
tests/Makefile tests/Makefile
tests/config.env tests/config.env
tests/conform/Makefile tests/conform/Makefile

View File

@@ -131,10 +131,10 @@ AM_CPPFLAGS += \
test_conformance_CFLAGS = -g3 -O0 $(COGL_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS) -Wno-error=maybe-uninitialized -Wno-error=nested-externs -Wno-error=missing-prototypes test_conformance_CFLAGS = -g3 -O0 $(COGL_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS) -Wno-error=maybe-uninitialized -Wno-error=nested-externs -Wno-error=missing-prototypes
test_conformance_LDADD = \ test_conformance_LDADD = \
$(COGL_DEP_LIBS) \ $(COGL_DEP_LIBS) \
$(top_builddir)/cogl/libmutter-cogl-$(LIBMUTTER_API_VERSION).la \ $(top_builddir)/cogl/libmutter-cogl.la \
$(LIBM) $(LIBM)
if BUILD_COGL_PATH if BUILD_COGL_PATH
test_conformance_LDADD += $(top_builddir)/cogl-path/libmutter-cogl-path-$(LIBMUTTER_API_VERSION).la test_conformance_LDADD += $(top_builddir)/cogl-path/libmutter-cogl-path.la
endif endif
test_conformance_LDFLAGS = -export-dynamic test_conformance_LDFLAGS = -export-dynamic

View File

@@ -2,7 +2,6 @@ NULL =
AM_CPPFLAGS = \ AM_CPPFLAGS = \
-I$(top_srcdir) \ -I$(top_srcdir) \
-I$(top_builddir)/cogl \
-DCOGL_DISABLE_DEPRECATED -DCOGL_DISABLE_DEPRECATED
test_conformance_CPPFLAGS = \ test_conformance_CPPFLAGS = \
@@ -17,7 +16,7 @@ AM_CFLAGS = $(COGL_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS)
common_ldadd = \ common_ldadd = \
$(COGL_DEP_LIBS) \ $(COGL_DEP_LIBS) \
$(top_builddir)/cogl/libmutter-cogl-$(LIBMUTTER_API_VERSION).la \ $(top_builddir)/cogl/libmutter-cogl.la \
$(LIBM) $(LIBM)
test_journal_SOURCES = test-journal.c test_journal_SOURCES = test-journal.c

View File

@@ -13,7 +13,7 @@ wrappers: stamp-test-unit
@true @true
stamp-test-unit: Makefile test-unit$(EXEEXT) stamp-test-unit: Makefile test-unit$(EXEEXT)
@mkdir -p wrappers @mkdir -p wrappers
. $(top_builddir)/cogl/libmutter-cogl-$(LIBMUTTER_API_VERSION).la ; \ . $(top_builddir)/cogl/libmutter-cogl.la ; \
$(NM) $(top_builddir)/cogl/.libs/"$$dlname"| \ $(NM) $(top_builddir)/cogl/.libs/"$$dlname"| \
grep '[DR] _\?unit_test_'|sed 's/.\+ [DR] _\?//' > unit-tests grep '[DR] _\?unit_test_'|sed 's/.\+ [DR] _\?//' > unit-tests
@chmod +x $(top_srcdir)/tests/test-launcher.sh @chmod +x $(top_srcdir)/tests/test-launcher.sh
@@ -62,7 +62,7 @@ AM_CPPFLAGS += \
test_unit_CFLAGS = -g3 -O0 $(COGL_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS) test_unit_CFLAGS = -g3 -O0 $(COGL_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS)
test_unit_LDADD = \ test_unit_LDADD = \
$(COGL_DEP_LIBS) \ $(COGL_DEP_LIBS) \
$(top_builddir)/cogl/libmutter-cogl-$(LIBMUTTER_API_VERSION).la \ $(top_builddir)/cogl/libmutter-cogl.la \
$(LIBM) $(LIBM)
test_unit_LDFLAGS = -export-dynamic test_unit_LDFLAGS = -export-dynamic

View File

@@ -1,16 +1,14 @@
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], [24]) m4_define([mutter_minor_version], [21])
m4_define([mutter_micro_version], [4]) m4_define([mutter_micro_version], [90])
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])
m4_define([mutter_plugin_api_version], [3]) m4_define([mutter_plugin_api_version], [3])
m4_define([libmutter_api_version], [0])
AC_INIT([mutter], [mutter_version], AC_INIT([mutter], [mutter_version],
[http://bugzilla.gnome.org/enter_bug.cgi?product=mutter]) [http://bugzilla.gnome.org/enter_bug.cgi?product=mutter])
@@ -29,18 +27,11 @@ AC_GNU_SOURCE
MUTTER_MAJOR_VERSION=mutter_major_version MUTTER_MAJOR_VERSION=mutter_major_version
MUTTER_MINOR_VERSION=mutter_minor_version MUTTER_MINOR_VERSION=mutter_minor_version
MUTTER_MICRO_VERSION=mutter_micro_version MUTTER_MICRO_VERSION=mutter_micro_version
MUTTER_VERSION=mutter_version
MUTTER_PLUGIN_API_VERSION=mutter_plugin_api_version MUTTER_PLUGIN_API_VERSION=mutter_plugin_api_version
LIBMUTTER_API_VERSION=libmutter_api_version
AC_SUBST(MUTTER_MAJOR_VERSION) AC_SUBST(MUTTER_MAJOR_VERSION)
AC_SUBST(MUTTER_MINOR_VERSION) AC_SUBST(MUTTER_MINOR_VERSION)
AC_SUBST(MUTTER_MICRO_VERSION) AC_SUBST(MUTTER_MICRO_VERSION)
AC_SUBST(MUTTER_PLUGIN_API_VERSION) AC_SUBST(MUTTER_PLUGIN_API_VERSION)
AC_SUBST(MUTTER_VERSION)
AC_SUBST(LIBMUTTER_API_VERSION)
# Make the mutter versions visible to the cogl and clutter subdirs
export LIBMUTTER_API_VERSION MUTTER_VERSION
MUTTER_PLUGIN_DIR="$libdir/$PACKAGE/plugins" MUTTER_PLUGIN_DIR="$libdir/$PACKAGE/plugins"
AC_SUBST(MUTTER_PLUGIN_DIR) AC_SUBST(MUTTER_PLUGIN_DIR)
@@ -73,7 +64,6 @@ CANBERRA_GTK_VERSION=0.26
LIBWACOM_VERSION=0.13 LIBWACOM_VERSION=0.13
MUTTER_PC_MODULES=" MUTTER_PC_MODULES="
egl
gtk+-3.0 >= 3.19.8 gtk+-3.0 >= 3.19.8
gio-unix-2.0 >= 2.35.1 gio-unix-2.0 >= 2.35.1
pango >= 1.2.0 pango >= 1.2.0
@@ -95,7 +85,6 @@ MUTTER_PC_MODULES="
xrender xrender
x11-xcb x11-xcb
xcb-randr xcb-randr
xcb-res
" "
GLIB_GSETTINGS GLIB_GSETTINGS
@@ -237,6 +226,13 @@ GOBJECT_INTROSPECTION_CHECK([$INTROSPECTION_VERSION])
if test x$found_introspection != xno; then if test x$found_introspection != xno; then
AC_DEFINE(HAVE_INTROSPECTION, 1, [Define if GObject introspection is available]) AC_DEFINE(HAVE_INTROSPECTION, 1, [Define if GObject introspection is available])
MUTTER_PC_MODULES="$MUTTER_PC_MODULES gobject-introspection-1.0" MUTTER_PC_MODULES="$MUTTER_PC_MODULES gobject-introspection-1.0"
# Since we don't make any guarantees about stability and we don't support
# parallel install, there's no real reason to change directories, filenames,
# etc. as we change the Mutter tarball version. Note that this must match
# api_version in src/Makefile.am
META_GIR=Meta_3_0_gir
# META_GIR=[Meta_]mutter_major_version[_]mutter_minor_version[_gir]
AC_SUBST(META_GIR)
fi fi
AC_SUBST(XWAYLAND_PATH) AC_SUBST(XWAYLAND_PATH)
@@ -259,15 +255,6 @@ AS_IF([test "$have_native_backend" = "yes"], [
]) ])
AM_CONDITIONAL([HAVE_NATIVE_BACKEND],[test "$have_native_backend" = "yes"]) AM_CONDITIONAL([HAVE_NATIVE_BACKEND],[test "$have_native_backend" = "yes"])
AC_ARG_ENABLE(egl-device,
AS_HELP_STRING([--enable-egl-device], [enable support for EGLDevice on top of KMS]),
enable_egl_device=yes,
enable_egl_device=no
)
AS_IF([test "$enable_egl_device" = "yes"], [
AC_DEFINE([HAVE_EGL_DEVICE],[1], [Defined if EGLDevice support is enabled])
])
MUTTER_WAYLAND_MODULES="wayland-server >= 1.6.90" MUTTER_WAYLAND_MODULES="wayland-server >= 1.6.90"
AC_ARG_ENABLE(wayland, AC_ARG_ENABLE(wayland,
@@ -285,7 +272,7 @@ AS_IF([test "$have_wayland" = "yes"], [
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.7], PKG_CHECK_MODULES(WAYLAND_PROTOCOLS, [wayland-protocols >= 1.6],
[ac_wayland_protocols_pkgdatadir=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols`]) [ac_wayland_protocols_pkgdatadir=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols`])
AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, $ac_wayland_protocols_pkgdatadir) AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, $ac_wayland_protocols_pkgdatadir)
]) ])
@@ -389,8 +376,6 @@ AC_CHECK_DECL([GL_EXT_x11_sync_object],
[AC_MSG_ERROR([GL_EXT_x11_sync_object definition not found, please update your GL headers])], [AC_MSG_ERROR([GL_EXT_x11_sync_object definition not found, please update your GL headers])],
[#include <GL/glx.h>]) [#include <GL/glx.h>])
AC_PATH_PROG([CVT],[cvt],[])
#### Warnings (last since -Werror can disturb other tests) #### Warnings (last since -Werror can disturb other tests)
# Stay command-line compatible with the gnome-common configure option. Here # Stay command-line compatible with the gnome-common configure option. Here
@@ -463,7 +448,7 @@ data/Makefile
doc/Makefile doc/Makefile
doc/man/Makefile doc/man/Makefile
src/Makefile src/Makefile
src/libmutter-$LIBMUTTER_API_VERSION.pc:src/libmutter.pc.in src/libmutter.pc
src/compositor/plugins/Makefile src/compositor/plugins/Makefile
src/meta/meta-version.h src/meta/meta-version.h
po/Makefile.in po/Makefile.in
@@ -471,16 +456,6 @@ po/Makefile.in
AC_OUTPUT AC_OUTPUT
# Check that cogl and clutter have their .pc files regenerated with the correct version
COGL_PC_VERSION=$(grep Version: cogl/cogl/mutter-cogl-$LIBMUTTER_API_VERSION.pc|awk '{ print $2; }')
AS_IF([test "x$COGL_PC_VERSION" != "x$MUTTER_VERSION"],
[AC_MSG_ERROR([mutter-cogl pkg-config file not updated, rerun ./configure])])
CLUTTER_PC_VERSION=$(grep Version: clutter/clutter/mutter-clutter-$LIBMUTTER_API_VERSION.pc|awk '{ print $2; }')
AS_IF([test "x$CLUTTER_PC_VERSION" != "x$MUTTER_VERSION"],
[AC_MSG_ERROR([mutter-clutter pkg-config file not updated, rerun ./configure])])
if test x$enable_verbose_mode = xno; then if test x$enable_verbose_mode = xno; then
echo "*** WARNING WARNING WARNING WARNING WARNING" echo "*** WARNING WARNING WARNING WARNING WARNING"
echo "*** Building without verbose mode" echo "*** Building without verbose mode"
@@ -505,7 +480,6 @@ mutter-$VERSION
Session management: ${found_sm} Session management: ${found_sm}
Wayland: ${have_wayland} Wayland: ${have_wayland}
Native (KMS) backend: ${have_native_backend} Native (KMS) backend: ${have_native_backend}
EGLDevice: ${enable_egl_device}
" "

View File

@@ -6,11 +6,11 @@
<default>'Super_L'</default> <default>'Super_L'</default>
<summary>Modifier to use for extended window management operations</summary> <summary>Modifier to use for extended window management operations</summary>
<description> <description>
This key will initiate the overlay, which is a combination window This key will initiate the "overlay", which is a combination window
overview and application launching system. The default is intended overview and application launching system. The default is intended
to be the Windows key on PC hardware. to be the "Windows key" on PC hardware.
Its expected that this binding either the default or set to It's expected that this binding either the default or set to
the empty string. the empty string.
</description> </description>
</key> </key>
@@ -40,7 +40,7 @@
<summary>Workspaces are managed dynamically</summary> <summary>Workspaces are managed dynamically</summary>
<description> <description>
Determines whether workspaces are managed dynamically or Determines whether workspaces are managed dynamically or
whether theres a static number of workspaces (determined whether there's a static number of workspaces (determined
by the num-workspaces key in org.gnome.desktop.wm.preferences). by the num-workspaces key in org.gnome.desktop.wm.preferences).
</description> </description>
</key> </key>
@@ -67,7 +67,7 @@
<default>false</default> <default>false</default>
<summary>Delay focus changes until the pointer stops moving</summary> <summary>Delay focus changes until the pointer stops moving</summary>
<description> <description>
If set to true, and the focus mode is either sloppy or mouse If set to true, and the focus mode is either "sloppy" or "mouse"
then the focus will not be changed immediately when entering a then the focus will not be changed immediately when entering a
window, but only after the pointer stops moving. window, but only after the pointer stops moving.
</description> </description>
@@ -78,7 +78,7 @@
<range min="0" max="64"/> <range min="0" max="64"/>
<summary>Draggable border width</summary> <summary>Draggable border width</summary>
<description> <description>
The amount of total draggable borders. If the themes visible The amount of total draggable borders. If the theme's visible
borders are not enough, invisible borders will be added to meet borders are not enough, invisible borders will be added to meet
this value. this value.
</description> </description>

View File

@@ -10,7 +10,7 @@ top_builddir = ..
# These options get passed to xgettext. # These options get passed to xgettext.
XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ \ XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ \
--keyword=C_:1c,2 --keyword=NC_:1c,2 \ --keyword=C_:1c,2 --keyword=NC_:1c,2 \
--keyword=g_dngettext:2,3 --add-comments \ --keyword=g_dngettext:2,3 \
--flag=g_dngettext:2:pass-c-format \ --flag=g_dngettext:2:pass-c-format \
--flag=g_strdup_printf:1:c-format \ --flag=g_strdup_printf:1:c-format \
--flag=g_string_printf:2:c-format \ --flag=g_string_printf:2:c-format \

View File

@@ -72,7 +72,6 @@ clutter/clutter/deprecated/clutter-shader.c
clutter/clutter/deprecated/clutter-state.c clutter/clutter/deprecated/clutter-state.c
clutter/clutter/deprecated/clutter-table-layout.c clutter/clutter/deprecated/clutter-table-layout.c
clutter/clutter/deprecated/clutter-texture.c clutter/clutter/deprecated/clutter-texture.c
clutter/clutter/evdev/clutter-input-device-evdev.c
clutter/clutter/evdev/clutter-virtual-input-device-evdev.c clutter/clutter/evdev/clutter-virtual-input-device-evdev.c
clutter/clutter/wayland/clutter-wayland-surface.c clutter/clutter/wayland/clutter-wayland-surface.c
clutter/clutter/x11/clutter-backend-x11.c clutter/clutter/x11/clutter-backend-x11.c

2471
po/be.po

File diff suppressed because it is too large Load Diff

838
po/bg.po
View File

@@ -1,10 +1,9 @@
# Bulgarian translation of mutter po-file. # Bulgarian translation of mutter po-file.
# Copyright (C) 2002, 2004, 2006, 2007, 2008 Free Software Foundation, Inc. # Copyright (C) 2002, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
# Copyright (C) 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. # Copyright (C) 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
# Copyright (C) 2014, 2015, 2016 Free Software Foundation, Inc. # Copyright (C) 2014, 2015 Free Software Foundation, Inc.
# Alexander Shopov <ash@kambanaria.org>, 2002, 2006, 2007, 2009, 2010. # Alexander Shopov <ash@kambanaria.org>, 2002, 2006, 2007, 2009, 2010.
# Alexander Shopov <ash@kambanaria.org>, 2011, 2012, 2013, 2014, 2015. # Alexander Shopov <ash@kambanaria.org>, 2011, 2012, 2013, 2014, 2015.
# Alexander Shopov <ash@kambanaria.org>, 2016.
# Vladimir Petkov <kaladan@gmail.com>, 2004. # Vladimir Petkov <kaladan@gmail.com>, 2004.
# Rostislav Raykov <zbrox@i-space.org>, 2004. # Rostislav Raykov <zbrox@i-space.org>, 2004.
# Yavor Doganov <yavor@gnu.org>, 2008. # Yavor Doganov <yavor@gnu.org>, 2008.
@@ -12,10 +11,9 @@
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: \n"
"product=mutter&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2015-03-10 09:51+0200\n"
"POT-Creation-Date: 2016-09-08 06:33+0300\n" "PO-Revision-Date: 2015-03-10 09:51+0200\n"
"PO-Revision-Date: 2016-09-05 16:27+0300\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n" "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n" "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"Language: bg\n" "Language: bg\n"
@@ -24,44 +22,471 @@ msgstr ""
"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"
#: ../src/backends/meta-input-settings.c:1707 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Switch monitor" msgid "Navigation"
msgstr "Смяна на екрана" msgstr "Навигация"
#: ../src/backends/meta-input-settings.c:1709 #: ../data/50-mutter-navigation.xml.in.h:2
msgid "Show on-screen help" msgid "Move window to workspace 1"
msgstr "Показване на помощта на екрана" msgstr "Преместване на прозореца на работен плот 1"
#: ../src/backends/meta-monitor-manager.c:514 #: ../data/50-mutter-navigation.xml.in.h:3
msgid "Move window to workspace 2"
msgstr "Преместване на прозореца на работен плот 2"
#: ../data/50-mutter-navigation.xml.in.h:4
msgid "Move window to workspace 3"
msgstr "Преместване на прозореца на работен плот 3"
#: ../data/50-mutter-navigation.xml.in.h:5
msgid "Move window to workspace 4"
msgstr "Преместване на прозореца на работен плот 4"
#: ../data/50-mutter-navigation.xml.in.h:6
msgid "Move window to last workspace"
msgstr "Преместване на прозореца на последния работен плот"
#: ../data/50-mutter-navigation.xml.in.h:7
msgid "Move window one workspace to the left"
msgstr "Преместване на прозореца един работен плот наляво"
#: ../data/50-mutter-navigation.xml.in.h:8
msgid "Move window one workspace to the right"
msgstr "Преместване на прозореца един работен плот надясно"
#: ../data/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace up"
msgstr "Преместване на прозореца един работен плот нагоре"
#: ../data/50-mutter-navigation.xml.in.h:10
msgid "Move window one workspace down"
msgstr "Преместване на прозореца един работен плот надолу"
#: ../data/50-mutter-navigation.xml.in.h:11
msgid "Move window one monitor to the left"
msgstr "Преместване на прозореца един екран наляво"
#: ../data/50-mutter-navigation.xml.in.h:12
msgid "Move window one monitor to the right"
msgstr "Преместване на прозореца един екран надясно"
#: ../data/50-mutter-navigation.xml.in.h:13
msgid "Move window one monitor up"
msgstr "Преместване на прозореца един екран нагоре"
#: ../data/50-mutter-navigation.xml.in.h:14
msgid "Move window one monitor down"
msgstr "Преместване на прозореца един екран надолу"
#: ../data/50-mutter-navigation.xml.in.h:15
msgid "Switch applications"
msgstr "Преместване на фокуса между програмите"
#: ../data/50-mutter-navigation.xml.in.h:16
msgid "Switch to previous application"
msgstr "Преместване на фокуса към предишната програма"
#: ../data/50-mutter-navigation.xml.in.h:17
msgid "Switch windows"
msgstr "Преместване на фокуса между прозорците"
#: ../data/50-mutter-navigation.xml.in.h:18
msgid "Switch to previous window"
msgstr "Преместване на фокуса към предишния прозорец"
#: ../data/50-mutter-navigation.xml.in.h:19
msgid "Switch windows of an application"
msgstr "Преместване на фокуса между прозорците на една програма"
#: ../data/50-mutter-navigation.xml.in.h:20
msgid "Switch to previous window of an application"
msgstr "Преместване на фокуса към предишния прозорец на програма"
#: ../data/50-mutter-navigation.xml.in.h:21
msgid "Switch system controls"
msgstr "Преместване на фокуса между служебните обекти"
#: ../data/50-mutter-navigation.xml.in.h:22
msgid "Switch to previous system control"
msgstr "Преместване на фокуса към предишния служебен обект"
#: ../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 "Скриване на всички обикновени прозорци"
#: ../data/50-mutter-navigation.xml.in.h:30
msgid "Switch to workspace 1"
msgstr "Превключване към работен плот 1"
#: ../data/50-mutter-navigation.xml.in.h:31
msgid "Switch to workspace 2"
msgstr "Превключване към работен плот 2"
#: ../data/50-mutter-navigation.xml.in.h:32
msgid "Switch to workspace 3"
msgstr "Превключване към работен плот 3"
#: ../data/50-mutter-navigation.xml.in.h:33
msgid "Switch to workspace 4"
msgstr "Превключване към работен плот 4"
#: ../data/50-mutter-navigation.xml.in.h:34
msgid "Switch to last workspace"
msgstr "Превключване към последния работен плот"
#: ../data/50-mutter-navigation.xml.in.h:35
msgid "Move to workspace left"
msgstr "Преместване на левия работен плот"
#: ../data/50-mutter-navigation.xml.in.h:36
msgid "Move to workspace right"
msgstr "Преместване на десния работен плот"
#: ../data/50-mutter-navigation.xml.in.h:37
msgid "Move to workspace above"
msgstr "Преместване на горния работен плот"
#: ../data/50-mutter-navigation.xml.in.h:38
msgid "Move to workspace below"
msgstr "Преместване на долния работен плот"
#: ../data/50-mutter-system.xml.in.h:1
msgid "System"
msgstr "Система"
#: ../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 "Преглед на дейностите"
#: ../data/50-mutter-windows.xml.in.h:1
msgid "Windows"
msgstr "Прозорци"
#: ../data/50-mutter-windows.xml.in.h:2
msgid "Activate the window menu"
msgstr "Задействане на менюто за прозорците"
#: ../data/50-mutter-windows.xml.in.h:3
msgid "Toggle fullscreen mode"
msgstr "Превключване на режима за цял екран"
#: ../data/50-mutter-windows.xml.in.h:4
msgid "Toggle maximization state"
msgstr "Превключване на състоянието на максимизиране"
#: ../data/50-mutter-windows.xml.in.h:5
msgid "Maximize window"
msgstr "Максимизиране на прозорец"
#: ../data/50-mutter-windows.xml.in.h:6
msgid "Restore window"
msgstr "Възстановяване на прозорец"
#: ../data/50-mutter-windows.xml.in.h:7
msgid "Toggle shaded state"
msgstr "Превключване на състоянието на навиване"
#: ../data/50-mutter-windows.xml.in.h:8
msgid "Close window"
msgstr "Затваряне на прозореца"
#: ../data/50-mutter-windows.xml.in.h:9
msgid "Hide window"
msgstr "Скриване на прозорец"
#: ../data/50-mutter-windows.xml.in.h:10
msgid "Move window"
msgstr "Преместване на прозорец"
#: ../data/50-mutter-windows.xml.in.h:11
msgid "Resize window"
msgstr "Оразмеряване на прозорец"
#: ../data/50-mutter-windows.xml.in.h:12
msgid "Toggle window on all workspaces or one"
msgstr "Превключване на появата на прозореца на всички работни места"
#: ../data/50-mutter-windows.xml.in.h:13
msgid "Raise window if covered, otherwise lower it"
msgstr "Ако прозорецът е под друг, го издига, иначе го понижава"
#: ../data/50-mutter-windows.xml.in.h:14
msgid "Raise window above other windows"
msgstr "Издигане на прозореца над другите"
#: ../data/50-mutter-windows.xml.in.h:15
msgid "Lower window below other windows"
msgstr "Понижаване на прозореца под другите прозорци"
#: ../data/50-mutter-windows.xml.in.h:16
msgid "Maximize window vertically"
msgstr "Максимизиране на прозореца вертикално"
#: ../data/50-mutter-windows.xml.in.h:17
msgid "Maximize window horizontally"
msgstr "Максимизиране на прозореца хоризонтално"
#: ../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 ""
"Този клавиш стартира наслагването, което е комбинация от прозорец и система "
"за стартиране на програми. Стандартно клавишът е „Windows“ при системите "
"съвместими с PC. Очаква се да е или стандартната стойност или празен низ."
#: ../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 "Динамично управление на работните места"
#: ../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 ""
"Определя дали се ползва динамично управление на работните места или броят им "
"е установено число (зададено чрез ключа „num-workspaces“ в „org.gnome."
"desktop.wm.preferences“)."
#: ../data/org.gnome.mutter.gschema.xml.in.h:9
msgid "Workspaces only on primary"
msgstr "Работни плотове само на основния екран"
#: ../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 ""
"Ако е включено и начинът за фокусиране е „sloppy“ (мързеливо) или "
"„mouse“ (под мишката), тогава фокусът няма да се предава веднага при "
"навлизането в прозорец, а едва след като показалецът спре да се движи."
#: ../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 "Поставяне на новите прозорци в центъра на екрана"
#: ../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 "Превключване към виртуална графична конзола 1"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:2
msgid "Switch to VT 2"
msgstr "Превключване към виртуална графична конзола 2"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:3
msgid "Switch to VT 3"
msgstr "Превключване към виртуална графична конзола 3"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:4
msgid "Switch to VT 4"
msgstr "Превключване към виртуална графична конзола 4"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:5
msgid "Switch to VT 5"
msgstr "Превключване към виртуална графична конзола 5"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:6
msgid "Switch to VT 6"
msgstr "Превключване към виртуална графична конзола 6"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:7
msgid "Switch to VT 7"
msgstr "Превключване към виртуална графична конзола 7"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
msgid "Switch to VT 8"
msgstr "Превключване към виртуална графична конзола 8"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
msgid "Switch to VT 9"
msgstr "Превключване към виртуална графична конзола 9"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
msgid "Switch to VT 10"
msgstr "Превключване към виртуална графична конзола 10"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
msgid "Switch to VT 11"
msgstr "Превключване към виртуална графична конзола 11"
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
msgid "Switch to VT 12"
msgstr "Превключване към виртуална графична конзола 12"
#: ../src/backends/meta-monitor-manager.c:364
msgid "Built-in display" msgid "Built-in display"
msgstr "Вграден екран" msgstr "Вграден екран"
#: ../src/backends/meta-monitor-manager.c:537 #: ../src/backends/meta-monitor-manager.c:391
msgid "Unknown" msgid "Unknown"
msgstr "Непознат" msgstr "Непознат"
#: ../src/backends/meta-monitor-manager.c:539 #: ../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:547 #: ../src/backends/meta-monitor-manager.c:401
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
#. This probably means that a non-WM compositor like xcompmgr is running; #. This probably means that a non-WM compositor like xcompmgr is running;
#. * we have no way to get it to exit #. * we have no way to get it to exit
#: ../src/compositor/compositor.c:463 #: ../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 "На екран %i от дисплея „%s“ вече има мениджър за наслагване." msgstr "На екран %i от дисплея „%s“ вече има мениджър за наслагване."
#: ../src/core/bell.c:194 #: ../src/core/bell.c:185
msgid "Bell event" msgid "Bell event"
msgstr "Събитие за звънец" msgstr "Събитие за звънец"
@@ -90,48 +515,44 @@ msgstr "Из_чакване"
msgid "_Force Quit" msgid "_Force Quit"
msgstr "_Принудително спиране" msgstr "_Принудително спиране"
#: ../src/core/display.c:590 #: ../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 Window „%s“\n" msgstr "Неуспешно отваряне на дисплея на X Window „%s“\n"
#: ../src/core/main.c:182 #: ../src/core/main.c:176
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Прекъсване на връзката към мениджъра на сесиите" msgstr "Прекъсване на връзката към мениджъра на сесиите"
#: ../src/core/main.c:188 #: ../src/core/main.c:182
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Замяна на текущия мениджър на прозорци" msgstr "Замяна на текущия мениджър на прозорци"
#: ../src/core/main.c:194 #: ../src/core/main.c:188
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Определяне на идентификатор за управлението на сесии" msgstr "Определяне на идентификатор за управлението на сесии"
#: ../src/core/main.c:199 #: ../src/core/main.c:193
msgid "X Display to use" msgid "X Display to use"
msgstr "X дисплеят, който да се използва" msgstr "X дисплеят, който да се използва"
# Ако „запазено“ не се членува, низът се събира на един ред без # Ако „запазено“ не се членува, низът се събира на един ред без
# пренасяне. # пренасяне.
#: ../src/core/main.c:205 #: ../src/core/main.c:199
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Инициализиране на сесия от файл със запазено състояние" msgstr "Инициализиране на сесия от файл със запазено състояние"
#: ../src/core/main.c:211 #: ../src/core/main.c:205
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Извикванията на X да са синхронни" msgstr "Извикванията на X да са синхронни"
#: ../src/core/main.c:218 #: ../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:224 #: ../src/core/main.c:220
msgid "Run as a nested compositor"
msgstr "Изпълнение като вложен сървър за изобразяване"
#: ../src/core/main.c:232
msgid "Run as a full display server, rather than nested" msgid "Run as a full display server, rather than nested"
msgstr "Изпълнение като самостоятелен, а не вложен сървър за изобразяване" msgstr "Изпълнение като самостоятелен, а не вграден сървър за изобразяване"
#: ../src/core/mutter.c:39 #: ../src/core/mutter.c:39
#, c-format #, c-format
@@ -157,12 +578,12 @@ 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 "
@@ -171,20 +592,15 @@ msgstr ""
"Вече има мениджър на прозорци на дисплей „%s“. Пробвайте да го замените с " "Вече има мениджър на прозорци на дисплей „%s“. Пробвайте да го замените с "
"опцията „--replace“." "опцията „--replace“."
#: ../src/core/screen.c:606 #: ../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:120 #: ../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"
#: ../src/wayland/meta-wayland-tablet-pad.c:595
#, c-format
msgid "Mode Switch: Mode %d"
msgstr "Смяна на режима: режим %d"
#: ../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 "
@@ -193,345 +609,7 @@ msgstr ""
"Тези прозорци не поддържат операцията по записване на текущото състояние и " "Тези прозорци не поддържат операцията по записване на текущото състояние и "
"ще трябва да се стартират ръчно при следващото ви влизане." "ще трябва да се стартират ръчно при следващото ви влизане."
#: ../src/x11/window-props.c:548 #: ../src/x11/window-props.c:549
#, c-format #, c-format
msgid "%s (on %s)" msgid "%s (on %s)"
msgstr "%s (от %s)" msgstr "%s (от %s)"
#~ msgid "Navigation"
#~ msgstr "Навигация"
#~ msgid "Move window to workspace 1"
#~ msgstr "Преместване на прозореца на работен плот 1"
#~ msgid "Move window to workspace 2"
#~ msgstr "Преместване на прозореца на работен плот 2"
#~ msgid "Move window to workspace 3"
#~ msgstr "Преместване на прозореца на работен плот 3"
#~ msgid "Move window to workspace 4"
#~ msgstr "Преместване на прозореца на работен плот 4"
#~ msgid "Move window to last workspace"
#~ msgstr "Преместване на прозореца на последния работен плот"
#~ msgid "Move window one workspace to the left"
#~ msgstr "Преместване на прозореца един работен плот наляво"
#~ msgid "Move window one workspace to the right"
#~ msgstr "Преместване на прозореца един работен плот надясно"
#~ msgid "Move window one workspace up"
#~ msgstr "Преместване на прозореца един работен плот нагоре"
#~ msgid "Move window one workspace down"
#~ msgstr "Преместване на прозореца един работен плот надолу"
#~ msgid "Move window one monitor to the left"
#~ msgstr "Преместване на прозореца един екран наляво"
#~ msgid "Move window one monitor to the right"
#~ msgstr "Преместване на прозореца един екран надясно"
#~ msgid "Move window one monitor up"
#~ msgstr "Преместване на прозореца един екран нагоре"
#~ msgid "Move window one monitor down"
#~ msgstr "Преместване на прозореца един екран надолу"
#~ msgid "Switch applications"
#~ msgstr "Преместване на фокуса между програмите"
#~ msgid "Switch to previous application"
#~ msgstr "Преместване на фокуса към предишната програма"
#~ msgid "Switch windows"
#~ msgstr "Преместване на фокуса между прозорците"
#~ msgid "Switch to previous window"
#~ msgstr "Преместване на фокуса към предишния прозорец"
#~ msgid "Switch windows of an application"
#~ msgstr "Преместване на фокуса между прозорците на една програма"
#~ msgid "Switch to previous window of an application"
#~ msgstr "Преместване на фокуса към предишния прозорец на програма"
#~ msgid "Switch to previous system control"
#~ msgstr "Преместване на фокуса към предишния служебен обект"
#~ msgid "Switch windows directly"
#~ msgstr "Незабавно преместване на фокуса между прозорците"
#~ msgid "Switch directly to previous window"
#~ msgstr "Незабавно преместване на фокуса към предишния прозорец"
#~ msgid "Switch windows of an app directly"
#~ msgstr "Незабавно преместване на фокуса между прозорците на една програма"
#~ msgid "Switch directly to previous window of an app"
#~ msgstr ""
#~ "Незабавно преместване на фокуса към предишния прозорец на една програма"
#~ msgid "Switch system controls directly"
#~ msgstr "Незабавно преместване на фокуса между служебните обекти"
#~ msgid "Switch directly to previous system control"
#~ msgstr "Незабавно преместване на фокуса към предишния служебен обект"
#~ msgid "Hide all normal windows"
#~ msgstr "Скриване на всички обикновени прозорци"
#~ msgid "Switch to workspace 1"
#~ msgstr "Превключване към работен плот 1"
#~ msgid "Switch to workspace 2"
#~ msgstr "Превключване към работен плот 2"
#~ msgid "Switch to workspace 3"
#~ msgstr "Превключване към работен плот 3"
#~ msgid "Switch to workspace 4"
#~ msgstr "Превключване към работен плот 4"
#~ msgid "Switch to last workspace"
#~ msgstr "Превключване към последния работен плот"
#~ msgid "Move to workspace left"
#~ msgstr "Преместване на левия работен плот"
#~ msgid "Move to workspace right"
#~ msgstr "Преместване на десния работен плот"
#~ msgid "Move to workspace above"
#~ msgstr "Преместване на горния работен плот"
#~ msgid "Move to workspace below"
#~ msgstr "Преместване на долния работен плот"
#~ msgid "System"
#~ msgstr "Система"
#~ msgid "Show the run command prompt"
#~ msgstr "Показване на прозореца за стартиране на команда"
#~ msgid "Show the activities overview"
#~ msgstr "Преглед на дейностите"
#~ msgid "Windows"
#~ msgstr "Прозорци"
#~ msgid "Activate the window menu"
#~ msgstr "Задействане на менюто за прозорците"
#~ msgid "Toggle fullscreen mode"
#~ msgstr "Превключване на режима за цял екран"
#~ msgid "Toggle maximization state"
#~ msgstr "Превключване на състоянието на максимизиране"
#~ msgid "Maximize window"
#~ msgstr "Максимизиране на прозорец"
#~ msgid "Restore window"
#~ msgstr "Възстановяване на прозорец"
#~ msgid "Toggle shaded state"
#~ msgstr "Превключване на състоянието на навиване"
#~ msgid "Close window"
#~ msgstr "Затваряне на прозореца"
#~ msgid "Hide window"
#~ msgstr "Скриване на прозорец"
#~ msgid "Move window"
#~ msgstr "Преместване на прозорец"
#~ msgid "Resize window"
#~ msgstr "Оразмеряване на прозорец"
#~ msgid "Toggle window on all workspaces or one"
#~ msgstr "Превключване на появата на прозореца на всички работни места"
#~ msgid "Raise window if covered, otherwise lower it"
#~ msgstr "Ако прозорецът е под друг, го издига, иначе го понижава"
#~ msgid "Raise window above other windows"
#~ msgstr "Издигане на прозореца над другите"
#~ msgid "Lower window below other windows"
#~ msgstr "Понижаване на прозореца под другите прозорци"
#~ msgid "Maximize window vertically"
#~ msgstr "Максимизиране на прозореца вертикално"
#~ msgid "Maximize window horizontally"
#~ msgstr "Максимизиране на прозореца хоризонтално"
#~ msgid "View split on left"
#~ msgstr "Изглед разделен отляво"
#~ msgid "View split on right"
#~ msgstr "Изглед разделен отдясно"
#~ msgid "Mutter"
#~ msgstr "Mutter"
#~ msgid "Modifier to use for extended window management operations"
#~ msgstr ""
#~ "Модификатор, който да се ползва за допълнителните действия по прозорците"
#~ 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 ""
#~ "Този клавиш стартира наслагването, което е комбинация от прозорец и "
#~ "система за стартиране на програми. Стандартно клавишът е „Windows“ при "
#~ "системите съвместими с PC. Очаква се да е или стандартната стойност или "
#~ "празен низ."
#~ msgid "Attach modal dialogs"
#~ msgstr "Прилепени модални диалогови прозорци"
#~ 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 ""
#~ "Когато е ключът е истина, модалните диалогови прозорци прилепват към "
#~ "заглавната лента на родителския си прозорец и се местят с него, вместо да "
#~ "са отделни и да имат собствена заглавна лента."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr ""
#~ "Включване на прилепването и максимизирането на прозорците по границите на "
#~ "екрана"
#~ 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 ""
#~ "Ако е включено, прозорците ще се максимизират по вертикала и ще заемат "
#~ "половината площ по хоризонтала при поставянето им край вертикалните "
#~ "граници на екрана. При поставянето им край горната граница прозорците ще "
#~ "се максимизират изцяло."
#~ msgid "Workspaces are managed dynamically"
#~ msgstr "Динамично управление на работните места"
#~ 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 ""
#~ "Определя дали се ползва динамично управление на работните места или броят "
#~ "им е установено число (зададено чрез ключа „num-workspaces“ в „org.gnome."
#~ "desktop.wm.preferences“)."
#~ msgid "Workspaces only on primary"
#~ msgstr "Работни плотове само на основния екран"
#~ msgid ""
#~ "Determines whether workspace switching should happen for windows on all "
#~ "monitors or only for windows on the primary monitor."
#~ msgstr ""
#~ "Дали смяната на работни плотове да се извършва на всички екрани или само "
#~ "на основния."
#~ msgid "No tab popup"
#~ msgstr "Без изскачащ прозорец при обхождане"
#~ msgid ""
#~ "Determines whether the use of popup and highlight frame should be "
#~ "disabled for window cycling."
#~ msgstr ""
#~ "Дали отбелязването на рамка и изскачащият прозорец при обхождане на "
#~ "прозорците да се изключат."
#~ msgid "Delay focus changes until the pointer stops moving"
#~ msgstr "Смяната на фокуса да изчака спирането на показалеца"
#~ 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 ""
#~ "Ако е включено и начинът за фокусиране е „sloppy“ (мързеливо) или "
#~ "„mouse“ (под мишката), тогава фокусът няма да се предава веднага при "
#~ "навлизането в прозорец, а едва след като показалецът спре да се движи."
#~ msgid "Draggable border width"
#~ msgstr "Широчина на границата за влачене"
#~ 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 ""
#~ "Общ размер на границите за влачене. Ако видимите граници на темата са по-"
#~ "малки, се добавят невидими граници, за да се достигне тази величина."
#~ msgid "Auto maximize nearly monitor sized windows"
#~ msgstr ""
#~ "Автоматично максимизиране на прозорци с размер близък до този на екрана"
#~ msgid ""
#~ "If enabled, new windows that are initially the size of the monitor "
#~ "automatically get maximized."
#~ msgstr ""
#~ "Ако е включено, новите прозорци, чийто размер е близък на този на екрана, "
#~ "автоматично ще се максимизират."
#~ msgid "Place new windows in the center"
#~ msgstr "Поставяне на новите прозорци в центъра на екрана"
#~ msgid ""
#~ "When true, the new windows will always be put in the center of the active "
#~ "screen of the monitor."
#~ msgstr "Ако е включено, новите прозорци ще се поставят в центъра на екрана."
#~ msgid "Select window from tab popup"
#~ msgstr "Избиране при обхождане чрез изскачащ прозорец"
#~ msgid "Cancel tab popup"
#~ msgstr "Без изскачащ прозорец при обхождане"
#~ msgid "Switch to VT 1"
#~ msgstr "Превключване към виртуална графична конзола 1"
#~ msgid "Switch to VT 2"
#~ msgstr "Превключване към виртуална графична конзола 2"
#~ msgid "Switch to VT 3"
#~ msgstr "Превключване към виртуална графична конзола 3"
#~ msgid "Switch to VT 4"
#~ msgstr "Превключване към виртуална графична конзола 4"
#~ msgid "Switch to VT 5"
#~ msgstr "Превключване към виртуална графична конзола 5"
#~ msgid "Switch to VT 6"
#~ msgstr "Превключване към виртуална графична конзола 6"
#~ msgid "Switch to VT 7"
#~ msgstr "Превключване към виртуална графична конзола 7"
#~ msgid "Switch to VT 8"
#~ msgstr "Превключване към виртуална графична конзола 8"
#~ msgid "Switch to VT 9"
#~ msgstr "Превключване към виртуална графична конзола 9"
#~ msgid "Switch to VT 10"
#~ msgstr "Превключване към виртуална графична конзола 10"
#~ msgid "Switch to VT 11"
#~ msgstr "Превключване към виртуална графична конзола 11"
#~ msgid "Switch to VT 12"
#~ msgstr "Превключване към виртуална графична конзола 12"

391
po/ca.po
View File

@@ -11,277 +11,277 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: metacity 2.24\n" "Project-Id-Version: metacity 2.24\n"
"Report-Msgid-Bugs-To: https://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: 2017-07-07 04:21+0000\n" "POT-Creation-Date: 2016-03-13 01:36+0000\n"
"PO-Revision-Date: 2017-07-10 02:05+0200\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: 8bit\n" "Content-Transfer-Encoding: 8bits\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Poedit 2.0.1\n" "X-Generator: Gtranslator 2.91.6\n"
#: data/50-mutter-navigation.xml:6 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation" msgid "Navigation"
msgstr "Navegació" msgstr "Navegació"
#: data/50-mutter-navigation.xml:9 #: ../data/50-mutter-navigation.xml.in.h:2
msgid "Move window to workspace 1" msgid "Move window to workspace 1"
msgstr "Mou la finestra a l'espai de treball 1" msgstr "Mou la finestra a l'espai de treball 1"
#: data/50-mutter-navigation.xml:12 #: ../data/50-mutter-navigation.xml.in.h:3
msgid "Move window to workspace 2" msgid "Move window to workspace 2"
msgstr "Mou la finestra a l'espai de treball 2" msgstr "Mou la finestra a l'espai de treball 2"
#: data/50-mutter-navigation.xml:15 #: ../data/50-mutter-navigation.xml.in.h:4
msgid "Move window to workspace 3" msgid "Move window to workspace 3"
msgstr "Mou la finestra a l'espai de treball 3" msgstr "Mou la finestra a l'espai de treball 3"
#: data/50-mutter-navigation.xml:18 #: ../data/50-mutter-navigation.xml.in.h:5
msgid "Move window to workspace 4" msgid "Move window to workspace 4"
msgstr "Mou la finestra a l'espai de treball 4" msgstr "Mou la finestra a l'espai de treball 4"
#: data/50-mutter-navigation.xml:21 #: ../data/50-mutter-navigation.xml.in.h:6
msgid "Move window to last workspace" msgid "Move window to last workspace"
msgstr "Mou la finestra a l'últim espai de treball" msgstr "Mou la finestra a l'últim espai de treball"
#: data/50-mutter-navigation.xml:24 #: ../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 "Mou la finestra un espai de treball a l'esquerra" msgstr "Mou la finestra un espai de treball a l'esquerra"
#: data/50-mutter-navigation.xml:27 #: ../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 "Mou la finestra un espai de treball a la dreta" msgstr "Mou la finestra un espai de treball a la dreta"
#: data/50-mutter-navigation.xml:30 #: ../data/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace up" msgid "Move window one workspace up"
msgstr "Mou la finestra un espai de treball amunt" msgstr "Mou la finestra un espai de treball amunt"
#: data/50-mutter-navigation.xml:33 #: ../data/50-mutter-navigation.xml.in.h:10
msgid "Move window one workspace down" msgid "Move window one workspace down"
msgstr "Mou la finestra un espai de treball avall" msgstr "Mou la finestra un espai de treball avall"
#: data/50-mutter-navigation.xml:36 #: ../data/50-mutter-navigation.xml.in.h:11
msgid "Move window one monitor to the left" msgid "Move window one monitor to the left"
msgstr "Mou la finestra un monitor a l'esquerra" msgstr "Mou la finestra un monitor a l'esquerra"
#: data/50-mutter-navigation.xml:39 #: ../data/50-mutter-navigation.xml.in.h:12
msgid "Move window one monitor to the right" msgid "Move window one monitor to the right"
msgstr "Mou la finestra un monitor a la dreta" msgstr "Mou la finestra un monitor a la dreta"
#: data/50-mutter-navigation.xml:42 #: ../data/50-mutter-navigation.xml.in.h:13
msgid "Move window one monitor up" msgid "Move window one monitor up"
msgstr "Mou la finestra un monitor amunt" msgstr "Mou la finestra un monitor amunt"
#: data/50-mutter-navigation.xml:45 #: ../data/50-mutter-navigation.xml.in.h:14
msgid "Move window one monitor down" msgid "Move window one monitor down"
msgstr "Mou la finestra un monitor avall" msgstr "Mou la finestra un monitor avall"
#: data/50-mutter-navigation.xml:49 #: ../data/50-mutter-navigation.xml.in.h:15
msgid "Switch applications" msgid "Switch applications"
msgstr "Canvia d'aplicacions" msgstr "Canvia d'aplicacions"
#: data/50-mutter-navigation.xml:54 #: ../data/50-mutter-navigation.xml.in.h:16
msgid "Switch to previous application" msgid "Switch to previous application"
msgstr "Canvia a l'aplicació anterior" msgstr "Canvia a l'aplicació anterior"
#: data/50-mutter-navigation.xml:58 #: ../data/50-mutter-navigation.xml.in.h:17
msgid "Switch windows" msgid "Switch windows"
msgstr "Canvia de finestres" msgstr "Canvia de finestres"
#: data/50-mutter-navigation.xml:63 #: ../data/50-mutter-navigation.xml.in.h:18
msgid "Switch to previous window" msgid "Switch to previous window"
msgstr "Canvia a la finestra anterior" msgstr "Canvia a la finestra anterior"
#: data/50-mutter-navigation.xml:67 #: ../data/50-mutter-navigation.xml.in.h:19
msgid "Switch windows of an application" msgid "Switch windows of an application"
msgstr "Canvia entre les finestres d'una aplicació" msgstr "Canvia entre les finestres d'una aplicació"
#: data/50-mutter-navigation.xml:72 #: ../data/50-mutter-navigation.xml.in.h:20
msgid "Switch to previous window of an application" msgid "Switch to previous window of an application"
msgstr "Canvia a la finestra anterior d'una aplicació" msgstr "Canvia a la finestra anterior d'una aplicació"
#: data/50-mutter-navigation.xml:76 #: ../data/50-mutter-navigation.xml.in.h:21
msgid "Switch system controls" msgid "Switch system controls"
msgstr "Canvia els controls del sistema" msgstr "Canvia entre els controls del sistema"
#: data/50-mutter-navigation.xml:81 #: ../data/50-mutter-navigation.xml.in.h:22
msgid "Switch to previous system control" msgid "Switch to previous system control"
msgstr "Canvia al control del sistema anterior" msgstr "Canvia al control del sistema anterior"
#: data/50-mutter-navigation.xml:85 #: ../data/50-mutter-navigation.xml.in.h:23
msgid "Switch windows directly" msgid "Switch windows directly"
msgstr "Canvia immediatament entre finestres" msgstr "Canvia immediatament entre finestres"
#: data/50-mutter-navigation.xml:90 #: ../data/50-mutter-navigation.xml.in.h:24
msgid "Switch directly to previous window" msgid "Switch directly to previous window"
msgstr "Canvia immediatament a la finestra anterior" msgstr "Canvia immediatament a la finestra anterior"
#: data/50-mutter-navigation.xml:94 #: ../data/50-mutter-navigation.xml.in.h:25
msgid "Switch windows of an app directly" msgid "Switch windows of an app directly"
msgstr "Canvia immediatament entre les finestres d'una aplicació" msgstr "Canvia immediatament entre les finestres d'una aplicació"
#: data/50-mutter-navigation.xml:99 #: ../data/50-mutter-navigation.xml.in.h:26
msgid "Switch directly to previous window of an app" msgid "Switch directly to previous window of an app"
msgstr "Canvia immediatament a la finestra anterior d'una aplicació" msgstr "Canvia immediatament a la finestra anterior d'una aplicació"
#: data/50-mutter-navigation.xml:103 #: ../data/50-mutter-navigation.xml.in.h:27
msgid "Switch system controls directly" msgid "Switch system controls directly"
msgstr "Canvia immediatament entre els controls del sistema" msgstr "Canvia immediatament entre els controls del sistema"
#: data/50-mutter-navigation.xml:108 #: ../data/50-mutter-navigation.xml.in.h:28
msgid "Switch directly to previous system control" msgid "Switch directly to previous system control"
msgstr "Canvia immediatament al control del sistema anterior" msgstr "Canvia immediatament al control del sistema anterior"
#: data/50-mutter-navigation.xml:111 #: ../data/50-mutter-navigation.xml.in.h:29
msgid "Hide all normal windows" msgid "Hide all normal windows"
msgstr "Oculta totes les finestres normals" msgstr "Oculta totes les finestres normals"
#: data/50-mutter-navigation.xml:114 #: ../data/50-mutter-navigation.xml.in.h:30
msgid "Switch to workspace 1" msgid "Switch to workspace 1"
msgstr "Canvia a l'espai de treball 1" msgstr "Canvia a l'espai de treball 1"
#: data/50-mutter-navigation.xml:117 #: ../data/50-mutter-navigation.xml.in.h:31
msgid "Switch to workspace 2" msgid "Switch to workspace 2"
msgstr "Canvia a l'espai de treball 2" msgstr "Canvia a l'espai de treball 2"
#: data/50-mutter-navigation.xml:120 #: ../data/50-mutter-navigation.xml.in.h:32
msgid "Switch to workspace 3" msgid "Switch to workspace 3"
msgstr "Canvia a l'espai de treball 3" msgstr "Canvia a l'espai de treball 3"
#: data/50-mutter-navigation.xml:123 #: ../data/50-mutter-navigation.xml.in.h:33
msgid "Switch to workspace 4" msgid "Switch to workspace 4"
msgstr "Canvia a l'espai de treball 4" msgstr "Canvia a l'espai de treball 4"
#: data/50-mutter-navigation.xml:126 #: ../data/50-mutter-navigation.xml.in.h:34
msgid "Switch to last workspace" msgid "Switch to last workspace"
msgstr "Canvia a l'últim espai de treball" msgstr "Canvia a l'últim espai de treball"
#: data/50-mutter-navigation.xml:129 #: ../data/50-mutter-navigation.xml.in.h:35
msgid "Move to workspace left" msgid "Move to workspace left"
msgstr "Mou a l'espai de treball de l'esquerra" msgstr "Mou a l'espai de treball de l'esquerra"
#: data/50-mutter-navigation.xml:132 #: ../data/50-mutter-navigation.xml.in.h:36
msgid "Move to workspace right" msgid "Move to workspace right"
msgstr "Mou a l'espai de treball de la dreta" msgstr "Mou a l'espai de treball de la dreta"
#: data/50-mutter-navigation.xml:135 #: ../data/50-mutter-navigation.xml.in.h:37
msgid "Move to workspace above" msgid "Move to workspace above"
msgstr "Mou a l'espai de treball de sobre" msgstr "Mou a l'espai de treball de sobre"
#: data/50-mutter-navigation.xml:138 #: ../data/50-mutter-navigation.xml.in.h:38
msgid "Move to workspace below" msgid "Move to workspace below"
msgstr "Mou a l'espai de treball de sota" msgstr "Mou a l'espai de treball de sota"
#: data/50-mutter-system.xml:6 #: ../data/50-mutter-system.xml.in.h:1
msgid "System" msgid "System"
msgstr "Sistema" msgstr "Sistema"
#: data/50-mutter-system.xml:8 #: ../data/50-mutter-system.xml.in.h:2
msgid "Show the run command prompt" msgid "Show the run command prompt"
msgstr "Mostra l'indicador d'execució d'aplicacions" msgstr "Mostra l'indicador d'execució d'aplicacions"
#: data/50-mutter-system.xml:10 #: ../data/50-mutter-system.xml.in.h:3
msgid "Show the activities overview" msgid "Show the activities overview"
msgstr "Mostra la vista general d'activitats" msgstr "Mostra la vista general d'activitats"
#: data/50-mutter-windows.xml:6 #: ../data/50-mutter-windows.xml.in.h:1
msgid "Windows" msgid "Windows"
msgstr "Finestres" msgstr "Finestres"
#: data/50-mutter-windows.xml:8 #: ../data/50-mutter-windows.xml.in.h:2
msgid "Activate the window menu" msgid "Activate the window menu"
msgstr "Activa el menú de finestra" msgstr "Activa el menú de finestra"
#: data/50-mutter-windows.xml:10 #: ../data/50-mutter-windows.xml.in.h:3
msgid "Toggle fullscreen mode" msgid "Toggle fullscreen mode"
msgstr "Canvia entre el mode a pantalla completa" msgstr "Canvia entre el mode a pantalla completa"
#: data/50-mutter-windows.xml:12 #: ../data/50-mutter-windows.xml.in.h:4
msgid "Toggle maximization state" msgid "Toggle maximization state"
msgstr "Canvia l'estat de maximització" msgstr "Canvia l'estat de maximització"
#: data/50-mutter-windows.xml:14 #: ../data/50-mutter-windows.xml.in.h:5
msgid "Maximize window" msgid "Maximize window"
msgstr "Maximitza la finestra" msgstr "Maximitza la finestra"
#: data/50-mutter-windows.xml:16 #: ../data/50-mutter-windows.xml.in.h:6
msgid "Restore window" msgid "Restore window"
msgstr "Restaura la finestra" msgstr "Restaura la finestra"
#: data/50-mutter-windows.xml:18 #: ../data/50-mutter-windows.xml.in.h:7
msgid "Toggle shaded state" msgid "Toggle shaded state"
msgstr "Canvia l'estat d'ombrejat" msgstr "Canvia l'estat d'ombrejat"
#: data/50-mutter-windows.xml:20 #: ../data/50-mutter-windows.xml.in.h:8
msgid "Close window" msgid "Close window"
msgstr "Tanca la finestra" msgstr "Tanca la finestra"
#: data/50-mutter-windows.xml:22 #: ../data/50-mutter-windows.xml.in.h:9
msgid "Hide window" msgid "Hide window"
msgstr "Oculta la finestra" msgstr "Oculta la finestra"
#: data/50-mutter-windows.xml:24 #: ../data/50-mutter-windows.xml.in.h:10
msgid "Move window" msgid "Move window"
msgstr "Mou la finestra" msgstr "Mou la finestra"
#: data/50-mutter-windows.xml:26 #: ../data/50-mutter-windows.xml.in.h:11
msgid "Resize window" msgid "Resize window"
msgstr "Redimensiona la finestra" msgstr "Redimensiona la finestra"
#: data/50-mutter-windows.xml:29 #: ../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 "" msgstr ""
"Canvia la funció que fa que la finestra estigui en tots els espais de " "Canvia la funció que fa que la finestra estigui en tots els espais de "
"treball o només en un" "treball o només en un"
#: data/50-mutter-windows.xml:31 #: ../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 "Alça la finestra si està coberta per una altra, o sinó baixa-la" msgstr "Alça la finestra si està coberta per una altra, o sinó baixa-la"
#: data/50-mutter-windows.xml:33 #: ../data/50-mutter-windows.xml.in.h:14
msgid "Raise window above other windows" msgid "Raise window above other windows"
msgstr "Alça la finestra per damunt de les altres" msgstr "Alça la finestra per damunt de les altres"
#: data/50-mutter-windows.xml:35 #: ../data/50-mutter-windows.xml.in.h:15
msgid "Lower window below other windows" msgid "Lower window below other windows"
msgstr "Baixa la finestra sota les altres" msgstr "Baixa la finestra sota les altres"
#: data/50-mutter-windows.xml:37 #: ../data/50-mutter-windows.xml.in.h:16
msgid "Maximize window vertically" msgid "Maximize window vertically"
msgstr "Maximitza la finestra verticalment" msgstr "Maximitza la finestra verticalment"
#: data/50-mutter-windows.xml:39 #: ../data/50-mutter-windows.xml.in.h:17
msgid "Maximize window horizontally" msgid "Maximize window horizontally"
msgstr "Maximitza la finestra horitzontalment" msgstr "Maximitza la finestra horitzontalment"
#: data/50-mutter-windows.xml:43 #: ../data/50-mutter-windows.xml.in.h:18
msgid "View split on left" msgid "View split on left"
msgstr "Mostra la partició a l'esquerra" msgstr "Mostra la partició a l'esquerra"
#: data/50-mutter-windows.xml:47 #: ../data/50-mutter-windows.xml.in.h:19
msgid "View split on right" msgid "View split on right"
msgstr "Mostra la partició a la dreta" msgstr "Mostra la partició a la dreta"
#: data/mutter.desktop.in:4 #: ../data/mutter.desktop.in.h:1
msgid "Mutter" msgid "Mutter"
msgstr "Mutter" msgstr "Mutter"
#: data/org.gnome.mutter.gschema.xml.in:7 #: ../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 "" msgstr ""
"Modificador que s'utilitzarà per les operacions ampliades de gestió de " "Modificador que s'utilitzarà per les operacions ampliades de gestió de "
"finestres" "finestres"
#: data/org.gnome.mutter.gschema.xml.in:8 #: ../data/org.gnome.mutter.gschema.xml.in.h:2
msgid "" msgid ""
"This key will initiate the overlay, which is a combination window overview " "This key will initiate the \"overlay\", which is a combination window "
"and application launching system. The default is intended to be the “Windows " "overview and application launching system. The default is intended to be the "
"key on PC hardware. Its expected that this binding either the default or " "\"Windows key\" on PC hardware. It's expected that this binding either the "
"set to the empty string." "default or set to the empty string."
msgstr "" msgstr ""
"Aquesta tecla iniciarà l'«overlay» (superposador), el qual és una combinació " "Aquesta tecla iniciarà l'«overlay» (superposador), el qual és una combinació "
"de visualització de finestres i sistema de llançament d'aplicacions. El " "de visualització de finestres i sistema de llançament d'aplicacions. El "
@@ -289,11 +289,11 @@ msgstr ""
"PC. El valor d'aquesta vinculació s'espera que sigui el predeterminat o text " "PC. El valor d'aquesta vinculació s'espera que sigui el predeterminat o text "
"en blanc." "en blanc."
#: data/org.gnome.mutter.gschema.xml.in:20 #: ../data/org.gnome.mutter.gschema.xml.in.h:3
msgid "Attach modal dialogs" msgid "Attach modal dialogs"
msgstr "Adjunta els diàlegs modals" msgstr "Adjunta els diàlegs modals"
#: data/org.gnome.mutter.gschema.xml.in:21 #: ../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 "
@@ -303,13 +303,13 @@ msgstr ""
"diàlegs modals apareixeran adjuntats a la barra de títol de la finestra mare " "diàlegs modals apareixeran adjuntats a la barra de títol de la finestra mare "
"i es mouran juntament amb aquesta." "i es mouran juntament amb aquesta."
#: data/org.gnome.mutter.gschema.xml.in:30 #: ../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"
msgstr "" msgstr ""
"Habilita la tesselització a les vores en deixar anar les finestres a les " "Habilita la tesselització a les vores en deixar anar les finestres a les "
"vores de la pantalla" "vores de la pantalla"
#: data/org.gnome.mutter.gschema.xml.in:31 #: ../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 and resizes them horizontally to cover half of the available " "vertically and resizes them horizontally to cover half of the available "
@@ -320,13 +320,13 @@ msgstr ""
"deixar-les anar a les vores verticals de la pantalla. Si es deixen anar a la " "deixar-les anar a les vores verticals de la pantalla. Si es deixen anar a la "
"vora superior de la pantalla es maximitzaran completament." "vora superior de la pantalla es maximitzaran completament."
#: data/org.gnome.mutter.gschema.xml.in:40 #: ../data/org.gnome.mutter.gschema.xml.in.h:7
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Els espais de treball es gestionen dinàmicament" msgstr "Els espais de treball es gestionen dinàmicament"
#: data/org.gnome.mutter.gschema.xml.in:41 #: ../data/org.gnome.mutter.gschema.xml.in.h:8
msgid "" msgid ""
"Determines whether workspaces are managed dynamically or whether theres 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.desktop.wm.preferences)." "gnome.desktop.wm.preferences)."
msgstr "" msgstr ""
@@ -334,11 +334,11 @@ msgstr ""
"nombre determinat d'espais de treball (determinat per la clau «num-" "nombre determinat d'espais de treball (determinat per la clau «num-"
"workspaces» a «org.gnome.desktop.wm.preferences»)." "workspaces» a «org.gnome.desktop.wm.preferences»)."
#: data/org.gnome.mutter.gschema.xml.in:50 #: ../data/org.gnome.mutter.gschema.xml.in.h:9
msgid "Workspaces only on primary" msgid "Workspaces only on primary"
msgstr "Espais de treball només en el primari" msgstr "Espais de treball només en el primari"
#: data/org.gnome.mutter.gschema.xml.in:51 #: ../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."
@@ -346,11 +346,11 @@ msgstr ""
"Determina si el canvi d'espai de treball hauria de ser per les finestres en " "Determina si el canvi d'espai de treball hauria de ser per les finestres en "
"tots els monitors o només en les finestres del monitor primari." "tots els monitors o només en les finestres del monitor primari."
#: data/org.gnome.mutter.gschema.xml.in:59 #: ../data/org.gnome.mutter.gschema.xml.in.h:11
msgid "No tab popup" msgid "No tab popup"
msgstr "Sense finestres emergents a les pestanyes" msgstr "Sense finestres emergents a les pestanyes"
#: data/org.gnome.mutter.gschema.xml.in:60 #: ../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 window cycling." "for window cycling."
@@ -358,40 +358,40 @@ msgstr ""
"Determina si s'ha d'inhabilitar el quadre que es mostra a les finestres " "Determina si s'ha d'inhabilitar el quadre que es mostra a les finestres "
"emergents i ressaltades en commutar entre finestres." "emergents i ressaltades en commutar entre finestres."
#: data/org.gnome.mutter.gschema.xml.in:68 #: ../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"
msgstr "Retarda el canvi del focus fins que s'aturi el punter" msgstr "Retarda el canvi del focus fins que s'aturi el punter"
#: data/org.gnome.mutter.gschema.xml.in:69 #: ../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 the " "If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
"focus will not be changed immediately when entering a window, but only after " "the focus will not be changed immediately when entering a window, but only "
"the pointer stops moving." "after the pointer stops moving."
msgstr "" msgstr ""
"Si és «true» (cert), i el mode del focus és «sloppy» o «mouse», no es " "Si és «true» (cert), i el mode del focus és «sloppy» o «mouse», no es "
"canviarà el focus immediatament quan s'entri a una finestra, només es " "canviarà el focus immediatament quan s'entri a una finestra, només es "
"canviarà quan el punter deixi de moure's." "canviarà quan el punter deixi de moure's."
#: data/org.gnome.mutter.gschema.xml.in:79 #: ../data/org.gnome.mutter.gschema.xml.in.h:15
msgid "Draggable border width" msgid "Draggable border width"
msgstr "Amplada del contorn arrossegable" msgstr "Amplada del contorn arrossegable"
#: data/org.gnome.mutter.gschema.xml.in:80 #: ../data/org.gnome.mutter.gschema.xml.in.h:16
msgid "" msgid ""
"The amount of total draggable borders. If the themes visible borders are " "The amount of total draggable borders. If the theme's visible borders are "
"not enough, invisible borders will be added to meet this value." "not enough, invisible borders will be added to meet this value."
msgstr "" msgstr ""
"La quantitat total de contorn arrossegable. Si els contorns visibles del " "La quantitat total de contorn arrossegable. Si els contorns visibles del "
"tema no són suficients, s'afegiran contorns invisibles per aconseguir aquest " "tema no són suficients, s'afegiran contorns invisibles per aconseguir aquest "
"valor." "valor."
#: data/org.gnome.mutter.gschema.xml.in:89 #: ../data/org.gnome.mutter.gschema.xml.in.h:17
msgid "Auto maximize nearly monitor sized windows" msgid "Auto maximize nearly monitor sized windows"
msgstr "" msgstr ""
"Maximitza automàticament les finestres que gairebé facin la mida de la " "Maximitza automàticament les finestres que gairebé facin la mida de la "
"pantalla" "pantalla"
#: data/org.gnome.mutter.gschema.xml.in:90 #: ../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 get maximized." "automatically get maximized."
@@ -399,11 +399,11 @@ msgstr ""
"Si s'habilita, les finestres que inicialment gairebé fan la mida de la " "Si s'habilita, les finestres que inicialment gairebé fan la mida de la "
"pantalla es maximitzaran automàticament." "pantalla es maximitzaran automàticament."
#: data/org.gnome.mutter.gschema.xml.in:98 #: ../data/org.gnome.mutter.gschema.xml.in.h:19
msgid "Place new windows in the center" msgid "Place new windows in the center"
msgstr "Posiciona les finestres noves al centre" msgstr "Posiciona les finestres noves al centre"
#: data/org.gnome.mutter.gschema.xml.in:99 #: ../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 of the monitor." "screen of the monitor."
@@ -411,166 +411,153 @@ msgstr ""
"Si és «true» (cert), les finestres noves seran posicionades al centre de la " "Si és «true» (cert), les finestres noves seran posicionades al centre de la "
"pantalla activa del monitor." "pantalla activa del monitor."
#: data/org.gnome.mutter.gschema.xml.in:107 #: ../data/org.gnome.mutter.gschema.xml.in.h:21
msgid "Enable experimental features"
msgstr "Habilita les funcionalitats experimentals"
#: data/org.gnome.mutter.gschema.xml.in:108
msgid ""
"To enable experimental features, add the feature keyword to the list. "
"Whether the feature requires restarting the compositor depends on the given "
"feature. Any experimental feature is not required to still be available, or "
"configurable. Dont expect adding anything in this setting to be future "
"proof. Currently possible keywords: • “monitor-config-manager” — use the new "
"monitor configuration system, aimed to replace the old one. This enables a "
"higher level configuration API to be used by configuration applications, as "
"well as the ability to configure per logical monitor scale. • “scale-monitor-"
"framebuffer” — makes mutter default to layout logical monitors in a logical "
"pixel coordinate space, while scaling monitor framebuffers instead of window "
"content, to manage HiDPI monitors. Does not require a restart. Also enabling "
"“monitor-config-manager” is required for this feature to be enabled."
msgstr ""
#: data/org.gnome.mutter.gschema.xml.in:151
msgid "Select window from tab popup" msgid "Select window from tab popup"
msgstr "Selecció de finestra entre les emergents d'una pestanya" msgstr "Selecció de finestra entre les emergents d'una pestanya"
#: data/org.gnome.mutter.gschema.xml.in:156 #: ../data/org.gnome.mutter.gschema.xml.in.h:22
msgid "Cancel tab popup" msgid "Cancel tab popup"
msgstr "Cancel·lació de les finestres emergents a les pestanyes" msgstr "Cancel·lació de les finestres emergents a les pestanyes"
#: data/org.gnome.mutter.wayland.gschema.xml.in:6 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:1
msgid "Switch to VT 1" msgid "Switch to VT 1"
msgstr "Canvia al terminal virtual 1" msgstr "Canvia al terminal virtual 1"
#: data/org.gnome.mutter.wayland.gschema.xml.in:10 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:2
msgid "Switch to VT 2" msgid "Switch to VT 2"
msgstr "Canvia al terminal virtual 2" msgstr "Canvia al terminal virtual 2"
#: data/org.gnome.mutter.wayland.gschema.xml.in:14 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:3
msgid "Switch to VT 3" msgid "Switch to VT 3"
msgstr "Canvia al terminal virtual 3" msgstr "Canvia al terminal virtual 3"
#: data/org.gnome.mutter.wayland.gschema.xml.in:18 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:4
msgid "Switch to VT 4" msgid "Switch to VT 4"
msgstr "Canvia al terminal virtual 4" msgstr "Canvia al terminal virtual 4"
#: data/org.gnome.mutter.wayland.gschema.xml.in:22 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:5
msgid "Switch to VT 5" msgid "Switch to VT 5"
msgstr "Canvia al terminal virtual 5" msgstr "Canvia al terminal virtual 5"
#: data/org.gnome.mutter.wayland.gschema.xml.in:26 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:6
msgid "Switch to VT 6" msgid "Switch to VT 6"
msgstr "Canvia al terminal virtual 6" msgstr "Canvia al terminal virtual 6"
#: data/org.gnome.mutter.wayland.gschema.xml.in:30 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:7
msgid "Switch to VT 7" msgid "Switch to VT 7"
msgstr "Canvia al terminal virtual 7" msgstr "Canvia al terminal virtual 7"
#: data/org.gnome.mutter.wayland.gschema.xml.in:34 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
msgid "Switch to VT 8" msgid "Switch to VT 8"
msgstr "Canvia al terminal virtual 8" msgstr "Canvia al terminal virtual 8"
#: data/org.gnome.mutter.wayland.gschema.xml.in:38 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
msgid "Switch to VT 9" msgid "Switch to VT 9"
msgstr "Canvia al terminal virtual 9" msgstr "Canvia al terminal virtual 9"
#: data/org.gnome.mutter.wayland.gschema.xml.in:42 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
msgid "Switch to VT 10" msgid "Switch to VT 10"
msgstr "Canvia al terminal virtual 10" msgstr "Canvia al terminal virtual 10"
#: data/org.gnome.mutter.wayland.gschema.xml.in:46 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
msgid "Switch to VT 11" msgid "Switch to VT 11"
msgstr "Canvia al terminal virtual 11" msgstr "Canvia al terminal virtual 11"
#: data/org.gnome.mutter.wayland.gschema.xml.in:50 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Canvia al terminal virtual 12" msgstr "Canvia al terminal virtual 12"
#. TRANSLATORS: This string refers to a button that switches between #: ../src/backends/meta-monitor-manager.c:518
#. * different modes.
#.
#: src/backends/meta-input-settings.c:1871
#, c-format
msgid "Mode Switch (Group %d)"
msgstr "Mode de commutació (grup %d)"
#. TRANSLATORS: This string refers to an action, cycles drawing tablets'
#. * mapping through the available outputs.
#.
#: src/backends/meta-input-settings.c:1893
msgid "Switch monitor"
msgstr "Commuta el monitor"
#: src/backends/meta-input-settings.c:1895
msgid "Show on-screen help"
msgstr "Mostra l'ajuda en pantalla"
#: src/backends/meta-monitor-manager.c:879
msgid "Built-in display" msgid "Built-in display"
msgstr "Pantalla integrada" msgstr "Pantalla integrada"
#: src/backends/meta-monitor-manager.c:902 #: ../src/backends/meta-monitor-manager.c:544
msgid "Unknown" msgid "Unknown"
msgstr "Desconeguda" msgstr "Desconeguda"
#: src/backends/meta-monitor-manager.c:904 #: ../src/backends/meta-monitor-manager.c:546
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:912 #: ../src/backends/meta-monitor-manager.c:554
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
#. This probably means that a non-WM compositor like xcompmgr is running; #. This probably means that a non-WM compositor like xcompmgr is running;
#. * we have no way to get it to exit #. * we have no way to get it to exit
#: src/compositor/compositor.c:476 #: ../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 "" msgstr ""
"Ja s'està executant un altre gestor de composició al monitor %i a la " "Ja s'està executant un altre gestor de composició a la pantalla %i a la "
"pantalla «%s»." "visualització «%s»."
#: src/core/bell.c:194 #: ../src/core/bell.c:192
msgid "Bell event" msgid "Bell event"
msgstr "Esdeveniment de campana" msgstr "Esdeveniment de campana"
#: src/core/display.c:608 #: ../src/core/delete.c:127
#, c-format #, c-format
msgid "Failed to open X Window System display “%s”\n" msgid "“%s” is not responding."
msgstr "«%s» no està responent."
#: ../src/core/delete.c:129
msgid "Application is not responding."
msgstr "L'aplicació no està responent."
#: ../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 ""
"Podeu esperar un moment perquè continuï o podeu forçar-ne la sortida "
"completa."
#: ../src/core/delete.c:141
msgid "_Wait"
msgstr "_Espera"
#: ../src/core/delete.c:141
msgid "_Force Quit"
msgstr "_Força'n la sortida"
#: ../src/core/display.c:555
#, c-format
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:189 #: ../src/core/main.c:181
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:195 #: ../src/core/main.c:187
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:201 #: ../src/core/main.c:193
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:206 #: ../src/core/main.c:198
msgid "X Display to use" msgid "X Display to use"
msgstr "Visualització X per usar" msgstr "Visualització X per usar"
#: src/core/main.c:212 #: ../src/core/main.c:204
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:218 #: ../src/core/main.c:210
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:225 #: ../src/core/main.c:217
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"
@@ -579,45 +566,20 @@ msgstr "Funciona com a compositor de Wayland"
# #
# Camins: # Camins:
# ../src/core/main.c:223 # ../src/core/main.c:223
#: src/core/main.c:231 #: ../src/core/main.c:223
#| msgid "Run as a wayland compositor"
msgid "Run as a nested compositor" msgid "Run as a nested compositor"
msgstr "Funciona com a compositor imbricat" msgstr "Funciona com a compositor imbricat"
#: src/core/main.c:239 #: ../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"
#. Translators: %s is a window title #: ../src/core/mutter.c:39
#: src/core/meta-close-dialog-default.c:147
#, c-format
msgid "“%s” is not responding."
msgstr "«%s» no està responent."
#: src/core/meta-close-dialog-default.c:149
msgid "Application is not responding."
msgstr "L'aplicació no està responent."
#: src/core/meta-close-dialog-default.c:154
msgid ""
"You may choose to wait a short while for it to continue or force the "
"application to quit entirely."
msgstr ""
"Podeu esperar un moment perquè continuï o podeu forçar-ne la sortida "
"completa."
#: src/core/meta-close-dialog-default.c:161
msgid "_Force Quit"
msgstr "_Força'n la sortida"
#: src/core/meta-close-dialog-default.c:161
msgid "_Wait"
msgstr "_Espera"
#: src/core/mutter.c:39
#, c-format #, c-format
msgid "" msgid ""
"mutter %s\n" "mutter %s\n"
"Copyright © 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 PURPOSE.\n" "PARTICULAR PURPOSE.\n"
@@ -629,51 +591,46 @@ msgstr ""
"No hi ha CAP garantia; ni tan sols la garantia implícita de COMERCIABILITAT\n" "No hi ha CAP garantia; ni tan sols la garantia implícita de COMERCIABILITAT\n"
"o ADEQUACIÓ A PER UN PROPÒSIT PARTICULAR.\n" "o ADEQUACIÓ A PER UN PROPÒSIT PARTICULAR.\n"
#: src/core/mutter.c:53 #: ../src/core/mutter.c:53
msgid "Print version" msgid "Print version"
msgstr "Escriu versió" msgstr "Escriu versió"
#: src/core/mutter.c:59 #: ../src/core/mutter.c:59
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:1997
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Espai de treball %d" msgstr "Espai de treball %d"
#: src/core/screen.c:580 #: ../src/core/screen.c:521
#, c-format #, c-format
msgid "" msgid ""
"Display “%s” already has a window manager; try using the --replace option to " "Display \"%s\" already has a window manager; try using the --replace option "
"replace the current window manager." "to replace the current window manager."
msgstr "" 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:665 #: ../src/core/screen.c:603
#, c-format #, c-format
msgid "Screen %d on display %s is invalid\n" msgid "Screen %d on display '%s' is invalid\n"
msgstr "El monitor %d en la pantalla '%s' no és vàlida\n" msgstr "La pantalla %d en la visualització '%s' no és vàlida\n"
#: src/core/util.c:120 #: ../src/core/util.c:121
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"
#: src/wayland/meta-wayland-tablet-pad.c:563 #: ../src/x11/session.c:1815
#, c-format
msgid "Mode Switch: Mode %d"
msgstr "Mode de commutació: mode %d"
#: src/x11/session.c:1815
msgid "" msgid ""
"These windows do not support save current setup and will have to be " "These windows do not support &quot;save current setup&quot; and will have to "
"restarted manually next time you log in." "be restarted manually next time you log in."
msgstr "" msgstr ""
"Aquestes finestres no implementen «desa la configuració actual» i s'hauran " "Aquestes finestres no implementen «desa la configuració actual» i s'hauran "
"de reiniciar manualment la pròxima vegada que entreu." "de reiniciar manualment la pròxima vegada que entreu."
#: src/x11/window-props.c:559 #: ../src/x11/window-props.c:549
#, c-format #, c-format
msgid "%s (on %s)" msgid "%s (on %s)"
msgstr "%s (a %s)" msgstr "%s (a %s)"

981
po/cs.po

File diff suppressed because it is too large Load Diff

664
po/da.po
View File

@@ -1,5 +1,5 @@
# Danish translation of Mutter. # Danish translation of Mutter.
# Copyright (C) 2002-2009, 2012-2017. # Copyright (C) 2002-2009, 2012-2016.
# 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,9 +8,9 @@
# 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, 17. # Ask Hjorth Larsen <asklarsen@gmail.com>, 2007, 09, 10, 12, 13, 14, 15, 16.
# #
# Ordliste: # Konventioner:
# #
# display -> terminal # display -> terminal
# #
@@ -19,10 +19,9 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: mutter\n" "Project-Id-Version: mutter\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" "Report-Msgid-Bugs-To: \n"
"product=mutter&keywords=I18N+L10N&component=general\n" "POT-Creation-Date: 2016-03-20 23:17+0100\n"
"POT-Creation-Date: 2017-02-22 19:28+0000\n" "PO-Revision-Date: 2016-03-20 21:46+0100\n"
"PO-Revision-Date: 2017-03-02 12:04+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"
@@ -30,27 +29,271 @@ 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"
#: data/mutter.desktop.in:4 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation"
msgstr "Navigation"
#: ../data/50-mutter-navigation.xml.in.h:2
msgid "Move window to workspace 1"
msgstr "Flyt vindue til arbejdsområde 1"
#: ../data/50-mutter-navigation.xml.in.h:3
msgid "Move window to workspace 2"
msgstr "Flyt vindue til arbejdsområde 2"
#: ../data/50-mutter-navigation.xml.in.h:4
msgid "Move window to workspace 3"
msgstr "Flyt vindue til arbejdsområde 3"
#: ../data/50-mutter-navigation.xml.in.h:5
msgid "Move window to workspace 4"
msgstr "Flyt vindue til arbejdsområde 4"
#: ../data/50-mutter-navigation.xml.in.h:6
msgid "Move window to last workspace"
msgstr "Flyt vindue til sidste arbejdsområde"
#: ../data/50-mutter-navigation.xml.in.h:7
msgid "Move window one workspace to the left"
msgstr "Flyt vindue et arbejdsområde til venstre"
#: ../data/50-mutter-navigation.xml.in.h:8
msgid "Move window one workspace to the right"
msgstr "Flyt vindue et arbejdsområde til højre"
#: ../data/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace up"
msgstr "Flyt vindue et arbejdsområde op"
#: ../data/50-mutter-navigation.xml.in.h:10
msgid "Move window one workspace down"
msgstr "Flyt vindue et arbejdsområde ned"
#: ../data/50-mutter-navigation.xml.in.h:11
msgid "Move window one monitor to the left"
msgstr "Flyt vindue en skærm til venstre"
#: ../data/50-mutter-navigation.xml.in.h:12
msgid "Move window one monitor to the right"
msgstr "Flyt vindue en skærm til højre"
#: ../data/50-mutter-navigation.xml.in.h:13
msgid "Move window one monitor up"
msgstr "Flyt vindue en skærm op"
#: ../data/50-mutter-navigation.xml.in.h:14
msgid "Move window one monitor down"
msgstr "Flyt vindue en skærm ned"
#: ../data/50-mutter-navigation.xml.in.h:15
msgid "Switch applications"
msgstr "Skift mellem programmer"
#: ../data/50-mutter-navigation.xml.in.h:16
msgid "Switch to previous application"
msgstr "Skift til forrige program"
#: ../data/50-mutter-navigation.xml.in.h:17
msgid "Switch windows"
msgstr "Skift mellem vinduer"
#: ../data/50-mutter-navigation.xml.in.h:18
msgid "Switch to previous window"
msgstr "Skift til forrige vindue"
#: ../data/50-mutter-navigation.xml.in.h:19
msgid "Switch windows of an application"
msgstr "Skift mellem vinduer i et program"
#: ../data/50-mutter-navigation.xml.in.h:20
msgid "Switch to previous window of an application"
msgstr "Skift til forrige vindue af et program"
#: ../data/50-mutter-navigation.xml.in.h:21
msgid "Switch system controls"
msgstr "Skift mellem systemkontroller"
#: ../data/50-mutter-navigation.xml.in.h:22
msgid "Switch to previous system control"
msgstr "Skift til forrige systemkontrol"
#: ../data/50-mutter-navigation.xml.in.h:23
msgid "Switch windows directly"
msgstr "Skift direkte mellem vinduer"
#: ../data/50-mutter-navigation.xml.in.h:24
msgid "Switch directly to previous window"
msgstr "Skift direkte til forrige vindue"
#: ../data/50-mutter-navigation.xml.in.h:25
msgid "Switch windows of an app directly"
msgstr "Skift direkte mellem vinduer i et program"
#: ../data/50-mutter-navigation.xml.in.h:26
msgid "Switch directly to previous window of an app"
msgstr "Skift direkte til forrige vindue af et program"
#: ../data/50-mutter-navigation.xml.in.h:27
msgid "Switch system controls directly"
msgstr "Skift direkte mellem systemkontroller"
#: ../data/50-mutter-navigation.xml.in.h:28
msgid "Switch directly to previous system control"
msgstr "Skift direkte til forrige systemkontrol"
#: ../data/50-mutter-navigation.xml.in.h:29
msgid "Hide all normal windows"
msgstr "Skjul alle normale vinduer"
#: ../data/50-mutter-navigation.xml.in.h:30
msgid "Switch to workspace 1"
msgstr "Skift til arbejdsområde 1"
#: ../data/50-mutter-navigation.xml.in.h:31
msgid "Switch to workspace 2"
msgstr "Skift til arbejdsområde 2"
#: ../data/50-mutter-navigation.xml.in.h:32
msgid "Switch to workspace 3"
msgstr "Skift til arbejdsområde 3"
#: ../data/50-mutter-navigation.xml.in.h:33
msgid "Switch to workspace 4"
msgstr "Skift til arbejdsområde 4"
#: ../data/50-mutter-navigation.xml.in.h:34
msgid "Switch to last workspace"
msgstr "Skift til sidste arbejdsområde"
#: ../data/50-mutter-navigation.xml.in.h:35
msgid "Move to workspace left"
msgstr "Flyt til arbejdsområdet til venstre"
#: ../data/50-mutter-navigation.xml.in.h:36
msgid "Move to workspace right"
msgstr "Flyt til arbejdsområdet til højre"
#: ../data/50-mutter-navigation.xml.in.h:37
msgid "Move to workspace above"
msgstr "Flyt til arbejdsområdet ovenover"
#: ../data/50-mutter-navigation.xml.in.h:38
msgid "Move to workspace below"
msgstr "Flyt til arbejdsområdet nedenunder"
#: ../data/50-mutter-system.xml.in.h:1
msgid "System"
msgstr "System"
#: ../data/50-mutter-system.xml.in.h:2
msgid "Show the run command prompt"
msgstr "Vis \"kør kommando\"-prompten"
#: ../data/50-mutter-system.xml.in.h:3
msgid "Show the activities overview"
msgstr "Vis aktivitetsoversigten"
#: ../data/50-mutter-windows.xml.in.h:1
msgid "Windows"
msgstr "Vinduer"
#: ../data/50-mutter-windows.xml.in.h:2
msgid "Activate the window menu"
msgstr "Aktivér vinduesmenuen"
#: ../data/50-mutter-windows.xml.in.h:3
msgid "Toggle fullscreen mode"
msgstr "Slå fuldskærmstilstand til/fra"
#: ../data/50-mutter-windows.xml.in.h:4
msgid "Toggle maximization state"
msgstr "Slå maksimering til/fra"
#: ../data/50-mutter-windows.xml.in.h:5
msgid "Maximize window"
msgstr "Maksimér vindue"
#: ../data/50-mutter-windows.xml.in.h:6
msgid "Restore window"
msgstr "Gendan vindue"
#: ../data/50-mutter-windows.xml.in.h:7
msgid "Toggle shaded state"
msgstr "Slå vinduesoprulning til/fra"
#: ../data/50-mutter-windows.xml.in.h:8
msgid "Close window"
msgstr "Luk vindue"
#: ../data/50-mutter-windows.xml.in.h:9
msgid "Hide window"
msgstr "Skjul vindue"
#: ../data/50-mutter-windows.xml.in.h:10
msgid "Move window"
msgstr "Flyt vindue"
#: ../data/50-mutter-windows.xml.in.h:11
msgid "Resize window"
msgstr "Ændr vinduesstørrelse"
#: ../data/50-mutter-windows.xml.in.h:12
msgid "Toggle window on all workspaces or one"
msgstr "Slå visning af vindue på alle arbejdsområder til/fra"
#: ../data/50-mutter-windows.xml.in.h:13
msgid "Raise window if covered, otherwise lower it"
msgstr "Hæv vindue hvis det er dækket, ellers sænk det"
#: ../data/50-mutter-windows.xml.in.h:14
msgid "Raise window above other windows"
msgstr "Hæv vindue over andre vinduer"
#: ../data/50-mutter-windows.xml.in.h:15
msgid "Lower window below other windows"
msgstr "Sænk vindue under andre vinduer"
#: ../data/50-mutter-windows.xml.in.h:16
msgid "Maximize window vertically"
msgstr "Maksimér vindue lodret"
#: ../data/50-mutter-windows.xml.in.h:17
msgid "Maximize window horizontally"
msgstr "Maksimér vindue vandret"
#: ../data/50-mutter-windows.xml.in.h:18
msgid "View split on left"
msgstr "Delt visning venstre"
#: ../data/50-mutter-windows.xml.in.h:19
msgid "View split on right"
msgstr "Delt visning højre"
#: ../data/mutter.desktop.in.h:1
msgid "Mutter" msgid "Mutter"
msgstr "Mutter" msgstr "Mutter"
#: data/org.gnome.mutter.gschema.xml.in:7 #: ../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 "Modifikationstast til brug for udvidede vindueshåndteringsoperationer" msgstr "Modifikationstast til brug for udvidede vindueshåndteringsoperationer"
#: data/org.gnome.mutter.gschema.xml.in:8 #: ../data/org.gnome.mutter.gschema.xml.in.h:2
msgid "" msgid ""
"This key will initiate the overlay, which is a combination window overview " "This key will initiate the \"overlay\", which is a combination window "
"and application launching system. The default is intended to be the “Windows " "overview and application launching system. The default is intended to be the "
"key on PC hardware. Its expected that this binding either the default or " "\"Windows key\" on PC hardware. It's expected that this binding either the "
"set to the empty string." "default or set to the empty string."
msgstr "Denne nøgle vil klargøre \"overlay\", som er en kombineret vinduesoversigt og programstartersystem. Standardværdien på PC-hardware er tiltænkt som \"Windows\"-tasten. Det forventes, at denne binding enten har standardværdien, eller er sat til den tomme streng." msgstr ""
"Denne nøgle vil klargøre \"overlay\", som er en kombineret vinduesoversigt "
"og programstartsystem. Standardværdien på PC-hardware er tiltænkt som "
"\"Windows\"-tasten. Det forventes at denne binding enten har "
"standardværdien, eller er sat til den tomme streng."
#: data/org.gnome.mutter.gschema.xml.in:20 #: ../data/org.gnome.mutter.gschema.xml.in.h:3
msgid "Attach modal dialogs" msgid "Attach modal dialogs"
msgstr "Fastgør modaldialoger" msgstr "Fastgør modaldialoger"
#: data/org.gnome.mutter.gschema.xml.in:21 #: ../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 "
@@ -59,13 +302,13 @@ msgstr ""
"Når sand, vil modaldialoger hænge sammen med titellinjen af ophavsvinduet og " "Når sand, vil modaldialoger hænge sammen med titellinjen af ophavsvinduet og "
"flyttes sammen med dette, frem for at have uafhængige titellinjer." "flyttes sammen med dette, frem for at have uafhængige titellinjer."
#: data/org.gnome.mutter.gschema.xml.in:30 #: ../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"
msgstr "" msgstr ""
"Aktivér maksimering eller halvmaksimering når vinduer slippes over " "Aktivér maksimering eller halvmaksimering når vinduer slippes over "
"skærmranden" "skærmranden"
#: data/org.gnome.mutter.gschema.xml.in:31 #: ../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 and resizes them horizontally to cover half of the available " "vertically and resizes them horizontally to cover half of the available "
@@ -76,13 +319,13 @@ msgstr ""
"tilgængelige område. Vinduer, der slippes på øverste skærmrand, maksimeres " "tilgængelige område. Vinduer, der slippes på øverste skærmrand, maksimeres "
"helt." "helt."
#: data/org.gnome.mutter.gschema.xml.in:40 #: ../data/org.gnome.mutter.gschema.xml.in.h:7
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Arbejdsområder håndteres dynamisk" msgstr "Arbejdsområder håndteres dynamisk"
#: data/org.gnome.mutter.gschema.xml.in:41 #: ../data/org.gnome.mutter.gschema.xml.in.h:8
msgid "" msgid ""
"Determines whether workspaces are managed dynamically or whether theres 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.desktop.wm.preferences)." "gnome.desktop.wm.preferences)."
msgstr "" msgstr ""
@@ -90,11 +333,11 @@ msgstr ""
"antal arbejdsområder (angivet med nøglen num-workspaces i org.gnome.desktop." "antal arbejdsområder (angivet med nøglen num-workspaces i org.gnome.desktop."
"wm.preferences)." "wm.preferences)."
#: data/org.gnome.mutter.gschema.xml.in:50 #: ../data/org.gnome.mutter.gschema.xml.in.h:9
msgid "Workspaces only on primary" msgid "Workspaces only on primary"
msgstr "Arbejdsområder kun på primær skærm" msgstr "Arbejdsområder kun på primær skærm"
#: data/org.gnome.mutter.gschema.xml.in:51 #: ../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."
@@ -102,11 +345,11 @@ msgstr ""
"Angiver om skift mellem arbejdsområder skal ske for vinduer på alle skærme, " "Angiver om skift mellem arbejdsområder skal ske for vinduer på alle skærme, "
"eller kun for vinduer på den primære skærm." "eller kun for vinduer på den primære skærm."
#: data/org.gnome.mutter.gschema.xml.in:59 #: ../data/org.gnome.mutter.gschema.xml.in.h:11
msgid "No tab popup" msgid "No tab popup"
msgstr "Ingen tab-pop-op" msgstr "Ingen tab-pop-op"
#: data/org.gnome.mutter.gschema.xml.in:60 #: ../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 window cycling." "for window cycling."
@@ -114,37 +357,37 @@ msgstr ""
"Afgør om brugen af pop-op og fremhævet vinduesramme skal deaktiveres ved " "Afgør om brugen af pop-op og fremhævet vinduesramme skal deaktiveres ved "
"vinduesskifte." "vinduesskifte."
#: data/org.gnome.mutter.gschema.xml.in:68 #: ../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"
msgstr "Lad fokusændringer vente indtil markøren holder op med at bevæge sig" msgstr "Lad fokusændringer vente indtil markøren holder op med at bevæge sig"
#: data/org.gnome.mutter.gschema.xml.in:69 #: ../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 the " "If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
"focus will not be changed immediately when entering a window, but only after " "the focus will not be changed immediately when entering a window, but only "
"the pointer stops moving." "after the pointer stops moving."
msgstr "" msgstr ""
"Hvis sat til sand, og fokustilstanden er enten \"sloppy\" eller \"mouse\", " "Hvis sat til sand, og fokustilstanden er enten \"sloppy\" eller \"mouse\", "
"vil fokus ikke blive ændret omgående når man går ind i et nyt vindue, men " "vil fokus ikke blive ændret omgående når man går ind i et nyt vindue, men "
"først efter markøren holder op med at bevæge sig." "først efter markøren holder op med at bevæge sig."
#: data/org.gnome.mutter.gschema.xml.in:79 #: ../data/org.gnome.mutter.gschema.xml.in.h:15
msgid "Draggable border width" msgid "Draggable border width"
msgstr "Bredde af den trækbare kant" msgstr "Bredde af den trækbare kant"
#: data/org.gnome.mutter.gschema.xml.in:80 #: ../data/org.gnome.mutter.gschema.xml.in.h:16
msgid "" msgid ""
"The amount of total draggable borders. If the themes visible borders are " "The amount of total draggable borders. If the theme's visible borders are "
"not enough, invisible borders will be added to meet this value." "not enough, invisible borders will be added to meet this value."
msgstr "" msgstr ""
"Samlet mængde kant der kan trækkes. Hvis temaets synlige grænser ikke er " "Samlet mængde kant der kan trækkes. Hvis temaets synlige grænser ikke er "
"nok, så vil usynlige kanter blive tilføjet for at møde denne værdi." "nok, så vil usynlige kanter blive tilføjet for at møde denne værdi."
#: data/org.gnome.mutter.gschema.xml.in:89 #: ../data/org.gnome.mutter.gschema.xml.in.h:17
msgid "Auto maximize nearly monitor sized windows" msgid "Auto maximize nearly monitor sized windows"
msgstr "Maksimér automatisk vinduer hvis størrelse næsten passer til skærmen" msgstr "Maksimér automatisk vinduer hvis størrelse næsten passer til skærmen"
#: data/org.gnome.mutter.gschema.xml.in:90 #: ../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 get maximized." "automatically get maximized."
@@ -152,136 +395,117 @@ msgstr ""
"Hvis aktiveret vil nye vinduer, som i begyndelsen har samme størrelse som " "Hvis aktiveret vil nye vinduer, som i begyndelsen har samme størrelse som "
"skærmen, blive automatisk maksimeret." "skærmen, blive automatisk maksimeret."
#: data/org.gnome.mutter.gschema.xml.in:98 #: ../data/org.gnome.mutter.gschema.xml.in.h:19
msgid "Place new windows in the center" msgid "Place new windows in the center"
msgstr "Placér nye vinduer i midten" msgstr "Placér nye vinduer i midten"
#: data/org.gnome.mutter.gschema.xml.in:99 #: ../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 of the monitor." "screen of the monitor."
msgstr "" msgstr ""
"Når sand, vil nye vinduer altid blive placeret i midten af den aktive skærm." "Når sand, vil nye vinduer altid blive placeret i midten af den aktive skærm."
#: data/org.gnome.mutter.gschema.xml.in:120 #: ../data/org.gnome.mutter.gschema.xml.in.h:21
msgid "Select window from tab popup" msgid "Select window from tab popup"
msgstr "Vælg vindue fra tab-pop-op" msgstr "Vælg vindue fra tab-pop-op"
#: data/org.gnome.mutter.gschema.xml.in:125 #: ../data/org.gnome.mutter.gschema.xml.in.h:22
msgid "Cancel tab popup" msgid "Cancel tab popup"
msgstr "Annullér faneblads-pop-op" msgstr "Annullér faneblads-pop-op"
#: data/org.gnome.mutter.wayland.gschema.xml.in:6 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:1
msgid "Switch to VT 1" msgid "Switch to VT 1"
msgstr "Skift til VT 1" msgstr "Skift til VT 1"
#: data/org.gnome.mutter.wayland.gschema.xml.in:10 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:2
msgid "Switch to VT 2" msgid "Switch to VT 2"
msgstr "Skift til VT 2" msgstr "Skift til VT 2"
#: data/org.gnome.mutter.wayland.gschema.xml.in:14 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:3
msgid "Switch to VT 3" msgid "Switch to VT 3"
msgstr "Skift til VT 3" msgstr "Skift til VT 3"
#: data/org.gnome.mutter.wayland.gschema.xml.in:18 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:4
msgid "Switch to VT 4" msgid "Switch to VT 4"
msgstr "Skift til VT 4" msgstr "Skift til VT 4"
#: data/org.gnome.mutter.wayland.gschema.xml.in:22 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:5
msgid "Switch to VT 5" msgid "Switch to VT 5"
msgstr "Skift til VT 5" msgstr "Skift til VT 5"
#: data/org.gnome.mutter.wayland.gschema.xml.in:26 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:6
msgid "Switch to VT 6" msgid "Switch to VT 6"
msgstr "Skift til VT 6" msgstr "Skift til VT 6"
#: data/org.gnome.mutter.wayland.gschema.xml.in:30 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:7
msgid "Switch to VT 7" msgid "Switch to VT 7"
msgstr "Skift til VT 7" msgstr "Skift til VT 7"
#: data/org.gnome.mutter.wayland.gschema.xml.in:34 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
msgid "Switch to VT 8" msgid "Switch to VT 8"
msgstr "Skift til VT 8" msgstr "Skift til VT 8"
#: data/org.gnome.mutter.wayland.gschema.xml.in:38 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
msgid "Switch to VT 9" msgid "Switch to VT 9"
msgstr "Skift til VT 9" msgstr "Skift til VT 9"
#: data/org.gnome.mutter.wayland.gschema.xml.in:42 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
msgid "Switch to VT 10" msgid "Switch to VT 10"
msgstr "Skift til VT 10" msgstr "Skift til VT 10"
#: data/org.gnome.mutter.wayland.gschema.xml.in:46 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
msgid "Switch to VT 11" msgid "Switch to VT 11"
msgstr "Skift til VT 11" msgstr "Skift til VT 11"
#: data/org.gnome.mutter.wayland.gschema.xml.in:50 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Skift til VT 12" msgstr "Skift til VT 12"
#. TRANSLATORS: This string refers to a button that switches between #: ../src/backends/meta-monitor-manager.c:518
#. * different modes.
#.
#: src/backends/meta-input-settings.c:1800
#, c-format
msgid "Mode Switch (Group %d)"
msgstr "Tilstandsskift (Gruppe %d)"
#. TRANSLATORS: This string refers to an action, cycles drawing tablets'
#. * mapping through the available outputs.
#.
#: src/backends/meta-input-settings.c:1822
msgid "Switch monitor"
msgstr "Skift skærm"
#: src/backends/meta-input-settings.c:1824
msgid "Show on-screen help"
msgstr "Vis integreret hjælp"
#: src/backends/meta-monitor-manager.c:675
msgid "Built-in display" msgid "Built-in display"
msgstr "Indbygget terminal" msgstr "Indbygget skærm"
#: src/backends/meta-monitor-manager.c:698 #: ../src/backends/meta-monitor-manager.c:544
msgid "Unknown" msgid "Unknown"
msgstr "Ukendt" msgstr "Ukendt"
#: src/backends/meta-monitor-manager.c:700 #: ../src/backends/meta-monitor-manager.c:546
msgid "Unknown Display" msgid "Unknown Display"
msgstr "Ukendt terminal" 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:708 #: ../src/backends/meta-monitor-manager.c:554
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
#. This probably means that a non-WM compositor like xcompmgr is running; #. This probably means that a non-WM compositor like xcompmgr is running;
#. * we have no way to get it to exit #. * we have no way to get it to exit
#: src/compositor/compositor.c:471 #: ../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 "" 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:194 #: ../src/core/bell.c:192
msgid "Bell event" msgid "Bell event"
msgstr "Bip-hændelse" msgstr "Bip-hændelse"
#. Translators: %s is a window title #: ../src/core/delete.c:127
#: src/core/delete.c:127
#, c-format #, c-format
msgid "“%s” is not responding." msgid "“%s” is not responding."
msgstr "“%s” svarer ikke." msgstr "“%s” svarer ikke."
#: src/core/delete.c:129 #: ../src/core/delete.c:129
msgid "Application is not responding." msgid "Application is not responding."
msgstr "Program svarer ikke." msgstr "Program svarer ikke."
#: 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 to quit entirely." "application to quit entirely."
@@ -289,297 +513,115 @@ msgstr ""
"Du kan vælge at vente et lille stykke tid på at programmet fortsætter, eller " "Du kan vælge at vente et lille stykke tid på at programmet fortsætter, eller "
"du kan tvinge programmet til at afslutte fuldstændigt." "du kan tvinge programmet til at afslutte fuldstændigt."
#: src/core/delete.c:141 #: ../src/core/delete.c:141
msgid "_Force Quit"
msgstr "_Tving til at afslutte"
#: src/core/delete.c:141
msgid "_Wait" msgid "_Wait"
msgstr "_Vent" msgstr "_Vent"
#: src/core/display.c:608 #: ../src/core/delete.c:141
msgid "_Force Quit"
msgstr "_Tving til at afslutte"
#: ../src/core/display.c:555
#, 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:189 #: ../src/core/main.c:181
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:195 #: ../src/core/main.c:187
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:201 #: ../src/core/main.c:193
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Angiv sessionhåndterings-id" msgstr "Angiv sessionhåndterings-id"
#: src/core/main.c:206 #: ../src/core/main.c:198
msgid "X Display to use" msgid "X Display to use"
msgstr "X-terminal som bruges" msgstr "X-skærm som bruges"
#: src/core/main.c:212 #: ../src/core/main.c:204
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:218 #: ../src/core/main.c:210
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:225 #: ../src/core/main.c:217
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:231 #: ../src/core/main.c:223
msgid "Run as a nested compositor" msgid "Run as a nested compositor"
msgstr "Kør som en indlejret kompositor" msgstr "Kør som en indlejret kompositor"
#: src/core/main.c:239 #: ../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 terminalserver, frem for indlejret" msgstr "Kør som fuld displayserver, frem for indlejret"
#: src/core/mutter.c:39 #: ../src/core/mutter.c:39
#, c-format #, c-format
msgid "" msgid ""
"mutter %s\n" "mutter %s\n"
"Copyright © 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 PURPOSE.\n" "PARTICULAR PURPOSE.\n"
msgstr "" msgstr ""
"mutter %s\n" "mutter %s\n"
"Copyright © 2001%d Havoc Pennington, Red Hat, Inc., og andre\n" "Copyright © 2001-%d Havoc Pennington, Red Hat, Inc., og andre\n"
"Dette er frit programmel; se kildekoden for kopieringsbetingelser.\n" "Dette er frit programmel; se kildekoden for kopieringsbetingelser.\n"
"Der er INGEN garanti; ikke engang for SALGBARHED eller EGNETHED TIL ET BESTEMT FORMÅL.\n" "Der er INGEN garanti; ikke engang for SALGBARHED eller EGNETHED TIL ET "
"BESTEMT FORMÅL.\n"
#: src/core/mutter.c:53 #: ../src/core/mutter.c:53
msgid "Print version" msgid "Print version"
msgstr "Vis version" msgstr "Vis version"
#: src/core/mutter.c:59 #: ../src/core/mutter.c:59
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:1997
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Arbejdsområde %d" msgstr "Arbejdsområde %d"
#: src/core/screen.c:580 #: ../src/core/screen.c:521
#, c-format #, c-format
msgid "" msgid ""
"Display “%s” already has a window manager; try using the --replace option to " "Display \"%s\" already has a window manager; try using the --replace option "
"replace the current window manager." "to replace the current window manager."
msgstr "" 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:665 #: ../src/core/screen.c:603
#, 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:120 #: ../src/core/util.c:121
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"
#: src/wayland/meta-wayland-tablet-pad.c:563 #: ../src/x11/session.c:1815
#, c-format
msgid "Mode Switch: Mode %d"
msgstr "Tilstandsskift: Tilstand %d"
#: src/x11/session.c:1815
msgid "" msgid ""
"These windows do not support save current setup and will have to be " "These windows do not support &quot;save current setup&quot; and will have to "
"restarted manually next time you log in." "be restarted manually next time you log in."
msgstr "Disse vinduer understøtter ikke at gemme deres opsætning og skal genstartes manuelt næste gang, du logger på." msgstr ""
"Disse vinduer understøtter ikke gemning af deres opsætning og skal "
"genstartes manuelt næste gang du logger på."
# Lad os håbe dette er rigtigt # Lad os håbe dette er rigtigt
#: src/x11/window-props.c:559 #: ../src/x11/window-props.c:549
#, c-format #, c-format
msgid "%s (on %s)" msgid "%s (on %s)"
msgstr "%s (på %s)" msgstr "%s (på %s)"
#~ msgid "Navigation"
#~ msgstr "Navigation"
#~ msgid "Move window to workspace 1"
#~ msgstr "Flyt vindue til arbejdsområde 1"
#~ msgid "Move window to workspace 2"
#~ msgstr "Flyt vindue til arbejdsområde 2"
#~ msgid "Move window to workspace 3"
#~ msgstr "Flyt vindue til arbejdsområde 3"
#~ msgid "Move window to workspace 4"
#~ msgstr "Flyt vindue til arbejdsområde 4"
#~ msgid "Move window to last workspace"
#~ msgstr "Flyt vindue til sidste arbejdsområde"
#~ msgid "Move window one workspace to the left"
#~ msgstr "Flyt vindue et arbejdsområde til venstre"
#~ msgid "Move window one workspace to the right"
#~ msgstr "Flyt vindue et arbejdsområde til højre"
#~ msgid "Move window one workspace up"
#~ msgstr "Flyt vindue et arbejdsområde op"
#~ msgid "Move window one workspace down"
#~ msgstr "Flyt vindue et arbejdsområde ned"
#~ msgid "Move window one monitor to the left"
#~ msgstr "Flyt vindue en skærm til venstre"
#~ msgid "Move window one monitor to the right"
#~ msgstr "Flyt vindue en skærm til højre"
#~ msgid "Move window one monitor up"
#~ msgstr "Flyt vindue en skærm op"
#~ msgid "Move window one monitor down"
#~ msgstr "Flyt vindue en skærm ned"
#~ msgid "Switch applications"
#~ msgstr "Skift mellem programmer"
#~ msgid "Switch to previous application"
#~ msgstr "Skift til forrige program"
#~ msgid "Switch windows"
#~ msgstr "Skift mellem vinduer"
#~ msgid "Switch to previous window"
#~ msgstr "Skift til forrige vindue"
#~ msgid "Switch windows of an application"
#~ msgstr "Skift mellem vinduer i et program"
#~ msgid "Switch to previous window of an application"
#~ msgstr "Skift til forrige vindue af et program"
#~ msgid "Switch system controls"
#~ msgstr "Skift mellem systemkontroller"
#~ msgid "Switch to previous system control"
#~ msgstr "Skift til forrige systemkontrol"
#~ msgid "Switch windows directly"
#~ msgstr "Skift direkte mellem vinduer"
#~ msgid "Switch directly to previous window"
#~ msgstr "Skift direkte til forrige vindue"
#~ msgid "Switch windows of an app directly"
#~ msgstr "Skift direkte mellem vinduer i et program"
#~ msgid "Switch directly to previous window of an app"
#~ msgstr "Skift direkte til forrige vindue af et program"
#~ msgid "Switch system controls directly"
#~ msgstr "Skift direkte mellem systemkontroller"
#~ msgid "Switch directly to previous system control"
#~ msgstr "Skift direkte til forrige systemkontrol"
#~ msgid "Hide all normal windows"
#~ msgstr "Skjul alle normale vinduer"
#~ msgid "Switch to workspace 1"
#~ msgstr "Skift til arbejdsområde 1"
#~ msgid "Switch to workspace 2"
#~ msgstr "Skift til arbejdsområde 2"
#~ msgid "Switch to workspace 3"
#~ msgstr "Skift til arbejdsområde 3"
#~ msgid "Switch to workspace 4"
#~ msgstr "Skift til arbejdsområde 4"
#~ msgid "Switch to last workspace"
#~ msgstr "Skift til sidste arbejdsområde"
#~ msgid "Move to workspace left"
#~ msgstr "Flyt til arbejdsområdet til venstre"
#~ msgid "Move to workspace right"
#~ msgstr "Flyt til arbejdsområdet til højre"
#~ msgid "Move to workspace above"
#~ msgstr "Flyt til arbejdsområdet ovenover"
#~ msgid "Move to workspace below"
#~ msgstr "Flyt til arbejdsområdet nedenunder"
#~ msgid "System"
#~ msgstr "System"
#~ msgid "Show the run command prompt"
#~ msgstr "Vis \"kør kommando\"-prompten"
#~ msgid "Show the activities overview"
#~ msgstr "Vis aktivitetsoversigten"
#~ msgid "Windows"
#~ msgstr "Vinduer"
#~ msgid "Activate the window menu"
#~ msgstr "Aktivér vinduesmenuen"
#~ msgid "Toggle fullscreen mode"
#~ msgstr "Slå fuldskærmstilstand til/fra"
#~ msgid "Toggle maximization state"
#~ msgstr "Slå maksimering til/fra"
#~ msgid "Maximize window"
#~ msgstr "Maksimér vindue"
#~ msgid "Restore window"
#~ msgstr "Gendan vindue"
#~ msgid "Toggle shaded state"
#~ msgstr "Slå vinduesoprulning til/fra"
#~ msgid "Close window"
#~ msgstr "Luk vindue"
#~ msgid "Hide window"
#~ msgstr "Skjul vindue"
#~ msgid "Move window"
#~ msgstr "Flyt vindue"
#~ msgid "Resize window"
#~ msgstr "Ændr vinduesstørrelse"
#~ msgid "Toggle window on all workspaces or one"
#~ msgstr "Slå visning af vindue på alle arbejdsområder til/fra"
#~ msgid "Raise window if covered, otherwise lower it"
#~ msgstr "Hæv vindue hvis det er dækket, ellers sænk det"
#~ msgid "Raise window above other windows"
#~ msgstr "Hæv vindue over andre vinduer"
#~ msgid "Lower window below other windows"
#~ msgstr "Sænk vindue under andre vinduer"
#~ msgid "Maximize window vertically"
#~ msgstr "Maksimér vindue lodret"
#~ msgid "Maximize window horizontally"
#~ msgstr "Maksimér vindue vandret"
#~ msgid "View split on left"
#~ msgstr "Delt visning venstre"
#~ msgid "View split on right"
#~ msgstr "Delt visning højre"
#~ msgid "Failed to scan themes directory: %s\n" #~ msgid "Failed to scan themes directory: %s\n"
#~ msgstr "Kunne ikke skanne temamappe: %s\n" #~ msgstr "Kunne ikke skanne temamappe: %s\n"
@@ -589,6 +631,9 @@ msgstr "%s (på %s)"
#~ "Kunne ikke finde et tema! Sikr dig at %s eksisterer og indeholder de " #~ "Kunne ikke finde et tema! Sikr dig at %s eksisterer og indeholder de "
#~ "sædvanlige temaer.\n" #~ "sædvanlige temaer.\n"
#~ msgid "Screen %d on display \"%s\" already has a window manager\n"
#~ msgstr "Skærm %d på terminal \"%s\" har allerede en vindueshåndtering\n"
#~ msgid "%d x %d" #~ msgid "%d x %d"
#~ msgstr "%d x %d" #~ msgstr "%d x %d"
@@ -1088,6 +1133,15 @@ msgstr "%s (på %s)"
#~ "\"%s\" fundet i konfigurationsdatabasen er ikke en gyldig værdi for " #~ "\"%s\" fundet i konfigurationsdatabasen er ikke en gyldig værdi for "
#~ "tastebindingen \"%s\"\n" #~ "tastebindingen \"%s\"\n"
#~ msgid ""
#~ "Could not acquire window manager selection on screen %d display \"%s\"\n"
#~ msgstr ""
#~ "Kunne ikke fremskaffe vindueshåndteringvælgeren på skærm %d på terminal "
#~ "\"%s\"\n"
#~ msgid "Could not release screen %d on display \"%s\"\n"
#~ msgstr "Kunne ikke frigive skærm %d på terminal \"%s\"\n"
#~ msgid "Could not create directory '%s': %s\n" #~ msgid "Could not create directory '%s': %s\n"
#~ msgstr "Kunne ikke oprette mappen \"%s\": %s\n" #~ msgstr "Kunne ikke oprette mappen \"%s\": %s\n"

525
po/de.po
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-2017. # Mario Blättermann <mario.blaettermann@gmail.com>, 2010-2013, 2016.
# 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,8 +13,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: 2017-02-16 01:44+0000\n" "POT-Creation-Date: 2016-08-19 21:04+0000\n"
"PO-Revision-Date: 2017-02-17 21:22+0100\n" "PO-Revision-Date: 2016-08-21 11:45+0200\n"
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n" "Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
"Language-Team: Deutsch <gnome-de@gnome.org>\n" "Language-Team: Deutsch <gnome-de@gnome.org>\n"
"Language: de\n" "Language: de\n"
@@ -22,248 +22,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.11\n" "X-Generator: Poedit 1.8.8\n"
#: data/50-mutter-navigation.xml:6
msgid "Navigation"
msgstr "Navigation"
#: data/50-mutter-navigation.xml:9
msgid "Move window to workspace 1"
msgstr "Fenster auf Arbeitsfläche 1 verschieben"
#: data/50-mutter-navigation.xml:12
msgid "Move window to workspace 2"
msgstr "Fenster auf Arbeitsfläche 2 verschieben"
#: data/50-mutter-navigation.xml:15
msgid "Move window to workspace 3"
msgstr "Fenster auf Arbeitsfläche 3 verschieben"
#: data/50-mutter-navigation.xml:18
msgid "Move window to workspace 4"
msgstr "Fenster auf Arbeitsfläche 4 verschieben"
#: data/50-mutter-navigation.xml:21
msgid "Move window to last workspace"
msgstr "Fenster auf letzte Arbeitsfläche verschieben"
#: data/50-mutter-navigation.xml:24
msgid "Move window one workspace to the left"
msgstr "Fenster eine Arbeitsfläche nach links verschieben"
#: data/50-mutter-navigation.xml:27
msgid "Move window one workspace to the right"
msgstr "Fenster eine Arbeitsfläche nach rechts verschieben"
#: data/50-mutter-navigation.xml:30
msgid "Move window one workspace up"
msgstr "Fenster eine Arbeitsfläche nach oben verschieben"
#: data/50-mutter-navigation.xml:33
msgid "Move window one workspace down"
msgstr "Fenster eine Arbeitsfläche nach unten verschieben"
#: data/50-mutter-navigation.xml:36
msgid "Move window one monitor to the left"
msgstr "Fenster einen Bildschirm nach links verschieben"
#: data/50-mutter-navigation.xml:39
msgid "Move window one monitor to the right"
msgstr "Fenster einen Bildschirm nach rechts verschieben"
#: data/50-mutter-navigation.xml:42
msgid "Move window one monitor up"
msgstr "Fenster einen Bildschirm nach oben verschieben"
#: data/50-mutter-navigation.xml:45
msgid "Move window one monitor down"
msgstr "Fenster einen Bildschirm nach unten verschieben"
#: data/50-mutter-navigation.xml:49
msgid "Switch applications"
msgstr "Anwendungen wechseln"
#: data/50-mutter-navigation.xml:54
msgid "Switch to previous application"
msgstr "Zur vorherigen Anwendung wechseln"
#: data/50-mutter-navigation.xml:58
msgid "Switch windows"
msgstr "Fenster wechseln"
#: data/50-mutter-navigation.xml:63
msgid "Switch to previous window"
msgstr "Zum vorherigen Fenster wechseln"
#: data/50-mutter-navigation.xml:67
msgid "Switch windows of an application"
msgstr "Zwischen den Fenstern einer Anwendung wechseln"
#: data/50-mutter-navigation.xml:72
msgid "Switch to previous window of an application"
msgstr "Zum vorherigen Fenster einer Anwendung wechseln"
#: data/50-mutter-navigation.xml:76
msgid "Switch system controls"
msgstr "Systemsteuerungen umschalten"
#: data/50-mutter-navigation.xml:81
msgid "Switch to previous system control"
msgstr "Zur vorherigen Systemsteuerungen wechseln"
#: data/50-mutter-navigation.xml:85
msgid "Switch windows directly"
msgstr "Fenster sofort wechseln"
#: data/50-mutter-navigation.xml:90
msgid "Switch directly to previous window"
msgstr "Direkt zum vorherigen Fenster wechseln"
#: data/50-mutter-navigation.xml:94
msgid "Switch windows of an app directly"
msgstr "Sofort zwischen den Fenstern einer Anwendung wechseln"
#: data/50-mutter-navigation.xml:99
msgid "Switch directly to previous window of an app"
msgstr "Direkt zum vorherigen Fenster einer Anwendung wechseln"
#: data/50-mutter-navigation.xml:103
msgid "Switch system controls directly"
msgstr "Systemsteuerungen sofort umschalten"
#: data/50-mutter-navigation.xml:108
msgid "Switch directly to previous system control"
msgstr "Direkt zur vorherigen Systemsteuerungen wechselen"
#: data/50-mutter-navigation.xml:111
msgid "Hide all normal windows"
msgstr "Alle normalen Fenster verbergen"
#: data/50-mutter-navigation.xml:114
msgid "Switch to workspace 1"
msgstr "Zur Arbeitsfläche 1 wechseln"
#: data/50-mutter-navigation.xml:117
msgid "Switch to workspace 2"
msgstr "Zur Arbeitsfläche 2 wechseln"
#: data/50-mutter-navigation.xml:120
msgid "Switch to workspace 3"
msgstr "Zur Arbeitsfläche 3 wechseln"
#: data/50-mutter-navigation.xml:123
msgid "Switch to workspace 4"
msgstr "Zur Arbeitsfläche 4 wechseln"
#: data/50-mutter-navigation.xml:126
msgid "Switch to last workspace"
msgstr "Zur letzten Arbeitsfläche wechseln"
#: data/50-mutter-navigation.xml:129
msgid "Move to workspace left"
msgstr "Auf Arbeitsfläche links verschieben"
#: data/50-mutter-navigation.xml:132
msgid "Move to workspace right"
msgstr "Auf Arbeitsfläche rechts verschieben"
#: data/50-mutter-navigation.xml:135
msgid "Move to workspace above"
msgstr "Auf Arbeitsfläche darüber verschieben"
#: data/50-mutter-navigation.xml:138
msgid "Move to workspace below"
msgstr "Auf Arbeitsfläche darunter verschieben"
#: data/50-mutter-system.xml:6
msgid "System"
msgstr "System"
#: data/50-mutter-system.xml:8
msgid "Show the run command prompt"
msgstr "Den »Befehl ausführen«-Dialog anzeigen"
#: data/50-mutter-system.xml:10
msgid "Show the activities overview"
msgstr "Aktivitäten-Übersicht anzeigen"
#: data/50-mutter-windows.xml:6
msgid "Windows"
msgstr "Fenster"
#: data/50-mutter-windows.xml:8
msgid "Activate the window menu"
msgstr "Das Fenstermenü aktivieren"
#: data/50-mutter-windows.xml:10
msgid "Toggle fullscreen mode"
msgstr "Vollbildmodus ein-/ausschalten"
#: data/50-mutter-windows.xml:12
msgid "Toggle maximization state"
msgstr "Maximierungszustand ein-/ausschalten"
#: data/50-mutter-windows.xml:14
msgid "Maximize window"
msgstr "Fenster maximieren"
#: data/50-mutter-windows.xml:16
msgid "Restore window"
msgstr "Fenstergröße wiederherstellen"
#: data/50-mutter-windows.xml:18
msgid "Toggle shaded state"
msgstr "Fenster ein-/ausrollen"
#: data/50-mutter-windows.xml:20
msgid "Close window"
msgstr "Fenster schließen"
#: data/50-mutter-windows.xml:22
msgid "Hide window"
msgstr "Fenster verbergen"
#: data/50-mutter-windows.xml:24
msgid "Move window"
msgstr "Fenster verschieben"
#: data/50-mutter-windows.xml:26
msgid "Resize window"
msgstr "Fenstergröße ändern"
#: data/50-mutter-windows.xml:29
msgid "Toggle window on all workspaces or one"
msgstr ""
"Festlegen, ob das Fenster auf allen oder nur einer Arbeitsfläche sichtbar ist"
#: data/50-mutter-windows.xml:31
msgid "Raise window if covered, otherwise lower it"
msgstr "Fenster anheben, falls es verdeckt ist, andernfalls absenken"
#: data/50-mutter-windows.xml:33
msgid "Raise window above other windows"
msgstr "Fenster vor die anderen Fenster anheben"
#: data/50-mutter-windows.xml:35
msgid "Lower window below other windows"
msgstr "Fenster hinter die anderen Fenster absenken"
#: data/50-mutter-windows.xml:37
msgid "Maximize window vertically"
msgstr "Fenster vertikal maximieren"
#: data/50-mutter-windows.xml:39
msgid "Maximize window horizontally"
msgstr "Fenster horizontal maximieren"
#: data/50-mutter-windows.xml:43
msgid "View split on left"
msgstr "Ansicht links teilen"
#: data/50-mutter-windows.xml:47
msgid "View split on right"
msgstr "Ansicht rechts teilen"
#: data/mutter.desktop.in:4 #: data/mutter.desktop.in:4
msgid "Mutter" msgid "Mutter"
@@ -276,10 +35,10 @@ msgstr "Zusatztaste für erweiterte Aktionen der Fensterverwaltung"
# bzw- die Apfel-Taste auf Mac-Computern # bzw- die Apfel-Taste auf Mac-Computern
#: data/org.gnome.mutter.gschema.xml.in:8 #: data/org.gnome.mutter.gschema.xml.in:8
msgid "" msgid ""
"This key will initiate the overlay, which is a combination window overview " "This key will initiate the \"overlay\", which is a combination window "
"and application launching system. The default is intended to be the “Windows " "overview and application launching system. The default is intended to be the "
"key on PC hardware. Its expected that this binding either the default or " "\"Windows key\" on PC hardware. It's expected that this binding either the "
"set to the empty string." "default or set to the empty string."
msgstr "" msgstr ""
"Dieser Schlüssel wird die »Überlagerung« auslösen, d.h. eine kombinierte " "Dieser Schlüssel wird die »Überlagerung« auslösen, d.h. eine kombinierte "
"Fensterübersicht und ein System zum Starten von Anwendungen. Als " "Fensterübersicht und ein System zum Starten von Anwendungen. Als "
@@ -323,7 +82,7 @@ msgstr "Arbeitsflächen sollen dynamisch verwaltet werden "
#: data/org.gnome.mutter.gschema.xml.in:41 #: data/org.gnome.mutter.gschema.xml.in:41
msgid "" msgid ""
"Determines whether workspaces are managed dynamically or whether theres 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.desktop.wm.preferences)." "gnome.desktop.wm.preferences)."
msgstr "" msgstr ""
@@ -361,9 +120,9 @@ msgstr "Fokus-Änderungen verzögern, bis der Zeiger aufhört sich zu bewegen"
#: data/org.gnome.mutter.gschema.xml.in:69 #: data/org.gnome.mutter.gschema.xml.in:69
msgid "" msgid ""
"If set to true, and the focus mode is either sloppy or mouse then the " "If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
"focus will not be changed immediately when entering a window, but only after " "the focus will not be changed immediately when entering a window, but only "
"the pointer stops moving." "after the pointer stops moving."
msgstr "" msgstr ""
"Falls dieser Schlüssel gesetzt ist und der Fokusmodus entweder »sloppy« oder " "Falls dieser Schlüssel gesetzt ist und der Fokusmodus entweder »sloppy« oder "
"»mouse« ist, wird der Fokus nicht sofort beim Erreichen eines Fensters " "»mouse« ist, wird der Fokus nicht sofort beim Erreichen eines Fensters "
@@ -376,7 +135,7 @@ msgstr "Breite der ziehbaren Ränder"
# Lange Beschreibung von »Draggable border width« # Lange Beschreibung von »Draggable border width«
#: data/org.gnome.mutter.gschema.xml.in:80 #: data/org.gnome.mutter.gschema.xml.in:80
msgid "" msgid ""
"The amount of total draggable borders. If the themes visible borders are " "The amount of total draggable borders. If the theme's visible borders are "
"not enough, invisible borders will be added to meet this value." "not enough, invisible borders will be added to meet this value."
msgstr "" msgstr ""
"Die Gesamtbreite ziehbarer Ränder. Falls die im Thema sichtbaren Ränder " "Die Gesamtbreite ziehbarer Ränder. Falls die im Thema sichtbaren Ränder "
@@ -463,51 +222,41 @@ 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"
#. TRANSLATORS: This string refers to a button that switches between #: src/backends/meta-input-settings.c:1707
#. * different modes.
#.
#: src/backends/meta-input-settings.c:1759
#, c-format
msgid "Mode Switch (Group %d)"
msgstr "Moduswechsel (Gruppe %d)"
#. TRANSLATORS: This string refers to an action, cycles drawing tablets'
#. * mapping through the available outputs.
#.
#: src/backends/meta-input-settings.c:1781
msgid "Switch monitor" msgid "Switch monitor"
msgstr "Bildschirm wechseln" msgstr "Bildschirm wechseln"
#: src/backends/meta-input-settings.c:1783 #: src/backends/meta-input-settings.c:1709
msgid "Show on-screen help" msgid "Show on-screen help"
msgstr "Bildschirmhilfe anzeigen" msgstr "Bildschirmhilfe anzeigen"
#: src/backends/meta-monitor-manager.c:675 #: src/backends/meta-monitor-manager.c:514
msgid "Built-in display" msgid "Built-in display"
msgstr "Eingebaute Anzeige" msgstr "Eingebaute Anzeige"
#: src/backends/meta-monitor-manager.c:698 #: src/backends/meta-monitor-manager.c:537
msgid "Unknown" msgid "Unknown"
msgstr "Unbekannt" msgstr "Unbekannt"
#: src/backends/meta-monitor-manager.c:700 #: src/backends/meta-monitor-manager.c:539
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:708 #: src/backends/meta-monitor-manager.c:547
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
#. This probably means that a non-WM compositor like xcompmgr is running; #. This probably means that a non-WM compositor like xcompmgr is running;
#. * we have no way to get it to exit #. * we have no way to get it to exit
#: src/compositor/compositor.c:471 #: src/compositor/compositor.c:463
#, 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 "" msgstr ""
"Ein weiterer Compositing-Verwalter läuft bereits auf Bildschirm %i der " "Ein weiterer Compositing-Verwalter läuft bereits auf Bildschirm %i der "
"Anzeige »%s«." "Anzeige »%s«."
@@ -516,7 +265,6 @@ msgstr ""
msgid "Bell event" msgid "Bell event"
msgstr "Klangereignis" msgstr "Klangereignis"
#. Translators: %s is a window title
#: src/core/delete.c:127 #: src/core/delete.c:127
#, c-format #, c-format
msgid "“%s” is not responding." msgid "“%s” is not responding."
@@ -534,52 +282,52 @@ msgstr ""
"Sie können der Anwendung noch etwas Zeit geben oder ein sofortiges Beenden " "Sie können der Anwendung noch etwas Zeit geben oder ein sofortiges Beenden "
"erzwingen." "erzwingen."
#: src/core/delete.c:141
msgid "_Force Quit"
msgstr "_Beenden erzwingen"
#: src/core/delete.c:141 #: src/core/delete.c:141
msgid "_Wait" msgid "_Wait"
msgstr "_Warten" msgstr "_Warten"
#: src/core/display.c:608 #: src/core/delete.c:141
msgid "_Force Quit"
msgstr "_Beenden erzwingen"
#: src/core/display.c:590
#, 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:189 #: src/core/main.c:182
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:195 #: src/core/main.c:188
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:201 #: src/core/main.c:194
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Kennung der Sitzungsverwaltung angeben" msgstr "Kennung der Sitzungsverwaltung angeben"
#: src/core/main.c:206 #: src/core/main.c:199
msgid "X Display to use" msgid "X Display to use"
msgstr "Zu verwendende X-Anzeige" msgstr "Zu verwendende X-Anzeige"
#: src/core/main.c:212 #: src/core/main.c:205
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:218 #: src/core/main.c:211
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "X-Aufrufe abgleichen" msgstr "X-Aufrufe abgleichen"
#: src/core/main.c:225 #: src/core/main.c:218
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:231 #: src/core/main.c:224
msgid "Run as a nested compositor" msgid "Run as a nested compositor"
msgstr "Als eingebetteten Compositor ausführen" msgstr "Als eingebetteten Compositor ausführen"
#: src/core/main.c:239 #: src/core/main.c:232
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)"
@@ -589,7 +337,7 @@ msgstr "Als vollwertigen Display-Server verwenden (nicht eingebettet)"
#, c-format #, c-format
msgid "" msgid ""
"mutter %s\n" "mutter %s\n"
"Copyright © 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 PURPOSE.\n" "PARTICULAR PURPOSE.\n"
@@ -614,42 +362,221 @@ msgstr "Zu benutzendes Mutter-Plugin"
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Arbeitsfläche %d" msgstr "Arbeitsfläche %d"
#: src/core/screen.c:580 #: src/core/screen.c:521
#, c-format #, c-format
msgid "" msgid ""
"Display “%s” already has a window manager; try using the --replace option to " "Display \"%s\" already has a window manager; try using the --replace option "
"replace the current window manager." "to replace the current window manager."
msgstr "" 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:665 #: src/core/screen.c:606
#, 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:120 #: src/core/util.c:120
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"
#: src/wayland/meta-wayland-tablet-pad.c:563 #: src/wayland/meta-wayland-tablet-pad.c:595
#, c-format #, c-format
msgid "Mode Switch: Mode %d" msgid "Mode Switch: Mode %d"
msgstr "Moduswechsel: Modus %d" msgstr "Moduswechsel: Modus %d"
#: src/x11/session.c:1815 #: src/x11/session.c:1815
msgid "" msgid ""
"These windows do not support save current setup and will have to be " "These windows do not support &quot;save current setup&quot; and will have to "
"restarted manually next time you log in." "be restarted manually next time you log in."
msgstr "" msgstr ""
"Diese Fenster unterstützen das Speichern der aktuellen Einstellungen nicht " "Diese Fenster unterstützen das Speichern der aktuellen Einstellungen nicht "
"und müssen bei der nächsten Anmeldung manuell neu gestartet werden." "und müssen bei der nächsten Anmeldung manuell neu gestartet werden."
#: src/x11/window-props.c:559 #: src/x11/window-props.c:548
#, c-format #, c-format
msgid "%s (on %s)" msgid "%s (on %s)"
msgstr "%s (auf %s)" msgstr "%s (auf %s)"
#~ msgid "Navigation"
#~ msgstr "Navigation"
#~ msgid "Move window to workspace 1"
#~ msgstr "Fenster auf Arbeitsfläche 1 verschieben"
#~ msgid "Move window to workspace 2"
#~ msgstr "Fenster auf Arbeitsfläche 2 verschieben"
#~ msgid "Move window to workspace 3"
#~ msgstr "Fenster auf Arbeitsfläche 3 verschieben"
#~ msgid "Move window to workspace 4"
#~ msgstr "Fenster auf Arbeitsfläche 4 verschieben"
#~ msgid "Move window to last workspace"
#~ msgstr "Fenster auf letzte Arbeitsfläche verschieben"
#~ msgid "Move window one workspace to the left"
#~ msgstr "Fenster eine Arbeitsfläche nach links verschieben"
#~ msgid "Move window one workspace to the right"
#~ msgstr "Fenster eine Arbeitsfläche nach rechts verschieben"
#~ msgid "Move window one workspace up"
#~ msgstr "Fenster eine Arbeitsfläche nach oben verschieben"
#~ msgid "Move window one workspace down"
#~ msgstr "Fenster eine Arbeitsfläche nach unten verschieben"
#~ msgid "Move window one monitor to the left"
#~ msgstr "Fenster einen Bildschirm nach links verschieben"
#~ msgid "Move window one monitor to the right"
#~ msgstr "Fenster einen Bildschirm nach rechts verschieben"
#~ msgid "Move window one monitor up"
#~ msgstr "Fenster einen Bildschirm nach oben verschieben"
#~ msgid "Move window one monitor down"
#~ msgstr "Fenster einen Bildschirm nach unten verschieben"
#~ msgid "Switch applications"
#~ msgstr "Anwendungen wechseln"
#~ msgid "Switch to previous application"
#~ msgstr "Zur vorherigen Anwendung wechseln"
#~ msgid "Switch windows"
#~ msgstr "Fenster wechseln"
#~ msgid "Switch to previous window"
#~ msgstr "Zum vorherigen Fenster wechseln"
#~ msgid "Switch windows of an application"
#~ msgstr "Zwischen den Fenstern einer Anwendung wechseln"
#~ msgid "Switch to previous window of an application"
#~ msgstr "Zum vorherigen Fenster einer Anwendung wechseln"
#~ msgid "Switch to previous system control"
#~ msgstr "Zur vorherigen Systemsteuerungen wechseln"
#~ msgid "Switch windows directly"
#~ msgstr "Fenster sofort wechseln"
#~ msgid "Switch directly to previous window"
#~ msgstr "Direkt zum vorherigen Fenster wechseln"
#~ msgid "Switch windows of an app directly"
#~ msgstr "Sofort zwischen den Fenstern einer Anwendung wechseln"
#~ msgid "Switch directly to previous window of an app"
#~ msgstr "Direkt zum vorherigen Fenster einer Anwendung wechseln"
#~ msgid "Switch system controls directly"
#~ msgstr "Systemsteuerungen sofort umschalten"
#~ msgid "Switch directly to previous system control"
#~ msgstr "Direkt zur vorherigen Systemsteuerungen wechselen"
#~ msgid "Hide all normal windows"
#~ msgstr "Alle normalen Fenster verbergen"
#~ msgid "Switch to workspace 1"
#~ msgstr "Zur Arbeitsfläche 1 wechseln"
#~ msgid "Switch to workspace 2"
#~ msgstr "Zur Arbeitsfläche 2 wechseln"
#~ msgid "Switch to workspace 3"
#~ msgstr "Zur Arbeitsfläche 3 wechseln"
#~ msgid "Switch to workspace 4"
#~ msgstr "Zur Arbeitsfläche 4 wechseln"
#~ msgid "Switch to last workspace"
#~ msgstr "Zur letzten Arbeitsfläche wechseln"
#~ msgid "Move to workspace left"
#~ msgstr "Auf Arbeitsfläche links verschieben"
#~ msgid "Move to workspace right"
#~ msgstr "Auf Arbeitsfläche rechts verschieben"
#~ msgid "Move to workspace above"
#~ msgstr "Auf Arbeitsfläche darüber verschieben"
#~ msgid "Move to workspace below"
#~ msgstr "Auf Arbeitsfläche darunter verschieben"
#~ msgid "System"
#~ msgstr "System"
#~ msgid "Show the run command prompt"
#~ msgstr "Den »Befehl ausführen«-Dialog anzeigen"
#~ msgid "Show the activities overview"
#~ msgstr "Aktivitäten-Übersicht anzeigen"
#~ msgid "Windows"
#~ msgstr "Fenster"
#~ msgid "Activate the window menu"
#~ msgstr "Das Fenstermenü aktivieren"
#~ msgid "Toggle fullscreen mode"
#~ msgstr "Vollbildmodus ein-/ausschalten"
#~ msgid "Toggle maximization state"
#~ msgstr "Maximierungszustand ein-/ausschalten"
#~ msgid "Maximize window"
#~ msgstr "Fenster maximieren"
#~ msgid "Restore window"
#~ msgstr "Fenstergröße wiederherstellen"
#~ msgid "Toggle shaded state"
#~ msgstr "Fenster ein-/ausrollen"
#~ msgid "Close window"
#~ msgstr "Fenster schließen"
#~ msgid "Hide window"
#~ msgstr "Fenster verbergen"
#~ msgid "Move window"
#~ msgstr "Fenster verschieben"
#~ msgid "Resize window"
#~ msgstr "Fenstergröße ändern"
#~ msgid "Toggle window on all workspaces or one"
#~ msgstr ""
#~ "Festlegen, ob das Fenster auf allen oder nur einer Arbeitsfläche sichtbar "
#~ "ist"
#~ msgid "Raise window if covered, otherwise lower it"
#~ msgstr "Fenster anheben, falls es verdeckt ist, andernfalls absenken"
#~ msgid "Raise window above other windows"
#~ msgstr "Fenster vor die anderen Fenster anheben"
#~ msgid "Lower window below other windows"
#~ msgstr "Fenster hinter die anderen Fenster absenken"
#~ msgid "Maximize window vertically"
#~ msgstr "Fenster vertikal maximieren"
#~ msgid "Maximize window horizontally"
#~ msgstr "Fenster horizontal maximieren"
#~ msgid "View split on left"
#~ msgstr "Ansicht links teilen"
#~ msgid "View split on right"
#~ msgstr "Ansicht rechts teilen"
#~ msgid "Failed to scan themes directory: %s\n" #~ msgid "Failed to scan themes directory: %s\n"
#~ msgstr "Der Themenordner konnte nicht eingelesen werden: %s\n" #~ msgstr "Der Themenordner konnte nicht eingelesen werden: %s\n"

363
po/el.po
View File

@@ -18,285 +18,286 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: metacity.gnome-2-26\n" "Project-Id-Version: metacity.gnome-2-26\n"
"Report-Msgid-Bugs-To: https://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: 2017-02-28 06:20+0000\n" "POT-Creation-Date: 2016-03-12 01:36+0000\n"
"PO-Revision-Date: 2017-04-07 13:41+0300\n" "PO-Revision-Date: 2016-03-14 23:05+0200\n"
"Last-Translator: Tom Tryfonidis <tomtryf@gnome.org>\n" "Last-Translator: Tom Tryfonidis <tomtryf@gmail.com>\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.11\n" "X-Generator: Poedit 1.8.7\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
#: data/50-mutter-navigation.xml:6 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation" msgid "Navigation"
msgstr "Περιήγηση" msgstr "Περιήγηση"
#: data/50-mutter-navigation.xml:9 #: ../data/50-mutter-navigation.xml.in.h:2
msgid "Move window to workspace 1" msgid "Move window to workspace 1"
msgstr "Μετακίνηση παραθύρου στον χώρο εργασίας 1" msgstr "Μετακίνηση παραθύρου στον χώρο εργασίας 1"
#: data/50-mutter-navigation.xml:12 #: ../data/50-mutter-navigation.xml.in.h:3
msgid "Move window to workspace 2" msgid "Move window to workspace 2"
msgstr "Μετακίνηση παραθύρου στον χώρο εργασίας 2" msgstr "Μετακίνηση παραθύρου στον χώρο εργασίας 2"
#: data/50-mutter-navigation.xml:15 #: ../data/50-mutter-navigation.xml.in.h:4
msgid "Move window to workspace 3" msgid "Move window to workspace 3"
msgstr "Μετακίνηση παραθύρου στον χώρο εργασίας 3" msgstr "Μετακίνηση παραθύρου στον χώρο εργασίας 3"
#: data/50-mutter-navigation.xml:18 #: ../data/50-mutter-navigation.xml.in.h:5
msgid "Move window to workspace 4" msgid "Move window to workspace 4"
msgstr "Μετακίνηση παραθύρου στον χώρο εργασίας 4" msgstr "Μετακίνηση παραθύρου στον χώρο εργασίας 4"
#: data/50-mutter-navigation.xml:21 #: ../data/50-mutter-navigation.xml.in.h:6
msgid "Move window to last workspace" msgid "Move window to last workspace"
msgstr "Μετακίνηση παραθύρου στον τελευταίο χώρο εργασίας" msgstr "Μετακίνηση παραθύρου στον τελευταίο χώρο εργασίας"
#: data/50-mutter-navigation.xml:24 #: ../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 "Μετακίνηση παραθύρου έναν χώρο εργασίας αριστερά" msgstr "Μετακίνηση παραθύρου έναν χώρο εργασίας αριστερά"
#: data/50-mutter-navigation.xml:27 #: ../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 "Μετακίνηση παραθύρου έναν χώρο εργασίας δεξιά" msgstr "Μετακίνηση παραθύρου έναν χώρο εργασίας δεξιά"
#: data/50-mutter-navigation.xml:30 #: ../data/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace up" msgid "Move window one workspace up"
msgstr "Μετακίνηση παραθύρου έναν χώρο εργασίας πάνω" msgstr "Μετακίνηση παραθύρου έναν χώρο εργασίας πάνω"
#: data/50-mutter-navigation.xml:33 #: ../data/50-mutter-navigation.xml.in.h:10
msgid "Move window one workspace down" msgid "Move window one workspace down"
msgstr "Μετακίνηση παραθύρου έναν χώρο εργασίας κάτω" msgstr "Μετακίνηση παραθύρου έναν χώρο εργασίας κάτω"
#: data/50-mutter-navigation.xml:36 #: ../data/50-mutter-navigation.xml.in.h:11
msgid "Move window one monitor to the left" msgid "Move window one monitor to the left"
msgstr "Μετακίνηση παραθύρου κατά μια οθόνη στα αριστερά" msgstr "Μετακίνηση παραθύρου κατά μια οθόνη στα αριστερά"
#: data/50-mutter-navigation.xml:39 #: ../data/50-mutter-navigation.xml.in.h:12
msgid "Move window one monitor to the right" msgid "Move window one monitor to the right"
msgstr "Μετακίνηση παραθύρου κατά μια οθόνη στα δεξιά" msgstr "Μετακίνηση παραθύρου κατά μια οθόνη στα δεξιά"
#: data/50-mutter-navigation.xml:42 #: ../data/50-mutter-navigation.xml.in.h:13
msgid "Move window one monitor up" msgid "Move window one monitor up"
msgstr "Μετακίνηση παραθύρου κατά μια οθόνη προς τα πάνω" msgstr "Μετακίνηση παραθύρου κατά μια οθόνη προς τα πάνω"
#: data/50-mutter-navigation.xml:45 #: ../data/50-mutter-navigation.xml.in.h:14
msgid "Move window one monitor down" msgid "Move window one monitor down"
msgstr "Μετακίνηση παραθύρου κατά μια οθόνη προς τα κάτω" msgstr "Μετακίνηση παραθύρου κατά μια οθόνη προς τα κάτω"
#: data/50-mutter-navigation.xml:49 #: ../data/50-mutter-navigation.xml.in.h:15
msgid "Switch applications" msgid "Switch applications"
msgstr "Εναλλαγή εφαρμογών" msgstr "Εναλλαγή εφαρμογών"
#: data/50-mutter-navigation.xml:54 #: ../data/50-mutter-navigation.xml.in.h:16
msgid "Switch to previous application" msgid "Switch to previous application"
msgstr "Εναλλαγή στην προηγούμενη εφαρμογή" msgstr "Εναλλαγή στην προηγούμενη εφαρμογή"
#: data/50-mutter-navigation.xml:58 #: ../data/50-mutter-navigation.xml.in.h:17
msgid "Switch windows" msgid "Switch windows"
msgstr "Εναλλαγή παραθύρων" msgstr "Εναλλαγή παραθύρων"
#: data/50-mutter-navigation.xml:63 #: ../data/50-mutter-navigation.xml.in.h:18
msgid "Switch to previous window" msgid "Switch to previous window"
msgstr "Εναλλαγή στο προηγούμενο παράθυρο" msgstr "Εναλλαγή στο προηγούμενο παράθυρο"
#: data/50-mutter-navigation.xml:67 #: ../data/50-mutter-navigation.xml.in.h:19
msgid "Switch windows of an application" msgid "Switch windows of an application"
msgstr "Εναλλαγή παραθύρων μιας εφαρμογής" msgstr "Εναλλαγή παραθύρων μιας εφαρμογής"
#: data/50-mutter-navigation.xml:72 #: ../data/50-mutter-navigation.xml.in.h:20
msgid "Switch to previous window of an application" msgid "Switch to previous window of an application"
msgstr "Εναλλαγή στο προηγούμενο παράθυρο μιας εφαρμογής" msgstr "Εναλλαγή στο προηγούμενο παράθυρο μιας εφαρμογής"
#: data/50-mutter-navigation.xml:76 #: ../data/50-mutter-navigation.xml.in.h:21
msgid "Switch system controls" msgid "Switch system controls"
msgstr "Εναλλαγή ελέγχων συστήματος" msgstr "Εναλλαγή ελέγχων συστήματος"
#: data/50-mutter-navigation.xml:81 #: ../data/50-mutter-navigation.xml.in.h:22
msgid "Switch to previous system control" msgid "Switch to previous system control"
msgstr "Εναλλαγή σε προηγούμενους ελέγχους συστήματος" msgstr "Εναλλαγή σε προηγούμενους ελέγχους συστήματος"
#: data/50-mutter-navigation.xml:85 #: ../data/50-mutter-navigation.xml.in.h:23
msgid "Switch windows directly" msgid "Switch windows directly"
msgstr "Άμεση εναλλαγή παραθύρων" msgstr "Άμεση εναλλαγή παραθύρων"
#: data/50-mutter-navigation.xml:90 #: ../data/50-mutter-navigation.xml.in.h:24
msgid "Switch directly to previous window" msgid "Switch directly to previous window"
msgstr "Άμεση εναλλαγή στο προηγούμενο παράθυρο" msgstr "Άμεση εναλλαγή στο προηγούμενο παράθυρο"
#: data/50-mutter-navigation.xml:94 #: ../data/50-mutter-navigation.xml.in.h:25
msgid "Switch windows of an app directly" msgid "Switch windows of an app directly"
msgstr "Άμεση εναλλαγή παραθύρων μιας εφαρμογής" msgstr "Άμεση εναλλαγή παραθύρων μιας εφαρμογής"
#: data/50-mutter-navigation.xml:99 #: ../data/50-mutter-navigation.xml.in.h:26
msgid "Switch directly to previous window of an app" msgid "Switch directly to previous window of an app"
msgstr "Άμεση εναλλαγή στο προηγούμενο παράθυρο μιας εφαρμογής" msgstr "Άμεση εναλλαγή στο προηγούμενο παράθυρο μιας εφαρμογής"
#: data/50-mutter-navigation.xml:103 #: ../data/50-mutter-navigation.xml.in.h:27
msgid "Switch system controls directly" msgid "Switch system controls directly"
msgstr "Άμεση εναλλαγή ελέγχων συστήματος" msgstr "Άμεση εναλλαγή ελέγχων συστήματος"
#: data/50-mutter-navigation.xml:108 #: ../data/50-mutter-navigation.xml.in.h:28
msgid "Switch directly to previous system control" msgid "Switch directly to previous system control"
msgstr "Άμεση εναλλαγή σε προηγούμενους ελέγχους συστήματος" msgstr "Άμεση εναλλαγή σε προηγούμενους ελέγχους συστήματος"
#: data/50-mutter-navigation.xml:111 #: ../data/50-mutter-navigation.xml.in.h:29
msgid "Hide all normal windows" msgid "Hide all normal windows"
msgstr "Απόκρυψη όλων των κανονικών παραθύρων" msgstr "Απόκρυψη όλων των κανονικών παραθύρων"
#: data/50-mutter-navigation.xml:114 #: ../data/50-mutter-navigation.xml.in.h:30
msgid "Switch to workspace 1" msgid "Switch to workspace 1"
msgstr "Εναλλαγή στον χώρο εργασίας 1" msgstr "Εναλλαγή στον χώρο εργασίας 1"
#: data/50-mutter-navigation.xml:117 #: ../data/50-mutter-navigation.xml.in.h:31
msgid "Switch to workspace 2" msgid "Switch to workspace 2"
msgstr "Εναλλαγή στον χώρο εργασίας 2" msgstr "Εναλλαγή στον χώρο εργασίας 2"
#: data/50-mutter-navigation.xml:120 #: ../data/50-mutter-navigation.xml.in.h:32
msgid "Switch to workspace 3" msgid "Switch to workspace 3"
msgstr "Εναλλαγή στον χώρο εργασίας 3" msgstr "Εναλλαγή στον χώρο εργασίας 3"
#: data/50-mutter-navigation.xml:123 #: ../data/50-mutter-navigation.xml.in.h:33
msgid "Switch to workspace 4" msgid "Switch to workspace 4"
msgstr "Εναλλαγή στον χώρο εργασίας 4" msgstr "Εναλλαγή στον χώρο εργασίας 4"
#: data/50-mutter-navigation.xml:126 #: ../data/50-mutter-navigation.xml.in.h:34
msgid "Switch to last workspace" msgid "Switch to last workspace"
msgstr "Εναλλαγή στον τελευταίο χώρο εργασίας" msgstr "Εναλλαγή στον τελευταίο χώρο εργασίας"
#: data/50-mutter-navigation.xml:129 #: ../data/50-mutter-navigation.xml.in.h:35
msgid "Move to workspace left" msgid "Move to workspace left"
msgstr "Μετακίνηση στον χώρο εργασίας αριστερά" msgstr "Μετακίνηση στον χώρο εργασίας αριστερά"
#: data/50-mutter-navigation.xml:132 #: ../data/50-mutter-navigation.xml.in.h:36
msgid "Move to workspace right" msgid "Move to workspace right"
msgstr "Μετακίνηση στον χώρο εργασίας δεξιά" msgstr "Μετακίνηση στον χώρο εργασίας δεξιά"
#: data/50-mutter-navigation.xml:135 #: ../data/50-mutter-navigation.xml.in.h:37
msgid "Move to workspace above" msgid "Move to workspace above"
msgstr "Μετακίνηση στον χώρο εργασίας επάνω" msgstr "Μετακίνηση στον χώρο εργασίας επάνω"
#: data/50-mutter-navigation.xml:138 #: ../data/50-mutter-navigation.xml.in.h:38
msgid "Move to workspace below" msgid "Move to workspace below"
msgstr "Μετακίνηση στον χώρο εργασίας κάτω" msgstr "Μετακίνηση στον χώρο εργασίας κάτω"
#: data/50-mutter-system.xml:6 #: ../data/50-mutter-system.xml.in.h:1
msgid "System" msgid "System"
msgstr "Σύστημα" msgstr "Σύστημα"
#: data/50-mutter-system.xml:8 #: ../data/50-mutter-system.xml.in.h:2
msgid "Show the run command prompt" msgid "Show the run command prompt"
msgstr "Εμφάνιση της προτροπής της εντολής run" msgstr "Εμφάνιση της προτροπής της εντολής run"
#: data/50-mutter-system.xml:10 #: ../data/50-mutter-system.xml.in.h:3
msgid "Show the activities overview" msgid "Show the activities overview"
msgstr "Εμφάνιση της επισκόπησης των δραστηριοτήτων" msgstr "Εμφάνιση της επισκόπησης των δραστηριοτήτων"
#: data/50-mutter-windows.xml:6 #: ../data/50-mutter-windows.xml.in.h:1
msgid "Windows" msgid "Windows"
msgstr "Παράθυρα" msgstr "Παράθυρα"
#: data/50-mutter-windows.xml:8 #: ../data/50-mutter-windows.xml.in.h:2
msgid "Activate the window menu" msgid "Activate the window menu"
msgstr "Ενεργοποίηση του μενού παραθύρου" msgstr "Ενεργοποίηση του μενού παραθύρου"
#: data/50-mutter-windows.xml:10 #: ../data/50-mutter-windows.xml.in.h:3
msgid "Toggle fullscreen mode" msgid "Toggle fullscreen mode"
msgstr "Εναλλαγή κατάστασης πλήρους οθόνης" msgstr "Εναλλαγή κατάστασης πλήρους οθόνης"
#: data/50-mutter-windows.xml:12 #: ../data/50-mutter-windows.xml.in.h:4
msgid "Toggle maximization state" msgid "Toggle maximization state"
msgstr "Εναλλαγή κατάστασης μεγιστοποίησης" msgstr "Εναλλαγή κατάστασης μεγιστοποίησης"
#: data/50-mutter-windows.xml:14 #: ../data/50-mutter-windows.xml.in.h:5
msgid "Maximize window" msgid "Maximize window"
msgstr "Μεγιστοποίηση παραθύρου" msgstr "Μεγιστοποίηση παραθύρου"
#: data/50-mutter-windows.xml:16 #: ../data/50-mutter-windows.xml.in.h:6
msgid "Restore window" msgid "Restore window"
msgstr "Επαναφορά παραθύρου" msgstr "Επαναφορά παραθύρου"
#: data/50-mutter-windows.xml:18 #: ../data/50-mutter-windows.xml.in.h:7
msgid "Toggle shaded state" msgid "Toggle shaded state"
msgstr "Εναλλαγή σκιασμένης κατάστασης" msgstr "Εναλλαγή σκιασμένης κατάστασης"
#: data/50-mutter-windows.xml:20 #: ../data/50-mutter-windows.xml.in.h:8
msgid "Close window" msgid "Close window"
msgstr "Κλείσιμο παραθύρου" msgstr "Κλείσιμο παραθύρου"
#: data/50-mutter-windows.xml:22 #: ../data/50-mutter-windows.xml.in.h:9
msgid "Hide window" msgid "Hide window"
msgstr "Απόκρυψη παραθύρου" msgstr "Απόκρυψη παραθύρου"
#: data/50-mutter-windows.xml:24 #: ../data/50-mutter-windows.xml.in.h:10
msgid "Move window" msgid "Move window"
msgstr "Μετακίνηση παραθύρου" msgstr "Μετακίνηση παραθύρου"
#: data/50-mutter-windows.xml:26 #: ../data/50-mutter-windows.xml.in.h:11
msgid "Resize window" msgid "Resize window"
msgstr "Αυξομείωση παραθύρου" msgstr "Αυξομείωση παραθύρου"
#: data/50-mutter-windows.xml:29 #: ../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 "Εναλλαγή παραθύρου σε όλες τις επιφάνειες εργασίας ή σε μία" msgstr "Εναλλαγή παραθύρου σε όλες τις επιφάνειες εργασίας ή σε μία"
#: data/50-mutter-windows.xml:31 #: ../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 "Ανύψωση παραθύρου εάν καλύπτεται, αλλιώς βύθισή του" msgstr "Ανύψωση παραθύρου εάν καλύπτεται, αλλιώς βύθισή του"
#: data/50-mutter-windows.xml:33 #: ../data/50-mutter-windows.xml.in.h:14
msgid "Raise window above other windows" msgid "Raise window above other windows"
msgstr "Ανύψωση παραθύρου πάνω από τα άλλα παράθυρα" msgstr "Ανύψωση παραθύρου πάνω από τα άλλα παράθυρα"
#: data/50-mutter-windows.xml:35 #: ../data/50-mutter-windows.xml.in.h:15
msgid "Lower window below other windows" msgid "Lower window below other windows"
msgstr "Βύθιση παραθύρου κάτω από τα άλλα παράθυρα" msgstr "Βύθιση παραθύρου κάτω από τα άλλα παράθυρα"
#: data/50-mutter-windows.xml:37 #: ../data/50-mutter-windows.xml.in.h:16
msgid "Maximize window vertically" msgid "Maximize window vertically"
msgstr "Μεγιστοποίηση παραθύρου κάθετα" msgstr "Μεγιστοποίηση παραθύρου κάθετα"
#: data/50-mutter-windows.xml:39 #: ../data/50-mutter-windows.xml.in.h:17
msgid "Maximize window horizontally" msgid "Maximize window horizontally"
msgstr "Μεγιστοποίηση παραθύρου οριζόντια" msgstr "Μεγιστοποίηση παραθύρου οριζόντια"
#: data/50-mutter-windows.xml:43 #: ../data/50-mutter-windows.xml.in.h:18
msgid "View split on left" msgid "View split on left"
msgstr "Μεγιστοποίηση στα αριστερά" msgstr "Μεγιστοποίηση στα αριστερά"
#: data/50-mutter-windows.xml:47 #: ../data/50-mutter-windows.xml.in.h:19
msgid "View split on right" msgid "View split on right"
msgstr "Μεγιστοποίηση στα δεξιά" msgstr "Μεγιστοποίηση στα δεξιά"
#: data/mutter.desktop.in:4 #: ../data/mutter.desktop.in.h:1
msgid "Mutter" msgid "Mutter"
msgstr "Mutter" msgstr "Mutter"
#: data/org.gnome.mutter.gschema.xml.in:7 #: ../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 "Μετατροπέας για χρήση στις εκτεταμένες ενέργειες διαχείρισης παραθύρων" msgstr "Μετατροπέας για χρήση στις εκτεταμένες ενέργειες διαχείρισης παραθύρων"
#: data/org.gnome.mutter.gschema.xml.in:8 #: ../data/org.gnome.mutter.gschema.xml.in.h:2
msgid "" msgid ""
"This key will initiate the overlay, which is a combination window overview " "This key will initiate the \"overlay\", which is a combination window "
"and application launching system. The default is intended to be the “Windows " "overview and application launching system. The default is intended to be the "
"key on PC hardware. Its expected that this binding either the default or " "\"Windows key\" on PC hardware. It's expected that this binding either the "
"set to the empty string." "default or set to the empty string."
msgstr "" msgstr ""
"Αυτό το πλήκτρο θα ξεκινήσει την «επικάλυψη», που είναι συνδυασμένο σύστημα " "Αυτό το πλήκτρο θα ξεκινήσει την \"επικάλυψη\", που είναι συνδυασμένο "
"επισκόπησης παραθύρων και εκκίνησης εφαρμογών. Η προεπιλογή προτίθεται να " "σύστημα επισκόπησης παραθύρων και εκκίνησης εφαρμογών. Η προεπιλογή "
"είναι το «πλήκτρο Windows» σε μηχανήματα PC. Αναμένεται ότι αυτή η " "προτίθεται να είναι το \"πλήκτρο Windows\" σε μηχανήματα PC. Αναμένεται ότι "
"αντιστοίχιση θα είναι είτε η προεπιλογή ή θα ορίζεται στην κενή συμβολοσειρά." "αυτή η αντιστοίχιση θα είναι είτε η προεπιλογή ή θα ορίζεται στην κενή "
"συμβολοσειρά."
#: data/org.gnome.mutter.gschema.xml.in:20 #: ../data/org.gnome.mutter.gschema.xml.in.h:3
msgid "Attach modal dialogs" msgid "Attach modal dialogs"
msgstr "Επισύναψη σχηματικών διαλόγων" msgstr "Επισύναψη σχηματικών διαλόγων"
#: data/org.gnome.mutter.gschema.xml.in:21 #: ../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 "
@@ -306,13 +307,13 @@ msgstr ""
"εμφανίζονται στην μπάρα τίτλου του γονικού παραθύρου και μετακινούνται μαζί " "εμφανίζονται στην μπάρα τίτλου του γονικού παραθύρου και μετακινούνται μαζί "
"με το γονικό παράθυρο." "με το γονικό παράθυρο."
#: data/org.gnome.mutter.gschema.xml.in:30 #: ../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"
msgstr "" msgstr ""
"Ενεργοποίηση της παράθεσης παραθύρων όταν τα μετακινείτε στις άκρες της " "Ενεργοποίηση της παράθεσης παραθύρων όταν τα μετακινείτε στις άκρες της "
"οθόνης" "οθόνης"
#: data/org.gnome.mutter.gschema.xml.in:31 #: ../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 and resizes them horizontally to cover half of the available " "vertically and resizes them horizontally to cover half of the available "
@@ -323,13 +324,13 @@ msgstr ""
"καλύψουν το μισό της οθόνης. Το σύρσιμο των παραθύρων στο πάνω μέρος της " "καλύψουν το μισό της οθόνης. Το σύρσιμο των παραθύρων στο πάνω μέρος της "
"οθόνης τα μεγιστοποιεί ολοκληρωτικά." "οθόνης τα μεγιστοποιεί ολοκληρωτικά."
#: data/org.gnome.mutter.gschema.xml.in:40 #: ../data/org.gnome.mutter.gschema.xml.in.h:7
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Οι χώροι εργασίας διαχειρίζονται δυναμικά" msgstr "Οι χώροι εργασίας διαχειρίζονται δυναμικά"
#: data/org.gnome.mutter.gschema.xml.in:41 #: ../data/org.gnome.mutter.gschema.xml.in.h:8
msgid "" msgid ""
"Determines whether workspaces are managed dynamically or whether theres 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.desktop.wm.preferences)." "gnome.desktop.wm.preferences)."
msgstr "" msgstr ""
@@ -337,11 +338,11 @@ msgstr ""
"στατικός αριθμός χώρων εργασίας (καθορίζεται από το κλειδί num-workspaces " "στατικός αριθμός χώρων εργασίας (καθορίζεται από το κλειδί num-workspaces "
"στο org.gnome.desktop.wm.preferences)." "στο org.gnome.desktop.wm.preferences)."
#: data/org.gnome.mutter.gschema.xml.in:50 #: ../data/org.gnome.mutter.gschema.xml.in.h:9
msgid "Workspaces only on primary" msgid "Workspaces only on primary"
msgstr "Χώροι εργασίας μόνο στην κύρια" msgstr "Χώροι εργασίας μόνο στην κύρια"
#: data/org.gnome.mutter.gschema.xml.in:51 #: ../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."
@@ -349,11 +350,11 @@ msgstr ""
"Καθορίζει εάν η εναλλαγή των χώρων εργασίας θα συμβαίνει για τα παράθυρα σε " "Καθορίζει εάν η εναλλαγή των χώρων εργασίας θα συμβαίνει για τα παράθυρα σε "
"όλες τις οθόνες ή μόνο για τα παράθυρα της κύριας οθόνης." "όλες τις οθόνες ή μόνο για τα παράθυρα της κύριας οθόνης."
#: data/org.gnome.mutter.gschema.xml.in:59 #: ../data/org.gnome.mutter.gschema.xml.in.h:11
msgid "No tab popup" msgid "No tab popup"
msgstr "Καμία αναδυόμενη καρτέλα" msgstr "Καμία αναδυόμενη καρτέλα"
#: data/org.gnome.mutter.gschema.xml.in:60 #: ../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 window cycling." "for window cycling."
@@ -361,41 +362,41 @@ msgstr ""
"Καθορίζει αν πρέπει να απενεργοποιηθεί η χρήση της ανάδυσης και επισήμανσης " "Καθορίζει αν πρέπει να απενεργοποιηθεί η χρήση της ανάδυσης και επισήμανσης "
"του πλαισίου για την κυκλική εναλλαγή των παραθύρων." "του πλαισίου για την κυκλική εναλλαγή των παραθύρων."
#: data/org.gnome.mutter.gschema.xml.in:68 #: ../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"
msgstr "" msgstr ""
"Η καθυστέρηση της εστίασης αλλάζει μέχρι ο δείκτης να σταματήσει να κινείται" "Η καθυστέρηση της εστίασης αλλάζει μέχρι ο δείκτης να σταματήσει να κινείται"
#: data/org.gnome.mutter.gschema.xml.in:69 #: ../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 the " "If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
"focus will not be changed immediately when entering a window, but only after " "the focus will not be changed immediately when entering a window, but only "
"the pointer stops moving." "after the pointer stops moving."
msgstr "" msgstr ""
"Αν οριστεί σε αληθής, και η λειτουργία της εστίασης είναι «sloppy» ή «mouse» " "Αν οριστεί σε αληθής, και η λειτουργία της εστίασης είναι \"sloppy\" ή "
"τότε η εστίαση δεν θα αλλάξει αμέσως όταν ανοίγετε ένα παράθυρο, αλλά μόνο " "\"mouse\" τότε η εστίαση δεν θα αλλάξει αμέσως όταν ανοίγετε ένα παράθυρο, "
"όταν ο δείκτης σταματήσει να κινείται." "αλλά μόνο όταν ο δείκτης σταματήσει να κινείται."
#: data/org.gnome.mutter.gschema.xml.in:79 #: ../data/org.gnome.mutter.gschema.xml.in.h:15
msgid "Draggable border width" msgid "Draggable border width"
msgstr "Συρόμενο πλάτος περιγράμματος" msgstr "Συρόμενο πλάτος περιγράμματος"
#: data/org.gnome.mutter.gschema.xml.in:80 #: ../data/org.gnome.mutter.gschema.xml.in.h:16
msgid "" msgid ""
"The amount of total draggable borders. If the themes visible borders are " "The amount of total draggable borders. If the theme's visible borders are "
"not enough, invisible borders will be added to meet this value." "not enough, invisible borders will be added to meet this value."
msgstr "" msgstr ""
"Το ποσό των συνολικών συρόμενων περιγραμμάτων. Αν τα περιγράμματα του " "Το ποσό των συνολικών συρόμενων περιγραμμάτων. Αν τα περιγράμματα του "
"θέματος δεν είναι αρκετά, θα προστεθούν αόρατα περιγράμματα για την κάλυψη " "θέματος δεν είναι αρκετά, θα προστεθούν αόρατα περιγράμματα για την κάλυψη "
"αυτής της τιμής." "αυτής της τιμής."
#: data/org.gnome.mutter.gschema.xml.in:89 #: ../data/org.gnome.mutter.gschema.xml.in.h:17
msgid "Auto maximize nearly monitor sized windows" msgid "Auto maximize nearly monitor sized windows"
msgstr "" msgstr ""
"Αυτόματη μεγιστοποίηση των παραθύρων των οποίων το μέγεθος είναι κοντά με το " "Αυτόματη μεγιστοποίηση των παραθύρων των οποίων το μέγεθος είναι κοντά με το "
"μέγεθος της οθόνης" "μέγεθος της οθόνης"
#: data/org.gnome.mutter.gschema.xml.in:90 #: ../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 get maximized." "automatically get maximized."
@@ -403,11 +404,11 @@ msgstr ""
"Εάν ενεργοποιηθεί, τα νέα παράθυρα που είναι αρχικά στο μέγεθος της οθόνης " "Εάν ενεργοποιηθεί, τα νέα παράθυρα που είναι αρχικά στο μέγεθος της οθόνης "
"μεγιστοποιούνται αυτόματα." "μεγιστοποιούνται αυτόματα."
#: data/org.gnome.mutter.gschema.xml.in:98 #: ../data/org.gnome.mutter.gschema.xml.in.h:19
msgid "Place new windows in the center" msgid "Place new windows in the center"
msgstr "Τοποθέτηση νέων παραθύρων στο κέντρο" msgstr "Τοποθέτηση νέων παραθύρων στο κέντρο"
#: data/org.gnome.mutter.gschema.xml.in:99 #: ../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 of the monitor." "screen of the monitor."
@@ -415,125 +416,106 @@ msgstr ""
"Αν είναι αληθές, τα νέα παράθυρα θα είναι πάντα τοποθετημένα στο κέντρο της " "Αν είναι αληθές, τα νέα παράθυρα θα είναι πάντα τοποθετημένα στο κέντρο της "
"κύριας οθόνης." "κύριας οθόνης."
#: data/org.gnome.mutter.gschema.xml.in:120 #: ../data/org.gnome.mutter.gschema.xml.in.h:21
msgid "Select window from tab popup" msgid "Select window from tab popup"
msgstr "Επιλογή παραθύρου από την αναδυόμενη καρτέλα" msgstr "Επιλογή παραθύρου από την αναδυόμενη καρτέλα"
#: data/org.gnome.mutter.gschema.xml.in:125 #: ../data/org.gnome.mutter.gschema.xml.in.h:22
msgid "Cancel tab popup" msgid "Cancel tab popup"
msgstr "Ακύρωση αναδυόμενης καρτέλας" msgstr "Ακύρωση αναδυόμενης καρτέλας"
#: data/org.gnome.mutter.wayland.gschema.xml.in:6 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:1
msgid "Switch to VT 1" msgid "Switch to VT 1"
msgstr "Εναλλαγή στο VT 1 " msgstr "Εναλλαγή στο VT 1 "
#: data/org.gnome.mutter.wayland.gschema.xml.in:10 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:2
msgid "Switch to VT 2" msgid "Switch to VT 2"
msgstr "Εναλλαγή στο VT 2" msgstr "Εναλλαγή στο VT 2"
#: data/org.gnome.mutter.wayland.gschema.xml.in:14 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:3
msgid "Switch to VT 3" msgid "Switch to VT 3"
msgstr "Εναλλαγή στο VT 3" msgstr "Εναλλαγή στο VT 3"
#: data/org.gnome.mutter.wayland.gschema.xml.in:18 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:4
msgid "Switch to VT 4" msgid "Switch to VT 4"
msgstr "Εναλλαγή στο VT 4" msgstr "Εναλλαγή στο VT 4"
#: data/org.gnome.mutter.wayland.gschema.xml.in:22 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:5
msgid "Switch to VT 5" msgid "Switch to VT 5"
msgstr "Εναλλαγή στο VT 5" msgstr "Εναλλαγή στο VT 5"
#: data/org.gnome.mutter.wayland.gschema.xml.in:26 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:6
msgid "Switch to VT 6" msgid "Switch to VT 6"
msgstr "Εναλλαγή στο VT 6" msgstr "Εναλλαγή στο VT 6"
#: data/org.gnome.mutter.wayland.gschema.xml.in:30 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:7
msgid "Switch to VT 7" msgid "Switch to VT 7"
msgstr "Εναλλαγή στο VT 7" msgstr "Εναλλαγή στο VT 7"
#: data/org.gnome.mutter.wayland.gschema.xml.in:34 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
msgid "Switch to VT 8" msgid "Switch to VT 8"
msgstr "Εναλλαγή στο VT 8" msgstr "Εναλλαγή στο VT 8"
#: data/org.gnome.mutter.wayland.gschema.xml.in:38 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
msgid "Switch to VT 9" msgid "Switch to VT 9"
msgstr "Εναλλαγή στο VT 9" msgstr "Εναλλαγή στο VT 9"
#: data/org.gnome.mutter.wayland.gschema.xml.in:42 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
msgid "Switch to VT 10" msgid "Switch to VT 10"
msgstr "Εναλλαγή στο VT 10" msgstr "Εναλλαγή στο VT 10"
#: data/org.gnome.mutter.wayland.gschema.xml.in:46 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
msgid "Switch to VT 11" msgid "Switch to VT 11"
msgstr "Εναλλαγή στο VT 11" msgstr "Εναλλαγή στο VT 11"
#: data/org.gnome.mutter.wayland.gschema.xml.in:50 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Εναλλαγή στο VT 12" msgstr "Εναλλαγή στο VT 12"
#. TRANSLATORS: This string refers to a button that switches between #: ../src/backends/meta-monitor-manager.c:518
#. * different modes.
#.
#: src/backends/meta-input-settings.c:1800
#, c-format
msgid "Mode Switch (Group %d)"
msgstr "Λειτουργία διακόπτη (ομάδα %d)"
#. TRANSLATORS: This string refers to an action, cycles drawing tablets'
#. * mapping through the available outputs.
#.
#: src/backends/meta-input-settings.c:1822
msgid "Switch monitor"
msgstr "Εναλλαγή οθόνης"
#: src/backends/meta-input-settings.c:1824
msgid "Show on-screen help"
msgstr "Εμφάνιση βοήθειας στην οθόνη"
#: src/backends/meta-monitor-manager.c:675
msgid "Built-in display" msgid "Built-in display"
msgstr "Ενσωματωμένη οθόνη" msgstr "Ενσωματωμένη οθόνη"
#: src/backends/meta-monitor-manager.c:698 #: ../src/backends/meta-monitor-manager.c:544
msgid "Unknown" msgid "Unknown"
msgstr "Άγνωστη" msgstr "Άγνωστη"
#: src/backends/meta-monitor-manager.c:700 #: ../src/backends/meta-monitor-manager.c:546
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:708 #: ../src/backends/meta-monitor-manager.c:554
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
#. This probably means that a non-WM compositor like xcompmgr is running; #. This probably means that a non-WM compositor like xcompmgr is running;
#. * we have no way to get it to exit #. * we have no way to get it to exit
#: src/compositor/compositor.c:471 #: ../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 "" msgstr ""
"Εκτελείται ένας άλλος διαχειριστής παραθύρων στην οθόνη %i προβολή «%s»." "Εκτελείται ένας άλλος διαχειριστής παραθύρων στην οθόνη %i προβολή \"%s\"."
#: src/core/bell.c:194 #: ../src/core/bell.c:192
msgid "Bell event" msgid "Bell event"
msgstr "Ηχητικό συμβάν κουδουνιού" msgstr "Ηχητικό συμβάν κουδουνιού"
#. Translators: %s is a window title #: ../src/core/delete.c:127
#: src/core/delete.c:127
#, c-format #, c-format
msgid "“%s” is not responding." msgid "“%s” is not responding."
msgstr "Το “%s” δεν ανταποκρίνεται." msgstr "Το “%s” δεν ανταποκρίνεται."
#: src/core/delete.c:129 #: ../src/core/delete.c:129
msgid "Application is not responding." msgid "Application is not responding."
msgstr "Η εφαρμογή δεν ανταποκρίνεται." msgstr "Η εφαρμογή δεν ανταποκρίνεται."
#: 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 to quit entirely." "application to quit entirely."
@@ -541,119 +523,116 @@ msgstr ""
"Μπορείτε να επιλέξετε να περιμένετε λίγο για να συνεχίσει, ή να εξαναγκάσετε " "Μπορείτε να επιλέξετε να περιμένετε λίγο για να συνεχίσει, ή να εξαναγκάσετε "
"την εφαρμογή σε έξοδο." "την εφαρμογή σε έξοδο."
#: src/core/delete.c:141 #: ../src/core/delete.c:141
msgid "_Force Quit"
msgstr "_Εξαναγκασμός σε τερματισμό"
#: src/core/delete.c:141
msgid "_Wait" msgid "_Wait"
msgstr "_Αναμονή" msgstr "_Αναμονή"
# gconf/gconf-internals.c:2416 #: ../src/core/delete.c:141
#: src/core/display.c:608 msgid "_Force Quit"
#, c-format msgstr "_Εξαναγκασμός σε τερματισμό"
msgid "Failed to open X Window System display “%s”\n"
msgstr "Αποτυχία ανοίγματος οθόνης του συστήματος παραθύρων Χ «%s»\n"
#: src/core/main.c:189 # gconf/gconf-internals.c:2416
#: ../src/core/display.c:555
#, c-format
msgid "Failed to open X Window System display '%s'\n"
msgstr "Αποτυχία ανοίγματος οθόνης του συστήματος παραθύρων Χ '%s'\n"
#: ../src/core/main.c:181
msgid "Disable connection to session manager" msgid "Disable connection to session manager"
msgstr "Απενεργοποίηση σύνδεσης στο διαχειριστή συνεδρίας" msgstr "Απενεργοποίηση σύνδεσης στο διαχειριστή συνεδρίας"
#: src/core/main.c:195 #: ../src/core/main.c:187
msgid "Replace the running window manager" msgid "Replace the running window manager"
msgstr "Αντικατάσταση του τρέχοντος διαχειριστή παραθύρων" msgstr "Αντικατάσταση του τρέχοντος διαχειριστή παραθύρων"
#: src/core/main.c:201 #: ../src/core/main.c:193
msgid "Specify session management ID" msgid "Specify session management ID"
msgstr "Καθορισμός αναγνωριστικού διαχείρισης συνεδρίας" msgstr "Καθορισμός αναγνωριστικού διαχείρισης συνεδρίας"
#: src/core/main.c:206 #: ../src/core/main.c:198
msgid "X Display to use" msgid "X Display to use"
msgstr "Εμφάνιση Χ για χρήση" msgstr "Εμφάνιση Χ για χρήση"
#: src/core/main.c:212 #: ../src/core/main.c:204
msgid "Initialize session from savefile" msgid "Initialize session from savefile"
msgstr "Εκκίνηση συνεδρίας από savefile" msgstr "Εκκίνηση συνεδρίας από savefile"
#: src/core/main.c:218 #: ../src/core/main.c:210
msgid "Make X calls synchronous" msgid "Make X calls synchronous"
msgstr "Να καταστούν σύγχρονες οι κλήσεις του X" msgstr "Να καταστούν σύγχρονες οι κλήσεις του X"
#: src/core/main.c:225 #: ../src/core/main.c:217
msgid "Run as a wayland compositor" msgid "Run as a wayland compositor"
msgstr "Εκτέλεση ως wayland compositor" msgstr "Εκτέλεση ως wayland compositor"
#: src/core/main.c:231 #: ../src/core/main.c:223
msgid "Run as a nested compositor" msgid "Run as a nested compositor"
msgstr "Εκτέλεση ως ενσωματωμένος compositor" msgstr "Εκτέλεση ως ενσωματωμένος compositor"
#: src/core/main.c:239 #: ../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 "Εκτέλεση ως διακομιστής πλήρους οθόνης, αντί ενσωματωμένης"
#: src/core/mutter.c:39 #: ../src/core/mutter.c:39
#, c-format #, c-format
msgid "" msgid ""
"mutter %s\n" "mutter %s\n"
"Copyright © 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 PURPOSE.\n" "PARTICULAR PURPOSE.\n"
msgstr "" msgstr ""
"mutter %s\n" "mutter %s\n"
"Πνευματικά Δικαιώματα © 2001-%d Havoc Pennington, Red Hat, Inc., και άλλοι\n" "Πνευματικά Δικαιώματα (C) 2001-%d Havoc Pennington, Red Hat, Inc., και "
"άλλοι\n"
"Αυτό είναι ελεύθερο λογισμικό, βλ. τον πηγαίο κώδικα για όρους αντιγραφής.\n" "Αυτό είναι ελεύθερο λογισμικό, βλ. τον πηγαίο κώδικα για όρους αντιγραφής.\n"
"ΔΕΝ παρέχεται καμία εγγύηση, ούτε ΕΜΠΟΡΕΥΣΙΜΟΤΗΤΑΣ ούτε ΚΑΤΑΛΛΗΛΟΤΗΤΑΣ ΓΙΑ " "ΔΕΝ παρέχεται καμία εγγύηση, ούτε ΕΜΠΟΡΕΥΣΙΜΟΤΗΤΑΣ ούτε ΚΑΤΑΛΛΗΛΟΤΗΤΑΣ ΓΙΑ "
"ΣΥΓΚΕΚΡΙΜΕΝΟ ΣΚΟΠΟ.\n" "ΣΥΓΚΕΚΡΙΜΕΝΟΣΚΟΠΟ.\n"
#: src/core/mutter.c:53 #: ../src/core/mutter.c:53
msgid "Print version" msgid "Print version"
msgstr "Εμφάνιση έκδοσης" msgstr "Εμφάνιση έκδοσης"
#: src/core/mutter.c:59 #: ../src/core/mutter.c:59
msgid "Mutter plugin to use" msgid "Mutter plugin to use"
msgstr "Πρόσθετα του Mutter για χρήση" msgstr "Πρόσθετα του Mutter για χρήση"
#: src/core/prefs.c:1997 #: ../src/core/prefs.c:1997
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Χώρος εργασίας %d" msgstr "Χώρος εργασίας %d"
#: src/core/screen.c:580 #: ../src/core/screen.c:521
#, c-format #, c-format
msgid "" msgid ""
"Display “%s” already has a window manager; try using the --replace option to " "Display \"%s\" already has a window manager; try using the --replace option "
"replace the current window manager." "to replace the current window manager."
msgstr "" msgstr ""
"Η προβολή «%s» έχει ήδη ένα διαχειριστή παραθύρων· προσπαθήστε να " "Η προβολή \"%s\" έχει ήδη ένα διαχειριστή παραθύρων· προσπαθήστε να "
"χρησιμοποιήσετε την επιλογή --replace για να αντικαταστήσετε τον τρέχων " "χρησιμοποιήσετε την επιλογή --replace για να αντικαταστήσετε τον τρέχων "
"διαχειριστή παραθύρων." "διαχειριστή παραθύρων."
#: src/core/screen.c:665 #: ../src/core/screen.c:603
#, 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:120 #: ../src/core/util.c:121
msgid "Mutter was compiled without support for verbose mode\n" msgid "Mutter was compiled without support for verbose mode\n"
msgstr "" msgstr ""
"Το Mutter έχει μεταγλωττιστεί χωρίς υποστήριξη για λειτουργία εμφάνισης " "Το Mutter έχει μεταγλωττιστεί χωρίς υποστήριξη για λειτουργία εμφάνισης "
"λεπτομερειών\n" "λεπτομερειών\n"
#: src/wayland/meta-wayland-tablet-pad.c:563 #: ../src/x11/session.c:1815
#, c-format
msgid "Mode Switch: Mode %d"
msgstr "Λειτουργία διακόπτη: Λειτουργία %d"
#: src/x11/session.c:1815
msgid "" msgid ""
"These windows do not support save current setup and will have to be " "These windows do not support &quot;save current setup&quot; and will have to "
"restarted manually next time you log in." "be restarted manually next time you log in."
msgstr "" msgstr ""
"Αυτά τα παράθυρα δεν υποστηρίζουν «αποθήκευση της τρέχουσας εγκατάστασης» " "Αυτά τα παράθυρα δεν υποστηρίζουν &quot;αποθήκευση τρέχουσας "
"και θα πρέπει να επανεκκινηθούν χειροκίνητα στην επόμενη είσοδο σας." "εγκατάστασης&quot; και θα πρέπει να επανεκκινηθούν χειροκίνητα στην επόμενη "
"είσοδο σας."
#: src/x11/window-props.c:559 #: ../src/x11/window-props.c:549
#, c-format #, c-format
msgid "%s (on %s)" msgid "%s (on %s)"
msgstr "%s (σε %s)" msgstr "%s (σε %s)"

File diff suppressed because it is too large Load Diff

364
po/es.po
View File

@@ -7,17 +7,17 @@
# 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, 2017. # Daniel Mustieles <daniel.mustieles@gmail.com>, 2011, 2012, 2013, 2014, 2015, 2016.
# #
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: 2017-02-16 01:44+0000\n" "POT-Creation-Date: 2016-07-24 19:39+0000\n"
"PO-Revision-Date: 2017-02-17 11:38+0100\n" "PO-Revision-Date: 2016-07-26 13:00+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n" "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: es <gnome-es-list@gnome.org>\n" "Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
"Language: es\n" "Language: es\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"
@@ -25,266 +25,261 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Gtranslator 2.91.6\n" "X-Generator: Gtranslator 2.91.6\n"
#: data/50-mutter-navigation.xml:6 #: ../data/50-mutter-navigation.xml.in.h:1
msgid "Navigation" msgid "Navigation"
msgstr "Navegación" msgstr "Navegación"
#: data/50-mutter-navigation.xml:9 #: ../data/50-mutter-navigation.xml.in.h:2
msgid "Move window to workspace 1" msgid "Move window to workspace 1"
msgstr "Mover la ventana al área de trabajo 1" msgstr "Mover la ventana al área de trabajo 1"
#: data/50-mutter-navigation.xml:12 #: ../data/50-mutter-navigation.xml.in.h:3
msgid "Move window to workspace 2" msgid "Move window to workspace 2"
msgstr "Mover la ventana al área de trabajo 2" msgstr "Mover la ventana al área de trabajo 2"
#: data/50-mutter-navigation.xml:15 #: ../data/50-mutter-navigation.xml.in.h:4
msgid "Move window to workspace 3" msgid "Move window to workspace 3"
msgstr "Mover la ventana al área de trabajo 3" msgstr "Mover la ventana al área de trabajo 3"
#: data/50-mutter-navigation.xml:18 #: ../data/50-mutter-navigation.xml.in.h:5
msgid "Move window to workspace 4" msgid "Move window to workspace 4"
msgstr "Mover la ventana al área de trabajo 4" msgstr "Mover la ventana al área de trabajo 4"
#: data/50-mutter-navigation.xml:21 #: ../data/50-mutter-navigation.xml.in.h:6
msgid "Move window to last workspace" msgid "Move window to last workspace"
msgstr "Mover la ventana a la última área de trabajo" msgstr "Mover la ventana a la última área de trabajo"
#: data/50-mutter-navigation.xml:24 #: ../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 "Mover la ventana un área de trabajo a la izquierda" msgstr "Mover la ventana un área de trabajo a la izquierda"
#: data/50-mutter-navigation.xml:27 #: ../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 "Mover la ventana un área de trabajo a la derecha" msgstr "Mover la ventana un área de trabajo a la derecha"
#: data/50-mutter-navigation.xml:30 #: ../data/50-mutter-navigation.xml.in.h:9
msgid "Move window one workspace up" msgid "Move window one workspace up"
msgstr "Subir la ventana un área de trabajo" msgstr "Subir la ventana un área de trabajo"
#: data/50-mutter-navigation.xml:33 #: ../data/50-mutter-navigation.xml.in.h:10
msgid "Move window one workspace down" msgid "Move window one workspace down"
msgstr "Bajar la ventana un área de trabajo" msgstr "Bajar la ventana un área de trabajo"
#: data/50-mutter-navigation.xml:36 #: ../data/50-mutter-navigation.xml.in.h:11
msgid "Move window one monitor to the left" msgid "Move window one monitor to the left"
msgstr "Mover la ventana una pantalla a la izquierda" msgstr "Mover la ventana una pantalla a la izquierda"
#: data/50-mutter-navigation.xml:39 #: ../data/50-mutter-navigation.xml.in.h:12
msgid "Move window one monitor to the right" msgid "Move window one monitor to the right"
msgstr "Mover la ventana una pantalla a la derecha" msgstr "Mover la ventana una pantalla a la derecha"
#: data/50-mutter-navigation.xml:42 #: ../data/50-mutter-navigation.xml.in.h:13
msgid "Move window one monitor up" msgid "Move window one monitor up"
msgstr "Subir la ventana una pantalla" msgstr "Subir la ventana una pantalla"
#: data/50-mutter-navigation.xml:45 #: ../data/50-mutter-navigation.xml.in.h:14
msgid "Move window one monitor down" msgid "Move window one monitor down"
msgstr "Bajar la ventana una pantalla" msgstr "Bajar la ventana una pantalla"
#: data/50-mutter-navigation.xml:49 #: ../data/50-mutter-navigation.xml.in.h:15
msgid "Switch applications" msgid "Switch applications"
msgstr "Cambiar entre aplicaciones" msgstr "Cambiar entre aplicaciones"
#: data/50-mutter-navigation.xml:54 #: ../data/50-mutter-navigation.xml.in.h:16
msgid "Switch to previous application" msgid "Switch to previous application"
msgstr "Cambiar a la aplicación anterior" msgstr "Cambiar a la aplicación anterior"
#: data/50-mutter-navigation.xml:58 #: ../data/50-mutter-navigation.xml.in.h:17
msgid "Switch windows" msgid "Switch windows"
msgstr "Cambiar entre ventanas" msgstr "Cambiar entre ventanas"
#: data/50-mutter-navigation.xml:63 #: ../data/50-mutter-navigation.xml.in.h:18
msgid "Switch to previous window" msgid "Switch to previous window"
msgstr "Cambiar a la ventana anterior" msgstr "Cambiar a la ventana anterior"
#: data/50-mutter-navigation.xml:67 #: ../data/50-mutter-navigation.xml.in.h:19
msgid "Switch windows of an application" msgid "Switch windows of an application"
msgstr "Cambiar entre ventanas de una aplicación" msgstr "Cambiar entre ventanas de una aplicación"
#: data/50-mutter-navigation.xml:72 #: ../data/50-mutter-navigation.xml.in.h:20
msgid "Switch to previous window of an application" msgid "Switch to previous window of an application"
msgstr "Cambiar a la ventana anterior de una aplicación" msgstr "Cambiar a la ventana anterior de una aplicación"
#: data/50-mutter-navigation.xml:76 #: ../data/50-mutter-navigation.xml.in.h:21
msgid "Switch system controls" msgid "Switch system controls"
msgstr "Cambiar entre controles del sistema" msgstr "Cambiar entre controles del sistema"
#: data/50-mutter-navigation.xml:81 #: ../data/50-mutter-navigation.xml.in.h:22
msgid "Switch to previous system control" msgid "Switch to previous system control"
msgstr "Cambiar al control del sistema anterior" msgstr "Cambiar al control del sistema anterior"
#: data/50-mutter-navigation.xml:85 #: ../data/50-mutter-navigation.xml.in.h:23
msgid "Switch windows directly" msgid "Switch windows directly"
msgstr "Cambiar entre ventanas directamente" msgstr "Cambiar entre ventanas directamente"
#: data/50-mutter-navigation.xml:90 #: ../data/50-mutter-navigation.xml.in.h:24
msgid "Switch directly to previous window" msgid "Switch directly to previous window"
msgstr "Cambiar directamente a la ventana anterior" msgstr "Cambiar directamente a la ventana anterior"
#: data/50-mutter-navigation.xml:94 #: ../data/50-mutter-navigation.xml.in.h:25
msgid "Switch windows of an app directly" msgid "Switch windows of an app directly"
msgstr "Cambiar entre ventanas de una aplicación directamente" msgstr "Cambiar entre ventanas de una aplicación directamente"
#: data/50-mutter-navigation.xml:99 #: ../data/50-mutter-navigation.xml.in.h:26
msgid "Switch directly to previous window of an app" msgid "Switch directly to previous window of an app"
msgstr "Cambiar directamente a la ventana anterior de una aplicación" msgstr "Cambiar directamente a la ventana anterior de una aplicación"
#: data/50-mutter-navigation.xml:103 #: ../data/50-mutter-navigation.xml.in.h:27
msgid "Switch system controls directly" msgid "Switch system controls directly"
msgstr "Cambiar entre controles del sistema directamente" msgstr "Cambiar entre controles del sistema directamente"
#: data/50-mutter-navigation.xml:108 #: ../data/50-mutter-navigation.xml.in.h:28
msgid "Switch directly to previous system control" msgid "Switch directly to previous system control"
msgstr "Cambiar directamente al control del sistema anterior" msgstr "Cambiar directamente al control del sistema anterior"
#: data/50-mutter-navigation.xml:111 #: ../data/50-mutter-navigation.xml.in.h:29
msgid "Hide all normal windows" msgid "Hide all normal windows"
msgstr "Ocultar todas las ventanas normales" msgstr "Ocultar todas las ventanas normales"
#: data/50-mutter-navigation.xml:114 #: ../data/50-mutter-navigation.xml.in.h:30
msgid "Switch to workspace 1" msgid "Switch to workspace 1"
msgstr "Cambiar al área de trabajo 1" msgstr "Cambiar al área de trabajo 1"
#: data/50-mutter-navigation.xml:117 #: ../data/50-mutter-navigation.xml.in.h:31
msgid "Switch to workspace 2" msgid "Switch to workspace 2"
msgstr "Cambiar al área de trabajo 2" msgstr "Cambiar al área de trabajo 2"
#: data/50-mutter-navigation.xml:120 #: ../data/50-mutter-navigation.xml.in.h:32
msgid "Switch to workspace 3" msgid "Switch to workspace 3"
msgstr "Cambiar al área de trabajo 3" msgstr "Cambiar al área de trabajo 3"
#: data/50-mutter-navigation.xml:123 #: ../data/50-mutter-navigation.xml.in.h:33
msgid "Switch to workspace 4" msgid "Switch to workspace 4"
msgstr "Cambiar al área de trabajo 4" msgstr "Cambiar al área de trabajo 4"
#: data/50-mutter-navigation.xml:126 #: ../data/50-mutter-navigation.xml.in.h:34
msgid "Switch to last workspace" msgid "Switch to last workspace"
msgstr "Cambiar a la útima área de trabajo" msgstr "Cambiar a la útima área de trabajo"
#: data/50-mutter-navigation.xml:129 #: ../data/50-mutter-navigation.xml.in.h:35
msgid "Move to workspace left" msgid "Move to workspace left"
msgstr "Mover al área de trabajo de la izquierda" msgstr "Mover al área de trabajo de la izquierda"
#: data/50-mutter-navigation.xml:132 #: ../data/50-mutter-navigation.xml.in.h:36
msgid "Move to workspace right" msgid "Move to workspace right"
msgstr "Mover al área de trabajo de la derecha" msgstr "Mover al área de trabajo de la derecha"
#: data/50-mutter-navigation.xml:135 #: ../data/50-mutter-navigation.xml.in.h:37
msgid "Move to workspace above" msgid "Move to workspace above"
msgstr "Mover al área de trabajo de la arriba" msgstr "Mover al área de trabajo de la arriba"
#: data/50-mutter-navigation.xml:138 #: ../data/50-mutter-navigation.xml.in.h:38
msgid "Move to workspace below" msgid "Move to workspace below"
msgstr "Mover al área de trabajo de abajo" msgstr "Mover al área de trabajo de abajo"
#: data/50-mutter-system.xml:6 #: ../data/50-mutter-system.xml.in.h:1
msgid "System" msgid "System"
msgstr "Sistema" msgstr "Sistema"
#: data/50-mutter-system.xml:8 #: ../data/50-mutter-system.xml.in.h:2
msgid "Show the run command prompt" msgid "Show the run command prompt"
msgstr "Mostrar el elemento «ejecutar comando»" msgstr "Mostrar el elemento «ejecutar comando»"
#: data/50-mutter-system.xml:10 #: ../data/50-mutter-system.xml.in.h:3
msgid "Show the activities overview" msgid "Show the activities overview"
msgstr "Mostrar la vista de actividades" msgstr "Mostrar la vista de actividades"
#: data/50-mutter-windows.xml:6 #: ../data/50-mutter-windows.xml.in.h:1
msgid "Windows" msgid "Windows"
msgstr "Ventanas" msgstr "Ventanas"
#: data/50-mutter-windows.xml:8 #: ../data/50-mutter-windows.xml.in.h:2
msgid "Activate the window menu" msgid "Activate the window menu"
msgstr "Activar el menú de la ventana" msgstr "Activar el menú de la ventana"
#: data/50-mutter-windows.xml:10 #: ../data/50-mutter-windows.xml.in.h:3
msgid "Toggle fullscreen mode" msgid "Toggle fullscreen mode"
msgstr "Cambiar el modo a pantalla completa" msgstr "Cambiar el modo a pantalla completa"
#: data/50-mutter-windows.xml:12 #: ../data/50-mutter-windows.xml.in.h:4
msgid "Toggle maximization state" msgid "Toggle maximization state"
msgstr "Cambiar el estado de maximización" msgstr "Cambiar el estado de maximización"
#: data/50-mutter-windows.xml:14 #: ../data/50-mutter-windows.xml.in.h:5
msgid "Maximize window" msgid "Maximize window"
msgstr "Maximizar la ventana" msgstr "Maximizar la ventana"
#: data/50-mutter-windows.xml:16 #: ../data/50-mutter-windows.xml.in.h:6
msgid "Restore window" msgid "Restore window"
msgstr "Restaurar la ventana" msgstr "Restaurar la ventana"
#: data/50-mutter-windows.xml:18 #: ../data/50-mutter-windows.xml.in.h:7
msgid "Toggle shaded state" msgid "Toggle shaded state"
msgstr "Cambiar el estado de enrollado" msgstr "Cambiar el estado de enrollado"
#: data/50-mutter-windows.xml:20 #: ../data/50-mutter-windows.xml.in.h:8
msgid "Close window" msgid "Close window"
msgstr "Cerrar la ventana" msgstr "Cerrar la ventana"
#: data/50-mutter-windows.xml:22 #: ../data/50-mutter-windows.xml.in.h:9
msgid "Hide window" msgid "Hide window"
msgstr "Ocultar la ventana" msgstr "Ocultar la ventana"
#: data/50-mutter-windows.xml:24 #: ../data/50-mutter-windows.xml.in.h:10
msgid "Move window" msgid "Move window"
msgstr "Mover la ventana" msgstr "Mover la ventana"
#: data/50-mutter-windows.xml:26 #: ../data/50-mutter-windows.xml.in.h:11
msgid "Resize window" msgid "Resize window"
msgstr "Redimensionar la ventana" msgstr "Redimensionar la ventana"
#: data/50-mutter-windows.xml:29 #: ../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 "Conmutar la ventana en todas las áreas de trabajo o sólo en una" msgstr "Conmutar la ventana en todas las áreas de trabajo o sólo en una"
#: data/50-mutter-windows.xml:31 #: ../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 "Elevar la ventana si está cubierta, de lo contrario, bajarla" msgstr "Elevar la ventana si está cubierta, de lo contrario, bajarla"
#: data/50-mutter-windows.xml:33 #: ../data/50-mutter-windows.xml.in.h:14
msgid "Raise window above other windows" msgid "Raise window above other windows"
msgstr "Elevar la ventana sobre las otras ventanas" msgstr "Elevar la ventana sobre las otras ventanas"
#: data/50-mutter-windows.xml:35 #: ../data/50-mutter-windows.xml.in.h:15
msgid "Lower window below other windows" msgid "Lower window below other windows"
msgstr "Bajar la ventana por debajo de otras ventanas" msgstr "Bajar la ventana por debajo de otras ventanas"
#: data/50-mutter-windows.xml:37 #: ../data/50-mutter-windows.xml.in.h:16
msgid "Maximize window vertically" msgid "Maximize window vertically"
msgstr "Maximizar la ventana verticalmente" msgstr "Maximizar la ventana verticalmente"
#: data/50-mutter-windows.xml:39 #: ../data/50-mutter-windows.xml.in.h:17
msgid "Maximize window horizontally" msgid "Maximize window horizontally"
msgstr "Maximizar la ventana horizontalmente" msgstr "Maximizar la ventana horizontalmente"
#: data/50-mutter-windows.xml:43 #: ../data/50-mutter-windows.xml.in.h:18
msgid "View split on left" msgid "View split on left"
msgstr "Ver división a la izquierda" msgstr "Ver división a la izquierda"
#: data/50-mutter-windows.xml:47 #: ../data/50-mutter-windows.xml.in.h:19
msgid "View split on right" msgid "View split on right"
msgstr "Ver división a la derecha" msgstr "Ver división a la derecha"
#: data/mutter.desktop.in:4 #: ../data/mutter.desktop.in.h:1
msgid "Mutter" msgid "Mutter"
msgstr "Mutter" msgstr "Mutter"
#: data/org.gnome.mutter.gschema.xml.in:7 #: ../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 "" msgstr ""
"Modificador que usar para extender las operaciones de gestión sobre ventanas" "Modificador que usar para extender las operaciones de gestión sobre ventanas"
#: data/org.gnome.mutter.gschema.xml.in:8 #: ../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."
msgid "" msgid ""
"This key will initiate the overlay, which is a combination window overview " "This key will initiate the \"overlay\", which is a combination window "
"and application launching system. The default is intended to be the “Windows " "overview and application launching system. The default is intended to be the "
"key on PC hardware. Its expected that this binding either the default or " "\"Windows key\" on PC hardware. It's expected that this binding either the "
"set to the empty string." "default or set to the empty string."
msgstr "" msgstr ""
"Esta clave iniciará el «revestimiento» («overlay»), que es una combinación " "Esta clave iniciará el «revestimiento» («overlay»), que es una combinación "
"de vista general de la ventana y el sistema de lanzamiento de aplicaciones. " "de vista general de la ventana y el sistema de lanzamiento de aplicaciones. "
@@ -292,11 +287,11 @@ msgstr ""
"esta combinación de tecla sea la predeterminada o se establezca a una cadena " "esta combinación de tecla sea la predeterminada o se establezca a una cadena "
"vacía." "vacía."
#: data/org.gnome.mutter.gschema.xml.in:20 #: ../data/org.gnome.mutter.gschema.xml.in.h:3
msgid "Attach modal dialogs" msgid "Attach modal dialogs"
msgstr "Adjuntar diálogos modales" msgstr "Adjuntar diálogos modales"
#: data/org.gnome.mutter.gschema.xml.in:21 #: ../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 "
@@ -306,13 +301,13 @@ msgstr ""
"aparecen diálogos modales adjuntos a la barra de título de la ventana padre " "aparecen diálogos modales adjuntos a la barra de título de la ventana padre "
"y se mueven junto con la ventana padre." "y se mueven junto con la ventana padre."
#: data/org.gnome.mutter.gschema.xml.in:30 #: ../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"
msgstr "" msgstr ""
"Activar el mosaico en los bordes al arrastrar ventanas a los bordes de la " "Activar el mosaico en los bordes al arrastrar ventanas a los bordes de la "
"ventana" "ventana"
#: data/org.gnome.mutter.gschema.xml.in:31 #: ../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 and resizes them horizontally to cover half of the available " "vertically and resizes them horizontally to cover half of the available "
@@ -323,17 +318,13 @@ msgstr ""
"mitad del área disponible. Arrastrar ventanas al borde superior de la " "mitad del área disponible. Arrastrar ventanas al borde superior de la "
"pantalla las maximiza por completo." "pantalla las maximiza por completo."
#: data/org.gnome.mutter.gschema.xml.in:40 #: ../data/org.gnome.mutter.gschema.xml.in.h:7
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Las áreas de trabajo se gestionan dinámicamente" msgstr "Las áreas de trabajo se gestionan dinámicamente"
#: data/org.gnome.mutter.gschema.xml.in:41 #: ../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)."
msgid "" msgid ""
"Determines whether workspaces are managed dynamically or whether theres 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.desktop.wm.preferences)." "gnome.desktop.wm.preferences)."
msgstr "" msgstr ""
@@ -341,11 +332,11 @@ msgstr ""
"número estático de áreas de trabajo (determinado por la clave «num-" "número estático de áreas de trabajo (determinado por la clave «num-"
"workspaces» en «org.gnome.desktop.wm.preferences»)." "workspaces» en «org.gnome.desktop.wm.preferences»)."
#: data/org.gnome.mutter.gschema.xml.in:50 #: ../data/org.gnome.mutter.gschema.xml.in.h:9
msgid "Workspaces only on primary" msgid "Workspaces only on primary"
msgstr "Áreas de trabajo sólo en el primario" msgstr "Áreas de trabajo sólo en el primario"
#: data/org.gnome.mutter.gschema.xml.in:51 #: ../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."
@@ -353,11 +344,11 @@ msgstr ""
"Determina si el cambio entre áreas de trabajo debería suceder para las " "Determina si el cambio entre áreas de trabajo debería suceder para las "
"ventanas en todos los monitores o sólo para ventanas en el monitor primario." "ventanas en todos los monitores o sólo para ventanas en el monitor primario."
#: data/org.gnome.mutter.gschema.xml.in:59 #: ../data/org.gnome.mutter.gschema.xml.in.h:11
msgid "No tab popup" msgid "No tab popup"
msgstr "No hay pestaña emergente" msgstr "No hay pestaña emergente"
#: data/org.gnome.mutter.gschema.xml.in:60 #: ../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 window cycling." "for window cycling."
@@ -365,47 +356,39 @@ msgstr ""
"Determina si el uso de ventanas emergentes y marcos resaltados se debe " "Determina si el uso de ventanas emergentes y marcos resaltados se debe "
"desactivar al cambiar entre ventanas." "desactivar al cambiar entre ventanas."
#: data/org.gnome.mutter.gschema.xml.in:68 #: ../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"
msgstr "Retrasar el cambio de foco hasta detener el puntero" msgstr "Retrasar el cambio de foco hasta detener el puntero"
#: data/org.gnome.mutter.gschema.xml.in:69 #: ../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."
msgid "" msgid ""
"If set to true, and the focus mode is either sloppy or mouse then the " "If set to true, and the focus mode is either \"sloppy\" or \"mouse\" then "
"focus will not be changed immediately when entering a window, but only after " "the focus will not be changed immediately when entering a window, but only "
"the pointer stops moving." "after the pointer stops moving."
msgstr "" msgstr ""
"Si está establecido a «true» y el modo del foco es «sloppy» o «mouse» " "Si está establecido a «true» y el modo del foco es «sloppy» o «mouse» "
"entonces el foco no se cambiará inmediatamente al entrar en una ventana, " "entonces el foco no se cambiará inmediatamente al entrar en una ventana, "
"pero sí después de dejar quieto el puntero." "pero sí después de dejar quieto el puntero."
#: data/org.gnome.mutter.gschema.xml.in:79 #: ../data/org.gnome.mutter.gschema.xml.in.h:15
msgid "Draggable border width" msgid "Draggable border width"
msgstr "Anchura arrastrable del borde" msgstr "Anchura arrastrable del borde"
#: data/org.gnome.mutter.gschema.xml.in:80 #: ../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."
msgid "" msgid ""
"The amount of total draggable borders. If the themes visible borders are " "The amount of total draggable borders. If the theme's visible borders are "
"not enough, invisible borders will be added to meet this value." "not enough, invisible borders will be added to meet this value."
msgstr "" msgstr ""
"La cantidad total de borde que se puede arrastrar. Si los bordes visibles " "La cantidad total de borde arrastrable. Si los bordes visibles del tema no "
"del tema no son suficientes, se añadirán bordes invisibles para satisfacer " "son suficientes, se añadirán bordes invisibles para satisfacer este valor."
"este valor."
#: data/org.gnome.mutter.gschema.xml.in:89 #: ../data/org.gnome.mutter.gschema.xml.in.h:17
msgid "Auto maximize nearly monitor sized windows" msgid "Auto maximize nearly monitor sized windows"
msgstr "" msgstr ""
"Maximizar automáticamente las ventanas que casi tengan el tamaño de la " "Maximizar automáticamente las ventanas que casi tengan el tamaño de la "
"pantalla" "pantalla"
#: data/org.gnome.mutter.gschema.xml.in:90 #: ../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 get maximized." "automatically get maximized."
@@ -413,11 +396,11 @@ msgstr ""
"Si está activada, las ventanas nuevas que inicialmente tienen el tamaño de " "Si está activada, las ventanas nuevas que inicialmente tienen el tamaño de "
"la pantalla, se maximizan." "la pantalla, se maximizan."
#: data/org.gnome.mutter.gschema.xml.in:98 #: ../data/org.gnome.mutter.gschema.xml.in.h:19
msgid "Place new windows in the center" msgid "Place new windows in the center"
msgstr "Colocar las ventanas nuevas en el centro" msgstr "Colocar las ventanas nuevas en el centro"
#: data/org.gnome.mutter.gschema.xml.in:99 #: ../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 of the monitor." "screen of the monitor."
@@ -425,130 +408,116 @@ msgstr ""
"Cuando es cierto, las ventanas nuevas se colocarán siempre en el centro de " "Cuando es cierto, las ventanas nuevas se colocarán siempre en el centro de "
"la pantalla activa del monitor." "la pantalla activa del monitor."
#: data/org.gnome.mutter.gschema.xml.in:120 #: ../data/org.gnome.mutter.gschema.xml.in.h:21
msgid "Select window from tab popup" msgid "Select window from tab popup"
msgstr "Seleccionar ventana de la pestaña emergente" msgstr "Seleccionar ventana de la pestaña emergente"
#: data/org.gnome.mutter.gschema.xml.in:125 #: ../data/org.gnome.mutter.gschema.xml.in.h:22
msgid "Cancel tab popup" msgid "Cancel tab popup"
msgstr "Cancelar pestaña emergente" msgstr "Cancelar pestaña emergente"
#: data/org.gnome.mutter.wayland.gschema.xml.in:6 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:1
msgid "Switch to VT 1" msgid "Switch to VT 1"
msgstr "Cambiar al VT 1" msgstr "Cambiar al VT 1"
#: data/org.gnome.mutter.wayland.gschema.xml.in:10 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:2
msgid "Switch to VT 2" msgid "Switch to VT 2"
msgstr "Cambiar al VT 2" msgstr "Cambiar al VT 2"
#: data/org.gnome.mutter.wayland.gschema.xml.in:14 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:3
msgid "Switch to VT 3" msgid "Switch to VT 3"
msgstr "Cambiar al VT 3" msgstr "Cambiar al VT 3"
#: data/org.gnome.mutter.wayland.gschema.xml.in:18 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:4
msgid "Switch to VT 4" msgid "Switch to VT 4"
msgstr "Cambiar al VT 4" msgstr "Cambiar al VT 4"
#: data/org.gnome.mutter.wayland.gschema.xml.in:22 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:5
msgid "Switch to VT 5" msgid "Switch to VT 5"
msgstr "Cambiar al VT 5" msgstr "Cambiar al VT 5"
#: data/org.gnome.mutter.wayland.gschema.xml.in:26 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:6
msgid "Switch to VT 6" msgid "Switch to VT 6"
msgstr "Cambiar al VT 6" msgstr "Cambiar al VT 6"
#: data/org.gnome.mutter.wayland.gschema.xml.in:30 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:7
msgid "Switch to VT 7" msgid "Switch to VT 7"
msgstr "Cambiar al VT 7" msgstr "Cambiar al VT 7"
#: data/org.gnome.mutter.wayland.gschema.xml.in:34 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
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:38 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
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:42 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
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:46 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
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:50 #: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
msgid "Switch to VT 12" msgid "Switch to VT 12"
msgstr "Cambiar al VT 12" msgstr "Cambiar al VT 12"
#. TRANSLATORS: This string refers to a button that switches between #: ../src/backends/meta-input-settings.c:1605
#. * different modes. #| msgid "Switch system controls"
#.
#: src/backends/meta-input-settings.c:1759
#, c-format
#| msgid "Mode Switch: Mode %d"
msgid "Mode Switch (Group %d)"
msgstr "Cambiar modo (grupo %d)"
#. TRANSLATORS: This string refers to an action, cycles drawing tablets'
#. * mapping through the available outputs.
#.
#: src/backends/meta-input-settings.c:1781
msgid "Switch monitor" msgid "Switch monitor"
msgstr "Cambiar monitor" msgstr "Cambiar monitor"
#: src/backends/meta-input-settings.c:1783 #: ../src/backends/meta-input-settings.c:1607
msgid "Show on-screen help" msgid "Show on-screen help"
msgstr "Mostrar la ayuda en pantalla" msgstr "Mostrar la ayuda en pantalla"
#: src/backends/meta-monitor-manager.c:675 #: ../src/backends/meta-monitor-manager.c:515
msgid "Built-in display" msgid "Built-in display"
msgstr "Pantalla integrada" msgstr "Pantalla integrada"
#: src/backends/meta-monitor-manager.c:698 #: ../src/backends/meta-monitor-manager.c:538
msgid "Unknown" msgid "Unknown"
msgstr "Desconocida" msgstr "Desconocida"
#: src/backends/meta-monitor-manager.c:700 #: ../src/backends/meta-monitor-manager.c:540
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:708 #: ../src/backends/meta-monitor-manager.c:548
#, c-format #, c-format
msgid "%s %s" msgid "%s %s"
msgstr "%s %s" msgstr "%s %s"
#. This probably means that a non-WM compositor like xcompmgr is running; #. This probably means that a non-WM compositor like xcompmgr is running;
#. * we have no way to get it to exit #. * we have no way to get it to exit
#: src/compositor/compositor.c:471 #: ../src/compositor/compositor.c:463
#, c-format #, c-format
#| msgid ""
#| "Another compositing manager is already running on screen %i on display "
#| "\"%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 "" msgstr ""
"Ya existe un gestor de composición ejecutándose en la monitor %i, pantalla " "Ya existe un gestor de composición ejecutándose en la monitor %i, pantalla "
"«%s»." "«%s»."
#: src/core/bell.c:194 #: ../src/core/bell.c:194
msgid "Bell event" msgid "Bell event"
msgstr "Evento de campana" msgstr "Evento de campana"
#. Translators: %s is a window title #: ../src/core/delete.c:127
#: src/core/delete.c:127
#, c-format #, c-format
msgid "“%s” is not responding." msgid "“%s” is not responding."
msgstr "«%s» no está respondiendo." msgstr "«%s» no está respondiendo."
#: src/core/delete.c:129 #: ../src/core/delete.c:129
msgid "Application is not responding." msgid "Application is not responding."
msgstr "La aplicación no está respondiendo." msgstr "La aplicación no está respondiendo."
#: 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 to quit entirely." "application to quit entirely."
@@ -556,130 +525,115 @@ msgstr ""
"Puede elegir esperar un rato para ver si continua o forzar la aplicación " "Puede elegir esperar un rato para ver si continua o forzar la aplicación "
"para cerrarla completamente." "para cerrarla completamente."
#: src/core/delete.c:141 #: ../src/core/delete.c:141
msgid "_Force Quit"
msgstr "_Forzar la salida"
#: src/core/delete.c:141
msgid "_Wait" msgid "_Wait"
msgstr "_Esperar" msgstr "_Esperar"
#: src/core/display.c:608 #: ../src/core/delete.c:141
msgid "_Force Quit"
msgstr "_Forzar la salida"
#: ../src/core/display.c:590
#, c-format #, c-format
#| msgid "Failed to open X Window System display '%s'\n" 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:189 #: ../src/core/main.c:182
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:195 #: ../src/core/main.c:188
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:201 #: ../src/core/main.c:194
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:206 #: ../src/core/main.c:199
msgid "X Display to use" msgid "X Display to use"
msgstr "Pantalla X que usar" msgstr "Pantalla X que usar"
#: src/core/main.c:212 #: ../src/core/main.c:205
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:218 #: ../src/core/main.c:211
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:225 #: ../src/core/main.c:218
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:231 #: ../src/core/main.c:224
msgid "Run as a nested compositor" msgid "Run as a nested compositor"
msgstr "Ejecutar como compositor anidado" msgstr "Ejecutar como compositor anidado"
#: src/core/main.c:239 #: ../src/core/main.c:232
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"
#: src/core/mutter.c:39 #: ../src/core/mutter.c:39
#, c-format #, 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"
msgid "" msgid ""
"mutter %s\n" "mutter %s\n"
"Copyright © 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 PURPOSE.\n" "PARTICULAR PURPOSE.\n"
msgstr "" msgstr ""
"muttery %s\n" "muttery %s\n"
"Copyright © 2001-%d Havoc Pennington, Red Hat, Inc., y otros\n" "Copyright © 2001-%d Havoc Pennington, Red Hat, Inc., y otros\n"
"Este programa es software libre; vea el código fuente para obtener las " "Este programa es software libre; vea el código fuente para obtener las\n"
"condiciones de copia.\n" "condiciones de copia. NO se proporciona ninguna garantía; ni de\n"
"NO se proporciona ninguna garantía; ni de MERCANTILIDAD O DE IDONEIDAD PARA " "MERCANTILIDAD O DE IDONEIDAD PARA UN PROPÓSITO PARTICULAR.\n"
"UN PROPÓSITO PARTICULAR.\n"
#: src/core/mutter.c:53 #: ../src/core/mutter.c:53
msgid "Print version" msgid "Print version"
msgstr "Imprimir versión" msgstr "Imprimir versión"
#: src/core/mutter.c:59 #: ../src/core/mutter.c:59
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:1997
#, c-format #, c-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Área de trabajo %d" msgstr "Área de trabajo %d"
#: src/core/screen.c:580 #: ../src/core/screen.c:521
#, c-format #, c-format
#| msgid ""
#| "Display \"%s\" already has a window manager; try using the --replace "
#| "option to replace the current window manager."
msgid "" msgid ""
"Display “%s” already has a window manager; try using the --replace option to " "Display \"%s\" already has a window manager; try using the --replace option "
"replace the current window manager." "to replace the current window manager."
msgstr "" 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:665 #: ../src/core/screen.c:606
#, c-format #, c-format
#| msgid "Screen %d on display '%s' is invalid\n" 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:120 #: ../src/core/util.c:120
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"
#: src/wayland/meta-wayland-tablet-pad.c:563 #: ../src/wayland/meta-wayland-tablet-pad.c:595
#, c-format #, c-format
msgid "Mode Switch: Mode %d" msgid "Mode Switch: Mode %d"
msgstr "Cambiar modo: modo %d" msgstr "Cambiar modo: modo %d"
#: src/x11/session.c:1815 #: ../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."
msgid "" msgid ""
"These windows do not support save current setup and will have to be " "These windows do not support &quot;save current setup&quot; and will have to "
"restarted manually next time you log in." "be restarted manually next time you log in."
msgstr "" msgstr ""
"Estas ventanas no soportan «guardar la configuración actual» y tendrán que " "Estas ventanas no soportan «guardar la configuración actual» y tendrán que "
"reiniciarse manualmente la próxima vez que inicie una sesión." "reiniciarse manualmente la próxima vez que inicie una sesión."
#: src/x11/window-props.c:559 #: ../src/x11/window-props.c:548
#, c-format #, c-format
msgid "%s (on %s)" msgid "%s (on %s)"
msgstr "%s (on %s)" msgstr "%s (on %s)"

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