Compare commits
15 Commits
3.23.92
...
wip/garnac
Author | SHA1 | Date | |
---|---|---|---|
7e3f96d972 | |||
5f91d34f88 | |||
d0a708b42c | |||
d940d5e581 | |||
70f69e5de4 | |||
c2ce0e6795 | |||
adbd566f83 | |||
f511f65a14 | |||
0942d68f1a | |||
73d5d837db | |||
ea5b691ac6 | |||
53d1b11386 | |||
85e8feca67 | |||
fb47374629 | |||
9a92d5fe89 |
9
.gitignore
vendored
9
.gitignore
vendored
@ -41,14 +41,8 @@ stamp-h1
|
||||
*~
|
||||
stamp-it
|
||||
.intltool-merge-cache
|
||||
ABOUT-NLS
|
||||
POTFILES
|
||||
Makevars.template
|
||||
po/*.header
|
||||
po/*.pot
|
||||
po/*.sed
|
||||
po/*.sin
|
||||
Rules-quot
|
||||
libmutter.pc
|
||||
mutter
|
||||
mutter-restart-helper
|
||||
@ -83,10 +77,7 @@ src/relative-pointer-unstable-v*-protocol.c
|
||||
src/relative-pointer-unstable-v*-server-protocol.h
|
||||
src/pointer-constraints-unstable-v*-protocol.c
|
||||
src/pointer-constraints-unstable-v*-server-protocol.h
|
||||
src/xdg-foreign-unstable-v*-protocol.c
|
||||
src/xdg-foreign-unstable-v*-server-protocol.h
|
||||
src/meta/meta-version.h
|
||||
src/libmutter-*.pc
|
||||
doc/reference/*.args
|
||||
doc/reference/*.bak
|
||||
doc/reference/*.hierarchy
|
||||
|
209
NEWS
209
NEWS
@ -1,212 +1,3 @@
|
||||
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
|
||||
=======
|
||||
* Consider XDG_SESSION_TYPE when determining session type [Jouke; #759388]
|
||||
* Re-add support for edge scrolling on some touchpads [Bastien; #768245]
|
||||
* Support mouse and trackball acceleration profile [Jonas; #769179]
|
||||
* Draw monitor contentn to individual framebuffer [Jonas; #768976]
|
||||
* Support virtual input devices [Jonas, Carlos; #765009]
|
||||
* Set correct output scale on hotplug [Jonas; #769505]
|
||||
* Misc. bug fixes and cleanups [Florian, Jonas, Thomas, Bastien, Carlos;
|
||||
#769014, #769024, #769054, #769070, #769036, #769305, #769578, #769800,
|
||||
#769073]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Carlos Garnacho, Thomas Hindoe Paaboel Andersen, Simon McVittie,
|
||||
Alberts Muktupāvels, Florian Müllner, Bastien Nocera, Jouke Witteveen
|
||||
|
||||
Translations:
|
||||
Daniel Mustieles [es], Aurimas Černius [lt], Dušan Kazik [sk],
|
||||
Fabio Tomat [fur], Balázs Úr [hu], Yosef Or Boczko [he], Marek Černocký [cs],
|
||||
Matej Urbančič [sl]
|
||||
|
||||
3.21.4
|
||||
======
|
||||
* Fix missing frame border around GTK+ dialogs [Florian; #745060]
|
||||
|
23
autogen.sh
23
autogen.sh
@ -6,21 +6,16 @@ test -z "$srcdir" && srcdir=.
|
||||
|
||||
REQUIRED_AUTOMAKE_VERSION=1.11
|
||||
|
||||
pushd $srcdir
|
||||
|
||||
(test -f configure.ac \
|
||||
&& test -d src) || {
|
||||
(test -f $srcdir/configure.ac \
|
||||
&& test -d $srcdir/src) || {
|
||||
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
|
||||
echo " top-level mutter directory"
|
||||
echo " top-level metacity directory"
|
||||
exit 1
|
||||
}
|
||||
|
||||
aclocal --install || exit 1
|
||||
intltoolize --force --copy --automake || exit 1
|
||||
autoreconf --verbose --force --install || exit 1
|
||||
|
||||
popd
|
||||
|
||||
if [ "$NOCONFIGURE" = "" ]; then
|
||||
$srcdir/configure "$@" || exit 1
|
||||
fi
|
||||
which gnome-autogen.sh || {
|
||||
echo "You need to install gnome-common from GNOME Subversion (or from"
|
||||
echo "your distribution's package manager)."
|
||||
exit 1
|
||||
}
|
||||
. gnome-autogen.sh
|
||||
|
@ -25,7 +25,6 @@ AM_CPPFLAGS = \
|
||||
-I$(top_builddir)/clutter \
|
||||
-I$(top_srcdir)/../cogl \
|
||||
-I$(top_builddir)/../cogl \
|
||||
-I$(top_builddir)/../cogl/cogl \
|
||||
$(CLUTTER_DEPRECATED_CFLAGS) \
|
||||
$(CLUTTER_DEBUG_CFLAGS) \
|
||||
$(CLUTTER_HIDDEN_VISIBILITY_CFLAGS) \
|
||||
@ -37,7 +36,7 @@ AM_CFLAGS = $(CLUTTER_CFLAGS) $(MAINTAINER_CFLAGS)
|
||||
INTROSPECTION_GIRS =
|
||||
|
||||
# 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_deprecateddir = $(clutter_base_includedir)/clutter/deprecated
|
||||
|
||||
@ -113,6 +112,7 @@ source_h = \
|
||||
clutter-snap-constraint.h \
|
||||
clutter-stage.h \
|
||||
clutter-stage-manager.h \
|
||||
clutter-stage-view.h \
|
||||
clutter-tap-action.h \
|
||||
clutter-test-utils.h \
|
||||
clutter-texture.h \
|
||||
@ -198,6 +198,7 @@ source_c = \
|
||||
clutter-snap-constraint.c \
|
||||
clutter-stage.c \
|
||||
clutter-stage-manager.c \
|
||||
clutter-stage-view.c \
|
||||
clutter-stage-window.c \
|
||||
clutter-tap-action.c \
|
||||
clutter-test-utils.c \
|
||||
@ -239,7 +240,6 @@ source_h_priv = \
|
||||
clutter-settings-private.h \
|
||||
clutter-stage-manager-private.h \
|
||||
clutter-stage-private.h \
|
||||
clutter-stage-view.h \
|
||||
clutter-stage-window.h \
|
||||
$(NULL)
|
||||
|
||||
@ -248,7 +248,6 @@ source_c_priv = \
|
||||
clutter-easing.c \
|
||||
clutter-event-translator.c \
|
||||
clutter-id-pool.c \
|
||||
clutter-stage-view.c \
|
||||
$(NULL)
|
||||
|
||||
# deprecated installed headers
|
||||
@ -356,7 +355,7 @@ EXTRA_DIST += clutter-version.h.in clutter-version.h
|
||||
# key symbol update script
|
||||
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
|
||||
# shared library whose name was determined by the single backend it
|
||||
@ -414,13 +413,11 @@ x11_source_c_priv = \
|
||||
x11_source_c += \
|
||||
x11/clutter-device-manager-xi2.c \
|
||||
x11/clutter-input-device-xi2.c \
|
||||
x11/clutter-input-device-tool-xi2.c \
|
||||
$(NULL)
|
||||
|
||||
x11_source_h_priv += \
|
||||
x11/clutter-device-manager-xi2.h \
|
||||
x11/clutter-input-device-xi2.h \
|
||||
x11/clutter-input-device-tool-xi2.h \
|
||||
$(NULL)
|
||||
|
||||
x11_source_c += \
|
||||
@ -442,10 +439,10 @@ x11_introspection = $(x11_source_c) $(x11_source_h)
|
||||
clutterx11_includedir = $(clutter_includedir)/x11
|
||||
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)
|
||||
|
||||
pc_files += mutter-clutter-x11-$(LIBMUTTER_API_VERSION).pc
|
||||
pc_files += mutter-clutter-x11-$(CLUTTER_API_VERSION).pc
|
||||
|
||||
# Shared cogl backend files
|
||||
cogl_source_h =
|
||||
@ -583,17 +580,17 @@ nodist_clutter_include_HEADERS = clutter-config.h $(built_source_h)
|
||||
clutter_deprecated_HEADERS = $(deprecated_h)
|
||||
|
||||
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) \
|
||||
$(CLUTTER_LIBS) \
|
||||
$(top_builddir)/../cogl/cogl/libmutter-cogl-$(LIBMUTTER_API_VERSION).la \
|
||||
$(top_builddir)/../cogl/cogl-pango/libmutter-cogl-pango-$(LIBMUTTER_API_VERSION).la \
|
||||
$(top_builddir)/../cogl/cogl-path/libmutter-cogl-path-$(LIBMUTTER_API_VERSION).la \
|
||||
$(top_builddir)/../cogl/cogl/libmutter-cogl.la \
|
||||
$(top_builddir)/../cogl/cogl-pango/libmutter-cogl-pango.la \
|
||||
$(top_builddir)/../cogl/cogl-path/libmutter-cogl-path.la \
|
||||
$(NULL)
|
||||
|
||||
libmutter_clutter_@LIBMUTTER_API_VERSION@_la_SOURCES = \
|
||||
libmutter_clutter_@CLUTTER_API_VERSION@_la_SOURCES = \
|
||||
$(backend_source_c) \
|
||||
$(backend_source_h) \
|
||||
$(backend_source_c_priv) \
|
||||
@ -611,12 +608,12 @@ libmutter_clutter_@LIBMUTTER_API_VERSION@_la_SOURCES = \
|
||||
$(cally_sources_private) \
|
||||
$(NULL)
|
||||
|
||||
nodist_libmutter_clutter_@LIBMUTTER_API_VERSION@_la_SOURCES = \
|
||||
nodist_libmutter_clutter_@CLUTTER_API_VERSION@_la_SOURCES = \
|
||||
$(backend_source_built) \
|
||||
$(built_source_c) \
|
||||
$(built_source_h)
|
||||
|
||||
libmutter_clutter_@LIBMUTTER_API_VERSION@_la_LDFLAGS = \
|
||||
libmutter_clutter_@CLUTTER_API_VERSION@_la_LDFLAGS = \
|
||||
$(CLUTTER_LINK_FLAGS) \
|
||||
$(CLUTTER_LT_LDFLAGS) \
|
||||
-export-dynamic \
|
||||
@ -630,13 +627,13 @@ install-exec-local:
|
||||
rm -f $$lib.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION); \
|
||||
) ; \
|
||||
(cd $(DESTDIR)$(mutterlibdir) && \
|
||||
{ ln -s -f libmutter-clutter-$(LIBMUTTER_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; }; \
|
||||
{ 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-1.0.so.0.$(CLUTTER_LT_CURRENT).$(CLUTTER_LT_REVISION) $$lib.0; }; \
|
||||
} \
|
||||
) ; \
|
||||
(cd $(DESTDIR)$(mutterlibdir) && \
|
||||
{ ln -s -f libmutter-clutter-$(LIBMUTTER_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; }; \
|
||||
{ ln -s -f libmutter-clutter-$(CLUTTER_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
|
||||
@ -644,65 +641,59 @@ install-exec-local:
|
||||
# gobject-introspection rules
|
||||
-include $(INTROSPECTION_MAKEFILE)
|
||||
|
||||
INTROSPECTION_SCANNER_ARGS = \
|
||||
--add-include-path=$(top_builddir)/../cogl/cogl \
|
||||
--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}
|
||||
INTROSPECTION_SCANNER_ARGS = --add-include-path=$(top_builddir)/../cogl/cogl --add-include-path=$(top_builddir)/../cogl/cogl-pango
|
||||
INTROSPECTION_COMPILER_ARGS = --includedir=$(top_builddir)/../cogl/cogl --includedir=$(top_builddir)/../cogl/cogl-pango
|
||||
|
||||
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_@LIBMUTTER_API_VERSION@_gir_VERSION = @LIBMUTTER_API_VERSION@
|
||||
Clutter_@LIBMUTTER_API_VERSION@_gir_LIBS = libmutter-clutter-@LIBMUTTER_API_VERSION@.la
|
||||
Clutter_@LIBMUTTER_API_VERSION@_gir_FILES = \
|
||||
Clutter_@CLUTTER_API_VERSION_AM@_gir_NAMESPACE = Clutter
|
||||
Clutter_@CLUTTER_API_VERSION_AM@_gir_VERSION = @CLUTTER_API_VERSION@
|
||||
Clutter_@CLUTTER_API_VERSION_AM@_gir_LIBS = libmutter-clutter-@CLUTTER_API_VERSION@.la
|
||||
Clutter_@CLUTTER_API_VERSION_AM@_gir_FILES = \
|
||||
$(clutter_include_HEADERS) \
|
||||
$(clutter_deprecated_HEADERS) \
|
||||
$(nodist_clutter_include_HEADERS) \
|
||||
$(source_c) \
|
||||
$(deprecated_c) \
|
||||
$(built_source_c)
|
||||
Clutter_@LIBMUTTER_API_VERSION@_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_@LIBMUTTER_API_VERSION@_gir_SCANNERFLAGS = \
|
||||
Clutter_@CLUTTER_API_VERSION_AM@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS)
|
||||
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_@CLUTTER_API_VERSION_AM@_gir_SCANNERFLAGS = \
|
||||
--warn-all \
|
||||
--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_@LIBMUTTER_API_VERSION@_gir_VERSION = @LIBMUTTER_API_VERSION@
|
||||
Cally_@LIBMUTTER_API_VERSION@_gir_LIBS = libmutter-clutter-@LIBMUTTER_API_VERSION@.la
|
||||
Cally_@LIBMUTTER_API_VERSION@_gir_FILES = $(cally_sources_h) $(cally_sources_c)
|
||||
Cally_@LIBMUTTER_API_VERSION@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS)
|
||||
Cally_@LIBMUTTER_API_VERSION@_gir_SCANNERFLAGS = \
|
||||
Cally_@CLUTTER_API_VERSION_AM@_gir_NAMESPACE = Cally
|
||||
Cally_@CLUTTER_API_VERSION_AM@_gir_VERSION = @CLUTTER_API_VERSION@
|
||||
Cally_@CLUTTER_API_VERSION_AM@_gir_LIBS = libmutter-clutter-@CLUTTER_API_VERSION@.la
|
||||
Cally_@CLUTTER_API_VERSION_AM@_gir_FILES = $(cally_sources_h) $(cally_sources_c)
|
||||
Cally_@CLUTTER_API_VERSION_AM@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS)
|
||||
Cally_@CLUTTER_API_VERSION_AM@_gir_SCANNERFLAGS = \
|
||||
--warn-all \
|
||||
--c-include='cally/cally.h' \
|
||||
--pkg-export=mutter-cally-@LIBMUTTER_API_VERSION@ \
|
||||
--include-uninstalled=$(top_builddir)/clutter/Clutter-@LIBMUTTER_API_VERSION@.gir
|
||||
--pkg-export=mutter-cally-@CLUTTER_API_VERSION@ \
|
||||
--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_@LIBMUTTER_API_VERSION@_gir_INCLUDES = xlib-2.0
|
||||
ClutterX11_@LIBMUTTER_API_VERSION@_gir_LIBS = libmutter-clutter-@LIBMUTTER_API_VERSION@.la
|
||||
ClutterX11_@LIBMUTTER_API_VERSION@_gir_FILES = $(x11_introspection)
|
||||
ClutterX11_@LIBMUTTER_API_VERSION@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS)
|
||||
ClutterX11_@LIBMUTTER_API_VERSION@_gir_SCANNERFLAGS = \
|
||||
ClutterX11_@CLUTTER_API_VERSION_AM@_gir_NAMESPACE = ClutterX11
|
||||
ClutterX11_@CLUTTER_API_VERSION_AM@_gir_INCLUDES = xlib-2.0
|
||||
ClutterX11_@CLUTTER_API_VERSION_AM@_gir_LIBS = libmutter-clutter-@CLUTTER_API_VERSION@.la
|
||||
ClutterX11_@CLUTTER_API_VERSION_AM@_gir_FILES = $(x11_introspection)
|
||||
ClutterX11_@CLUTTER_API_VERSION_AM@_gir_CFLAGS = $(AM_CPPFLAGS) $(CLUTTER_CFLAGS)
|
||||
ClutterX11_@CLUTTER_API_VERSION_AM@_gir_SCANNERFLAGS = \
|
||||
--warn-all \
|
||||
--c-include='clutter/x11/clutter-x11.h' \
|
||||
--pkg-export=mutter-clutter-x11-@LIBMUTTER_API_VERSION@ \
|
||||
--include-uninstalled=$(top_builddir)/clutter/Clutter-@LIBMUTTER_API_VERSION@.gir
|
||||
--pkg-export=mutter-clutter-x11-@CLUTTER_API_VERSION@ \
|
||||
--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
|
||||
# install anything - we need to install inside our prefix.
|
||||
|
@ -401,7 +401,7 @@ clutter_canvas_emit_draw (ClutterCanvas *self)
|
||||
gboolean res;
|
||||
cairo_t *cr;
|
||||
|
||||
g_assert (priv->height > 0 && priv->width > 0);
|
||||
g_assert (priv->width > 0 && priv->width > 0);
|
||||
|
||||
priv->dirty = TRUE;
|
||||
|
||||
|
@ -54,7 +54,6 @@
|
||||
struct _ClutterClonePrivate
|
||||
{
|
||||
ClutterActor *clone_source;
|
||||
gulong source_destroy_id;
|
||||
};
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
static void
|
||||
on_source_destroyed (ClutterActor *source,
|
||||
ClutterClone *self)
|
||||
{
|
||||
clutter_clone_set_source_internal (self, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_clone_set_source_internal (ClutterClone *self,
|
||||
ClutterActor *source)
|
||||
@ -395,8 +387,6 @@ clutter_clone_set_source_internal (ClutterClone *self,
|
||||
|
||||
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));
|
||||
g_object_unref (priv->clone_source);
|
||||
priv->clone_source = NULL;
|
||||
@ -406,8 +396,6 @@ clutter_clone_set_source_internal (ClutterClone *self,
|
||||
{
|
||||
priv->clone_source = g_object_ref (source);
|
||||
_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]);
|
||||
|
@ -154,15 +154,6 @@ struct _ClutterInputDeviceClass
|
||||
guint *evdev_keycode);
|
||||
void (* update_from_tool) (ClutterInputDevice *device,
|
||||
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 */
|
||||
@ -197,10 +188,6 @@ void _clutter_device_manager_select_stage_events (ClutterDeviceMa
|
||||
ClutterStage *stage);
|
||||
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 */
|
||||
gboolean _clutter_input_device_has_sequence (ClutterInputDevice *device,
|
||||
ClutterEventSequence *sequence);
|
||||
|
@ -48,7 +48,6 @@
|
||||
#include "clutter-private.h"
|
||||
#include "clutter-stage-private.h"
|
||||
#include "clutter-virtual-input-device.h"
|
||||
#include "clutter-input-device-tool.h"
|
||||
|
||||
struct _ClutterDeviceManagerPrivate
|
||||
{
|
||||
@ -71,7 +70,6 @@ enum
|
||||
{
|
||||
DEVICE_ADDED,
|
||||
DEVICE_REMOVED,
|
||||
TOOL_CHANGED,
|
||||
|
||||
LAST_SIGNAL
|
||||
};
|
||||
@ -186,16 +184,6 @@ clutter_device_manager_class_init (ClutterDeviceManagerClass *klass)
|
||||
_clutter_marshal_VOID__OBJECT,
|
||||
G_TYPE_NONE, 1,
|
||||
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
|
||||
@ -470,20 +458,3 @@ clutter_device_manager_create_virtual_device (ClutterDeviceManager *device_man
|
||||
return manager_class->create_virtual_device (device_manager,
|
||||
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);
|
||||
}
|
||||
|
@ -83,14 +83,11 @@ struct _ClutterDeviceManagerClass
|
||||
ClutterInputDevice *device);
|
||||
void (* select_stage_events) (ClutterDeviceManager *manager,
|
||||
ClutterStage *stage);
|
||||
ClutterVirtualInputDevice *(* create_virtual_device) (ClutterDeviceManager *device_manager,
|
||||
ClutterVirtualInputDevice *(* create_virtual_device) (ClutterDeviceManager *manager,
|
||||
ClutterInputDeviceType device_type);
|
||||
void (* compress_motion) (ClutterDeviceManager *device_manger,
|
||||
ClutterEvent *event,
|
||||
const ClutterEvent *to_discard);
|
||||
|
||||
/* padding */
|
||||
gpointer _padding[6];
|
||||
gpointer _padding[7];
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_2
|
||||
|
@ -1990,28 +1990,22 @@ clutter_event_remove_filter (guint id)
|
||||
}
|
||||
|
||||
/**
|
||||
* clutter_event_get_touchpad_gesture_finger_count:
|
||||
* @event: a touchpad swipe/pinch event
|
||||
* clutter_event_get_gesture_swipe_finger_count:
|
||||
* @event: a touchpad swipe event
|
||||
*
|
||||
* 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
|
||||
**/
|
||||
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->type == CLUTTER_TOUCHPAD_SWIPE ||
|
||||
event->type == CLUTTER_TOUCHPAD_PINCH, 0);
|
||||
g_return_val_if_fail (event->type == CLUTTER_TOUCHPAD_SWIPE, 0);
|
||||
|
||||
if (event->type == CLUTTER_TOUCHPAD_SWIPE)
|
||||
return event->touchpad_swipe.n_fingers;
|
||||
else if (event->type == CLUTTER_TOUCHPAD_PINCH)
|
||||
return event->touchpad_pinch.n_fingers;
|
||||
|
||||
return 0;
|
||||
return event->touchpad_swipe.n_fingers;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -459,7 +459,6 @@ struct _ClutterTouchpadPinchEvent
|
||||
gfloat dy;
|
||||
gfloat angle_delta;
|
||||
gfloat scale;
|
||||
guint n_fingers;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -508,7 +507,6 @@ struct _ClutterPadButtonEvent
|
||||
guint32 button;
|
||||
guint32 group;
|
||||
ClutterInputDevice *device;
|
||||
guint32 mode;
|
||||
};
|
||||
|
||||
struct _ClutterPadStripEvent
|
||||
@ -524,7 +522,6 @@ struct _ClutterPadStripEvent
|
||||
guint32 strip_number;
|
||||
guint32 group;
|
||||
gdouble value;
|
||||
guint32 mode;
|
||||
};
|
||||
|
||||
struct _ClutterPadRingEvent
|
||||
@ -540,7 +537,6 @@ struct _ClutterPadRingEvent
|
||||
guint32 ring_number;
|
||||
guint32 group;
|
||||
gdouble angle;
|
||||
guint32 mode;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -756,7 +752,7 @@ CLUTTER_AVAILABLE_IN_1_2
|
||||
const ClutterEvent * clutter_get_current_event (void);
|
||||
|
||||
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
|
||||
gdouble clutter_event_get_gesture_pinch_angle_delta (const ClutterEvent *event);
|
||||
|
@ -2175,63 +2175,6 @@ clutter_input_device_get_n_mode_groups (ClutterInputDevice *device)
|
||||
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 *
|
||||
clutter_input_device_get_device_node (ClutterInputDevice *device)
|
||||
{
|
||||
@ -2266,13 +2209,3 @@ clutter_input_device_set_mapping_mode (ClutterInputDevice *device,
|
||||
device->mapping_mode = mapping;
|
||||
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);
|
||||
}
|
||||
|
@ -147,18 +147,6 @@ gint clutter_input_device_get_n_strips (ClutterInputDev
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
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
|
||||
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
|
||||
void clutter_input_device_set_mapping_mode (ClutterInputDevice *device,
|
||||
ClutterInputDeviceMapping mapping);
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
gboolean clutter_input_device_is_grouped (ClutterInputDevice *device,
|
||||
ClutterInputDevice *other_device);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
@ -719,8 +719,14 @@ clutter_get_text_direction (void)
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Re-use GTK+'s LTR/RTL handling */
|
||||
const char *e = g_dgettext ("gtk30", "default:LTR");
|
||||
/* Translators: Leave this UNTRANSLATED if your language is
|
||||
* 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)
|
||||
dir = CLUTTER_TEXT_DIRECTION_RTL;
|
||||
|
@ -23,7 +23,6 @@ VOID:OBJECT
|
||||
VOID:OBJECT,FLAGS
|
||||
VOID:OBJECT,FLOAT,FLOAT
|
||||
VOID:OBJECT,FLOAT,FLOAT,FLAGS
|
||||
VOID:OBJECT,OBJECT
|
||||
VOID:OBJECT,PARAM
|
||||
VOID:OBJECT,POINTER
|
||||
VOID:OBJECT,UINT
|
||||
|
@ -27,7 +27,6 @@ enum
|
||||
|
||||
PROP_LAYOUT,
|
||||
PROP_FRAMEBUFFER,
|
||||
PROP_OFFSCREEN,
|
||||
|
||||
PROP_LAST
|
||||
};
|
||||
@ -38,10 +37,6 @@ typedef struct _ClutterStageViewPrivate
|
||||
{
|
||||
cairo_rectangle_int_t layout;
|
||||
CoglFramebuffer *framebuffer;
|
||||
|
||||
CoglOffscreen *offscreen;
|
||||
CoglPipeline *pipeline;
|
||||
|
||||
guint dirty_viewport : 1;
|
||||
guint dirty_projection : 1;
|
||||
} ClutterStageViewPrivate;
|
||||
@ -60,18 +55,6 @@ clutter_stage_view_get_layout (ClutterStageView *view,
|
||||
|
||||
CoglFramebuffer *
|
||||
clutter_stage_view_get_framebuffer (ClutterStageView *view)
|
||||
{
|
||||
ClutterStageViewPrivate *priv =
|
||||
clutter_stage_view_get_instance_private (view);
|
||||
|
||||
if (priv->offscreen)
|
||||
return priv->offscreen;
|
||||
else
|
||||
return priv->framebuffer;
|
||||
}
|
||||
|
||||
CoglFramebuffer *
|
||||
clutter_stage_view_get_onscreen (ClutterStageView *view)
|
||||
{
|
||||
ClutterStageViewPrivate *priv =
|
||||
clutter_stage_view_get_instance_private (view);
|
||||
@ -79,68 +62,6 @@ clutter_stage_view_get_onscreen (ClutterStageView *view)
|
||||
return priv->framebuffer;
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_stage_view_ensure_offscreen_blit_pipeline (ClutterStageView *view)
|
||||
{
|
||||
ClutterStageViewPrivate *priv =
|
||||
clutter_stage_view_get_instance_private (view);
|
||||
ClutterStageViewClass *view_class =
|
||||
CLUTTER_STAGE_VIEW_GET_CLASS (view);
|
||||
|
||||
g_assert (priv->offscreen != NULL);
|
||||
|
||||
if (priv->pipeline)
|
||||
return;
|
||||
|
||||
priv->pipeline =
|
||||
cogl_pipeline_new (cogl_framebuffer_get_context (priv->offscreen));
|
||||
cogl_pipeline_set_layer_filters (priv->pipeline, 0,
|
||||
COGL_PIPELINE_FILTER_NEAREST,
|
||||
COGL_PIPELINE_FILTER_NEAREST);
|
||||
cogl_pipeline_set_layer_texture (priv->pipeline, 0,
|
||||
cogl_offscreen_get_texture (priv->offscreen));
|
||||
cogl_pipeline_set_layer_wrap_mode (priv->pipeline, 0,
|
||||
COGL_PIPELINE_WRAP_MODE_CLAMP_TO_EDGE);
|
||||
|
||||
if (view_class->setup_offscreen_blit_pipeline)
|
||||
view_class->setup_offscreen_blit_pipeline (view, priv->pipeline);
|
||||
}
|
||||
|
||||
void
|
||||
clutter_stage_view_invalidate_offscreen_blit_pipeline (ClutterStageView *view)
|
||||
{
|
||||
ClutterStageViewPrivate *priv =
|
||||
clutter_stage_view_get_instance_private (view);
|
||||
|
||||
g_clear_pointer (&priv->pipeline, cogl_object_unref);
|
||||
}
|
||||
|
||||
void
|
||||
clutter_stage_view_blit_offscreen (ClutterStageView *view,
|
||||
const cairo_rectangle_int_t *rect)
|
||||
{
|
||||
ClutterStageViewPrivate *priv =
|
||||
clutter_stage_view_get_instance_private (view);
|
||||
CoglMatrix matrix;
|
||||
|
||||
clutter_stage_view_ensure_offscreen_blit_pipeline (view);
|
||||
cogl_framebuffer_push_matrix (priv->framebuffer);
|
||||
|
||||
/* Set transform so 0,0 is on the top left corner and 1,1 on
|
||||
* the bottom right corner.
|
||||
*/
|
||||
cogl_matrix_init_identity (&matrix);
|
||||
cogl_matrix_translate (&matrix, -1, 1, 0);
|
||||
cogl_matrix_scale (&matrix, 2, -2, 0);
|
||||
cogl_framebuffer_set_projection_matrix (priv->framebuffer, &matrix);
|
||||
|
||||
cogl_framebuffer_draw_rectangle (priv->framebuffer,
|
||||
priv->pipeline,
|
||||
0, 0, 1, 1);
|
||||
|
||||
cogl_framebuffer_pop_matrix (priv->framebuffer);
|
||||
}
|
||||
|
||||
gboolean
|
||||
clutter_stage_view_is_dirty_viewport (ClutterStageView *view)
|
||||
{
|
||||
@ -179,35 +100,6 @@ clutter_stage_view_set_dirty_projection (ClutterStageView *view,
|
||||
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
|
||||
clutter_stage_view_transform_to_onscreen (ClutterStageView *view,
|
||||
gfloat *x,
|
||||
gfloat *y)
|
||||
{
|
||||
gfloat z = 0, w = 1;
|
||||
CoglMatrix matrix;
|
||||
|
||||
clutter_stage_view_get_offscreen_transformation_matrix (view, &matrix);
|
||||
cogl_matrix_get_inverse (&matrix, &matrix);
|
||||
cogl_matrix_transform_point (&matrix, x, y, &z, &w);
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_stage_default_get_offscreen_transformation_matrix (ClutterStageView *view,
|
||||
CoglMatrix *matrix)
|
||||
{
|
||||
cogl_matrix_init_identity (matrix);
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_stage_view_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
@ -226,11 +118,6 @@ clutter_stage_view_get_property (GObject *object,
|
||||
case PROP_FRAMEBUFFER:
|
||||
g_value_set_boxed (value, priv->framebuffer);
|
||||
break;
|
||||
case PROP_OFFSCREEN:
|
||||
g_value_set_boxed (value, priv->offscreen);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
}
|
||||
}
|
||||
|
||||
@ -254,11 +141,6 @@ clutter_stage_view_set_property (GObject *object,
|
||||
case PROP_FRAMEBUFFER:
|
||||
priv->framebuffer = g_value_dup_boxed (value);
|
||||
break;
|
||||
case PROP_OFFSCREEN:
|
||||
priv->offscreen = g_value_dup_boxed (value);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
}
|
||||
}
|
||||
|
||||
@ -270,20 +152,11 @@ clutter_stage_view_dispose (GObject *object)
|
||||
clutter_stage_view_get_instance_private (view);
|
||||
|
||||
g_clear_pointer (&priv->framebuffer, cogl_object_unref);
|
||||
g_clear_pointer (&priv->offscreen, cogl_object_unref);
|
||||
g_clear_pointer (&priv->pipeline, cogl_object_unref);
|
||||
|
||||
G_OBJECT_CLASS (clutter_stage_view_parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_stage_view_init (ClutterStageView *view)
|
||||
{
|
||||
ClutterStageViewPrivate *priv =
|
||||
clutter_stage_view_get_instance_private (view);
|
||||
|
||||
priv->dirty_viewport = TRUE;
|
||||
priv->dirty_projection = TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -291,9 +164,6 @@ clutter_stage_view_class_init (ClutterStageViewClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
klass->get_offscreen_transformation_matrix =
|
||||
clutter_stage_default_get_offscreen_transformation_matrix;
|
||||
|
||||
object_class->get_property = clutter_stage_view_get_property;
|
||||
object_class->set_property = clutter_stage_view_set_property;
|
||||
object_class->dispose = clutter_stage_view_dispose;
|
||||
@ -309,19 +179,10 @@ clutter_stage_view_class_init (ClutterStageViewClass *klass)
|
||||
obj_props[PROP_FRAMEBUFFER] =
|
||||
g_param_spec_boxed ("framebuffer",
|
||||
"View framebuffer",
|
||||
"The front buffer of the view",
|
||||
"The framebuffer of the view",
|
||||
COGL_TYPE_HANDLE,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
obj_props[PROP_OFFSCREEN] =
|
||||
g_param_spec_boxed ("offscreen",
|
||||
"Offscreen buffer",
|
||||
"Framebuffer used as intermediate buffer",
|
||||
COGL_TYPE_HANDLE,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT_ONLY |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
g_object_class_install_properties (object_class, PROP_LAST, obj_props);
|
||||
}
|
||||
|
@ -33,12 +33,6 @@ G_DECLARE_DERIVABLE_TYPE (ClutterStageView, clutter_stage_view,
|
||||
struct _ClutterStageViewClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
|
||||
void (* setup_offscreen_blit_pipeline) (ClutterStageView *view,
|
||||
CoglPipeline *pipeline);
|
||||
|
||||
void (* get_offscreen_transformation_matrix) (ClutterStageView *view,
|
||||
CoglMatrix *matrix);
|
||||
};
|
||||
|
||||
CLUTTER_AVAILABLE_IN_MUTTER
|
||||
@ -47,18 +41,6 @@ void clutter_stage_view_get_layout (ClutterStageView *view,
|
||||
|
||||
CLUTTER_AVAILABLE_IN_MUTTER
|
||||
CoglFramebuffer *clutter_stage_view_get_framebuffer (ClutterStageView *view);
|
||||
CLUTTER_AVAILABLE_IN_MUTTER
|
||||
CoglFramebuffer *clutter_stage_view_get_onscreen (ClutterStageView *view);
|
||||
CLUTTER_AVAILABLE_IN_MUTTER
|
||||
void clutter_stage_view_invalidate_offscreen_blit_pipeline (ClutterStageView *view);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_MUTTER
|
||||
void clutter_stage_view_transform_to_onscreen (ClutterStageView *view,
|
||||
gfloat *x,
|
||||
gfloat *y);
|
||||
|
||||
void clutter_stage_view_blit_offscreen (ClutterStageView *view,
|
||||
const cairo_rectangle_int_t *clip);
|
||||
|
||||
gboolean clutter_stage_view_is_dirty_viewport (ClutterStageView *view);
|
||||
|
||||
@ -70,8 +52,4 @@ gboolean clutter_stage_view_is_dirty_projection (ClutterStageView *view);
|
||||
void clutter_stage_view_set_dirty_projection (ClutterStageView *view,
|
||||
gboolean dirty);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_MUTTER
|
||||
void clutter_stage_view_get_offscreen_transformation_matrix (ClutterStageView *view,
|
||||
CoglMatrix *matrix);
|
||||
|
||||
#endif /* __CLUTTER_STAGE_VIEW_H__ */
|
||||
|
@ -998,16 +998,6 @@ _clutter_stage_process_queued_events (ClutterStage *stage)
|
||||
"Omitting motion event at %d, %d",
|
||||
(int) event->motion.x,
|
||||
(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;
|
||||
}
|
||||
else if (event->type == CLUTTER_TOUCH_UPDATE &&
|
||||
@ -1404,6 +1394,8 @@ _clutter_stage_do_pick_on_view (ClutterStage *stage,
|
||||
view_layout.height);
|
||||
|
||||
_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)))
|
||||
{
|
||||
@ -1454,10 +1446,10 @@ _clutter_stage_do_pick_on_view (ClutterStage *stage,
|
||||
used. The format is requested as pre-multiplied because Cogl
|
||||
assumes that all pixels in the framebuffer are premultiplied so
|
||||
it avoids a conversion. */
|
||||
cogl_framebuffer_read_pixels (fb,
|
||||
read_x, read_y, 1, 1,
|
||||
COGL_PIXEL_FORMAT_RGBA_8888_PRE,
|
||||
pixel);
|
||||
cogl_read_pixels (read_x, read_y, 1, 1,
|
||||
COGL_READ_PIXELS_COLOR_BUFFER,
|
||||
COGL_PIXEL_FORMAT_RGBA_8888_PRE,
|
||||
pixel);
|
||||
|
||||
if (G_UNLIKELY (clutter_pick_debug_flags & CLUTTER_DEBUG_DUMP_PICK_BUFFERS))
|
||||
{
|
||||
@ -4684,7 +4676,6 @@ capture_view (ClutterStage *stage,
|
||||
uint8_t *data;
|
||||
int stride;
|
||||
CoglBitmap *bitmap;
|
||||
cairo_rectangle_int_t view_layout;
|
||||
|
||||
framebuffer = clutter_stage_view_get_framebuffer (view);
|
||||
|
||||
@ -4709,11 +4700,8 @@ capture_view (ClutterStage *stage,
|
||||
stride,
|
||||
data);
|
||||
|
||||
clutter_stage_view_get_layout (view, &view_layout);
|
||||
|
||||
cogl_framebuffer_read_pixels_into_bitmap (framebuffer,
|
||||
rect->x - view_layout.x,
|
||||
rect->y - view_layout.y,
|
||||
rect->x, rect->y,
|
||||
COGL_READ_PIXELS_COLOR_BUFFER,
|
||||
bitmap);
|
||||
|
||||
|
@ -37,7 +37,6 @@
|
||||
#include "clutter-stage-cogl.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
||||
#include "clutter-actor-private.h"
|
||||
#include "clutter-backend-private.h"
|
||||
@ -358,7 +357,7 @@ swap_framebuffer (ClutterStageWindow *stage_window,
|
||||
cairo_rectangle_int_t *swap_region,
|
||||
gboolean swap_with_damage)
|
||||
{
|
||||
CoglFramebuffer *framebuffer = clutter_stage_view_get_onscreen (view);
|
||||
CoglFramebuffer *framebuffer = clutter_stage_view_get_framebuffer (view);
|
||||
int damage[4], ndamage;
|
||||
|
||||
damage[0] = swap_region->x;
|
||||
@ -420,12 +419,6 @@ paint_stage (ClutterStageCogl *stage_cogl,
|
||||
|
||||
_clutter_stage_maybe_setup_viewport (stage, view);
|
||||
_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
|
||||
@ -445,42 +438,6 @@ fill_current_damage_history_and_step (ClutterStageView *view)
|
||||
view_priv->damage_index++;
|
||||
}
|
||||
|
||||
static void
|
||||
transform_swap_region_to_onscreen (ClutterStageView *view,
|
||||
cairo_rectangle_int_t *swap_region)
|
||||
{
|
||||
CoglFramebuffer *framebuffer;
|
||||
cairo_rectangle_int_t layout;
|
||||
gfloat x1, y1, x2, y2;
|
||||
gint width, height;
|
||||
|
||||
framebuffer = clutter_stage_view_get_onscreen (view);
|
||||
clutter_stage_view_get_layout (view, &layout);
|
||||
|
||||
x1 = (float) swap_region->x / layout.width;
|
||||
y1 = (float) swap_region->y / layout.height;
|
||||
x2 = (float) (swap_region->x + swap_region->width) / layout.width;
|
||||
y2 = (float) (swap_region->y + swap_region->height) / layout.height;
|
||||
|
||||
clutter_stage_view_transform_to_onscreen (view, &x1, &y1);
|
||||
clutter_stage_view_transform_to_onscreen (view, &x2, &y2);
|
||||
|
||||
width = cogl_framebuffer_get_width (framebuffer);
|
||||
height = cogl_framebuffer_get_height (framebuffer);
|
||||
|
||||
x1 = floor (x1 * width);
|
||||
y1 = floor (height - (y1 * height));
|
||||
x2 = ceil (x2 * width);
|
||||
y2 = ceil (height - (y2 * height));
|
||||
|
||||
*swap_region = (cairo_rectangle_int_t) {
|
||||
.x = x1,
|
||||
.y = y1,
|
||||
.width = x2 - x1,
|
||||
.height = y2 - y1
|
||||
};
|
||||
}
|
||||
|
||||
static gboolean
|
||||
clutter_stage_cogl_redraw_view (ClutterStageWindow *stage_window,
|
||||
ClutterStageView *view)
|
||||
@ -751,12 +708,6 @@ clutter_stage_cogl_redraw_view (ClutterStageWindow *stage_window,
|
||||
|
||||
if (do_swap_buffer)
|
||||
{
|
||||
if (clutter_stage_view_get_onscreen (view) !=
|
||||
clutter_stage_view_get_framebuffer (view))
|
||||
{
|
||||
transform_swap_region_to_onscreen (view, &swap_region);
|
||||
}
|
||||
|
||||
return swap_framebuffer (stage_window,
|
||||
view,
|
||||
&swap_region,
|
||||
@ -806,9 +757,7 @@ clutter_stage_cogl_get_dirty_pixel (ClutterStageWindow *stage_window,
|
||||
int *x,
|
||||
int *y)
|
||||
{
|
||||
CoglFramebuffer *framebuffer = clutter_stage_view_get_framebuffer (view);
|
||||
gboolean has_buffer_age =
|
||||
cogl_is_onscreen (framebuffer) &&
|
||||
cogl_clutter_winsys_has_feature (COGL_WINSYS_FEATURE_BUFFER_AGE);
|
||||
cairo_rectangle_int_t *rect;
|
||||
|
||||
@ -822,13 +771,10 @@ clutter_stage_cogl_get_dirty_pixel (ClutterStageWindow *stage_window,
|
||||
ClutterStageViewCogl *view_cogl = CLUTTER_STAGE_VIEW_COGL (view);
|
||||
ClutterStageViewCoglPrivate *view_priv =
|
||||
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)];
|
||||
*x = rect->x - view_layout.x;
|
||||
*y = rect->y - view_layout.y;
|
||||
*x = rect->x;
|
||||
*y = rect->y;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -124,7 +124,6 @@ G_DEFINE_TYPE_WITH_CODE (ClutterDeviceManagerEvdev,
|
||||
static ClutterOpenDeviceCallback device_open_callback;
|
||||
static ClutterCloseDeviceCallback device_close_callback;
|
||||
static gpointer device_callback_data;
|
||||
static gchar * evdev_seat_id;
|
||||
|
||||
#ifdef CLUTTER_ENABLE_DEBUG
|
||||
static const char *device_type_str[] = {
|
||||
@ -312,9 +311,6 @@ new_absolute_motion_event (ClutterInputDevice *input_device,
|
||||
_clutter_xkb_translate_state (event, seat->xkb, seat->button_state);
|
||||
event->motion.x = x;
|
||||
event->motion.y = y;
|
||||
clutter_input_device_evdev_translate_coordinates (input_device, stage,
|
||||
&event->motion.x,
|
||||
&event->motion.y);
|
||||
event->motion.axes = axes;
|
||||
clutter_event_set_source_device (event, input_device);
|
||||
|
||||
@ -513,10 +509,6 @@ notify_touch_event (ClutterInputDevice *input_device,
|
||||
event->touch.device = seat->core_pointer;
|
||||
event->touch.x = x;
|
||||
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 */
|
||||
event->touch.sequence = GINT_TO_POINTER (slot + 1);
|
||||
_clutter_xkb_translate_state (event, seat->xkb, seat->button_state);
|
||||
@ -538,8 +530,7 @@ notify_pinch_gesture_event (ClutterInputDevice *input_device,
|
||||
gdouble dx,
|
||||
gdouble dy,
|
||||
gdouble angle_delta,
|
||||
gdouble scale,
|
||||
guint n_fingers)
|
||||
gdouble scale)
|
||||
{
|
||||
ClutterInputDeviceEvdev *device_evdev;
|
||||
ClutterSeatEvdev *seat;
|
||||
@ -570,7 +561,6 @@ notify_pinch_gesture_event (ClutterInputDevice *input_device,
|
||||
event->touchpad_pinch.dy = dy;
|
||||
event->touchpad_pinch.angle_delta = angle_delta;
|
||||
event->touchpad_pinch.scale = scale;
|
||||
event->touchpad_pinch.n_fingers = n_fingers;
|
||||
|
||||
_clutter_xkb_translate_state (event, seat->xkb, seat->button_state);
|
||||
|
||||
@ -668,7 +658,6 @@ notify_pad_button (ClutterInputDevice *input_device,
|
||||
guint64 time_us,
|
||||
guint32 button,
|
||||
guint32 mode_group,
|
||||
guint32 mode,
|
||||
guint32 pressed)
|
||||
{
|
||||
ClutterInputDeviceEvdev *device_evdev;
|
||||
@ -694,7 +683,6 @@ notify_pad_button (ClutterInputDevice *input_device,
|
||||
event->pad_button.stage = stage;
|
||||
event->pad_button.button = button;
|
||||
event->pad_button.group = mode_group;
|
||||
event->pad_button.mode = mode;
|
||||
clutter_event_set_device (event, input_device);
|
||||
clutter_event_set_source_device (event, input_device);
|
||||
clutter_event_set_time (event, us2ms (time_us));
|
||||
@ -710,7 +698,6 @@ notify_pad_strip (ClutterInputDevice *input_device,
|
||||
guint32 strip_number,
|
||||
guint32 strip_source,
|
||||
guint32 mode_group,
|
||||
guint32 mode,
|
||||
gdouble value)
|
||||
{
|
||||
ClutterInputDeviceEvdev *device_evdev;
|
||||
@ -740,7 +727,6 @@ notify_pad_strip (ClutterInputDevice *input_device,
|
||||
event->pad_strip.strip_number = strip_number;
|
||||
event->pad_strip.value = value;
|
||||
event->pad_strip.group = mode_group;
|
||||
event->pad_strip.mode = mode;
|
||||
clutter_event_set_device (event, input_device);
|
||||
clutter_event_set_source_device (event, input_device);
|
||||
clutter_event_set_time (event, us2ms (time_us));
|
||||
@ -756,7 +742,6 @@ notify_pad_ring (ClutterInputDevice *input_device,
|
||||
guint32 ring_number,
|
||||
guint32 ring_source,
|
||||
guint32 mode_group,
|
||||
guint32 mode,
|
||||
gdouble angle)
|
||||
{
|
||||
ClutterInputDeviceEvdev *device_evdev;
|
||||
@ -786,7 +771,6 @@ notify_pad_ring (ClutterInputDevice *input_device,
|
||||
event->pad_ring.ring_number = ring_number;
|
||||
event->pad_ring.angle = angle;
|
||||
event->pad_ring.group = mode_group;
|
||||
event->pad_ring.mode = mode;
|
||||
clutter_event_set_device (event, input_device);
|
||||
clutter_event_set_source_device (event, input_device);
|
||||
clutter_event_set_time (event, us2ms (time_us));
|
||||
@ -925,9 +909,13 @@ evdev_add_device (ClutterDeviceManagerEvdev *manager_evdev,
|
||||
* which are located on the main seat. Make whatever seat comes first the
|
||||
* main seat. */
|
||||
if (priv->main_seat->libinput_seat == NULL)
|
||||
seat = priv->main_seat;
|
||||
{
|
||||
seat = priv->main_seat;
|
||||
}
|
||||
else
|
||||
seat = clutter_seat_evdev_new (manager_evdev);
|
||||
{
|
||||
seat = clutter_seat_evdev_new (manager_evdev);
|
||||
}
|
||||
|
||||
clutter_seat_evdev_set_libinput_seat (seat, libinput_seat);
|
||||
priv->seats = g_slist_append (priv->seats, seat);
|
||||
@ -1224,17 +1212,11 @@ input_device_update_tool (ClutterInputDevice *input_device,
|
||||
}
|
||||
}
|
||||
|
||||
if (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);
|
||||
}
|
||||
evdev_device->last_tool = tool;
|
||||
}
|
||||
|
||||
static gdouble *
|
||||
translate_tablet_axes (struct libinput_event_tablet_tool *tablet_event,
|
||||
ClutterInputDeviceTool *tool)
|
||||
translate_tablet_axes (struct libinput_event_tablet_tool *tablet_event)
|
||||
{
|
||||
GArray *axes = g_array_new (FALSE, FALSE, sizeof (gdouble));
|
||||
struct libinput_tablet_tool *libinput_tool;
|
||||
@ -1256,7 +1238,6 @@ translate_tablet_axes (struct libinput_event_tablet_tool *tablet_event,
|
||||
if (libinput_tablet_tool_has_pressure (libinput_tool))
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
@ -1640,7 +1621,6 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
|
||||
struct libinput_event_gesture *gesture_event =
|
||||
libinput_event_get_gesture_event (event);
|
||||
ClutterTouchpadGesturePhase phase;
|
||||
guint n_fingers;
|
||||
guint64 time_us;
|
||||
|
||||
if (libinput_event_get_type (event) == LIBINPUT_EVENT_GESTURE_PINCH_BEGIN)
|
||||
@ -1649,10 +1629,9 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
|
||||
phase = libinput_event_gesture_get_cancelled (gesture_event) ?
|
||||
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);
|
||||
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;
|
||||
}
|
||||
case LIBINPUT_EVENT_GESTURE_PINCH_UPDATE:
|
||||
@ -1660,10 +1639,8 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
|
||||
struct libinput_event_gesture *gesture_event =
|
||||
libinput_event_get_gesture_event (event);
|
||||
gdouble angle_delta, scale, dx, dy;
|
||||
guint n_fingers;
|
||||
guint64 time_us;
|
||||
|
||||
n_fingers = libinput_event_gesture_get_finger_count (gesture_event);
|
||||
device = libinput_device_get_user_data (libinput_device);
|
||||
time_us = libinput_event_gesture_get_time_usec (gesture_event);
|
||||
angle_delta = libinput_event_gesture_get_angle_delta (gesture_event);
|
||||
@ -1673,7 +1650,7 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
|
||||
|
||||
notify_pinch_gesture_event (device,
|
||||
CLUTTER_TOUCHPAD_GESTURE_PHASE_UPDATE,
|
||||
time_us, dx, dy, angle_delta, scale, n_fingers);
|
||||
time_us, dx, dy, angle_delta, scale);
|
||||
break;
|
||||
}
|
||||
case LIBINPUT_EVENT_GESTURE_SWIPE_BEGIN:
|
||||
@ -1734,8 +1711,7 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
|
||||
if (!stage)
|
||||
break;
|
||||
|
||||
axes = translate_tablet_axes (tablet_event,
|
||||
evdev_device->last_tool);
|
||||
axes = translate_tablet_axes (tablet_event);
|
||||
if (!axes)
|
||||
break;
|
||||
|
||||
@ -1775,11 +1751,8 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
|
||||
|
||||
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);
|
||||
if (state == LIBINPUT_TABLET_TOOL_PROXIMITY_STATE_OUT)
|
||||
input_device_update_tool (device, NULL);
|
||||
break;
|
||||
}
|
||||
case LIBINPUT_EVENT_TABLET_TOOL_BUTTON:
|
||||
@ -1821,7 +1794,7 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
|
||||
case LIBINPUT_EVENT_TABLET_PAD_BUTTON:
|
||||
{
|
||||
guint64 time;
|
||||
guint32 button_state, button, group, mode;
|
||||
guint32 button_state, button, group;
|
||||
struct libinput_tablet_pad_mode_group *mode_group;
|
||||
struct libinput_event_tablet_pad *pad_event =
|
||||
libinput_event_get_tablet_pad_event (event);
|
||||
@ -1831,18 +1804,17 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
|
||||
|
||||
mode_group = libinput_event_tablet_pad_get_mode_group (pad_event);
|
||||
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_state = libinput_event_tablet_pad_get_button_state (pad_event) ==
|
||||
LIBINPUT_BUTTON_STATE_PRESSED;
|
||||
notify_pad_button (device, time, button, group, mode, button_state);
|
||||
notify_pad_button (device, time, button, group, button_state);
|
||||
break;
|
||||
}
|
||||
case LIBINPUT_EVENT_TABLET_PAD_STRIP:
|
||||
{
|
||||
guint64 time;
|
||||
guint32 number, source, group, mode;
|
||||
guint32 number, source, group;
|
||||
struct libinput_tablet_pad_mode_group *mode_group;
|
||||
struct libinput_event_tablet_pad *pad_event =
|
||||
libinput_event_get_tablet_pad_event (event);
|
||||
@ -1856,15 +1828,14 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
|
||||
|
||||
mode_group = libinput_event_tablet_pad_get_mode_group (pad_event);
|
||||
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;
|
||||
}
|
||||
case LIBINPUT_EVENT_TABLET_PAD_RING:
|
||||
{
|
||||
guint64 time;
|
||||
guint32 number, source, group, mode;
|
||||
guint32 number, source, group;
|
||||
struct libinput_tablet_pad_mode_group *mode_group;
|
||||
struct libinput_event_tablet_pad *pad_event =
|
||||
libinput_event_get_tablet_pad_event (event);
|
||||
@ -1878,9 +1849,8 @@ process_device_event (ClutterDeviceManagerEvdev *manager_evdev,
|
||||
|
||||
mode_group = libinput_event_tablet_pad_get_mode_group (pad_event);
|
||||
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;
|
||||
}
|
||||
default:
|
||||
@ -2004,31 +1974,6 @@ clutter_device_manager_evdev_create_virtual_device (ClutterDeviceManager *manag
|
||||
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
|
||||
*/
|
||||
@ -2062,8 +2007,7 @@ clutter_device_manager_evdev_constructed (GObject *gobject)
|
||||
return;
|
||||
}
|
||||
|
||||
if (libinput_udev_assign_seat (priv->libinput,
|
||||
evdev_seat_id ? evdev_seat_id : "seat0") == -1)
|
||||
if (libinput_udev_assign_seat (priv->libinput, "seat0") == -1)
|
||||
{
|
||||
g_critical ("Failed to assign a seat to the libinput object.");
|
||||
libinput_unref (priv->libinput);
|
||||
@ -2170,7 +2114,6 @@ clutter_device_manager_evdev_class_init (ClutterDeviceManagerEvdevClass *klass)
|
||||
manager_class->get_core_device = clutter_device_manager_evdev_get_core_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->compress_motion = clutter_device_manager_evdev_compress_motion;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -2296,12 +2239,6 @@ _clutter_device_manager_evdev_acquire_device_id (ClutterDeviceManagerEvdev *mana
|
||||
return next_id;
|
||||
}
|
||||
|
||||
void
|
||||
_clutter_device_manager_evdev_dispatch (ClutterDeviceManagerEvdev *manager_evdev)
|
||||
{
|
||||
dispatch_libinput (manager_evdev);
|
||||
}
|
||||
|
||||
static int
|
||||
compare_ids (gconstpointer a,
|
||||
gconstpointer b)
|
||||
@ -2571,60 +2508,6 @@ clutter_evdev_set_keyboard_layout_index (ClutterDeviceManager *evdev,
|
||||
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:
|
||||
* @evdev: the #ClutterDeviceManager created by the evdev backend
|
||||
@ -2812,18 +2695,3 @@ clutter_evdev_warp_pointer (ClutterInputDevice *pointer_device,
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
@ -76,8 +76,6 @@ void _clutter_device_manager_evdev_constrain_pointer (ClutterDeviceManagerEvdev
|
||||
float *new_x,
|
||||
float *new_y);
|
||||
|
||||
void _clutter_device_manager_evdev_dispatch (ClutterDeviceManagerEvdev *manager_evdev);
|
||||
|
||||
static inline guint64
|
||||
us (guint64 us)
|
||||
{
|
||||
|
@ -57,9 +57,6 @@ void clutter_evdev_set_device_callbacks (ClutterOpenDeviceCallback open_callba
|
||||
ClutterCloseDeviceCallback close_callback,
|
||||
gpointer user_data);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_ALL
|
||||
void clutter_evdev_set_seat_id (const gchar *seat_id);
|
||||
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
void clutter_evdev_release_devices (void);
|
||||
CLUTTER_AVAILABLE_IN_1_10
|
||||
@ -108,10 +105,6 @@ CLUTTER_AVAILABLE_IN_1_20
|
||||
void clutter_evdev_set_keyboard_layout_index (ClutterDeviceManager *evdev,
|
||||
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
|
||||
void clutter_evdev_set_keyboard_repeat (ClutterDeviceManager *evdev,
|
||||
gboolean repeat,
|
||||
@ -153,14 +146,6 @@ gboolean clutter_evdev_event_get_relative_motion (const ClutterEvent *event,
|
||||
double *dx_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
|
||||
|
||||
#endif /* __CLUTTER_EVDEV_H__ */
|
||||
|
@ -35,8 +35,6 @@
|
||||
#include "clutter-input-device-evdev.h"
|
||||
#include "clutter-device-manager-evdev.h"
|
||||
|
||||
#include "cairo-gobject.h"
|
||||
|
||||
typedef struct _ClutterInputDeviceClass ClutterInputDeviceEvdevClass;
|
||||
|
||||
#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_TYPE_INPUT_DEVICE)
|
||||
|
||||
enum {
|
||||
PROP_0,
|
||||
PROP_DEVICE_MATRIX,
|
||||
PROP_OUTPUT_ASPECT_RATIO,
|
||||
N_PROPS
|
||||
};
|
||||
|
||||
static GParamSpec *obj_props[N_PROPS] = { 0 };
|
||||
|
||||
static void
|
||||
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);
|
||||
}
|
||||
|
||||
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
|
||||
clutter_input_device_evdev_keycode_to_evdev (ClutterInputDevice *device,
|
||||
guint hardware_keycode,
|
||||
@ -166,83 +108,19 @@ clutter_input_device_evdev_update_from_tool (ClutterInputDevice *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
|
||||
clutter_input_device_evdev_class_init (ClutterInputDeviceEvdevClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
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->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
|
||||
clutter_input_device_evdev_init (ClutterInputDeviceEvdev *self)
|
||||
{
|
||||
cairo_matrix_init_identity (&self->device_matrix);
|
||||
self->device_aspect_ratio = 0;
|
||||
self->output_ratio = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -265,7 +143,6 @@ _clutter_input_device_evdev_new (ClutterDeviceManager *manager,
|
||||
gchar *vendor, *product;
|
||||
gint device_id, n_rings = 0, n_strips = 0, n_groups = 1;
|
||||
gchar *node_path;
|
||||
gdouble width, height;
|
||||
|
||||
type = _clutter_input_device_evdev_determine_type (libinput_device);
|
||||
vendor = g_strdup_printf ("%.4x", libinput_device_get_id_vendor (libinput_device));
|
||||
@ -305,9 +182,6 @@ _clutter_input_device_evdev_new (ClutterDeviceManager *manager,
|
||||
g_free (vendor);
|
||||
g_free (product);
|
||||
|
||||
if (libinput_device_get_size (libinput_device, &width, &height) == 0)
|
||||
device->device_aspect_ratio = width / height;
|
||||
|
||||
return CLUTTER_INPUT_DEVICE (device);
|
||||
}
|
||||
|
||||
@ -439,39 +313,3 @@ clutter_evdev_event_sequence_get_slot (const ClutterEventSequence *sequence)
|
||||
|
||||
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;
|
||||
}
|
||||
|
@ -66,10 +66,6 @@ struct _ClutterInputDeviceEvdev
|
||||
struct libinput_device *libinput_device;
|
||||
ClutterSeatEvdev *seat;
|
||||
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;
|
||||
@ -106,11 +102,6 @@ void _clutter_evdev_event_set_relative_motion (ClutterEvent *event,
|
||||
double dx_unaccel,
|
||||
double dy_unaccel);
|
||||
|
||||
void clutter_input_device_evdev_translate_coordinates (ClutterInputDevice *device,
|
||||
ClutterStage *stage,
|
||||
gfloat *x,
|
||||
gfloat *y);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __CLUTTER_INPUT_DEVICE_EVDEV_H__ */
|
||||
|
@ -26,7 +26,6 @@
|
||||
#endif
|
||||
|
||||
#include "clutter-input-device-tool-evdev.h"
|
||||
#include "clutter-evdev.h"
|
||||
|
||||
G_DEFINE_TYPE (ClutterInputDeviceToolEvdev, clutter_input_device_tool_evdev,
|
||||
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);
|
||||
|
||||
g_hash_table_unref (tool->button_map);
|
||||
libinput_tablet_tool_unref (tool->tool);
|
||||
|
||||
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
|
||||
clutter_input_device_tool_evdev_init (ClutterInputDeviceToolEvdev *tool)
|
||||
{
|
||||
tool->button_map = g_hash_table_new (NULL, NULL);
|
||||
}
|
||||
|
||||
ClutterInputDeviceTool *
|
||||
@ -73,96 +70,3 @@ clutter_input_device_tool_evdev_new (struct libinput_tablet_tool *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)));
|
||||
}
|
||||
|
@ -59,8 +59,6 @@ struct _ClutterInputDeviceToolEvdev
|
||||
{
|
||||
ClutterInputDeviceTool parent_instance;
|
||||
struct libinput_tablet_tool *tool;
|
||||
GHashTable *button_map;
|
||||
gdouble pressure_curve[4];
|
||||
};
|
||||
|
||||
struct _ClutterInputDeviceToolEvdevClass
|
||||
@ -74,11 +72,6 @@ ClutterInputDeviceTool * clutter_input_device_tool_evdev_new (struct libinp
|
||||
guint64 serial,
|
||||
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
|
||||
|
||||
#endif /* __CLUTTER_INPUT_DEVICE_EVDEV_TOOL_H__ */
|
||||
|
@ -32,7 +32,6 @@
|
||||
|
||||
#include "clutter-event-private.h"
|
||||
#include "clutter-input-device-evdev.h"
|
||||
#include "clutter-input-device-tool-evdev.h"
|
||||
#include "clutter-main.h"
|
||||
|
||||
/* Try to keep the pointer inside the stage. Hopefully no one is using
|
||||
@ -186,19 +185,15 @@ keyboard_repeat (gpointer data)
|
||||
{
|
||||
ClutterSeatEvdev *seat = data;
|
||||
GSource *source;
|
||||
|
||||
/* 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;
|
||||
guint32 time_ms;
|
||||
|
||||
g_return_val_if_fail (seat->repeat_device != NULL, G_SOURCE_REMOVE);
|
||||
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,
|
||||
seat->repeat_device,
|
||||
g_source_get_time (source),
|
||||
ms2us (time_ms),
|
||||
seat->repeat_key,
|
||||
AUTOREPEAT_VALUE,
|
||||
FALSE);
|
||||
@ -426,7 +421,7 @@ void clutter_seat_evdev_notify_absolute_motion (ClutterSeatEvdev *seat,
|
||||
{
|
||||
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);
|
||||
}
|
||||
@ -438,7 +433,6 @@ clutter_seat_evdev_notify_button (ClutterSeatEvdev *seat,
|
||||
uint32_t button,
|
||||
uint32_t state)
|
||||
{
|
||||
ClutterInputDeviceEvdev *device_evdev = (ClutterInputDeviceEvdev *) input_device;
|
||||
ClutterStage *stage;
|
||||
ClutterEvent *event = NULL;
|
||||
gint button_nr;
|
||||
@ -534,21 +528,13 @@ clutter_seat_evdev_notify_button (ClutterSeatEvdev *seat,
|
||||
clutter_event_set_device (event, seat->core_pointer);
|
||||
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);
|
||||
|
||||
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 (event, input_device);
|
||||
}
|
||||
|
@ -71,9 +71,17 @@ update_button_count (ClutterVirtualInputDeviceEvdev *virtual_evdev,
|
||||
uint32_t state)
|
||||
{
|
||||
if (state)
|
||||
return ++virtual_evdev->button_count[button];
|
||||
{
|
||||
return ++virtual_evdev->button_count[button];
|
||||
}
|
||||
else
|
||||
return --virtual_evdev->button_count[button];
|
||||
{
|
||||
/* Handle cases where we newer saw the initial pressed event. */
|
||||
if (virtual_evdev->button_count[button] == 0)
|
||||
return 0;
|
||||
|
||||
return --virtual_evdev->button_count[button];
|
||||
}
|
||||
}
|
||||
|
||||
static EvdevButtonType
|
||||
@ -124,9 +132,6 @@ release_pressed_buttons (ClutterVirtualInputDevice *virtual_device)
|
||||
|
||||
for (code = 0; code < G_N_ELEMENTS (virtual_evdev->button_count); code++)
|
||||
{
|
||||
if (virtual_evdev->button_count[code] == 0)
|
||||
continue;
|
||||
|
||||
switch (get_button_type (code))
|
||||
{
|
||||
case EVDEV_BUTTON_TYPE_KEY:
|
||||
@ -197,11 +202,10 @@ clutter_virtual_input_device_evdev_notify_button (ClutterVirtualInputDevice *vir
|
||||
}
|
||||
|
||||
button_count = update_button_count (virtual_evdev, button, button_state);
|
||||
if (button_count < 0 || button_count > 1)
|
||||
if (button_count > 1)
|
||||
{
|
||||
g_warning ("Received multiple virtual 0x%x button %s (ignoring)", button,
|
||||
button_state == CLUTTER_BUTTON_STATE_PRESSED ? "presses" : "releases");
|
||||
update_button_count (virtual_evdev, button, 1 - button_state);
|
||||
g_warning ("Received multiple virtual 0x%x button presses (ignoring)",
|
||||
button);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -229,11 +233,10 @@ clutter_virtual_input_device_evdev_notify_key (ClutterVirtualInputDevice *virtua
|
||||
}
|
||||
|
||||
key_count = update_button_count (virtual_evdev, key, key_state);
|
||||
if (key_count < 0 || key_count > 1)
|
||||
if (key_count > 1)
|
||||
{
|
||||
g_warning ("Received multiple virtual 0x%x key %s (ignoring)", key,
|
||||
key_state == CLUTTER_KEY_STATE_PRESSED ? "presses" : "releases");
|
||||
update_button_count (virtual_evdev, key, 1 - key_state);
|
||||
g_warning ("Received multiple virtual 0x%x key presses (ignoring)",
|
||||
key);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -360,11 +363,10 @@ clutter_virtual_input_device_evdev_notify_keyval (ClutterVirtualInputDevice *vir
|
||||
}
|
||||
|
||||
key_count = update_button_count (virtual_evdev, evcode, key_state);
|
||||
if (key_count < 0 || key_count > 1)
|
||||
if (key_count > 1)
|
||||
{
|
||||
g_warning ("Received multiple virtual 0x%x key %s (ignoring)", keycode,
|
||||
key_state == CLUTTER_KEY_STATE_PRESSED ? "presses" : "releases");
|
||||
update_button_count (virtual_evdev, evcode, 1 - key_state);
|
||||
g_warning ("Received multiple virtual 0x%x key presses (ignoring)",
|
||||
keycode);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -3,8 +3,8 @@ exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@/mutter
|
||||
includedir=@includedir@/mutter
|
||||
|
||||
apiversion=@LIBMUTTER_API_VERSION@
|
||||
requires=@CLUTTER_REQUIRES@ mutter-cogl-@LIBMUTTER_API_VERSION@
|
||||
apiversion=@CLUTTER_API_VERSION@
|
||||
requires=@CLUTTER_REQUIRES@ mutter-cogl-1.0
|
||||
requires_private=@CLUTTER_REQUIRES_PRIVATE@
|
||||
backends=@CLUTTER_BACKENDS@
|
||||
|
||||
@ -17,7 +17,7 @@ cogl_driver=deprecated
|
||||
|
||||
Name: Mutter Clutter
|
||||
Description: Mutter's Clutter Private Library
|
||||
Version: @MUTTER_VERSION@
|
||||
Version: @VERSION@
|
||||
Libs: -L${libdir} -lmutter-clutter-${apiversion}
|
||||
Cflags: -I${includedir}/clutter-${apiversion}
|
||||
Requires: ${requires}
|
||||
|
@ -29,8 +29,6 @@
|
||||
|
||||
#include "clutter-backend-x11.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-backend.h"
|
||||
@ -396,8 +394,6 @@ create_device (ClutterDeviceManagerXI2 *manager_xi2,
|
||||
source = CLUTTER_ERASER_DEVICE;
|
||||
else if (strstr (name, "cursor") != NULL)
|
||||
source = CLUTTER_CURSOR_DEVICE;
|
||||
else if (strstr (name, " pad") != NULL)
|
||||
source = CLUTTER_PAD_DEVICE;
|
||||
else if (strstr (name, "wacom") != NULL || strstr (name, "pen") != NULL)
|
||||
source = CLUTTER_PEN_DEVICE;
|
||||
else if (strstr (name, "touchpad") != NULL)
|
||||
@ -464,46 +460,6 @@ create_device (ClutterDeviceManagerXI2 *manager_xi2,
|
||||
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 *
|
||||
add_device (ClutterDeviceManagerXI2 *manager_xi2,
|
||||
ClutterBackendX11 *backend_x11,
|
||||
@ -538,9 +494,6 @@ add_device (ClutterDeviceManagerXI2 *manager_xi2,
|
||||
g_warning ("Unhandled device: %s",
|
||||
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
|
||||
* necessary while we're constructing the device manager instance
|
||||
*/
|
||||
@ -953,78 +906,6 @@ clutter_device_manager_xi2_select_stage_events (ClutterDeviceManager *manager,
|
||||
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 ClutterTranslateReturn
|
||||
clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
|
||||
gpointer native,
|
||||
@ -1056,8 +937,7 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
|
||||
return CLUTTER_TRANSLATE_REMOVE;
|
||||
|
||||
if (!(xi_event->evtype == XI_HierarchyChanged ||
|
||||
xi_event->evtype == XI_DeviceChanged ||
|
||||
xi_event->evtype == XI_PropertyEvent))
|
||||
xi_event->evtype == XI_DeviceChanged))
|
||||
{
|
||||
stage = get_event_stage (translator, xi_event);
|
||||
if (stage == NULL || CLUTTER_ACTOR_IN_DESTRUCTION (stage))
|
||||
@ -1198,50 +1078,6 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
|
||||
stage != NULL)
|
||||
_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);
|
||||
|
||||
/* Ignore 4-7 buttons */
|
||||
if (xev->detail >= 4 && xev->detail <= 7)
|
||||
return CLUTTER_TRANSLATE_REMOVE;
|
||||
|
||||
event->pad_button.type =
|
||||
(xi_event->evtype == XI_ButtonPress) ? CLUTTER_PAD_BUTTON_PRESS
|
||||
: CLUTTER_PAD_BUTTON_RELEASE;
|
||||
event->pad_button.time = xev->time;
|
||||
event->pad_button.stage = stage;
|
||||
|
||||
/* 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_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)
|
||||
{
|
||||
case 4:
|
||||
@ -1321,8 +1157,6 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
|
||||
|
||||
clutter_event_set_source_device (event, source_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.x,
|
||||
@ -1431,8 +1265,6 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
|
||||
|
||||
clutter_event_set_source_device (event, source_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.x,
|
||||
@ -1634,10 +1466,6 @@ clutter_device_manager_xi2_translate_event (ClutterEventTranslator *translator,
|
||||
case XI_FocusOut:
|
||||
retval = CLUTTER_TRANSLATE_CONTINUE;
|
||||
break;
|
||||
case XI_PropertyEvent:
|
||||
handle_property_event (manager_xi2, xi_event);
|
||||
retval = CLUTTER_TRANSLATE_CONTINUE;
|
||||
break;
|
||||
}
|
||||
|
||||
return retval;
|
||||
@ -1815,7 +1643,6 @@ clutter_device_manager_xi2_constructed (GObject *gobject)
|
||||
|
||||
XISetMask (mask, XI_HierarchyChanged);
|
||||
XISetMask (mask, XI_DeviceChanged);
|
||||
XISetMask (mask, XI_PropertyEvent);
|
||||
|
||||
event_mask.deviceid = XIAllDevices;
|
||||
event_mask.mask_len = sizeof (mask);
|
||||
@ -1851,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
|
||||
clutter_device_manager_xi2_class_init (ClutterDeviceManagerXI2Class *klass)
|
||||
{
|
||||
@ -1888,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_device = clutter_device_manager_xi2_get_device;
|
||||
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
|
||||
@ -1897,6 +1713,4 @@ clutter_device_manager_xi2_init (ClutterDeviceManagerXI2 *self)
|
||||
self->devices_by_id = g_hash_table_new_full (NULL, NULL,
|
||||
NULL,
|
||||
(GDestroyNotify) g_object_unref);
|
||||
self->tools_by_serial = g_hash_table_new_full (NULL, NULL, NULL,
|
||||
(GDestroyNotify) g_object_unref);
|
||||
}
|
||||
|
@ -43,7 +43,6 @@ struct _ClutterDeviceManagerXI2
|
||||
ClutterDeviceManager parent_instance;
|
||||
|
||||
GHashTable *devices_by_id;
|
||||
GHashTable *tools_by_serial;
|
||||
|
||||
GSList *all_devices;
|
||||
|
||||
|
@ -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);
|
||||
}
|
@ -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__ */
|
@ -44,7 +44,6 @@ struct _ClutterInputDeviceXI2
|
||||
ClutterInputDevice device;
|
||||
|
||||
gint device_id;
|
||||
ClutterInputDeviceTool *current_tool;
|
||||
};
|
||||
|
||||
#define N_BUTTONS 5
|
||||
@ -80,13 +79,6 @@ clutter_input_device_xi2_keycode_to_evdev (ClutterInputDevice *device,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
clutter_input_device_xi2_is_grouped (ClutterInputDevice *device,
|
||||
ClutterInputDevice *other_device)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
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;
|
||||
|
||||
device_class->keycode_to_evdev = clutter_input_device_xi2_keycode_to_evdev;
|
||||
device_class->is_grouped = clutter_input_device_xi2_is_grouped;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
@ -41,9 +41,6 @@ void _clutter_input_device_xi2_translate_state (ClutterEvent *event,
|
||||
XIModifierState *modifiers_state,
|
||||
XIButtonState *buttons_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
|
||||
|
||||
|
@ -27,9 +27,6 @@
|
||||
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "clutter-x11.h"
|
||||
#include "X11/extensions/XTest.h"
|
||||
|
||||
#include "clutter-virtual-input-device.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,
|
||||
ClutterButtonState button_state)
|
||||
{
|
||||
XTestFakeButtonEvent (clutter_x11_get_default_display (),
|
||||
button, button_state == CLUTTER_BUTTON_STATE_PRESSED, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -74,21 +69,6 @@ clutter_virtual_input_device_x11_notify_key (ClutterVirtualInputDevice *virtual_
|
||||
uint32_t key,
|
||||
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
|
||||
@ -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_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_keyval = clutter_virtual_input_device_x11_notify_keyval;
|
||||
}
|
||||
|
@ -42,6 +42,9 @@ m4_define([clutter_release_status],
|
||||
|
||||
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_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_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_MINOR_VERSION], [clutter_minor_version])
|
||||
AC_SUBST([CLUTTER_MICRO_VERSION], [clutter_micro_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])
|
||||
|
||||
m4_define([lt_current], [m4_eval(100 * clutter_minor_version + clutter_micro_version - clutter_interface_age)])
|
||||
@ -119,7 +116,7 @@ m4_define([pango_req_version], [1.30])
|
||||
m4_define([gi_req_version], [1.39.0])
|
||||
m4_define([xcomposite_req_version], [0.4])
|
||||
m4_define([gdk_req_version], [3.3.18])
|
||||
m4_define([libinput_req_version], [1.4.0])
|
||||
m4_define([libinput_req_version], [0.19.0])
|
||||
m4_define([libudev_req_version], [136])
|
||||
|
||||
AC_SUBST([GLIB_REQ_VERSION], [glib_req_version])
|
||||
@ -385,22 +382,6 @@ AS_IF([test "x$SUPPORT_X11" = "x1"],
|
||||
[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)
|
||||
clutter_save_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $X11_CFLAGS"
|
||||
@ -784,7 +765,7 @@ AC_CONFIG_FILES([
|
||||
clutter/Makefile
|
||||
clutter/clutter-config.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/accessibility/Makefile
|
||||
|
@ -21,7 +21,7 @@ all_examples += \
|
||||
image-content
|
||||
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_CPPFLAGS = \
|
||||
-DG_DISABLE_SINGLE_INCLUDES \
|
||||
|
@ -1,5 +1,5 @@
|
||||
common_ldadd = \
|
||||
$(top_builddir)/clutter/libmutter-clutter-@LIBMUTTER_API_VERSION@.la
|
||||
$(top_builddir)/clutter/libmutter-clutter-@CLUTTER_API_VERSION@.la
|
||||
|
||||
common_sources = \
|
||||
cally-examples-util.c \
|
||||
@ -11,7 +11,6 @@ AM_CPPFLAGS = \
|
||||
-DGLIB_DISABLE_DEPRECATION_WARNINGS \
|
||||
-I$(top_srcdir)/../cogl \
|
||||
-I$(top_builddir)/../cogl \
|
||||
-I$(top_builddir)/../cogl/cogl \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_builddir) \
|
||||
-I$(top_srcdir)/clutter \
|
||||
|
@ -3,13 +3,12 @@ installed_testdir = $(libexecdir)/installed-tests/mutter-clutter
|
||||
include $(top_srcdir)/build/autotools/glib-tap.mk
|
||||
|
||||
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_CPPFLAGS = \
|
||||
-DG_LOG_DOMAIN=\"Clutter-Conform\" \
|
||||
-I$(top_srcdir)/../cogl \
|
||||
-I$(top_builddir)/../cogl \
|
||||
-I$(top_builddir)/../cogl/cogl \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_builddir) \
|
||||
-DCOGL_DISABLE_DEPRECATION_WARNINGS \
|
||||
@ -79,7 +78,7 @@ script_tests = \
|
||||
test-script-timeline-markers.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
|
||||
$(srcdir)/.gitignore: Makefile
|
||||
|
@ -109,9 +109,7 @@ clean-wrappers:
|
||||
|
||||
.PHONY: wrappers clean-wrappers
|
||||
|
||||
common_ldadd = \
|
||||
$(top_builddir)/clutter/libmutter-clutter-@LIBMUTTER_API_VERSION@.la \
|
||||
$(top_builddir)/../cogl/cogl/libmutter-cogl-@LIBMUTTER_API_VERSION@.la
|
||||
common_ldadd = $(top_builddir)/clutter/libmutter-clutter-@CLUTTER_API_VERSION@.la
|
||||
|
||||
check_PROGRAMS = test-interactive
|
||||
check_SCRIPTS = wrappers
|
||||
@ -127,7 +125,6 @@ test_interactive_CPPFLAGS = \
|
||||
-DCLUTTER_DISABLE_DEPRECATION_WARNINGS \
|
||||
-I$(top_srcdir)/../cogl \
|
||||
-I$(top_builddir)/../cogl \
|
||||
-I$(top_builddir)/../cogl/cogl \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_builddir) \
|
||||
-I$(top_srcdir)/clutter \
|
||||
|
@ -1,7 +1,4 @@
|
||||
common_ldadd = \
|
||||
$(top_builddir)/clutter/libmutter-clutter-@LIBMUTTER_API_VERSION@.la \
|
||||
$(top_builddir)/../cogl/cogl/libmutter-cogl-@LIBMUTTER_API_VERSION@.la
|
||||
|
||||
common_ldadd = $(top_builddir)/clutter/libmutter-clutter-@CLUTTER_API_VERSION@.la
|
||||
|
||||
check_PROGRAMS = \
|
||||
test-text \
|
||||
@ -20,7 +17,6 @@ AM_CPPFLAGS = \
|
||||
-DTESTS_DATA_DIR=\""$(top_srcdir)/tests/data/"\" \
|
||||
-I$(top_srcdir)/../cogl \
|
||||
-I$(top_builddir)/../cogl \
|
||||
-I$(top_builddir)/../cogl/cogl \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_builddir) \
|
||||
-I$(top_srcdir)/clutter \
|
||||
|
@ -7,7 +7,7 @@ check_PROGRAMS = \
|
||||
test-state-mini \
|
||||
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)
|
||||
|
||||
@ -21,7 +21,6 @@ AM_CPPFLAGS = \
|
||||
-DTESTS_DATA_DIR=\""$(top_srcdir)/tests/data/"\" \
|
||||
-I$(top_srcdir)/../cogl \
|
||||
-I$(top_builddir)/../cogl \
|
||||
-I$(top_builddir)/../cogl/cogl \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_builddir) \
|
||||
-I$(top_srcdir)/clutter \
|
||||
|
@ -2,10 +2,8 @@
|
||||
|
||||
NULL =
|
||||
|
||||
DISTCLEANFILES =
|
||||
|
||||
mutterlibdir = $(libdir)/mutter
|
||||
mutterlib_LTLIBRARIES = libmutter-cogl-gles2-@LIBMUTTER_API_VERSION@.la
|
||||
mutterlib_LTLIBRARIES = libmutter-cogl-gles2.la
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
-I$(top_srcdir) \
|
||||
@ -13,8 +11,8 @@ AM_CPPFLAGS = \
|
||||
|
||||
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_@LIBMUTTER_API_VERSION@_la_LDFLAGS = \
|
||||
libmutter_cogl_gles2_la_SOURCES = cogl-gles2-api.c
|
||||
libmutter_cogl_gles2_la_LDFLAGS = \
|
||||
-no-undefined \
|
||||
-rpath $(mutterlibdir) \
|
||||
-avoid-version \
|
||||
@ -27,9 +25,7 @@ coglgles2include_HEADERS = \
|
||||
GLES2/gl2ext.h \
|
||||
GLES2/gl2platform.h
|
||||
|
||||
pc_files = mutter-cogl-gles2-$(LIBMUTTER_API_VERSION).pc
|
||||
pc_files = mutter-cogl-gles2-1.0.pc
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = $(pc_files)
|
||||
|
||||
DISTCLEANFILES += $(pc_files)
|
||||
|
@ -2,12 +2,12 @@ prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@/mutter
|
||||
includedir=@includedir@/mutter
|
||||
apiversion=@LIBMUTTER_API_VERSION@
|
||||
requires=@COGL_PKG_REQUIRES@ mutter-cogl-@LIBMUTTER_API_VERSION@
|
||||
apiversion=1.0
|
||||
requires=@COGL_PKG_REQUIRES@ mutter-cogl-1.0
|
||||
|
||||
Name: Cogl
|
||||
Description: An object oriented GL/GLES Abstraction/Utility Layer
|
||||
Version: @MUTTER_VERSION@
|
||||
Libs: -L${libdir} -lmutter-cogl-gles2-@LIBMUTTER_API_VERSION@
|
||||
Version: @COGL_1_VERSION@
|
||||
Libs: -L${libdir} -lmutter-cogl-gles2
|
||||
Cflags: -I${includedir}/cogl
|
||||
Requires: ${requires}
|
@ -23,13 +23,13 @@ source_h_priv = \
|
||||
$(NULL)
|
||||
|
||||
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_@LIBMUTTER_API_VERSION@_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_@LIBMUTTER_API_VERSION@_la_LIBADD += $(COGL_DEP_LIBS) $(COGL_PANGO_DEP_LIBS) $(COGL_EXTRA_LDFLAGS)
|
||||
libmutter_cogl_pango_@LIBMUTTER_API_VERSION@_la_LDFLAGS = \
|
||||
libmutter_cogl_pango_la_SOURCES = $(source_c) $(source_h) $(source_h_priv)
|
||||
libmutter_cogl_pango_la_CFLAGS = $(COGL_DEP_CFLAGS) $(COGL_PANGO_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS) $(MAINTAINER_CFLAGS)
|
||||
libmutter_cogl_pango_la_LIBADD = $(top_builddir)/cogl/libmutter-cogl.la
|
||||
libmutter_cogl_pango_la_LIBADD += $(COGL_DEP_LIBS) $(COGL_PANGO_DEP_LIBS) $(COGL_EXTRA_LDFLAGS)
|
||||
libmutter_cogl_pango_la_LDFLAGS = \
|
||||
-export-dynamic \
|
||||
-rpath $(mutterlibdir) \
|
||||
-export-symbols-regex "^cogl_pango_.*" \
|
||||
@ -49,7 +49,7 @@ cogl_base_includedir = $(includedir)/mutter
|
||||
cogl_pangoheadersdir = $(cogl_base_includedir)/cogl/cogl-pango
|
||||
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
|
||||
pkgconfig_DATA = $(pc_files)
|
||||
@ -65,23 +65,23 @@ INTROSPECTION_GIRS =
|
||||
if HAVE_INTROSPECTION
|
||||
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_@LIBMUTTER_API_VERSION@_gir_VERSION = @LIBMUTTER_API_VERSION@
|
||||
CoglPango_@LIBMUTTER_API_VERSION@_gir_LIBS = $(top_builddir)/cogl/libmutter-cogl-$(LIBMUTTER_API_VERSION).la libmutter-cogl-pango-$(LIBMUTTER_API_VERSION).la
|
||||
CoglPango_@LIBMUTTER_API_VERSION@_gir_FILES = $(source_h) $(source_c)
|
||||
CoglPango_@LIBMUTTER_API_VERSION@_gir_CFLAGS = $(AM_CPPFLAGS) $(COGL_DEP_CFLAGS) $(COGL_PANGO_DEP_CFLAGS)
|
||||
CoglPango_@LIBMUTTER_API_VERSION@_gir_INCLUDES = Pango-1.0 PangoCairo-1.0
|
||||
CoglPango_@LIBMUTTER_API_VERSION@_gir_EXPORT_PACKAGES = mutter-cogl-pango-@LIBMUTTER_API_VERSION@
|
||||
CoglPango_@LIBMUTTER_API_VERSION@_gir_SCANNERFLAGS = \
|
||||
CoglPango_1_0_gir_NAMESPACE = CoglPango
|
||||
CoglPango_1_0_gir_VERSION = 1.0
|
||||
CoglPango_1_0_gir_LIBS = $(top_builddir)/cogl/libmutter-cogl.la libmutter-cogl-pango.la
|
||||
CoglPango_1_0_gir_FILES = $(source_h) $(source_c)
|
||||
CoglPango_1_0_gir_CFLAGS = $(AM_CPPFLAGS) $(COGL_DEP_CFLAGS) $(COGL_PANGO_DEP_CFLAGS)
|
||||
CoglPango_1_0_gir_INCLUDES = Pango-1.0 PangoCairo-1.0
|
||||
CoglPango_1_0_gir_EXPORT_PACKAGES = mutter-cogl-pango-1.0
|
||||
CoglPango_1_0_gir_SCANNERFLAGS = \
|
||||
--warn-all \
|
||||
--identifier-prefix=CoglPango \
|
||||
--symbol-prefix=cogl_pango \
|
||||
--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)
|
||||
gir_DATA = $(INTROSPECTION_GIRS)
|
||||
|
@ -2,12 +2,12 @@ prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@/mutter
|
||||
includedir=@includedir@/mutter
|
||||
apiversion=@LIBMUTTER_API_VERSION@
|
||||
requires=@COGL_PKG_REQUIRES@ mutter-cogl-@LIBMUTTER_API_VERSION@
|
||||
apiversion=1.0
|
||||
requires=@COGL_PKG_REQUIRES@ mutter-cogl-1.0
|
||||
|
||||
Name: Cogl
|
||||
Description: An object oriented GL/GLES Abstraction/Utility Layer
|
||||
Version: @MUTTER_VERSION@
|
||||
Libs: -L${libdir} -lmutter-cogl-pango-@LIBMUTTER_API_VERSION@
|
||||
Version: @COGL_1_VERSION@
|
||||
Libs: -L${libdir} -lmutter-cogl-pango
|
||||
Cflags: -I${includedir}/cogl
|
||||
Requires: ${requires}
|
@ -65,14 +65,14 @@ glib_enum_headers = $(source_1_x_h)
|
||||
include $(top_srcdir)/build/autotools/Makefile.am.enums
|
||||
|
||||
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)
|
||||
nodist_libmutter_cogl_path_@LIBMUTTER_API_VERSION@_la_SOURCES = $(BUILT_SOURCES)
|
||||
libmutter_cogl_path_@LIBMUTTER_API_VERSION@_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_@LIBMUTTER_API_VERSION@_la_LIBADD += $(COGL_DEP_LIBS) $(COGL_EXTRA_LDFLAGS)
|
||||
libmutter_cogl_path_@LIBMUTTER_API_VERSION@_la_LDFLAGS = \
|
||||
libmutter_cogl_path_la_SOURCES = $(source_c) $(source_h)
|
||||
nodist_libmutter_cogl_path_la_SOURCES = $(BUILT_SOURCES)
|
||||
libmutter_cogl_path_la_CFLAGS = $(COGL_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS) $(MAINTAINER_CFLAGS)
|
||||
libmutter_cogl_path_la_LIBADD = $(top_builddir)/cogl/libmutter-cogl.la
|
||||
libmutter_cogl_path_la_LIBADD += $(COGL_DEP_LIBS) $(COGL_EXTRA_LDFLAGS)
|
||||
libmutter_cogl_path_la_LDFLAGS = \
|
||||
-export-dynamic \
|
||||
-export-symbols-regex "^(cogl|cogl2)_(framebuffer|path|is|clip|[sg]et)_.*" \
|
||||
-no-undefined \
|
||||
@ -94,7 +94,7 @@ cogl_pathheadersdir = $(cogl_base_includedir)/cogl/cogl-path
|
||||
cogl_pathheaders_HEADERS = $(source_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
|
||||
pkgconfig_DATA = $(pc_files)
|
||||
|
@ -2,12 +2,12 @@ prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@/mutter
|
||||
includedir=@includedir@/mutter
|
||||
apiversion=@LIBMUTTER_API_VERSION@
|
||||
requires=@COGL_PKG_REQUIRES@ mutter-cogl-@LIBMUTTER_API_VERSION@
|
||||
apiversion=1.0
|
||||
requires=@COGL_PKG_REQUIRES@ mutter-cogl-1.0
|
||||
|
||||
Name: Cogl
|
||||
Description: A 2D path drawing library for Cogl
|
||||
Version: @MUTTER_VERSION@
|
||||
Libs: -L${libdir} -lmutter-cogl-path-@LIBMUTTER_API_VERSION@
|
||||
Version: @COGL_1_VERSION@
|
||||
Libs: -L${libdir} -lmutter-cogl-path
|
||||
Cflags: -I${includedir}/cogl
|
||||
Requires: ${requires}
|
@ -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
|
||||
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
|
||||
pkgconfig_DATA = $(pc_files)
|
||||
@ -439,23 +439,23 @@ cogl_sources_c += \
|
||||
endif
|
||||
|
||||
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
|
||||
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
|
||||
# XXX: The aim is to eventually get rid of all private API exports
|
||||
# for cogl-pango.
|
||||
libmutter_cogl_@LIBMUTTER_API_VERSION@_la_LDFLAGS = \
|
||||
libmutter_cogl_la_LDFLAGS = \
|
||||
-no-undefined \
|
||||
-avoid-version \
|
||||
-export-dynamic \
|
||||
-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)
|
||||
nodist_libmutter_cogl_@LIBMUTTER_API_VERSION@_la_SOURCES = $(BUILT_SOURCES)
|
||||
libmutter_cogl_la_SOURCES = $(cogl_sources_c)
|
||||
nodist_libmutter_cogl_la_SOURCES = $(BUILT_SOURCES)
|
||||
|
||||
# Cogl installed headers
|
||||
cogl_headers = \
|
||||
@ -483,22 +483,22 @@ EXTRA_DIST += \
|
||||
INTROSPECTION_GIRS =
|
||||
|
||||
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_@LIBMUTTER_API_VERSION@_gir_VERSION = $(LIBMUTTER_API_VERSION)
|
||||
Cogl_@LIBMUTTER_API_VERSION@_gir_LIBS = libmutter-cogl-$(LIBMUTTER_API_VERSION).la
|
||||
Cogl_1_0_gir_NAMESPACE = Cogl
|
||||
Cogl_1_0_gir_VERSION = 1.0
|
||||
Cogl_1_0_gir_LIBS = libmutter-cogl.la
|
||||
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
|
||||
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_@LIBMUTTER_API_VERSION@_gir_INCLUDES = GL-1.0 GObject-2.0
|
||||
Cogl_@LIBMUTTER_API_VERSION@_gir_EXPORT_PACKAGES = mutter-cogl-@LIBMUTTER_API_VERSION@
|
||||
Cogl_@LIBMUTTER_API_VERSION@_gir_SCANNERFLAGS = --warn-all --c-include='cogl/cogl.h'
|
||||
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_1_0_gir_INCLUDES = GL-1.0 GObject-2.0
|
||||
Cogl_1_0_gir_EXPORT_PACKAGES = mutter-cogl-1.0
|
||||
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)
|
||||
gir_DATA = $(INTROSPECTION_GIRS)
|
||||
|
@ -262,7 +262,6 @@ typedef enum _CoglFeatureID
|
||||
COGL_FEATURE_ID_PER_VERTEX_POINT_SIZE,
|
||||
COGL_FEATURE_ID_TEXTURE_RG,
|
||||
COGL_FEATURE_ID_BUFFER_AGE,
|
||||
COGL_FEATURE_ID_TEXTURE_EGL_IMAGE_EXTERNAL,
|
||||
|
||||
/*< private >*/
|
||||
_COGL_N_FEATURE_IDS /*< skip >*/
|
||||
|
@ -55,13 +55,6 @@ struct _CoglDriverVtable
|
||||
GLenum *out_glintformat,
|
||||
GLenum *out_glformat,
|
||||
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
|
||||
(* update_features) (CoglContext *context,
|
||||
|
@ -152,7 +152,6 @@ typedef long GLsizeiptr;
|
||||
#define GL_POLYGON_OFFSET_FILL 0x8037
|
||||
#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
|
||||
#define GL_SAMPLE_COVERAGE 0x80A0
|
||||
#define GL_TEXTURE_EXTERNAL_OES 0x8D65
|
||||
|
||||
/* ErrorCode */
|
||||
#define GL_NO_ERROR 0
|
||||
|
@ -111,14 +111,6 @@ _cogl_glsl_shader_set_source_with_boilerplate (CoglContext *ctx,
|
||||
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)
|
||||
{
|
||||
strings[count] = vertex_boilerplate;
|
||||
|
@ -51,9 +51,6 @@ typedef struct _CoglGLXDisplay
|
||||
|
||||
CoglBool found_fbconfig;
|
||||
CoglBool fbconfig_has_rgba_visual;
|
||||
CoglBool is_direct;
|
||||
CoglBool have_vblank_counter;
|
||||
CoglBool can_vblank_wait;
|
||||
GLXFBConfig fbconfig;
|
||||
|
||||
/* Single context for all wins */
|
||||
|
@ -43,6 +43,8 @@ typedef struct _CoglGLXRenderer
|
||||
int glx_error_base;
|
||||
int glx_event_base;
|
||||
|
||||
CoglBool is_direct;
|
||||
|
||||
/* Vblank stuff */
|
||||
int dri_fd;
|
||||
|
||||
|
@ -169,8 +169,7 @@ check_qualcomm_vendor (const CoglGpuInfoStrings *strings)
|
||||
static CoglBool
|
||||
check_nvidia_vendor (const CoglGpuInfoStrings *strings)
|
||||
{
|
||||
if (strcmp (strings->vendor_string, "NVIDIA") != 0 &&
|
||||
strcmp (strings->vendor_string, "NVIDIA Corporation") != 0)
|
||||
if (strcmp (strings->vendor_string, "NVIDIA") != 0)
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
|
@ -44,7 +44,7 @@ typedef struct _CoglObject CoglObject;
|
||||
/**
|
||||
* CoglObject: (ref-func cogl_object_ref) (unref-func cogl_object_unref)
|
||||
* (set-value-func cogl_object_value_set_object)
|
||||
* (get-value-func cogl_object_value_get_object)
|
||||
* (get-value-func cogl_object_get_object)
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -62,7 +62,7 @@ COGL_BEGIN_DECLS
|
||||
/**
|
||||
* CoglPrimitive: (ref-func cogl_object_ref) (unref-func cogl_object_unref)
|
||||
* (set-value-func cogl_object_value_set_object)
|
||||
* (get-value-func cogl_object_value_get_object)
|
||||
* (get-value-func cogl_object_get_object)
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -77,9 +77,6 @@ typedef enum
|
||||
COGL_PRIVATE_FEATURE_GL_PROGRAMMABLE,
|
||||
COGL_PRIVATE_FEATURE_GL_EMBEDDED,
|
||||
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
|
||||
} CoglPrivateFeature;
|
||||
|
@ -69,7 +69,6 @@ struct _CoglRenderer
|
||||
Display *foreign_xdpy;
|
||||
CoglBool xlib_enable_event_retrieval;
|
||||
CoglBool xlib_want_reset_on_video_memory_purge;
|
||||
CoglBool xlib_enable_threaded_swap_wait;
|
||||
#endif
|
||||
|
||||
CoglDriver driver;
|
||||
|
@ -285,17 +285,6 @@ cogl_xlib_renderer_request_reset_on_video_memory_purge (CoglRenderer *renderer,
|
||||
|
||||
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 */
|
||||
|
||||
CoglBool
|
||||
|
@ -36,6 +36,10 @@
|
||||
#include "cogl-texture-private.h"
|
||||
#include "cogl-texture-2d.h"
|
||||
|
||||
#ifdef COGL_HAS_EGL_SUPPORT
|
||||
#include "cogl-egl-defines.h"
|
||||
#endif
|
||||
|
||||
struct _CoglTexture2D
|
||||
{
|
||||
CoglTexture _parent;
|
||||
@ -55,23 +59,30 @@ struct _CoglTexture2D
|
||||
GLenum gl_internal_format;
|
||||
/* The texture object number */
|
||||
GLuint gl_texture;
|
||||
GLenum gl_target;
|
||||
GLenum gl_legacy_texobj_min_filter;
|
||||
GLenum gl_legacy_texobj_mag_filter;
|
||||
GLint gl_legacy_texobj_wrap_mode_s;
|
||||
GLint gl_legacy_texobj_wrap_mode_t;
|
||||
CoglTexturePixel first_pixel;
|
||||
|
||||
struct {
|
||||
void *user_data;
|
||||
GDestroyNotify destroy;
|
||||
} egl_image_external;
|
||||
};
|
||||
|
||||
CoglTexture2D *
|
||||
_cogl_texture_2d_new_from_bitmap (CoglBitmap *bmp,
|
||||
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 *
|
||||
_cogl_texture_2d_create_base (CoglContext *ctx,
|
||||
int width,
|
||||
|
@ -110,8 +110,6 @@ _cogl_texture_2d_create_base (CoglContext *ctx,
|
||||
tex_2d->mipmaps_dirty = TRUE;
|
||||
tex_2d->auto_mipmap = TRUE;
|
||||
|
||||
tex_2d->gl_target = GL_TEXTURE_2D;
|
||||
|
||||
tex_2d->is_foreign = FALSE;
|
||||
|
||||
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
|
||||
* 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)
|
||||
_cogl_egl_texture_2d_new_from_image (CoglContext *ctx,
|
||||
int width,
|
||||
int height,
|
||||
CoglPixelFormat format,
|
||||
EGLImageKHR image,
|
||||
CoglError **error)
|
||||
{
|
||||
CoglTextureLoader *loader;
|
||||
CoglTexture2D *tex;
|
||||
@ -432,11 +430,11 @@ cogl_wayland_texture_2d_new_from_buffer (CoglContext *ctx,
|
||||
EGL_WAYLAND_BUFFER_WL,
|
||||
buffer,
|
||||
NULL);
|
||||
tex = cogl_egl_texture_2d_new_from_image (ctx,
|
||||
width, height,
|
||||
internal_format,
|
||||
image,
|
||||
error);
|
||||
tex = _cogl_egl_texture_2d_new_from_image (ctx,
|
||||
width, height,
|
||||
internal_format,
|
||||
image,
|
||||
error);
|
||||
_cogl_egl_destroy_image (ctx, image);
|
||||
return tex;
|
||||
}
|
||||
@ -559,7 +557,7 @@ _cogl_texture_2d_get_gl_texture (CoglTexture *tex,
|
||||
GLuint handle;
|
||||
|
||||
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);
|
||||
|
||||
|
@ -40,10 +40,6 @@
|
||||
#include "cogl-context.h"
|
||||
#include "cogl-bitmap.h"
|
||||
|
||||
#ifdef COGL_HAS_EGL_SUPPORT
|
||||
#include "cogl-egl-defines.h"
|
||||
#endif
|
||||
|
||||
COGL_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
@ -231,40 +227,6 @@ cogl_texture_2d_new_from_data (CoglContext *ctx,
|
||||
CoglTexture2D *
|
||||
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
|
||||
|
||||
#endif /* __COGL_TEXTURE_2D_H */
|
||||
|
@ -37,7 +37,6 @@
|
||||
#include "cogl-spans.h"
|
||||
#include "cogl-meta-texture.h"
|
||||
#include "cogl-framebuffer.h"
|
||||
#include "cogl-texture-2d.h"
|
||||
|
||||
#ifdef COGL_HAS_EGL_SUPPORT
|
||||
#include "cogl-egl-defines.h"
|
||||
@ -155,8 +154,7 @@ typedef enum _CoglTextureSoureType {
|
||||
COGL_TEXTURE_SOURCE_TYPE_SIZED = 1,
|
||||
COGL_TEXTURE_SOURCE_TYPE_BITMAP,
|
||||
COGL_TEXTURE_SOURCE_TYPE_EGL_IMAGE,
|
||||
COGL_TEXTURE_SOURCE_TYPE_GL_FOREIGN,
|
||||
COGL_TEXTURE_SOURCE_TYPE_EGL_IMAGE_EXTERNAL
|
||||
COGL_TEXTURE_SOURCE_TYPE_GL_FOREIGN
|
||||
} CoglTextureSourceType;
|
||||
|
||||
typedef struct _CoglTextureLoader
|
||||
@ -181,14 +179,6 @@ typedef struct _CoglTextureLoader
|
||||
int height;
|
||||
CoglPixelFormat format;
|
||||
} egl_image;
|
||||
#endif
|
||||
#if defined (COGL_HAS_EGL_SUPPORT)
|
||||
struct {
|
||||
int width;
|
||||
int height;
|
||||
CoglTexture2DEGLImageExternalAlloc alloc;
|
||||
CoglPixelFormat format;
|
||||
} egl_image_external;
|
||||
#endif
|
||||
struct {
|
||||
int width;
|
||||
|
@ -160,7 +160,6 @@ _cogl_texture_free_loader (CoglTexture *texture)
|
||||
case COGL_TEXTURE_SOURCE_TYPE_SIZED:
|
||||
case COGL_TEXTURE_SOURCE_TYPE_EGL_IMAGE:
|
||||
case COGL_TEXTURE_SOURCE_TYPE_GL_FOREIGN:
|
||||
case COGL_TEXTURE_SOURCE_TYPE_EGL_IMAGE_EXTERNAL:
|
||||
break;
|
||||
case COGL_TEXTURE_SOURCE_TYPE_BITMAP:
|
||||
cogl_object_unref (loader->src.bitmap.bitmap);
|
||||
|
@ -167,36 +167,6 @@ void
|
||||
cogl_xlib_renderer_set_event_retrieval_enabled (CoglRenderer *renderer,
|
||||
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)
|
||||
*/
|
||||
@ -210,7 +180,7 @@ XVisualInfo *
|
||||
cogl_xlib_renderer_get_visual_info (CoglRenderer *renderer);
|
||||
|
||||
/**
|
||||
* cogl_xlib_renderer_request_reset_on_video_memory_purge: (skip)
|
||||
* cogl_xlib_renderer_request_reset_on_video_memory_purge:
|
||||
* @renderer: a #CoglRenderer
|
||||
* @enable: The new value
|
||||
*
|
||||
|
@ -1307,7 +1307,7 @@ CoglMaterialWrapMode
|
||||
cogl_material_layer_get_wrap_mode_p (CoglMaterialLayer *layer);
|
||||
|
||||
/**
|
||||
* cogl_material_set_depth_state: (skip)
|
||||
* cogl_material_set_depth_state:
|
||||
* @material: A #CoglMaterial object
|
||||
* @state: A #CoglDepthState struct
|
||||
* @error: A #CoglError to report failures to setup the given @state.
|
||||
@ -1334,7 +1334,7 @@ cogl_material_set_depth_state (CoglMaterial *material,
|
||||
CoglError **error);
|
||||
|
||||
/**
|
||||
* cogl_material_get_depth_state: (skip)
|
||||
* cogl_material_get_depth_state:
|
||||
* @material: A #CoglMaterial object
|
||||
* @state_out: A destination #CoglDepthState struct
|
||||
*
|
||||
@ -1370,8 +1370,8 @@ typedef CoglBool (*CoglMaterialLayerCallback) (CoglMaterial *material,
|
||||
/**
|
||||
* cogl_material_foreach_layer:
|
||||
* @material: A #CoglMaterial object
|
||||
* @callback: (scope call): A #CoglMaterialLayerCallback to be called for each
|
||||
* layer index
|
||||
* @callback: A #CoglMaterialLayerCallback to be called for each layer
|
||||
* index
|
||||
* @user_data: Private data that will be passed to the callback
|
||||
*
|
||||
* Iterates all the layer indices of the given @material.
|
||||
|
@ -1418,15 +1418,6 @@ _cogl_framebuffer_gl_read_pixels_into_bitmap (CoglFramebuffer *framebuffer,
|
||||
&gl_format,
|
||||
&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
|
||||
* to flip in this case... */
|
||||
if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_MESA_PACK_INVERT) &&
|
||||
|
@ -46,31 +46,11 @@
|
||||
#include "cogl-error-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
|
||||
_cogl_texture_2d_gl_free (CoglTexture2D *tex_2d)
|
||||
{
|
||||
if (!tex_2d->is_foreign && 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
|
||||
@ -121,9 +101,6 @@ _cogl_texture_2d_gl_init (CoglTexture2D *tex_2d)
|
||||
/* Wrap mode not yet set */
|
||||
tex_2d->gl_legacy_texobj_wrap_mode_s = 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
|
||||
@ -462,96 +439,6 @@ allocate_from_gl_foreign (CoglTexture2D *tex_2d,
|
||||
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
|
||||
_cogl_texture_2d_gl_allocate (CoglTexture *tex,
|
||||
CoglError **error)
|
||||
@ -575,8 +462,6 @@ _cogl_texture_2d_gl_allocate (CoglTexture *tex,
|
||||
#endif
|
||||
case COGL_TEXTURE_SOURCE_TYPE_GL_FOREIGN:
|
||||
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);
|
||||
@ -772,12 +657,11 @@ _cogl_texture_2d_gl_copy_from_bitmap (CoglTexture2D *tex_2d,
|
||||
|
||||
upload_format = cogl_bitmap_get_format (upload_bmp);
|
||||
|
||||
ctx->driver_vtable->pixel_format_to_gl_with_target (ctx,
|
||||
upload_format,
|
||||
_cogl_texture_get_format (tex),
|
||||
NULL, /* internal gl format */
|
||||
&gl_format,
|
||||
&gl_type);
|
||||
ctx->driver_vtable->pixel_format_to_gl (ctx,
|
||||
upload_format,
|
||||
NULL, /* internal format */
|
||||
&gl_format,
|
||||
&gl_type);
|
||||
|
||||
/* If this touches the first pixel then we'll update our copy */
|
||||
if (dst_x == 0 && dst_y == 0 &&
|
||||
|
@ -96,12 +96,11 @@ _cogl_driver_pixel_format_from_gl_internal (CoglContext *context,
|
||||
}
|
||||
|
||||
static CoglPixelFormat
|
||||
_cogl_driver_pixel_format_to_gl_with_target (CoglContext *context,
|
||||
CoglPixelFormat format,
|
||||
CoglPixelFormat target_format,
|
||||
GLenum *out_glintformat,
|
||||
GLenum *out_glformat,
|
||||
GLenum *out_gltype)
|
||||
_cogl_driver_pixel_format_to_gl (CoglContext *context,
|
||||
CoglPixelFormat format,
|
||||
GLenum *out_glintformat,
|
||||
GLenum *out_glformat,
|
||||
GLenum *out_gltype)
|
||||
{
|
||||
CoglPixelFormat required_format;
|
||||
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_PRE:
|
||||
glintformat = GL_RGBA;
|
||||
/* If the driver has texture_swizzle, pretend internal
|
||||
* 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;
|
||||
glformat = GL_BGRA;
|
||||
gltype = GL_UNSIGNED_BYTE;
|
||||
break;
|
||||
|
||||
@ -299,20 +289,6 @@ _cogl_driver_pixel_format_to_gl_with_target (CoglContext *context,
|
||||
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
|
||||
_cogl_get_gl_version (CoglContext *ctx,
|
||||
int *major_out,
|
||||
@ -693,7 +669,6 @@ _cogl_driver_gl =
|
||||
{
|
||||
_cogl_driver_pixel_format_from_gl_internal,
|
||||
_cogl_driver_pixel_format_to_gl,
|
||||
_cogl_driver_pixel_format_to_gl_with_target,
|
||||
_cogl_driver_update_features,
|
||||
_cogl_offscreen_gl_allocate,
|
||||
_cogl_offscreen_gl_free,
|
||||
|
@ -114,18 +114,6 @@ _cogl_texture_driver_gen (CoglContext *ctx,
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -67,12 +67,11 @@ _cogl_driver_pixel_format_from_gl_internal (CoglContext *context,
|
||||
}
|
||||
|
||||
static CoglPixelFormat
|
||||
_cogl_driver_pixel_format_to_gl_with_target (CoglContext *context,
|
||||
CoglPixelFormat format,
|
||||
CoglPixelFormat target_format,
|
||||
GLenum *out_glintformat,
|
||||
GLenum *out_glformat,
|
||||
GLenum *out_gltype)
|
||||
_cogl_driver_pixel_format_to_gl (CoglContext *context,
|
||||
CoglPixelFormat format,
|
||||
GLenum *out_glintformat,
|
||||
GLenum *out_glformat,
|
||||
GLenum *out_gltype)
|
||||
{
|
||||
CoglPixelFormat required_format;
|
||||
GLenum glintformat;
|
||||
@ -220,20 +219,6 @@ _cogl_driver_pixel_format_to_gl_with_target (CoglContext *context,
|
||||
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
|
||||
_cogl_get_gl_version (CoglContext *ctx,
|
||||
int *major_out,
|
||||
@ -472,7 +457,6 @@ _cogl_driver_gles =
|
||||
{
|
||||
_cogl_driver_pixel_format_from_gl_internal,
|
||||
_cogl_driver_pixel_format_to_gl,
|
||||
_cogl_driver_pixel_format_to_gl_with_target,
|
||||
_cogl_driver_update_features,
|
||||
_cogl_offscreen_gl_allocate,
|
||||
_cogl_offscreen_gl_free,
|
||||
|
@ -61,7 +61,6 @@ _cogl_driver_nop =
|
||||
{
|
||||
NULL, /* pixel_format_from_gl_internal */
|
||||
NULL, /* pixel_format_to_gl */
|
||||
NULL, /* pixel_format_to_gl_with_target */
|
||||
_cogl_driver_update_features,
|
||||
_cogl_offscreen_nop_allocate,
|
||||
_cogl_offscreen_nop_free,
|
||||
|
@ -2,12 +2,12 @@ prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@/mutter
|
||||
includedir=@includedir@/mutter
|
||||
apiversion=@LIBMUTTER_API_VERSION@
|
||||
apiversion=1.0
|
||||
requires=@COGL_PKG_REQUIRES@
|
||||
|
||||
Name: Cogl
|
||||
Description: An object oriented GL/GLES Abstraction/Utility Layer
|
||||
Version: @MUTTER_VERSION@
|
||||
Libs: -L${libdir} -lmutter-cogl-@LIBMUTTER_API_VERSION@
|
||||
Version: @COGL_1_VERSION@
|
||||
Libs: -L${libdir} -lmutter-cogl
|
||||
Cflags: -I${includedir}/cogl
|
||||
Requires: ${requires}
|
@ -48,7 +48,6 @@
|
||||
|
||||
#include "cogl-texture-pixmap-x11-private.h"
|
||||
#include "cogl-texture-2d-private.h"
|
||||
#include "cogl-texture-2d.h"
|
||||
#include "cogl-error-private.h"
|
||||
#include "cogl-poll-private.h"
|
||||
|
||||
@ -262,39 +261,6 @@ _cogl_winsys_renderer_disconnect (CoglRenderer *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
|
||||
_cogl_winsys_renderer_connect (CoglRenderer *renderer,
|
||||
CoglError **error)
|
||||
@ -311,7 +277,8 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer,
|
||||
if (!_cogl_xlib_renderer_connect (renderer, 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))
|
||||
goto error;
|
||||
@ -323,19 +290,6 @@ error:
|
||||
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
|
||||
_cogl_winsys_egl_display_setup (CoglDisplay *display,
|
||||
CoglError **error)
|
||||
@ -774,12 +728,12 @@ _cogl_winsys_texture_pixmap_x11_create (CoglTexturePixmapX11 *tex_pixmap)
|
||||
COGL_PIXEL_FORMAT_RGB_888);
|
||||
|
||||
egl_tex_pixmap->texture = COGL_TEXTURE (
|
||||
cogl_egl_texture_2d_new_from_image (ctx,
|
||||
tex->width,
|
||||
tex->height,
|
||||
texture_format,
|
||||
egl_tex_pixmap->image,
|
||||
NULL));
|
||||
_cogl_egl_texture_2d_new_from_image (ctx,
|
||||
tex->width,
|
||||
tex->height,
|
||||
texture_format,
|
||||
egl_tex_pixmap->image,
|
||||
NULL));
|
||||
|
||||
tex_pixmap->winsys = egl_tex_pixmap;
|
||||
|
||||
@ -840,7 +794,6 @@ _cogl_winsys_texture_pixmap_x11_get_texture (CoglTexturePixmapX11 *tex_pixmap,
|
||||
static const CoglWinsysEGLVtable
|
||||
_cogl_winsys_egl_vtable =
|
||||
{
|
||||
.add_config_attributes = _cogl_winsys_egl_add_config_attributes,
|
||||
.display_setup = _cogl_winsys_egl_display_setup,
|
||||
.display_destroy = _cogl_winsys_egl_display_destroy,
|
||||
.context_created = _cogl_winsys_egl_context_created,
|
||||
|
@ -233,11 +233,11 @@ egl_attributes_from_framebuffer_config (CoglDisplay *display,
|
||||
CoglRendererEGL *egl_renderer = renderer->winsys;
|
||||
int i = 0;
|
||||
|
||||
/* Let the platform add attributes first, including setting the
|
||||
* EGL_SURFACE_TYPE */
|
||||
i = egl_renderer->platform_vtable->add_config_attributes (display,
|
||||
config,
|
||||
attributes);
|
||||
/* Let the platform add attributes first */
|
||||
if (egl_renderer->platform_vtable->add_config_attributes)
|
||||
i = egl_renderer->platform_vtable->add_config_attributes (display,
|
||||
config,
|
||||
attributes);
|
||||
|
||||
if (config->need_stencil)
|
||||
{
|
||||
@ -269,6 +269,9 @@ egl_attributes_from_framebuffer_config (CoglDisplay *display,
|
||||
EGL_OPENGL_ES_BIT :
|
||||
EGL_OPENGL_ES2_BIT);
|
||||
|
||||
attributes[i++] = EGL_SURFACE_TYPE;
|
||||
attributes[i++] = EGL_WINDOW_BIT;
|
||||
|
||||
if (config->samples_per_pixel)
|
||||
{
|
||||
attributes[i++] = EGL_SAMPLE_BUFFERS;
|
||||
@ -1025,13 +1028,6 @@ _cogl_egl_create_image (CoglContext *ctx,
|
||||
if (target == EGL_NATIVE_PIXMAP_KHR)
|
||||
egl_ctx = EGL_NO_CONTEXT;
|
||||
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
|
||||
egl_ctx = egl_display->egl_context;
|
||||
|
||||
|
@ -65,16 +65,12 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/time.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <GL/glx.h>
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
/* This is a relatively new extension */
|
||||
#ifndef GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV
|
||||
#define GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x20F7
|
||||
@ -104,14 +100,6 @@ typedef struct _CoglOnscreenGLX
|
||||
CoglBool pending_sync_notify;
|
||||
CoglBool pending_complete_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;
|
||||
|
||||
typedef struct _CoglPixmapTextureEyeGLX
|
||||
@ -204,15 +192,6 @@ find_onscreen_for_xid (CoglContext *context, uint32_t xid)
|
||||
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
|
||||
ensure_ust_type (CoglRenderer *renderer,
|
||||
GLXDrawable drawable)
|
||||
@ -223,6 +202,7 @@ ensure_ust_type (CoglRenderer *renderer,
|
||||
int64_t msc;
|
||||
int64_t sbc;
|
||||
struct timeval tv;
|
||||
struct timespec ts;
|
||||
int64_t current_system_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
|
||||
* 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 &&
|
||||
current_monotonic_time < ust + 1000000)
|
||||
@ -308,9 +290,6 @@ _cogl_winsys_get_clock_time (CoglContext *context)
|
||||
{
|
||||
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
|
||||
* to work with. cogl_get_clock_time() is documented to only work
|
||||
* 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:
|
||||
{
|
||||
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);
|
||||
|
||||
/* The GLX_SGI_video_sync spec explicitly states this extension
|
||||
* only works for direct contexts; we don't know per-renderer
|
||||
* if the context is direct or not, so we turn off the feature
|
||||
* flag; we still use the extension within this file looking
|
||||
* instead at glx_display->have_vblank_counter.
|
||||
*/
|
||||
COGL_FLAGS_SET (glx_renderer->base_winsys_features,
|
||||
COGL_WINSYS_FEATURE_VBLANK_COUNTER,
|
||||
FALSE);
|
||||
|
||||
/* Note: the GLX_SGI_video_sync spec explicitly states this extension
|
||||
* only works for direct contexts. */
|
||||
if (!glx_renderer->is_direct)
|
||||
{
|
||||
glx_renderer->glXGetVideoSync = NULL;
|
||||
glx_renderer->glXWaitVideoSync = NULL;
|
||||
COGL_FLAGS_SET (glx_renderer->base_winsys_features,
|
||||
COGL_WINSYS_FEATURE_VBLANK_COUNTER,
|
||||
FALSE);
|
||||
}
|
||||
|
||||
COGL_FLAGS_SET (glx_renderer->base_winsys_features,
|
||||
COGL_WINSYS_FEATURE_MULTIPLE_ONSCREEN,
|
||||
TRUE);
|
||||
|
||||
/* Because of the direct-context dependency, the VBLANK_WAIT feature
|
||||
* doesn't reflect the presence of GLX_SGI_video_sync.
|
||||
*/
|
||||
if (glx_renderer->glXWaitForMsc)
|
||||
if (glx_renderer->glXWaitVideoSync ||
|
||||
glx_renderer->glXWaitForMsc)
|
||||
COGL_FLAGS_SET (glx_renderer->base_winsys_features,
|
||||
COGL_WINSYS_FEATURE_VBLANK_WAIT,
|
||||
TRUE);
|
||||
@ -881,7 +861,7 @@ update_winsys_features (CoglContext *context, CoglError **error)
|
||||
* by the SwapInterval so we have to throttle swap_region requests
|
||||
* manually... */
|
||||
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_WINSYS_FEATURE_SWAP_REGION_THROTTLE, TRUE);
|
||||
|
||||
@ -897,29 +877,6 @@ update_winsys_features (CoglContext *context, CoglError **error)
|
||||
COGL_FEATURE_ID_PRESENTATION_TIME,
|
||||
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
|
||||
* Expose events from X */
|
||||
@ -1182,13 +1139,11 @@ create_context (CoglDisplay *display, CoglError **error)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
glx_display->is_direct =
|
||||
glx_renderer->is_direct =
|
||||
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",
|
||||
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
|
||||
* 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
|
||||
if (_cogl_winsys_has_feature (COGL_WINSYS_FEATURE_SYNC_AND_COMPLETE_EVENT) &&
|
||||
!_cogl_has_private_feature (context, COGL_PRIVATE_FEATURE_THREADED_SWAP_WAIT))
|
||||
if (_cogl_winsys_has_feature (COGL_WINSYS_FEATURE_SYNC_AND_COMPLETE_EVENT))
|
||||
{
|
||||
GLXDrawable drawable =
|
||||
glx_onscreen->glxwin ? glx_onscreen->glxwin : xlib_onscreen->xwin;
|
||||
@ -1560,31 +1514,6 @@ _cogl_winsys_onscreen_deinit (CoglOnscreen *onscreen)
|
||||
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);
|
||||
|
||||
drawable =
|
||||
@ -1726,13 +1655,12 @@ _cogl_winsys_wait_for_vblank (CoglOnscreen *onscreen)
|
||||
CoglContext *ctx = framebuffer->context;
|
||||
CoglGLXRenderer *glx_renderer;
|
||||
CoglXlibRenderer *xlib_renderer;
|
||||
CoglGLXDisplay *glx_display;
|
||||
|
||||
glx_renderer = ctx->display->renderer->winsys;
|
||||
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);
|
||||
|
||||
@ -1754,13 +1682,16 @@ _cogl_winsys_wait_for_vblank (CoglOnscreen *onscreen)
|
||||
else
|
||||
{
|
||||
uint32_t current_count;
|
||||
struct timespec ts;
|
||||
|
||||
glx_renderer->glXGetVideoSync (¤t_count);
|
||||
glx_renderer->glXWaitVideoSync (2,
|
||||
(current_count + 1) % 2,
|
||||
¤t_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
|
||||
_cogl_winsys_onscreen_swap_region (CoglOnscreen *onscreen,
|
||||
const int *user_rectangles,
|
||||
@ -2021,7 +1759,6 @@ _cogl_winsys_onscreen_swap_region (CoglOnscreen *onscreen,
|
||||
CoglXlibRenderer *xlib_renderer =
|
||||
_cogl_xlib_renderer_get_data (context->display->renderer);
|
||||
CoglGLXRenderer *glx_renderer = context->display->renderer->winsys;
|
||||
CoglGLXDisplay *glx_display = context->display->winsys;
|
||||
CoglOnscreenXlib *xlib_onscreen = onscreen->winsys;
|
||||
CoglOnscreenGLX *glx_onscreen = onscreen->winsys;
|
||||
GLXDrawable drawable =
|
||||
@ -2078,8 +1815,9 @@ _cogl_winsys_onscreen_swap_region (CoglOnscreen *onscreen,
|
||||
|
||||
if (framebuffer->config.swap_throttled)
|
||||
{
|
||||
have_counter = glx_display->have_vblank_counter;
|
||||
can_wait = glx_display->can_vblank_wait;
|
||||
have_counter =
|
||||
_cogl_winsys_has_feature (COGL_WINSYS_FEATURE_VBLANK_COUNTER);
|
||||
can_wait = _cogl_winsys_has_feature (COGL_WINSYS_FEATURE_VBLANK_WAIT);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2236,7 +1974,6 @@ _cogl_winsys_onscreen_swap_buffers_with_damage (CoglOnscreen *onscreen,
|
||||
CoglXlibRenderer *xlib_renderer =
|
||||
_cogl_xlib_renderer_get_data (context->display->renderer);
|
||||
CoglGLXRenderer *glx_renderer = context->display->renderer->winsys;
|
||||
CoglGLXDisplay *glx_display = context->display->winsys;
|
||||
CoglOnscreenXlib *xlib_onscreen = onscreen->winsys;
|
||||
CoglOnscreenGLX *glx_onscreen = onscreen->winsys;
|
||||
CoglBool have_counter;
|
||||
@ -2254,38 +1991,21 @@ _cogl_winsys_onscreen_swap_buffers_with_damage (CoglOnscreen *onscreen,
|
||||
|
||||
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))
|
||||
{
|
||||
/* 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);
|
||||
CoglBool can_wait =
|
||||
_cogl_winsys_has_feature (COGL_WINSYS_FEATURE_VBLANK_WAIT);
|
||||
|
||||
/* If we are going to wait for VBLANK manually, we not only
|
||||
* need to flush out pending drawing to the GPU before we
|
||||
|
@ -83,16 +83,6 @@ AC_CONFIG_HEADERS(cogl-config.h)
|
||||
AC_CONFIG_HEADERS(cogl-mutter-config.h)
|
||||
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 Required versions for dependencies
|
||||
dnl ================================================================
|
||||
@ -955,16 +945,16 @@ AC_OUTPUT(
|
||||
Makefile
|
||||
test-fixtures/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-gl-header.h
|
||||
cogl/cogl-egl-defines.h
|
||||
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/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/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/config.env
|
||||
tests/conform/Makefile
|
||||
|
@ -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_LDADD = \
|
||||
$(COGL_DEP_LIBS) \
|
||||
$(top_builddir)/cogl/libmutter-cogl-$(LIBMUTTER_API_VERSION).la \
|
||||
$(top_builddir)/cogl/libmutter-cogl.la \
|
||||
$(LIBM)
|
||||
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
|
||||
test_conformance_LDFLAGS = -export-dynamic
|
||||
|
||||
|
@ -2,7 +2,6 @@ NULL =
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
-I$(top_srcdir) \
|
||||
-I$(top_builddir)/cogl \
|
||||
-DCOGL_DISABLE_DEPRECATED
|
||||
|
||||
test_conformance_CPPFLAGS = \
|
||||
@ -17,7 +16,7 @@ AM_CFLAGS = $(COGL_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS)
|
||||
|
||||
common_ldadd = \
|
||||
$(COGL_DEP_LIBS) \
|
||||
$(top_builddir)/cogl/libmutter-cogl-$(LIBMUTTER_API_VERSION).la \
|
||||
$(top_builddir)/cogl/libmutter-cogl.la \
|
||||
$(LIBM)
|
||||
|
||||
test_journal_SOURCES = test-journal.c
|
||||
|
@ -13,7 +13,7 @@ wrappers: stamp-test-unit
|
||||
@true
|
||||
stamp-test-unit: Makefile test-unit$(EXEEXT)
|
||||
@mkdir -p wrappers
|
||||
. $(top_builddir)/cogl/libmutter-cogl-$(LIBMUTTER_API_VERSION).la ; \
|
||||
. $(top_builddir)/cogl/libmutter-cogl.la ; \
|
||||
$(NM) $(top_builddir)/cogl/.libs/"$$dlname"| \
|
||||
grep '[DR] _\?unit_test_'|sed 's/.\+ [DR] _\?//' > unit-tests
|
||||
@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_LDADD = \
|
||||
$(COGL_DEP_LIBS) \
|
||||
$(top_builddir)/cogl/libmutter-cogl-$(LIBMUTTER_API_VERSION).la \
|
||||
$(top_builddir)/cogl/libmutter-cogl.la \
|
||||
$(LIBM)
|
||||
test_unit_LDFLAGS = -export-dynamic
|
||||
|
||||
|
79
configure.ac
79
configure.ac
@ -1,16 +1,14 @@
|
||||
AC_PREREQ(2.62)
|
||||
|
||||
m4_define([mutter_major_version], [3])
|
||||
m4_define([mutter_minor_version], [23])
|
||||
m4_define([mutter_micro_version], [92])
|
||||
m4_define([mutter_minor_version], [21])
|
||||
m4_define([mutter_micro_version], [4])
|
||||
|
||||
m4_define([mutter_version],
|
||||
[mutter_major_version.mutter_minor_version.mutter_micro_version])
|
||||
|
||||
m4_define([mutter_plugin_api_version], [3])
|
||||
|
||||
m4_define([libmutter_api_version], [0])
|
||||
|
||||
AC_INIT([mutter], [mutter_version],
|
||||
[http://bugzilla.gnome.org/enter_bug.cgi?product=mutter])
|
||||
|
||||
@ -29,18 +27,11 @@ AC_GNU_SOURCE
|
||||
MUTTER_MAJOR_VERSION=mutter_major_version
|
||||
MUTTER_MINOR_VERSION=mutter_minor_version
|
||||
MUTTER_MICRO_VERSION=mutter_micro_version
|
||||
MUTTER_VERSION=mutter_version
|
||||
MUTTER_PLUGIN_API_VERSION=mutter_plugin_api_version
|
||||
LIBMUTTER_API_VERSION=libmutter_api_version
|
||||
AC_SUBST(MUTTER_MAJOR_VERSION)
|
||||
AC_SUBST(MUTTER_MINOR_VERSION)
|
||||
AC_SUBST(MUTTER_MICRO_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"
|
||||
AC_SUBST(MUTTER_PLUGIN_DIR)
|
||||
@ -52,11 +43,9 @@ GETTEXT_PACKAGE=mutter
|
||||
AC_SUBST(GETTEXT_PACKAGE)
|
||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Name of default gettext domain])
|
||||
|
||||
AM_GNU_GETTEXT_VERSION([0.19.6])
|
||||
AM_GNU_GETTEXT([external])
|
||||
|
||||
LT_PREREQ([2.2.6])
|
||||
LT_INIT([disable-static])
|
||||
IT_PROG_INTLTOOL([0.41])
|
||||
AC_PROG_CC
|
||||
AC_PROG_CC_C_O
|
||||
AC_PROG_INSTALL
|
||||
@ -73,7 +62,6 @@ CANBERRA_GTK_VERSION=0.26
|
||||
LIBWACOM_VERSION=0.13
|
||||
|
||||
MUTTER_PC_MODULES="
|
||||
egl
|
||||
gtk+-3.0 >= 3.19.8
|
||||
gio-unix-2.0 >= 2.35.1
|
||||
pango >= 1.2.0
|
||||
@ -95,7 +83,6 @@ MUTTER_PC_MODULES="
|
||||
xrender
|
||||
x11-xcb
|
||||
xcb-randr
|
||||
xcb-res
|
||||
"
|
||||
|
||||
GLIB_GSETTINGS
|
||||
@ -129,11 +116,6 @@ AC_ARG_WITH(libwacom,
|
||||
[disable the use of libwacom for advanced tablet management]),,
|
||||
with_libwacom=auto)
|
||||
|
||||
AC_ARG_WITH(gudev,
|
||||
AC_HELP_STRING([--without-gudev],
|
||||
[disable the use of gudev for device type detection]),,
|
||||
with_gudev=auto)
|
||||
|
||||
AC_ARG_WITH([xwayland-path],
|
||||
[AS_HELP_STRING([--with-xwayland-path], [Absolute path for an X Wayland server])],
|
||||
[XWAYLAND_PATH="$withval"],
|
||||
@ -213,43 +195,31 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
have_gudev=no
|
||||
AC_MSG_CHECKING([gudev])
|
||||
if test x$with_gudev = xno ; then
|
||||
AC_MSG_RESULT([disabled])
|
||||
else
|
||||
if $PKG_CONFIG --exists gudev-1.0; then
|
||||
have_gudev=yes
|
||||
AC_MSG_RESULT(yes)
|
||||
MUTTER_PC_MODULES="$MUTTER_PC_MODULES gudev-1.0"
|
||||
AC_DEFINE([HAVE_LIBGUDEV], 1, [Building with gudev for device type detection])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
if test x$with_gudev = xyes ; then
|
||||
AC_MSG_ERROR([gudev forced but not found])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
INTROSPECTION_VERSION=0.9.5
|
||||
GOBJECT_INTROSPECTION_CHECK([$INTROSPECTION_VERSION])
|
||||
|
||||
if test x$found_introspection != xno; then
|
||||
AC_DEFINE(HAVE_INTROSPECTION, 1, [Define if GObject introspection is available])
|
||||
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
|
||||
|
||||
AC_SUBST(XWAYLAND_PATH)
|
||||
|
||||
PKG_CHECK_MODULES(MUTTER, $MUTTER_PC_MODULES)
|
||||
|
||||
MUTTER_NATIVE_BACKEND_MODULES="libdrm libsystemd libinput >= 1.4 gudev-1.0 gbm >= 10.3"
|
||||
MUTTER_NATIVE_BACKEND_MODULES="libdrm libsystemd libinput gudev-1.0 gbm >= 10.3"
|
||||
|
||||
AC_ARG_ENABLE(native-backend,
|
||||
AS_HELP_STRING([--disable-native-backend], [disable mutter native (KMS) backend]),,
|
||||
enable_native_backend=auto
|
||||
)
|
||||
have_native_backend="no"
|
||||
AS_IF([test "$enable_native_backend" = "yes"], [have_native_backend=yes],
|
||||
[test "$enable_native_backend" = "auto"], PKG_CHECK_EXISTS([$MUTTER_NATIVE_BACKEND_MODULES], [have_native_backend=yes]))
|
||||
|
||||
@ -259,15 +229,6 @@ AS_IF([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"
|
||||
|
||||
AC_ARG_ENABLE(wayland,
|
||||
@ -285,7 +246,7 @@ AS_IF([test "$have_wayland" = "yes"], [
|
||||
AC_SUBST([WAYLAND_SCANNER])
|
||||
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.5],
|
||||
[ac_wayland_protocols_pkgdatadir=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols`])
|
||||
AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, $ac_wayland_protocols_pkgdatadir)
|
||||
])
|
||||
@ -389,8 +350,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])],
|
||||
[#include <GL/glx.h>])
|
||||
|
||||
AC_PATH_PROG([CVT],[cvt],[])
|
||||
|
||||
#### Warnings (last since -Werror can disturb other tests)
|
||||
|
||||
# Stay command-line compatible with the gnome-common configure option. Here
|
||||
@ -463,7 +422,7 @@ data/Makefile
|
||||
doc/Makefile
|
||||
doc/man/Makefile
|
||||
src/Makefile
|
||||
src/libmutter-$LIBMUTTER_API_VERSION.pc:src/libmutter.pc.in
|
||||
src/libmutter.pc
|
||||
src/compositor/plugins/Makefile
|
||||
src/meta/meta-version.h
|
||||
po/Makefile.in
|
||||
@ -471,16 +430,6 @@ po/Makefile.in
|
||||
|
||||
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
|
||||
echo "*** WARNING WARNING WARNING WARNING WARNING"
|
||||
echo "*** Building without verbose mode"
|
||||
@ -500,12 +449,10 @@ mutter-$VERSION
|
||||
Startup notification: ${have_startup_notification}
|
||||
libcanberra: ${have_libcanberra}
|
||||
libwacom: ${have_libwacom}
|
||||
gudev ${have_gudev}
|
||||
Introspection: ${found_introspection}
|
||||
Session management: ${found_sm}
|
||||
Wayland: ${have_wayland}
|
||||
Native (KMS) backend: ${have_native_backend}
|
||||
EGLDevice: ${enable_egl_device}
|
||||
"
|
||||
|
||||
|
||||
|
@ -1,140 +1,140 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<KeyListEntries schema="org.gnome.desktop.wm.keybindings"
|
||||
group="system"
|
||||
name="Navigation"
|
||||
_name="Navigation"
|
||||
wm_name="Mutter"
|
||||
package="mutter">
|
||||
|
||||
<KeyListEntry name="move-to-workspace-1"
|
||||
description="Move window to workspace 1" />
|
||||
_description="Move window to workspace 1" />
|
||||
|
||||
<KeyListEntry name="move-to-workspace-2"
|
||||
description="Move window to workspace 2" />
|
||||
_description="Move window to workspace 2" />
|
||||
|
||||
<KeyListEntry name="move-to-workspace-3"
|
||||
description="Move window to workspace 3" />
|
||||
_description="Move window to workspace 3" />
|
||||
|
||||
<KeyListEntry name="move-to-workspace-4"
|
||||
description="Move window to workspace 4" />
|
||||
_description="Move window to workspace 4" />
|
||||
|
||||
<KeyListEntry name="move-to-workspace-last"
|
||||
description="Move window to last workspace" />
|
||||
_description="Move window to last workspace" />
|
||||
|
||||
<KeyListEntry name="move-to-workspace-left"
|
||||
description="Move window one workspace to the left" />
|
||||
_description="Move window one workspace to the left" />
|
||||
|
||||
<KeyListEntry name="move-to-workspace-right"
|
||||
description="Move window one workspace to the right" />
|
||||
_description="Move window one workspace to the right" />
|
||||
|
||||
<KeyListEntry name="move-to-workspace-up"
|
||||
description="Move window one workspace up" />
|
||||
_description="Move window one workspace up" />
|
||||
|
||||
<KeyListEntry name="move-to-workspace-down"
|
||||
description="Move window one workspace down" />
|
||||
_description="Move window one workspace down" />
|
||||
|
||||
<KeyListEntry name="move-to-monitor-left"
|
||||
description="Move window one monitor to the left" />
|
||||
_description="Move window one monitor to the left" />
|
||||
|
||||
<KeyListEntry name="move-to-monitor-right"
|
||||
description="Move window one monitor to the right" />
|
||||
_description="Move window one monitor to the right" />
|
||||
|
||||
<KeyListEntry name="move-to-monitor-up"
|
||||
description="Move window one monitor up" />
|
||||
_description="Move window one monitor up" />
|
||||
|
||||
<KeyListEntry name="move-to-monitor-down"
|
||||
description="Move window one monitor down" />
|
||||
_description="Move window one monitor down" />
|
||||
|
||||
<KeyListEntry name="switch-applications"
|
||||
reverse-entry="switch-applications-backward"
|
||||
description="Switch applications"/>
|
||||
_description="Switch applications"/>
|
||||
|
||||
<KeyListEntry name="switch-applications-backward"
|
||||
reverse-entry="switch-applications"
|
||||
hidden="true"
|
||||
description="Switch to previous application"/>
|
||||
_description="Switch to previous application"/>
|
||||
|
||||
<KeyListEntry name="switch-windows"
|
||||
reverse-entry="switch-windows-backward"
|
||||
description="Switch windows"/>
|
||||
_description="Switch windows"/>
|
||||
|
||||
<KeyListEntry name="switch-windows-backward"
|
||||
reverse-entry="switch-windows"
|
||||
hidden="true"
|
||||
description="Switch to previous window"/>
|
||||
_description="Switch to previous window"/>
|
||||
|
||||
<KeyListEntry name="switch-group"
|
||||
reverse-entry="switch-group-backward"
|
||||
description="Switch windows of an application"/>
|
||||
_description="Switch windows of an application"/>
|
||||
|
||||
<KeyListEntry name="switch-group-backward"
|
||||
reverse-entry="switch-group"
|
||||
hidden="true"
|
||||
description="Switch to previous window of an application"/>
|
||||
_description="Switch to previous window of an application"/>
|
||||
|
||||
<KeyListEntry name="switch-panels"
|
||||
reverse-entry="switch-panels-backward"
|
||||
description="Switch system controls"/>
|
||||
_description="Switch system controls"/>
|
||||
|
||||
<KeyListEntry name="switch-panels-backward"
|
||||
reverse-entry="switch-panels"
|
||||
hidden="true"
|
||||
description="Switch to previous system control"/>
|
||||
_description="Switch to previous system control"/>
|
||||
|
||||
<KeyListEntry name="cycle-windows"
|
||||
reverse-entry="cycle-windows-backward"
|
||||
description="Switch windows directly"/>
|
||||
_description="Switch windows directly"/>
|
||||
|
||||
<KeyListEntry name="cycle-windows-backward"
|
||||
reverse-entry="cycle-windows"
|
||||
hidden="true"
|
||||
description="Switch directly to previous window"/>
|
||||
_description="Switch directly to previous window"/>
|
||||
|
||||
<KeyListEntry name="cycle-group"
|
||||
reverse-entry="cycle-group-backward"
|
||||
description="Switch windows of an app directly"/>
|
||||
_description="Switch windows of an app directly"/>
|
||||
|
||||
<KeyListEntry name="cycle-group-backward"
|
||||
reverse-entry="cycle-group"
|
||||
hidden="true"
|
||||
description="Switch directly to previous window of an app"/>
|
||||
_description="Switch directly to previous window of an app"/>
|
||||
|
||||
<KeyListEntry name="cycle-panels"
|
||||
reverse-entry="cycle-panels-backward"
|
||||
description="Switch system controls directly"/>
|
||||
_description="Switch system controls directly"/>
|
||||
|
||||
<KeyListEntry name="cycle-panels-backward"
|
||||
reverse-entry="cycle-panels"
|
||||
hidden="true"
|
||||
description="Switch directly to previous system control"/>
|
||||
_description="Switch directly to previous system control"/>
|
||||
|
||||
<KeyListEntry name="show-desktop"
|
||||
description="Hide all normal windows"/>
|
||||
_description="Hide all normal windows"/>
|
||||
|
||||
<KeyListEntry name="switch-to-workspace-1"
|
||||
description="Switch to workspace 1" />
|
||||
_description="Switch to workspace 1" />
|
||||
|
||||
<KeyListEntry name="switch-to-workspace-2"
|
||||
description="Switch to workspace 2" />
|
||||
_description="Switch to workspace 2" />
|
||||
|
||||
<KeyListEntry name="switch-to-workspace-3"
|
||||
description="Switch to workspace 3" />
|
||||
_description="Switch to workspace 3" />
|
||||
|
||||
<KeyListEntry name="switch-to-workspace-4"
|
||||
description="Switch to workspace 4" />
|
||||
_description="Switch to workspace 4" />
|
||||
|
||||
<KeyListEntry name="switch-to-workspace-last"
|
||||
description="Switch to last workspace" />
|
||||
_description="Switch to last workspace" />
|
||||
|
||||
<KeyListEntry name="switch-to-workspace-left"
|
||||
description="Move to workspace left" />
|
||||
_description="Move to workspace left" />
|
||||
|
||||
<KeyListEntry name="switch-to-workspace-right"
|
||||
description="Move to workspace right" />
|
||||
_description="Move to workspace right" />
|
||||
|
||||
<KeyListEntry name="switch-to-workspace-up"
|
||||
description="Move to workspace above" />
|
||||
_description="Move to workspace above" />
|
||||
|
||||
<KeyListEntry name="switch-to-workspace-down"
|
||||
description="Move to workspace below" />
|
||||
_description="Move to workspace below" />
|
||||
|
||||
</KeyListEntries>
|
@ -1,13 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<KeyListEntries schema="org.gnome.desktop.wm.keybindings"
|
||||
group="system"
|
||||
name="System"
|
||||
_name="System"
|
||||
wm_name="Mutter"
|
||||
package="mutter">
|
||||
|
||||
<KeyListEntry name="panel-run-dialog" description="Show the run command prompt"/>
|
||||
<KeyListEntry name="panel-run-dialog" _description="Show the run command prompt"/>
|
||||
|
||||
<KeyListEntry name="panel-main-menu" description="Show the activities overview"/>
|
||||
<KeyListEntry name="panel-main-menu" _description="Show the activities overview"/>
|
||||
|
||||
</KeyListEntries>
|
||||
|
@ -1,50 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<KeyListEntries schema="org.gnome.desktop.wm.keybindings"
|
||||
group="system"
|
||||
name="Windows"
|
||||
wm_name="Mutter"
|
||||
package="mutter">
|
||||
|
||||
<KeyListEntry name="activate-window-menu" description="Activate the window menu"/>
|
||||
|
||||
<KeyListEntry name="toggle-fullscreen" description="Toggle fullscreen mode"/>
|
||||
|
||||
<KeyListEntry name="toggle-maximized" description="Toggle maximization state"/>
|
||||
|
||||
<KeyListEntry name="maximize" description="Maximize window"/>
|
||||
|
||||
<KeyListEntry name="unmaximize" description="Restore window"/>
|
||||
|
||||
<KeyListEntry name="toggle-shaded" description="Toggle shaded state"/>
|
||||
|
||||
<KeyListEntry name="close" description="Close window"/>
|
||||
|
||||
<KeyListEntry name="minimize" description="Hide window"/>
|
||||
|
||||
<KeyListEntry name="begin-move" description="Move window"/>
|
||||
|
||||
<KeyListEntry name="begin-resize" description="Resize window"/>
|
||||
|
||||
<KeyListEntry name="toggle-on-all-workspaces"
|
||||
description="Toggle window on all workspaces or one"/>
|
||||
|
||||
<KeyListEntry name="raise-or-lower" description="Raise window if covered, otherwise lower it"/>
|
||||
|
||||
<KeyListEntry name="raise" description="Raise window above other windows"/>
|
||||
|
||||
<KeyListEntry name="lower" description="Lower window below other windows"/>
|
||||
|
||||
<KeyListEntry name="maximize-vertically" description="Maximize window vertically"/>
|
||||
|
||||
<KeyListEntry name="maximize-horizontally" description="Maximize window horizontally"/>
|
||||
|
||||
<KeyListEntry name="toggle-tiled-left"
|
||||
schema="org.gnome.mutter.keybindings"
|
||||
description="View split on left"/>
|
||||
|
||||
<KeyListEntry name="toggle-tiled-right"
|
||||
schema="org.gnome.mutter.keybindings"
|
||||
description="View split on right"/>
|
||||
|
||||
</KeyListEntries>
|
||||
|
50
data/50-mutter-windows.xml.in
Normal file
50
data/50-mutter-windows.xml.in
Normal file
@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<KeyListEntries schema="org.gnome.desktop.wm.keybindings"
|
||||
group="system"
|
||||
_name="Windows"
|
||||
wm_name="Mutter"
|
||||
package="mutter">
|
||||
|
||||
<KeyListEntry name="activate-window-menu" _description="Activate the window menu"/>
|
||||
|
||||
<KeyListEntry name="toggle-fullscreen" _description="Toggle fullscreen mode"/>
|
||||
|
||||
<KeyListEntry name="toggle-maximized" _description="Toggle maximization state"/>
|
||||
|
||||
<KeyListEntry name="maximize" _description="Maximize window"/>
|
||||
|
||||
<KeyListEntry name="unmaximize" _description="Restore window"/>
|
||||
|
||||
<KeyListEntry name="toggle-shaded" _description="Toggle shaded state"/>
|
||||
|
||||
<KeyListEntry name="close" _description="Close window"/>
|
||||
|
||||
<KeyListEntry name="minimize" _description="Hide window"/>
|
||||
|
||||
<KeyListEntry name="begin-move" _description="Move window"/>
|
||||
|
||||
<KeyListEntry name="begin-resize" _description="Resize window"/>
|
||||
|
||||
<KeyListEntry name="toggle-on-all-workspaces"
|
||||
_description="Toggle window on all workspaces or one"/>
|
||||
|
||||
<KeyListEntry name="raise-or-lower" _description="Raise window if covered, otherwise lower it"/>
|
||||
|
||||
<KeyListEntry name="raise" _description="Raise window above other windows"/>
|
||||
|
||||
<KeyListEntry name="lower" _description="Lower window below other windows"/>
|
||||
|
||||
<KeyListEntry name="maximize-vertically" _description="Maximize window vertically"/>
|
||||
|
||||
<KeyListEntry name="maximize-horizontally" _description="Maximize window horizontally"/>
|
||||
|
||||
<KeyListEntry name="toggle-tiled-left"
|
||||
schema="org.gnome.mutter.keybindings"
|
||||
_description="View split on left"/>
|
||||
|
||||
<KeyListEntry name="toggle-tiled-right"
|
||||
schema="org.gnome.mutter.keybindings"
|
||||
_description="View split on right"/>
|
||||
|
||||
</KeyListEntries>
|
||||
|
@ -3,24 +3,21 @@ desktopfiles_in_files = \
|
||||
desktopfilesdir = $(datadir)/applications
|
||||
desktopfiles_DATA = $(desktopfiles_in_files:.desktop.in=.desktop)
|
||||
|
||||
%.desktop:%.desktop.in
|
||||
$(AM_V_GET) $(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@
|
||||
@INTLTOOL_DESKTOP_RULE@
|
||||
|
||||
xml_in_files = \
|
||||
50-mutter-navigation.xml.in \
|
||||
50-mutter-system.xml.in \
|
||||
50-mutter-windows.xml.in
|
||||
xmldir = $(GNOME_KEYBINDINGS_KEYSDIR)
|
||||
xml_DATA = \
|
||||
50-mutter-navigation.xml \
|
||||
50-mutter-system.xml \
|
||||
50-mutter-windows.xml
|
||||
xml_DATA = $(xml_in_files:.xml.in=.xml)
|
||||
|
||||
gschema_in_files = \
|
||||
org.gnome.mutter.gschema.xml.in \
|
||||
org.gnome.mutter.wayland.gschema.xml.in
|
||||
gsettings_SCHEMAS = $(gschema_in_files:.xml.in=.xml)
|
||||
|
||||
%.gschema.xml: %.gschema.xml.in Makefile
|
||||
$(AM_V_GEN) sed -e 's|@GETTEXT_DOMAIN[@]|$(GETTEXT_DOMAIN)|g' \
|
||||
$< > $@ || rm $@
|
||||
|
||||
@INTLTOOL_XML_NOMERGE_RULE@
|
||||
@GSETTINGS_RULES@
|
||||
|
||||
convertdir = $(datadir)/GConf/gsettings
|
||||
@ -28,10 +25,11 @@ convert_DATA = mutter-schemas.convert
|
||||
|
||||
CLEANFILES = \
|
||||
$(desktopfiles_DATA) \
|
||||
$(gsettings_SCHEMAS)
|
||||
$(gsettings_SCHEMAS) \
|
||||
$(xml_DATA)
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(convert_DATA) \
|
||||
$(desktopfiles_in_files) \
|
||||
$(gschema_in_files) \
|
||||
$(xml_DATA)
|
||||
$(xml_in_files)
|
||||
|
@ -1,6 +1,6 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Mutter
|
||||
_Name=Mutter
|
||||
Exec=mutter
|
||||
NoDisplay=true
|
||||
# name of loadable control center module
|
||||
|
@ -4,102 +4,102 @@
|
||||
|
||||
<key name="overlay-key" type="s">
|
||||
<default>'Super_L'</default>
|
||||
<summary>Modifier to use for extended window management operations</summary>
|
||||
<description>
|
||||
This key will initiate the “overlay”, which is a combination window
|
||||
<_summary>Modifier to use for extended window management operations</_summary>
|
||||
<_description>
|
||||
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.
|
||||
to be the "Windows key" on PC hardware.
|
||||
|
||||
It’s 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.
|
||||
</description>
|
||||
</_description>
|
||||
</key>
|
||||
|
||||
<key name="attach-modal-dialogs" type="b">
|
||||
<default>false</default>
|
||||
<summary>Attach modal dialogs</summary>
|
||||
<description>
|
||||
<_summary>Attach modal dialogs</_summary>
|
||||
<_description>
|
||||
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.
|
||||
</description>
|
||||
</_description>
|
||||
</key>
|
||||
|
||||
<key name="edge-tiling" type="b">
|
||||
<default>false</default>
|
||||
<summary>Enable edge tiling when dropping windows on screen edges</summary>
|
||||
<description>
|
||||
<_summary>Enable edge tiling when dropping windows on screen edges</_summary>
|
||||
<_description>
|
||||
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.
|
||||
</description>
|
||||
</_description>
|
||||
</key>
|
||||
|
||||
<key name="dynamic-workspaces" type="b">
|
||||
<default>false</default>
|
||||
<summary>Workspaces are managed dynamically</summary>
|
||||
<description>
|
||||
<_summary>Workspaces are managed dynamically</_summary>
|
||||
<_description>
|
||||
Determines whether workspaces are managed dynamically or
|
||||
whether there’s 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).
|
||||
</description>
|
||||
</_description>
|
||||
</key>
|
||||
|
||||
<key name="workspaces-only-on-primary" type="b">
|
||||
<default>false</default>
|
||||
<summary>Workspaces only on primary</summary>
|
||||
<description>
|
||||
<_summary>Workspaces only on primary</_summary>
|
||||
<_description>
|
||||
Determines whether workspace switching should happen for windows
|
||||
on all monitors or only for windows on the primary monitor.
|
||||
</description>
|
||||
</_description>
|
||||
</key>
|
||||
|
||||
<key name="no-tab-popup" type="b">
|
||||
<default>false</default>
|
||||
<summary>No tab popup</summary>
|
||||
<description>
|
||||
<_summary>No tab popup</_summary>
|
||||
<_description>
|
||||
Determines whether the use of popup and highlight frame should
|
||||
be disabled for window cycling.
|
||||
</description>
|
||||
</_description>
|
||||
</key>
|
||||
|
||||
<key name="focus-change-on-pointer-rest" type="b">
|
||||
<default>false</default>
|
||||
<summary>Delay focus changes until the pointer stops moving</summary>
|
||||
<description>
|
||||
If set to true, and the focus mode is either “sloppy” or “mouse”
|
||||
<_summary>Delay focus changes until the pointer stops moving</_summary>
|
||||
<_description>
|
||||
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.
|
||||
</description>
|
||||
</_description>
|
||||
</key>
|
||||
|
||||
<key name="draggable-border-width" type="i">
|
||||
<default>10</default>
|
||||
<range min="0" max="64"/>
|
||||
<summary>Draggable border width</summary>
|
||||
<description>
|
||||
The amount of total draggable borders. If the theme’s visible
|
||||
<_summary>Draggable border width</_summary>
|
||||
<_description>
|
||||
The amount of total draggable borders. If the theme's visible
|
||||
borders are not enough, invisible borders will be added to meet
|
||||
this value.
|
||||
</description>
|
||||
</_description>
|
||||
</key>
|
||||
|
||||
<key name="auto-maximize" type="b">
|
||||
<default>true</default>
|
||||
<summary>Auto maximize nearly monitor sized windows</summary>
|
||||
<description>
|
||||
<_summary>Auto maximize nearly monitor sized windows</_summary>
|
||||
<_description>
|
||||
If enabled, new windows that are initially the size of the monitor
|
||||
automatically get maximized.
|
||||
</description>
|
||||
</_description>
|
||||
</key>
|
||||
|
||||
<key name="center-new-windows" type="b">
|
||||
<default>false</default>
|
||||
<summary>Place new windows in the center</summary>
|
||||
<description>
|
||||
<_summary>Place new windows in the center</_summary>
|
||||
<_description>
|
||||
When true, the new windows will always be put in the center of the
|
||||
active screen of the monitor.
|
||||
</description>
|
||||
</_description>
|
||||
</key>
|
||||
|
||||
<child name="keybindings" schema="org.gnome.mutter.keybindings"/>
|
||||
@ -117,12 +117,12 @@
|
||||
|
||||
<key name="tab-popup-select" type="as">
|
||||
<default>[]</default>
|
||||
<summary>Select window from tab popup</summary>
|
||||
<_summary>Select window from tab popup</_summary>
|
||||
</key>
|
||||
|
||||
<key name="tab-popup-cancel" type="as">
|
||||
<default>[]</default>
|
||||
<summary>Cancel tab popup</summary>
|
||||
<_summary>Cancel tab popup</_summary>
|
||||
</key>
|
||||
|
||||
</schema>
|
||||
|
@ -3,51 +3,51 @@
|
||||
gettext-domain="@GETTEXT_DOMAIN@">
|
||||
<key name="switch-to-session-1" type="as">
|
||||
<default><![CDATA[['<Primary><Alt>F1']]]></default>
|
||||
<summary>Switch to VT 1</summary>
|
||||
<_summary>Switch to VT 1</_summary>
|
||||
</key>
|
||||
<key name="switch-to-session-2" type="as">
|
||||
<default><![CDATA[['<Primary><Alt>F2']]]></default>
|
||||
<summary>Switch to VT 2</summary>
|
||||
<_summary>Switch to VT 2</_summary>
|
||||
</key>
|
||||
<key name="switch-to-session-3" type="as">
|
||||
<default><![CDATA[['<Primary><Alt>F3']]]></default>
|
||||
<summary>Switch to VT 3</summary>
|
||||
<_summary>Switch to VT 3</_summary>
|
||||
</key>
|
||||
<key name="switch-to-session-4" type="as">
|
||||
<default><![CDATA[['<Primary><Alt>F4']]]></default>
|
||||
<summary>Switch to VT 4</summary>
|
||||
<_summary>Switch to VT 4</_summary>
|
||||
</key>
|
||||
<key name="switch-to-session-5" type="as">
|
||||
<default><![CDATA[['<Primary><Alt>F5']]]></default>
|
||||
<summary>Switch to VT 5</summary>
|
||||
<_summary>Switch to VT 5</_summary>
|
||||
</key>
|
||||
<key name="switch-to-session-6" type="as">
|
||||
<default><![CDATA[['<Primary><Alt>F6']]]></default>
|
||||
<summary>Switch to VT 6</summary>
|
||||
<_summary>Switch to VT 6</_summary>
|
||||
</key>
|
||||
<key name="switch-to-session-7" type="as">
|
||||
<default><![CDATA[['<Primary><Alt>F7']]]></default>
|
||||
<summary>Switch to VT 7</summary>
|
||||
<_summary>Switch to VT 7</_summary>
|
||||
</key>
|
||||
<key name="switch-to-session-8" type="as">
|
||||
<default><![CDATA[['<Primary><Alt>F8']]]></default>
|
||||
<summary>Switch to VT 8</summary>
|
||||
<_summary>Switch to VT 8</_summary>
|
||||
</key>
|
||||
<key name="switch-to-session-9" type="as">
|
||||
<default><![CDATA[['<Primary><Alt>F9']]]></default>
|
||||
<summary>Switch to VT 9</summary>
|
||||
<_summary>Switch to VT 9</_summary>
|
||||
</key>
|
||||
<key name="switch-to-session-10" type="as">
|
||||
<default><![CDATA[['<Primary><Alt>F10']]]></default>
|
||||
<summary>Switch to VT 10</summary>
|
||||
<_summary>Switch to VT 10</_summary>
|
||||
</key>
|
||||
<key name="switch-to-session-11" type="as">
|
||||
<default><![CDATA[['<Primary><Alt>F11']]]></default>
|
||||
<summary>Switch to VT 11</summary>
|
||||
<_summary>Switch to VT 11</_summary>
|
||||
</key>
|
||||
<key name="switch-to-session-12" type="as">
|
||||
<default><![CDATA[['<Primary><Alt>F12']]]></default>
|
||||
<summary>Switch to VT 12</summary>
|
||||
<_summary>Switch to VT 12</_summary>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
||||
|
68
po/Makevars
68
po/Makevars
@ -1,68 +0,0 @@
|
||||
# Makefile variables for PO directory in any package using GNU gettext.
|
||||
|
||||
# Usually the message domain is the same as the package name.
|
||||
DOMAIN = $(PACKAGE)
|
||||
|
||||
# These two variables depend on the location of this directory.
|
||||
subdir = po
|
||||
top_builddir = ..
|
||||
|
||||
# These options get passed to xgettext.
|
||||
XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ \
|
||||
--keyword=C_:1c,2 --keyword=NC_:1c,2 \
|
||||
--keyword=g_dngettext:2,3 --add-comments \
|
||||
--flag=g_dngettext:2:pass-c-format \
|
||||
--flag=g_strdup_printf:1:c-format \
|
||||
--flag=g_string_printf:2:c-format \
|
||||
--flag=g_string_append_printf:2:c-format \
|
||||
--flag=g_error_new:3:c-format \
|
||||
--flag=g_set_error:4:c-format \
|
||||
--flag=g_markup_printf_escaped:1:c-format \
|
||||
--flag=g_log:3:c-format \
|
||||
--flag=g_print:1:c-format \
|
||||
--flag=g_printerr:1:c-format \
|
||||
--flag=g_printf:1:c-format \
|
||||
--flag=g_fprintf:2:c-format \
|
||||
--flag=g_sprintf:2:c-format \
|
||||
--flag=g_snprintf:3:c-format
|
||||
|
||||
|
||||
# This is the copyright holder that gets inserted into the header of the
|
||||
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
|
||||
# package. (Note that the msgstr strings, extracted from the package's
|
||||
# sources, belong to the copyright holder of the package.) Translators are
|
||||
# expected to transfer the copyright for their translations to this person
|
||||
# or entity, or to disclaim their copyright. The empty string stands for
|
||||
# the public domain; in this case the translators are expected to disclaim
|
||||
# their copyright.
|
||||
COPYRIGHT_HOLDER = Translation copyright holder
|
||||
# This is the email address or URL to which the translators shall report
|
||||
# bugs in the untranslated strings:
|
||||
# - Strings which are not entire sentences, see the maintainer guidelines
|
||||
# in the GNU gettext documentation, section 'Preparing Strings'.
|
||||
# - Strings which use unclear terms or require additional context to be
|
||||
# understood.
|
||||
# - Strings which make invalid assumptions about notation of date, time or
|
||||
# money.
|
||||
# - Pluralisation problems.
|
||||
# - Incorrect English spelling.
|
||||
# - Incorrect formatting.
|
||||
# It can be your email address, or a mailing list address where translators
|
||||
# can write to without being subscribed, or the URL of a web page through
|
||||
# which the translators can contact you.
|
||||
MSGID_BUGS_ADDRESS = http://bugzilla.gnome.org/enter_bug.cgi?product=mutter&keywords=I18N+L10N&component=general
|
||||
|
||||
# This is the list of locale categories, beyond LC_MESSAGES, for which the
|
||||
# message catalogs shall be used. It is usually empty.
|
||||
EXTRA_LOCALE_CATEGORIES =
|
||||
|
||||
# Ignore the timestamp of the .pot file, as git clones do not have
|
||||
# deterministic timestamps, and .po files are updated by translators
|
||||
# (only) in GNOME projects.
|
||||
PO_DEPENDS_ON_POT = no
|
||||
|
||||
# This tells whether or not to forcibly update $(DOMAIN).pot and
|
||||
# regenerate PO files on "make dist". Possible values are "yes" and
|
||||
# "no". Set this to no if the POT file and PO files are maintained
|
||||
# externally.
|
||||
DIST_DEPENDS_ON_UPDATE_PO = no
|
@ -1,8 +1,8 @@
|
||||
# List of source files containing translatable strings.
|
||||
# Please keep this file sorted alphabetically.
|
||||
data/50-mutter-navigation.xml
|
||||
data/50-mutter-system.xml
|
||||
data/50-mutter-windows.xml
|
||||
data/50-mutter-navigation.xml.in
|
||||
data/50-mutter-system.xml.in
|
||||
data/50-mutter-windows.xml.in
|
||||
data/mutter.desktop.in
|
||||
data/org.gnome.mutter.gschema.xml.in
|
||||
data/org.gnome.mutter.wayland.gschema.xml.in
|
||||
|
@ -1,12 +1,13 @@
|
||||
# List of source files that should NOT be translated.
|
||||
# Please keep this file sorted alphabetically.
|
||||
clutter/clutter/clutter-actor.c
|
||||
|
||||
clutter/clutter/clutter-actor-meta.c
|
||||
clutter/clutter/clutter-actor.c
|
||||
clutter/clutter/clutter-align-constraint.c
|
||||
clutter/clutter/clutter-backend.c
|
||||
clutter/clutter/clutter-bin-layout.c
|
||||
clutter/clutter/clutter-bind-constraint.c
|
||||
clutter/clutter/clutter-binding-pool.c
|
||||
clutter/clutter/clutter-bin-layout.c
|
||||
clutter/clutter/clutter-box-layout.c
|
||||
clutter/clutter/clutter-brightness-contrast-effect.c
|
||||
clutter/clutter/clutter-canvas.c
|
||||
@ -51,18 +52,17 @@ clutter/clutter/clutter-text.c
|
||||
clutter/clutter/clutter-timeline.c
|
||||
clutter/clutter/clutter-transition.c
|
||||
clutter/clutter/clutter-units.c
|
||||
clutter/clutter/clutter-virtual-input-device.c
|
||||
clutter/clutter/clutter-zoom-action.c
|
||||
clutter/clutter/deprecated/clutter-alpha.c
|
||||
clutter/clutter/deprecated/clutter-animation.c
|
||||
clutter/clutter/deprecated/clutter-animator.c
|
||||
clutter/clutter/deprecated/clutter-behaviour.c
|
||||
clutter/clutter/deprecated/clutter-behaviour-depth.c
|
||||
clutter/clutter/deprecated/clutter-behaviour-ellipse.c
|
||||
clutter/clutter/deprecated/clutter-behaviour-opacity.c
|
||||
clutter/clutter/deprecated/clutter-behaviour-path.c
|
||||
clutter/clutter/deprecated/clutter-behaviour-rotate.c
|
||||
clutter/clutter/deprecated/clutter-behaviour-scale.c
|
||||
clutter/clutter/deprecated/clutter-behaviour.c
|
||||
clutter/clutter/deprecated/clutter-box.c
|
||||
clutter/clutter/deprecated/clutter-cairo-texture.c
|
||||
clutter/clutter/deprecated/clutter-fixed.c
|
||||
@ -72,11 +72,9 @@ clutter/clutter/deprecated/clutter-shader.c
|
||||
clutter/clutter/deprecated/clutter-state.c
|
||||
clutter/clutter/deprecated/clutter-table-layout.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/wayland/clutter-wayland-surface.c
|
||||
clutter/clutter/x11/clutter-backend-x11.c
|
||||
clutter/clutter/x11/clutter-keymap-x11.c
|
||||
clutter/clutter/x11/clutter-x11-texture-pixmap.c
|
||||
cogl/cogl/cogl-debug.c
|
||||
cogl/cogl/cogl-debug-options.h
|
||||
cogl/cogl/cogl-debug.c
|
||||
|
838
po/bg.po
838
po/bg.po
@ -1,10 +1,9 @@
|
||||
# Bulgarian translation of mutter po-file.
|
||||
# Copyright (C) 2002, 2004, 2006, 2007, 2008 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>, 2011, 2012, 2013, 2014, 2015.
|
||||
# Alexander Shopov <ash@kambanaria.org>, 2016.
|
||||
# Vladimir Petkov <kaladan@gmail.com>, 2004.
|
||||
# Rostislav Raykov <zbrox@i-space.org>, 2004.
|
||||
# Yavor Doganov <yavor@gnu.org>, 2008.
|
||||
@ -12,10 +11,9 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: mutter master\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
||||
"product=mutter&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2016-09-08 06:33+0300\n"
|
||||
"PO-Revision-Date: 2016-09-05 16:27+0300\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-03-10 09:51+0200\n"
|
||||
"PO-Revision-Date: 2015-03-10 09:51+0200\n"
|
||||
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
|
||||
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
|
||||
"Language: bg\n"
|
||||
@ -24,44 +22,471 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../src/backends/meta-input-settings.c:1707
|
||||
msgid "Switch monitor"
|
||||
msgstr "Смяна на екрана"
|
||||
#: ../data/50-mutter-navigation.xml.in.h:1
|
||||
msgid "Navigation"
|
||||
msgstr "Навигация"
|
||||
|
||||
#: ../src/backends/meta-input-settings.c:1709
|
||||
msgid "Show on-screen help"
|
||||
msgstr "Показване на помощта на екрана"
|
||||
#: ../data/50-mutter-navigation.xml.in.h:2
|
||||
msgid "Move window to workspace 1"
|
||||
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"
|
||||
msgstr "Вграден екран"
|
||||
|
||||
#: ../src/backends/meta-monitor-manager.c:537
|
||||
#: ../src/backends/meta-monitor-manager.c:391
|
||||
msgid "Unknown"
|
||||
msgstr "Непознат"
|
||||
|
||||
#: ../src/backends/meta-monitor-manager.c:539
|
||||
#: ../src/backends/meta-monitor-manager.c:393
|
||||
msgid "Unknown Display"
|
||||
msgstr "Непознат екран"
|
||||
|
||||
#. TRANSLATORS: this is a monitor vendor name, followed by a
|
||||
#. * size in inches, like 'Dell 15"'
|
||||
#.
|
||||
#: ../src/backends/meta-monitor-manager.c:547
|
||||
#: ../src/backends/meta-monitor-manager.c:401
|
||||
#, c-format
|
||||
msgid "%s %s"
|
||||
msgstr "%s %s"
|
||||
|
||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||
#. * we have no way to get it to exit
|
||||
#: ../src/compositor/compositor.c:463
|
||||
#: ../src/compositor/compositor.c:456
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Another compositing manager is already running on screen %i on display \"%s"
|
||||
"\"."
|
||||
msgstr "На екран %i от дисплея „%s“ вече има мениджър за наслагване."
|
||||
|
||||
#: ../src/core/bell.c:194
|
||||
#: ../src/core/bell.c:185
|
||||
msgid "Bell event"
|
||||
msgstr "Събитие за звънец"
|
||||
|
||||
@ -90,48 +515,44 @@ msgstr "Из_чакване"
|
||||
msgid "_Force Quit"
|
||||
msgstr "_Принудително спиране"
|
||||
|
||||
#: ../src/core/display.c:590
|
||||
#: ../src/core/display.c:562
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display '%s'\n"
|
||||
msgstr "Неуспешно отваряне на дисплея на X Window „%s“\n"
|
||||
|
||||
#: ../src/core/main.c:182
|
||||
#: ../src/core/main.c:176
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "Прекъсване на връзката към мениджъра на сесиите"
|
||||
|
||||
#: ../src/core/main.c:188
|
||||
#: ../src/core/main.c:182
|
||||
msgid "Replace the running window manager"
|
||||
msgstr "Замяна на текущия мениджър на прозорци"
|
||||
|
||||
#: ../src/core/main.c:194
|
||||
#: ../src/core/main.c:188
|
||||
msgid "Specify session management ID"
|
||||
msgstr "Определяне на идентификатор за управлението на сесии"
|
||||
|
||||
#: ../src/core/main.c:199
|
||||
#: ../src/core/main.c:193
|
||||
msgid "X Display to use"
|
||||
msgstr "X дисплеят, който да се използва"
|
||||
|
||||
# Ако „запазено“ не се членува, низът се събира на един ред без
|
||||
# пренасяне.
|
||||
#: ../src/core/main.c:205
|
||||
#: ../src/core/main.c:199
|
||||
msgid "Initialize session from savefile"
|
||||
msgstr "Инициализиране на сесия от файл със запазено състояние"
|
||||
|
||||
#: ../src/core/main.c:211
|
||||
#: ../src/core/main.c:205
|
||||
msgid "Make X calls synchronous"
|
||||
msgstr "Извикванията на X да са синхронни"
|
||||
|
||||
#: ../src/core/main.c:218
|
||||
#: ../src/core/main.c:212
|
||||
msgid "Run as a wayland compositor"
|
||||
msgstr "Wayland да е мениджър за наслагване"
|
||||
|
||||
#: ../src/core/main.c:224
|
||||
msgid "Run as a nested compositor"
|
||||
msgstr "Изпълнение като вложен сървър за изобразяване"
|
||||
|
||||
#: ../src/core/main.c:232
|
||||
#: ../src/core/main.c:220
|
||||
msgid "Run as a full display server, rather than nested"
|
||||
msgstr "Изпълнение като самостоятелен, а не вложен сървър за изобразяване"
|
||||
msgstr "Изпълнение като самостоятелен, а не вграден сървър за изобразяване"
|
||||
|
||||
#: ../src/core/mutter.c:39
|
||||
#, c-format
|
||||
@ -157,12 +578,12 @@ msgstr "Отпечатване на версията на програмата"
|
||||
msgid "Mutter plugin to use"
|
||||
msgstr "Приставка, която да се ползва"
|
||||
|
||||
#: ../src/core/prefs.c:1997
|
||||
#: ../src/core/prefs.c:2004
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Работен плот %d"
|
||||
|
||||
#: ../src/core/screen.c:521
|
||||
#: ../src/core/screen.c:525
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Display \"%s\" already has a window manager; try using the --replace option "
|
||||
@ -171,20 +592,15 @@ msgstr ""
|
||||
"Вече има мениджър на прозорци на дисплей „%s“. Пробвайте да го замените с "
|
||||
"опцията „--replace“."
|
||||
|
||||
#: ../src/core/screen.c:606
|
||||
#: ../src/core/screen.c:607
|
||||
#, c-format
|
||||
msgid "Screen %d on display '%s' is invalid\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"
|
||||
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
|
||||
msgid ""
|
||||
"These windows do not support "save current setup" and will have to "
|
||||
@ -193,345 +609,7 @@ msgstr ""
|
||||
"Тези прозорци не поддържат операцията по записване на текущото състояние и "
|
||||
"ще трябва да се стартират ръчно при следващото ви влизане."
|
||||
|
||||
#: ../src/x11/window-props.c:548
|
||||
#: ../src/x11/window-props.c:549
|
||||
#, c-format
|
||||
msgid "%s (on %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"
|
||||
|
664
po/da.po
664
po/da.po
@ -1,5 +1,5 @@
|
||||
# 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.
|
||||
# Kjartan Maraas <kmaraas@gnome.org>, 2002
|
||||
# Keld simonsen <keld@dkuug.dk>, 2002
|
||||
@ -8,9 +8,9 @@
|
||||
# Lasse Bang Mikkelsen <lbm@fatalerror.dk>, 2006.
|
||||
# Kenneth Nielsen <k.nielsen81@gmail.com>, 2008.
|
||||
# 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
|
||||
#
|
||||
@ -19,10 +19,9 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: mutter\n"
|
||||
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?"
|
||||
"product=mutter&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2017-02-22 19:28+0000\n"
|
||||
"PO-Revision-Date: 2017-03-02 12:04+0100\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-03-20 23:17+0100\n"
|
||||
"PO-Revision-Date: 2016-03-20 21:46+0100\n"
|
||||
"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
|
||||
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
|
||||
"Language: da\n"
|
||||
@ -30,27 +29,271 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\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"
|
||||
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"
|
||||
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 ""
|
||||
"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 "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."
|
||||
"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 ""
|
||||
"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"
|
||||
msgstr "Fastgør modaldialoger"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:21
|
||||
#: ../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 "
|
||||
@ -59,13 +302,13 @@ msgstr ""
|
||||
"Når sand, vil modaldialoger hænge sammen med titellinjen af ophavsvinduet og "
|
||||
"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"
|
||||
msgstr ""
|
||||
"Aktivér maksimering eller halvmaksimering når vinduer slippes over "
|
||||
"skærmranden"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:31
|
||||
#: ../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 "
|
||||
@ -76,13 +319,13 @@ msgstr ""
|
||||
"tilgængelige område. Vinduer, der slippes på øverste skærmrand, maksimeres "
|
||||
"helt."
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:40
|
||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:7
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Arbejdsområder håndteres dynamisk"
|
||||
|
||||
#: 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 "
|
||||
"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 ""
|
||||
@ -90,11 +333,11 @@ msgstr ""
|
||||
"antal arbejdsområder (angivet med nøglen num-workspaces i 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"
|
||||
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 ""
|
||||
"Determines whether workspace switching should happen for windows on all "
|
||||
"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, "
|
||||
"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"
|
||||
msgstr "Ingen tab-pop-op"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:60
|
||||
#: ../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."
|
||||
@ -114,37 +357,37 @@ msgstr ""
|
||||
"Afgør om brugen af pop-op og fremhævet vinduesramme skal deaktiveres ved "
|
||||
"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"
|
||||
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 ""
|
||||
"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."
|
||||
"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 ""
|
||||
"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 "
|
||||
"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"
|
||||
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 ""
|
||||
"The amount of total draggable borders. If the theme’s visible borders are "
|
||||
"The amount of total draggable borders. If the theme's visible borders are "
|
||||
"not enough, invisible borders will be added to meet this value."
|
||||
msgstr ""
|
||||
"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."
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:89
|
||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:17
|
||||
msgid "Auto maximize nearly monitor sized windows"
|
||||
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 ""
|
||||
"If enabled, new windows that are initially the size of the monitor "
|
||||
"automatically get maximized."
|
||||
@ -152,136 +395,117 @@ msgstr ""
|
||||
"Hvis aktiveret vil nye vinduer, som i begyndelsen har samme størrelse som "
|
||||
"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"
|
||||
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 ""
|
||||
"When true, the new windows will always be put in the center of the active "
|
||||
"screen of the monitor."
|
||||
msgstr ""
|
||||
"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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Skift til VT 12"
|
||||
|
||||
#. TRANSLATORS: This string refers to a button that switches between
|
||||
#. * 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
|
||||
#: ../src/backends/meta-monitor-manager.c:518
|
||||
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"
|
||||
msgstr "Ukendt"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:700
|
||||
#: ../src/backends/meta-monitor-manager.c:546
|
||||
msgid "Unknown Display"
|
||||
msgstr "Ukendt terminal"
|
||||
msgstr "Ukendt skærm"
|
||||
|
||||
#. TRANSLATORS: this is a monitor vendor name, followed by a
|
||||
#. * size in inches, like 'Dell 15"'
|
||||
#.
|
||||
#: src/backends/meta-monitor-manager.c:708
|
||||
#: ../src/backends/meta-monitor-manager.c:554
|
||||
#, c-format
|
||||
msgid "%s %s"
|
||||
msgstr "%s %s"
|
||||
|
||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||
#. * we have no way to get it to exit
|
||||
#: src/compositor/compositor.c:471
|
||||
#: ../src/compositor/compositor.c:456
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Another compositing manager is already running on screen %i on display “%s”."
|
||||
"Another compositing manager is already running on screen %i on display \"%s"
|
||||
"\"."
|
||||
msgstr ""
|
||||
"En 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"
|
||||
msgstr "Bip-hændelse"
|
||||
|
||||
#. Translators: %s is a window title
|
||||
#: src/core/delete.c:127
|
||||
#: ../src/core/delete.c:127
|
||||
#, c-format
|
||||
msgid "“%s” is not responding."
|
||||
msgstr "“%s” svarer ikke."
|
||||
|
||||
#: src/core/delete.c:129
|
||||
#: ../src/core/delete.c:129
|
||||
msgid "Application is not responding."
|
||||
msgstr "Program svarer ikke."
|
||||
|
||||
#: src/core/delete.c:134
|
||||
#: ../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."
|
||||
@ -289,297 +513,115 @@ msgstr ""
|
||||
"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."
|
||||
|
||||
#: src/core/delete.c:141
|
||||
msgid "_Force Quit"
|
||||
msgstr "_Tving til at afslutte"
|
||||
|
||||
#: src/core/delete.c:141
|
||||
#: ../src/core/delete.c:141
|
||||
msgid "_Wait"
|
||||
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
|
||||
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"
|
||||
|
||||
#: src/core/main.c:189
|
||||
#: ../src/core/main.c:181
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "Deaktivér forbindelse til sessionshåndtering"
|
||||
|
||||
#: src/core/main.c:195
|
||||
#: ../src/core/main.c:187
|
||||
msgid "Replace the running window manager"
|
||||
msgstr "Erstat den kørende vindueshåndtering"
|
||||
|
||||
#: src/core/main.c:201
|
||||
#: ../src/core/main.c:193
|
||||
msgid "Specify session management ID"
|
||||
msgstr "Angiv sessionhåndterings-id"
|
||||
|
||||
#: src/core/main.c:206
|
||||
#: ../src/core/main.c:198
|
||||
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"
|
||||
msgstr "Initialisér session fra gemt fil"
|
||||
|
||||
#: src/core/main.c:218
|
||||
#: ../src/core/main.c:210
|
||||
msgid "Make X calls synchronous"
|
||||
msgstr "Gør kald til X synkrone"
|
||||
|
||||
#: src/core/main.c:225
|
||||
#: ../src/core/main.c:217
|
||||
msgid "Run as a wayland compositor"
|
||||
msgstr "Kør som en wayland-kompositor"
|
||||
|
||||
#: src/core/main.c:231
|
||||
#: ../src/core/main.c:223
|
||||
msgid "Run as a nested compositor"
|
||||
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"
|
||||
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
|
||||
msgid ""
|
||||
"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"
|
||||
"There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A "
|
||||
"PARTICULAR PURPOSE.\n"
|
||||
msgstr ""
|
||||
"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"
|
||||
"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"
|
||||
msgstr "Vis version"
|
||||
|
||||
#: src/core/mutter.c:59
|
||||
#: ../src/core/mutter.c:59
|
||||
msgid "Mutter plugin to use"
|
||||
msgstr "Mutter-udvidelsesmodul der skal bruges"
|
||||
|
||||
#: src/core/prefs.c:1997
|
||||
#: ../src/core/prefs.c:1997
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Arbejdsområde %d"
|
||||
|
||||
#: src/core/screen.c:580
|
||||
#: ../src/core/screen.c:521
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Display “%s” already has a window manager; try using the --replace option to "
|
||||
"replace the current window manager."
|
||||
"Display \"%s\" already has a window manager; try using the --replace option "
|
||||
"to replace the current window manager."
|
||||
msgstr ""
|
||||
"Terminalen \"%s\" har allerede en vindueshåndtering; prøv tilvalget --"
|
||||
"replace for at erstatte den aktuelle vindueshåndtering."
|
||||
|
||||
#: src/core/screen.c:665
|
||||
#: ../src/core/screen.c:603
|
||||
#, 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"
|
||||
|
||||
#: src/core/util.c:120
|
||||
#: ../src/core/util.c:121
|
||||
msgid "Mutter was compiled without support for verbose mode\n"
|
||||
msgstr "Mutter blev kompileret uden understøttelse for uddybende tilstand\n"
|
||||
|
||||
#: src/wayland/meta-wayland-tablet-pad.c:563
|
||||
#, c-format
|
||||
msgid "Mode Switch: Mode %d"
|
||||
msgstr "Tilstandsskift: Tilstand %d"
|
||||
|
||||
#: src/x11/session.c:1815
|
||||
#: ../src/x11/session.c:1815
|
||||
msgid ""
|
||||
"These windows do not support “save current setup” and will have to 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å."
|
||||
"These windows do not support "save current setup" and will have to "
|
||||
"be restarted manually next time you log in."
|
||||
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
|
||||
#: src/x11/window-props.c:559
|
||||
#: ../src/x11/window-props.c:549
|
||||
#, c-format
|
||||
msgid "%s (on %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"
|
||||
#~ 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 "
|
||||
#~ "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"
|
||||
#~ msgstr "%d x %d"
|
||||
|
||||
@ -1088,6 +1133,15 @@ msgstr "%s (på %s)"
|
||||
#~ "\"%s\" fundet i konfigurationsdatabasen er ikke en gyldig værdi for "
|
||||
#~ "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"
|
||||
#~ msgstr "Kunne ikke oprette mappen \"%s\": %s\n"
|
||||
|
||||
|
324
po/de.po
324
po/de.po
@ -3,7 +3,7 @@
|
||||
# Matthias Warkus <mawarkus@gnome.org>, 2002.
|
||||
# Christian Neumair <chris@gnome-de.org>, 2002-2004.
|
||||
# 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.
|
||||
# Wolfgang Stöggl <c72578@yahoo.de> 2011.
|
||||
# Tobias Endrigkeit <tobiasendrigkeit@googlemail.com>, 2012.
|
||||
@ -13,8 +13,8 @@ msgstr ""
|
||||
"Project-Id-Version: mutter master\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
||||
"product=mutter&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2017-02-16 01:44+0000\n"
|
||||
"PO-Revision-Date: 2017-02-17 21:22+0100\n"
|
||||
"POT-Creation-Date: 2016-02-28 13:37+0000\n"
|
||||
"PO-Revision-Date: 2016-02-28 19:15+0100\n"
|
||||
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
|
||||
"Language-Team: Deutsch <gnome-de@gnome.org>\n"
|
||||
"Language: de\n"
|
||||
@ -22,264 +22,264 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 1.8.11\n"
|
||||
"X-Generator: Poedit 1.8.7\n"
|
||||
|
||||
#: data/50-mutter-navigation.xml:6
|
||||
#: ../data/50-mutter-navigation.xml.in.h:1
|
||||
msgid "Navigation"
|
||||
msgstr "Navigation"
|
||||
|
||||
#: data/50-mutter-navigation.xml:9
|
||||
#: ../data/50-mutter-navigation.xml.in.h:2
|
||||
msgid "Move window to workspace 1"
|
||||
msgstr "Fenster auf Arbeitsfläche 1 verschieben"
|
||||
|
||||
#: data/50-mutter-navigation.xml:12
|
||||
#: ../data/50-mutter-navigation.xml.in.h:3
|
||||
msgid "Move window to workspace 2"
|
||||
msgstr "Fenster auf Arbeitsfläche 2 verschieben"
|
||||
|
||||
#: data/50-mutter-navigation.xml:15
|
||||
#: ../data/50-mutter-navigation.xml.in.h:4
|
||||
msgid "Move window to workspace 3"
|
||||
msgstr "Fenster auf Arbeitsfläche 3 verschieben"
|
||||
|
||||
#: data/50-mutter-navigation.xml:18
|
||||
#: ../data/50-mutter-navigation.xml.in.h:5
|
||||
msgid "Move window to workspace 4"
|
||||
msgstr "Fenster auf Arbeitsfläche 4 verschieben"
|
||||
|
||||
#: data/50-mutter-navigation.xml:21
|
||||
#: ../data/50-mutter-navigation.xml.in.h:6
|
||||
msgid "Move window to last workspace"
|
||||
msgstr "Fenster auf letzte Arbeitsfläche verschieben"
|
||||
|
||||
#: data/50-mutter-navigation.xml:24
|
||||
#: ../data/50-mutter-navigation.xml.in.h:7
|
||||
msgid "Move window one workspace to the left"
|
||||
msgstr "Fenster eine Arbeitsfläche nach links verschieben"
|
||||
|
||||
#: data/50-mutter-navigation.xml:27
|
||||
#: ../data/50-mutter-navigation.xml.in.h:8
|
||||
msgid "Move window one workspace to the right"
|
||||
msgstr "Fenster eine Arbeitsfläche nach rechts verschieben"
|
||||
|
||||
#: data/50-mutter-navigation.xml:30
|
||||
#: ../data/50-mutter-navigation.xml.in.h:9
|
||||
msgid "Move window one workspace up"
|
||||
msgstr "Fenster eine Arbeitsfläche nach oben verschieben"
|
||||
|
||||
#: data/50-mutter-navigation.xml:33
|
||||
#: ../data/50-mutter-navigation.xml.in.h:10
|
||||
msgid "Move window one workspace down"
|
||||
msgstr "Fenster eine Arbeitsfläche nach unten verschieben"
|
||||
|
||||
#: data/50-mutter-navigation.xml:36
|
||||
#: ../data/50-mutter-navigation.xml.in.h:11
|
||||
msgid "Move window one monitor to the left"
|
||||
msgstr "Fenster einen Bildschirm nach links verschieben"
|
||||
|
||||
#: data/50-mutter-navigation.xml:39
|
||||
#: ../data/50-mutter-navigation.xml.in.h:12
|
||||
msgid "Move window one monitor to the right"
|
||||
msgstr "Fenster einen Bildschirm nach rechts verschieben"
|
||||
|
||||
#: data/50-mutter-navigation.xml:42
|
||||
#: ../data/50-mutter-navigation.xml.in.h:13
|
||||
msgid "Move window one monitor up"
|
||||
msgstr "Fenster einen Bildschirm nach oben verschieben"
|
||||
|
||||
#: data/50-mutter-navigation.xml:45
|
||||
#: ../data/50-mutter-navigation.xml.in.h:14
|
||||
msgid "Move window one monitor down"
|
||||
msgstr "Fenster einen Bildschirm nach unten verschieben"
|
||||
|
||||
#: data/50-mutter-navigation.xml:49
|
||||
#: ../data/50-mutter-navigation.xml.in.h:15
|
||||
msgid "Switch applications"
|
||||
msgstr "Anwendungen wechseln"
|
||||
|
||||
#: data/50-mutter-navigation.xml:54
|
||||
#: ../data/50-mutter-navigation.xml.in.h:16
|
||||
msgid "Switch to previous application"
|
||||
msgstr "Zur vorherigen Anwendung wechseln"
|
||||
|
||||
#: data/50-mutter-navigation.xml:58
|
||||
#: ../data/50-mutter-navigation.xml.in.h:17
|
||||
msgid "Switch windows"
|
||||
msgstr "Fenster wechseln"
|
||||
|
||||
#: data/50-mutter-navigation.xml:63
|
||||
#: ../data/50-mutter-navigation.xml.in.h:18
|
||||
msgid "Switch to previous window"
|
||||
msgstr "Zum vorherigen Fenster wechseln"
|
||||
|
||||
#: data/50-mutter-navigation.xml:67
|
||||
#: ../data/50-mutter-navigation.xml.in.h:19
|
||||
msgid "Switch windows of an application"
|
||||
msgstr "Zwischen den Fenstern einer Anwendung wechseln"
|
||||
|
||||
#: data/50-mutter-navigation.xml:72
|
||||
#: ../data/50-mutter-navigation.xml.in.h:20
|
||||
msgid "Switch to previous window of an application"
|
||||
msgstr "Zum vorherigen Fenster einer Anwendung wechseln"
|
||||
|
||||
#: data/50-mutter-navigation.xml:76
|
||||
#: ../data/50-mutter-navigation.xml.in.h:21
|
||||
msgid "Switch system controls"
|
||||
msgstr "Systemsteuerungen umschalten"
|
||||
|
||||
#: data/50-mutter-navigation.xml:81
|
||||
#: ../data/50-mutter-navigation.xml.in.h:22
|
||||
msgid "Switch to previous system control"
|
||||
msgstr "Zur vorherigen Systemsteuerungen wechseln"
|
||||
|
||||
#: data/50-mutter-navigation.xml:85
|
||||
#: ../data/50-mutter-navigation.xml.in.h:23
|
||||
msgid "Switch windows directly"
|
||||
msgstr "Fenster sofort wechseln"
|
||||
|
||||
#: data/50-mutter-navigation.xml:90
|
||||
#: ../data/50-mutter-navigation.xml.in.h:24
|
||||
msgid "Switch directly to previous window"
|
||||
msgstr "Direkt zum vorherigen Fenster wechseln"
|
||||
|
||||
#: data/50-mutter-navigation.xml:94
|
||||
#: ../data/50-mutter-navigation.xml.in.h:25
|
||||
msgid "Switch windows of an app directly"
|
||||
msgstr "Sofort zwischen den Fenstern einer Anwendung wechseln"
|
||||
|
||||
#: data/50-mutter-navigation.xml:99
|
||||
#: ../data/50-mutter-navigation.xml.in.h:26
|
||||
msgid "Switch directly to previous window of an app"
|
||||
msgstr "Direkt zum vorherigen Fenster einer Anwendung wechseln"
|
||||
|
||||
#: data/50-mutter-navigation.xml:103
|
||||
#: ../data/50-mutter-navigation.xml.in.h:27
|
||||
msgid "Switch system controls directly"
|
||||
msgstr "Systemsteuerungen sofort umschalten"
|
||||
|
||||
#: data/50-mutter-navigation.xml:108
|
||||
#: ../data/50-mutter-navigation.xml.in.h:28
|
||||
msgid "Switch directly to previous system control"
|
||||
msgstr "Direkt zur vorherigen Systemsteuerungen wechselen"
|
||||
|
||||
#: data/50-mutter-navigation.xml:111
|
||||
#: ../data/50-mutter-navigation.xml.in.h:29
|
||||
msgid "Hide all normal windows"
|
||||
msgstr "Alle normalen Fenster verbergen"
|
||||
|
||||
#: data/50-mutter-navigation.xml:114
|
||||
#: ../data/50-mutter-navigation.xml.in.h:30
|
||||
msgid "Switch to workspace 1"
|
||||
msgstr "Zur Arbeitsfläche 1 wechseln"
|
||||
|
||||
#: data/50-mutter-navigation.xml:117
|
||||
#: ../data/50-mutter-navigation.xml.in.h:31
|
||||
msgid "Switch to workspace 2"
|
||||
msgstr "Zur Arbeitsfläche 2 wechseln"
|
||||
|
||||
#: data/50-mutter-navigation.xml:120
|
||||
#: ../data/50-mutter-navigation.xml.in.h:32
|
||||
msgid "Switch to workspace 3"
|
||||
msgstr "Zur Arbeitsfläche 3 wechseln"
|
||||
|
||||
#: data/50-mutter-navigation.xml:123
|
||||
#: ../data/50-mutter-navigation.xml.in.h:33
|
||||
msgid "Switch to workspace 4"
|
||||
msgstr "Zur Arbeitsfläche 4 wechseln"
|
||||
|
||||
#: data/50-mutter-navigation.xml:126
|
||||
#: ../data/50-mutter-navigation.xml.in.h:34
|
||||
msgid "Switch to last workspace"
|
||||
msgstr "Zur letzten Arbeitsfläche wechseln"
|
||||
|
||||
#: data/50-mutter-navigation.xml:129
|
||||
#: ../data/50-mutter-navigation.xml.in.h:35
|
||||
msgid "Move to workspace left"
|
||||
msgstr "Auf Arbeitsfläche links verschieben"
|
||||
|
||||
#: data/50-mutter-navigation.xml:132
|
||||
#: ../data/50-mutter-navigation.xml.in.h:36
|
||||
msgid "Move to workspace right"
|
||||
msgstr "Auf Arbeitsfläche rechts verschieben"
|
||||
|
||||
#: data/50-mutter-navigation.xml:135
|
||||
#: ../data/50-mutter-navigation.xml.in.h:37
|
||||
msgid "Move to workspace above"
|
||||
msgstr "Auf Arbeitsfläche darüber verschieben"
|
||||
|
||||
#: data/50-mutter-navigation.xml:138
|
||||
#: ../data/50-mutter-navigation.xml.in.h:38
|
||||
msgid "Move to workspace below"
|
||||
msgstr "Auf Arbeitsfläche darunter verschieben"
|
||||
|
||||
#: data/50-mutter-system.xml:6
|
||||
#: ../data/50-mutter-system.xml.in.h:1
|
||||
msgid "System"
|
||||
msgstr "System"
|
||||
|
||||
#: data/50-mutter-system.xml:8
|
||||
#: ../data/50-mutter-system.xml.in.h:2
|
||||
msgid "Show the run command prompt"
|
||||
msgstr "Den »Befehl ausführen«-Dialog anzeigen"
|
||||
|
||||
#: data/50-mutter-system.xml:10
|
||||
#: ../data/50-mutter-system.xml.in.h:3
|
||||
msgid "Show the activities overview"
|
||||
msgstr "Aktivitäten-Übersicht anzeigen"
|
||||
|
||||
#: data/50-mutter-windows.xml:6
|
||||
#: ../data/50-mutter-windows.xml.in.h:1
|
||||
msgid "Windows"
|
||||
msgstr "Fenster"
|
||||
|
||||
#: data/50-mutter-windows.xml:8
|
||||
#: ../data/50-mutter-windows.xml.in.h:2
|
||||
msgid "Activate the window menu"
|
||||
msgstr "Das Fenstermenü aktivieren"
|
||||
|
||||
#: data/50-mutter-windows.xml:10
|
||||
#: ../data/50-mutter-windows.xml.in.h:3
|
||||
msgid "Toggle fullscreen mode"
|
||||
msgstr "Vollbildmodus ein-/ausschalten"
|
||||
|
||||
#: data/50-mutter-windows.xml:12
|
||||
#: ../data/50-mutter-windows.xml.in.h:4
|
||||
msgid "Toggle maximization state"
|
||||
msgstr "Maximierungszustand ein-/ausschalten"
|
||||
|
||||
#: data/50-mutter-windows.xml:14
|
||||
#: ../data/50-mutter-windows.xml.in.h:5
|
||||
msgid "Maximize window"
|
||||
msgstr "Fenster maximieren"
|
||||
|
||||
#: data/50-mutter-windows.xml:16
|
||||
#: ../data/50-mutter-windows.xml.in.h:6
|
||||
msgid "Restore window"
|
||||
msgstr "Fenstergröße wiederherstellen"
|
||||
|
||||
#: data/50-mutter-windows.xml:18
|
||||
#: ../data/50-mutter-windows.xml.in.h:7
|
||||
msgid "Toggle shaded state"
|
||||
msgstr "Fenster ein-/ausrollen"
|
||||
|
||||
#: data/50-mutter-windows.xml:20
|
||||
#: ../data/50-mutter-windows.xml.in.h:8
|
||||
msgid "Close window"
|
||||
msgstr "Fenster schließen"
|
||||
|
||||
#: data/50-mutter-windows.xml:22
|
||||
#: ../data/50-mutter-windows.xml.in.h:9
|
||||
msgid "Hide window"
|
||||
msgstr "Fenster verbergen"
|
||||
|
||||
#: data/50-mutter-windows.xml:24
|
||||
#: ../data/50-mutter-windows.xml.in.h:10
|
||||
msgid "Move window"
|
||||
msgstr "Fenster verschieben"
|
||||
|
||||
#: data/50-mutter-windows.xml:26
|
||||
#: ../data/50-mutter-windows.xml.in.h:11
|
||||
msgid "Resize window"
|
||||
msgstr "Fenstergröße ändern"
|
||||
|
||||
#: data/50-mutter-windows.xml:29
|
||||
#: ../data/50-mutter-windows.xml.in.h:12
|
||||
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
|
||||
#: ../data/50-mutter-windows.xml.in.h:13
|
||||
msgid "Raise window if covered, otherwise lower it"
|
||||
msgstr "Fenster anheben, falls es verdeckt ist, andernfalls absenken"
|
||||
|
||||
#: data/50-mutter-windows.xml:33
|
||||
#: ../data/50-mutter-windows.xml.in.h:14
|
||||
msgid "Raise window above other windows"
|
||||
msgstr "Fenster vor die anderen Fenster anheben"
|
||||
|
||||
#: data/50-mutter-windows.xml:35
|
||||
#: ../data/50-mutter-windows.xml.in.h:15
|
||||
msgid "Lower window below other windows"
|
||||
msgstr "Fenster hinter die anderen Fenster absenken"
|
||||
|
||||
#: data/50-mutter-windows.xml:37
|
||||
#: ../data/50-mutter-windows.xml.in.h:16
|
||||
msgid "Maximize window vertically"
|
||||
msgstr "Fenster vertikal maximieren"
|
||||
|
||||
#: data/50-mutter-windows.xml:39
|
||||
#: ../data/50-mutter-windows.xml.in.h:17
|
||||
msgid "Maximize window horizontally"
|
||||
msgstr "Fenster horizontal maximieren"
|
||||
|
||||
#: data/50-mutter-windows.xml:43
|
||||
#: ../data/50-mutter-windows.xml.in.h:18
|
||||
msgid "View split on left"
|
||||
msgstr "Ansicht links teilen"
|
||||
|
||||
#: data/50-mutter-windows.xml:47
|
||||
#: ../data/50-mutter-windows.xml.in.h:19
|
||||
msgid "View split on right"
|
||||
msgstr "Ansicht rechts teilen"
|
||||
|
||||
#: data/mutter.desktop.in:4
|
||||
#: ../data/mutter.desktop.in.h:1
|
||||
msgid "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"
|
||||
msgstr "Zusatztaste für erweiterte Aktionen der Fensterverwaltung"
|
||||
|
||||
# bzw- die Apfel-Taste auf Mac-Computern
|
||||
#: 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."
|
||||
"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 ""
|
||||
"Dieser Schlüssel wird die »Überlagerung« auslösen, d.h. eine kombinierte "
|
||||
"Fensterübersicht und ein System zum Starten von Anwendungen. Als "
|
||||
@ -287,11 +287,11 @@ msgstr ""
|
||||
"vorgesehen. Man geht davon aus, dass diese Tastenverknüpfung entweder die "
|
||||
"Vorgabe ist oder als leere Zeichenkette gesetzt ist."
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:20
|
||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:3
|
||||
msgid "Attach modal dialogs"
|
||||
msgstr "Modale Dialoge anhängen"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:21
|
||||
#: ../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 "
|
||||
@ -301,12 +301,12 @@ msgstr ""
|
||||
"die Titelleisten des Elternfensters angehängte modale Dialoge, welche "
|
||||
"zusammen mit dem Elternfenster bewegt werden."
|
||||
|
||||
#: 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"
|
||||
msgstr ""
|
||||
"Kantenplatzierung beim Berühren der Bildschirmränder mit Fenstern aktivieren"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:31
|
||||
#: ../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 "
|
||||
@ -317,13 +317,13 @@ msgstr ""
|
||||
"Hälfte des verfügbaren Bereiches zu belegen. Eine Berührung mit dem oberen "
|
||||
"Bildschirmrand maximiert das Fenster vollständig."
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:40
|
||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:7
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Arbeitsflächen sollen dynamisch verwaltet werden "
|
||||
|
||||
#: 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 "
|
||||
"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 ""
|
||||
@ -331,11 +331,11 @@ msgstr ""
|
||||
"eine feste Anzahl Arbeitsflächen gibt (welche durch den Schlüssel num-"
|
||||
"workspaces in org.gnome.desktop.wm.preferences festgelegt wird)."
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:50
|
||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:9
|
||||
msgid "Workspaces only on primary"
|
||||
msgstr "Nur primärer Arbeitsflächenwechsel"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:51
|
||||
#: ../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."
|
||||
@ -343,11 +343,11 @@ msgstr ""
|
||||
"Legt fest, ob Arbeitsflächenwechsel für alle Fenster auf allen Bildschirmen "
|
||||
"oder nur für Fenster auf dem primären Bildschirm ausgeführt werden soll."
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:59
|
||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:11
|
||||
msgid "No tab popup"
|
||||
msgstr "Keine Tab-Anzeige"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:60
|
||||
#: ../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."
|
||||
@ -355,39 +355,39 @@ msgstr ""
|
||||
"Legt fest, ob beim Durchblättern der Fenster die Tab-Anzeige und die "
|
||||
"Hervorhebung des Rahmens deaktiviert werden soll."
|
||||
|
||||
#: 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"
|
||||
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.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."
|
||||
"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 ""
|
||||
"Falls dieser Schlüssel gesetzt ist und der Fokusmodus entweder »sloppy« oder "
|
||||
"»mouse« ist, wird der Fokus nicht sofort beim Erreichen eines Fensters "
|
||||
"geändert, sondern erst, wenn der Zeiger aufhört sich zu bewegen."
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:79
|
||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:15
|
||||
msgid "Draggable border width"
|
||||
msgstr "Breite der ziehbaren Ränder"
|
||||
|
||||
# Lange Beschreibung von »Draggable border width«
|
||||
#: 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 "
|
||||
"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 ""
|
||||
"Die Gesamtbreite ziehbarer Ränder. Falls die im Thema sichtbaren Ränder "
|
||||
"nicht ausreichen, werden unsichtbare Ränder hinzugefügt, um diesen Wert zu "
|
||||
"erreichen."
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:89
|
||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:17
|
||||
msgid "Auto maximize nearly monitor sized windows"
|
||||
msgstr "Fenster nahe der Bildschirmgröße automatisch maximieren"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:90
|
||||
#: ../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."
|
||||
@ -395,11 +395,11 @@ msgstr ""
|
||||
"Wenn aktiviert, werden neue Fenster, die beim Öffnen nahezu die Größe des "
|
||||
"Bildschirms haben, direkt maximiert."
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:98
|
||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:19
|
||||
msgid "Place new windows in the center"
|
||||
msgstr "Neue Fenster in der Mitte platzieren"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:99
|
||||
#: ../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."
|
||||
@ -407,126 +407,107 @@ msgstr ""
|
||||
"Falls wahr, so werden neue Fenster immer in der Mitte des aktiven "
|
||||
"Bildschirms platziert"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:120
|
||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:21
|
||||
msgid "Select window from tab popup"
|
||||
msgstr "Fenster aus Tab-Anzeige auswählen"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:125
|
||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:22
|
||||
msgid "Cancel tab popup"
|
||||
msgstr "Tab-Anzeige abbrechen"
|
||||
|
||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:6
|
||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:1
|
||||
msgid "Switch to VT 1"
|
||||
msgstr "Zum virtuellen Terminal 1 wechseln"
|
||||
|
||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:10
|
||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:2
|
||||
msgid "Switch to VT 2"
|
||||
msgstr "Zum virtuellen Terminal 2 wechseln"
|
||||
|
||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:14
|
||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:3
|
||||
msgid "Switch to VT 3"
|
||||
msgstr "Zum virtuellen Terminal 3 wechseln"
|
||||
|
||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:18
|
||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:4
|
||||
msgid "Switch to VT 4"
|
||||
msgstr "Zum virtuellen Terminal 4 wechseln"
|
||||
|
||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:22
|
||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:5
|
||||
msgid "Switch to VT 5"
|
||||
msgstr "Zum virtuellen Terminal 5 wechseln"
|
||||
|
||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:26
|
||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:6
|
||||
msgid "Switch to VT 6"
|
||||
msgstr "Zum virtuellen Terminal 6 wechseln"
|
||||
|
||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:30
|
||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:7
|
||||
msgid "Switch to VT 7"
|
||||
msgstr "Zum virtuellen Terminal 7 wechseln"
|
||||
|
||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:34
|
||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:8
|
||||
msgid "Switch to VT 8"
|
||||
msgstr "Zum virtuellen Terminal 8 wechseln"
|
||||
|
||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:38
|
||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:9
|
||||
msgid "Switch to VT 9"
|
||||
msgstr "Zum virtuellen Terminal 9 wechseln"
|
||||
|
||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:42
|
||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:10
|
||||
msgid "Switch to VT 10"
|
||||
msgstr "Zum virtuellen Terminal 10 wechseln"
|
||||
|
||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:46
|
||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:11
|
||||
msgid "Switch to VT 11"
|
||||
msgstr "Zum virtuellen Terminal 11 wechseln"
|
||||
|
||||
#: data/org.gnome.mutter.wayland.gschema.xml.in:50
|
||||
#: ../data/org.gnome.mutter.wayland.gschema.xml.in.h:12
|
||||
msgid "Switch to VT 12"
|
||||
msgstr "Zum virtuellen Terminal 12 wechseln"
|
||||
|
||||
#. TRANSLATORS: This string refers to a button that switches between
|
||||
#. * 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"
|
||||
msgstr "Bildschirm wechseln"
|
||||
|
||||
#: src/backends/meta-input-settings.c:1783
|
||||
msgid "Show on-screen help"
|
||||
msgstr "Bildschirmhilfe anzeigen"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:675
|
||||
#: ../src/backends/meta-monitor-manager.c:518
|
||||
msgid "Built-in display"
|
||||
msgstr "Eingebaute Anzeige"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:698
|
||||
#: ../src/backends/meta-monitor-manager.c:544
|
||||
msgid "Unknown"
|
||||
msgstr "Unbekannt"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:700
|
||||
#: ../src/backends/meta-monitor-manager.c:546
|
||||
msgid "Unknown Display"
|
||||
msgstr "Unbekannte Anzeige"
|
||||
|
||||
#. TRANSLATORS: this is a monitor vendor name, followed by a
|
||||
#. * size in inches, like 'Dell 15"'
|
||||
#.
|
||||
#: src/backends/meta-monitor-manager.c:708
|
||||
#: ../src/backends/meta-monitor-manager.c:554
|
||||
#, c-format
|
||||
msgid "%s %s"
|
||||
msgstr "%s %s"
|
||||
|
||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||
#. * we have no way to get it to exit
|
||||
#: src/compositor/compositor.c:471
|
||||
#: ../src/compositor/compositor.c:456
|
||||
#, c-format
|
||||
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 ""
|
||||
"Ein weiterer Compositing-Verwalter läuft bereits auf Bildschirm %i der "
|
||||
"Anzeige »%s«."
|
||||
|
||||
#: src/core/bell.c:194
|
||||
#: ../src/core/bell.c:185
|
||||
msgid "Bell event"
|
||||
msgstr "Klangereignis"
|
||||
|
||||
#. Translators: %s is a window title
|
||||
#: src/core/delete.c:127
|
||||
#: ../src/core/delete.c:127
|
||||
#, c-format
|
||||
msgid "“%s” is not responding."
|
||||
msgstr "»%s« antwortet nicht."
|
||||
|
||||
#: src/core/delete.c:129
|
||||
#: ../src/core/delete.c:129
|
||||
msgid "Application is not responding."
|
||||
msgstr "Die Anwendung antwortet nicht."
|
||||
|
||||
#: src/core/delete.c:134
|
||||
#: ../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."
|
||||
@ -534,62 +515,62 @@ msgstr ""
|
||||
"Sie können der Anwendung noch etwas Zeit geben oder ein sofortiges Beenden "
|
||||
"erzwingen."
|
||||
|
||||
#: src/core/delete.c:141
|
||||
msgid "_Force Quit"
|
||||
msgstr "_Beenden erzwingen"
|
||||
|
||||
#: src/core/delete.c:141
|
||||
#: ../src/core/delete.c:141
|
||||
msgid "_Wait"
|
||||
msgstr "_Warten"
|
||||
|
||||
#: src/core/display.c:608
|
||||
#: ../src/core/delete.c:141
|
||||
msgid "_Force Quit"
|
||||
msgstr "_Beenden erzwingen"
|
||||
|
||||
#: ../src/core/display.c:555
|
||||
#, 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"
|
||||
|
||||
#: src/core/main.c:189
|
||||
#: ../src/core/main.c:181
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "Verbindung zur Sitzungsverwaltung deaktivieren"
|
||||
|
||||
#: src/core/main.c:195
|
||||
#: ../src/core/main.c:187
|
||||
msgid "Replace the running window manager"
|
||||
msgstr "Den aktuellen Fensterverwalter ersetzen"
|
||||
|
||||
#: src/core/main.c:201
|
||||
#: ../src/core/main.c:193
|
||||
msgid "Specify session management ID"
|
||||
msgstr "Kennung der Sitzungsverwaltung angeben"
|
||||
|
||||
#: src/core/main.c:206
|
||||
#: ../src/core/main.c:198
|
||||
msgid "X Display to use"
|
||||
msgstr "Zu verwendende X-Anzeige"
|
||||
|
||||
#: src/core/main.c:212
|
||||
#: ../src/core/main.c:204
|
||||
msgid "Initialize session from savefile"
|
||||
msgstr "Sitzung anhand gespeicherter Datei starten"
|
||||
|
||||
#: src/core/main.c:218
|
||||
#: ../src/core/main.c:210
|
||||
msgid "Make X calls synchronous"
|
||||
msgstr "X-Aufrufe abgleichen"
|
||||
|
||||
#: src/core/main.c:225
|
||||
#: ../src/core/main.c:217
|
||||
msgid "Run as a wayland compositor"
|
||||
msgstr "Als Wayland-Compositor ausführen"
|
||||
|
||||
#: src/core/main.c:231
|
||||
#: ../src/core/main.c:223
|
||||
msgid "Run as a nested compositor"
|
||||
msgstr "Als eingebetteten Compositor ausführen"
|
||||
|
||||
#: src/core/main.c:239
|
||||
#: ../src/core/main.c:231
|
||||
msgid "Run as a full display server, rather than nested"
|
||||
msgstr "Als vollwertigen Display-Server verwenden (nicht eingebettet)"
|
||||
|
||||
# CHECK
|
||||
# c-format
|
||||
#: src/core/mutter.c:39
|
||||
#: ../src/core/mutter.c:39
|
||||
#, c-format
|
||||
msgid ""
|
||||
"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"
|
||||
"There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A "
|
||||
"PARTICULAR PURPOSE.\n"
|
||||
@ -601,51 +582,46 @@ msgstr ""
|
||||
"Es besteht KEINE Garantie auf MARKTREIFE oder EIGNUNG für einen BESTIMMTEN "
|
||||
"ZWECK.\n"
|
||||
|
||||
#: src/core/mutter.c:53
|
||||
#: ../src/core/mutter.c:53
|
||||
msgid "Print version"
|
||||
msgstr "Version ausgeben"
|
||||
|
||||
#: src/core/mutter.c:59
|
||||
#: ../src/core/mutter.c:59
|
||||
msgid "Mutter plugin to use"
|
||||
msgstr "Zu benutzendes Mutter-Plugin"
|
||||
|
||||
#: src/core/prefs.c:1997
|
||||
#: ../src/core/prefs.c:1997
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Arbeitsfläche %d"
|
||||
|
||||
#: src/core/screen.c:580
|
||||
#: ../src/core/screen.c:521
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Display “%s” already has a window manager; try using the --replace option to "
|
||||
"replace the current window manager."
|
||||
"Display \"%s\" already has a window manager; try using the --replace option "
|
||||
"to replace the current window manager."
|
||||
msgstr ""
|
||||
"Bildschirm »%s« hat bereits einen Fensterverwalter. Versuchen Sie die Option "
|
||||
"»--replace«, um den aktuellen Fensterverwalter zu ersetzen."
|
||||
|
||||
#: src/core/screen.c:665
|
||||
#: ../src/core/screen.c:603
|
||||
#, 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"
|
||||
|
||||
#: src/core/util.c:120
|
||||
#: ../src/core/util.c:121
|
||||
msgid "Mutter was compiled without support for verbose mode\n"
|
||||
msgstr "Mutter wurde ohne Unterstützung für den redseligen Modus kompiliert\n"
|
||||
|
||||
#: src/wayland/meta-wayland-tablet-pad.c:563
|
||||
#, c-format
|
||||
msgid "Mode Switch: Mode %d"
|
||||
msgstr "Moduswechsel: Modus %d"
|
||||
|
||||
#: src/x11/session.c:1815
|
||||
#: ../src/x11/session.c:1815
|
||||
msgid ""
|
||||
"These windows do not support “save current setup” and will have to be "
|
||||
"restarted manually next time you log in."
|
||||
"These windows do not support "save current setup" and will have to "
|
||||
"be restarted manually next time you log in."
|
||||
msgstr ""
|
||||
"Diese Fenster unterstützen das Speichern der aktuellen Einstellungen nicht "
|
||||
"und müssen bei der nächsten Anmeldung manuell neu gestartet werden."
|
||||
|
||||
#: src/x11/window-props.c:559
|
||||
#: ../src/x11/window-props.c:549
|
||||
#, c-format
|
||||
msgid "%s (on %s)"
|
||||
msgstr "%s (auf %s)"
|
||||
|
273
po/el.po
273
po/el.po
@ -20,8 +20,8 @@ msgstr ""
|
||||
"Project-Id-Version: metacity.gnome-2-26\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
|
||||
"product=mutter&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2016-09-07 09:27+0000\n"
|
||||
"PO-Revision-Date: 2016-09-15 11:47+0300\n"
|
||||
"POT-Creation-Date: 2016-03-12 01:36+0000\n"
|
||||
"PO-Revision-Date: 2016-03-14 23:05+0200\n"
|
||||
"Last-Translator: Tom Tryfonidis <tomtryf@gmail.com>\n"
|
||||
"Language-Team: Greek, Modern (1453-) <opensuse-translation-el@opensuse.org>\n"
|
||||
"Language: el\n"
|
||||
@ -29,258 +29,258 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 1.8.9\n"
|
||||
"X-Generator: Poedit 1.8.7\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: data/50-mutter-navigation.xml:6
|
||||
#: ../data/50-mutter-navigation.xml.in.h:1
|
||||
msgid "Navigation"
|
||||
msgstr "Περιήγηση"
|
||||
|
||||
#: data/50-mutter-navigation.xml:9
|
||||
#: ../data/50-mutter-navigation.xml.in.h:2
|
||||
msgid "Move window to workspace 1"
|
||||
msgstr "Μετακίνηση παραθύρου στον χώρο εργασίας 1"
|
||||
|
||||
#: data/50-mutter-navigation.xml:12
|
||||
#: ../data/50-mutter-navigation.xml.in.h:3
|
||||
msgid "Move window to workspace 2"
|
||||
msgstr "Μετακίνηση παραθύρου στον χώρο εργασίας 2"
|
||||
|
||||
#: data/50-mutter-navigation.xml:15
|
||||
#: ../data/50-mutter-navigation.xml.in.h:4
|
||||
msgid "Move window to workspace 3"
|
||||
msgstr "Μετακίνηση παραθύρου στον χώρο εργασίας 3"
|
||||
|
||||
#: data/50-mutter-navigation.xml:18
|
||||
#: ../data/50-mutter-navigation.xml.in.h:5
|
||||
msgid "Move window to workspace 4"
|
||||
msgstr "Μετακίνηση παραθύρου στον χώρο εργασίας 4"
|
||||
|
||||
#: data/50-mutter-navigation.xml:21
|
||||
#: ../data/50-mutter-navigation.xml.in.h:6
|
||||
msgid "Move window to last workspace"
|
||||
msgstr "Μετακίνηση παραθύρου στον τελευταίο χώρο εργασίας"
|
||||
|
||||
#: data/50-mutter-navigation.xml:24
|
||||
#: ../data/50-mutter-navigation.xml.in.h:7
|
||||
msgid "Move window one workspace to the left"
|
||||
msgstr "Μετακίνηση παραθύρου έναν χώρο εργασίας αριστερά"
|
||||
|
||||
#: data/50-mutter-navigation.xml:27
|
||||
#: ../data/50-mutter-navigation.xml.in.h:8
|
||||
msgid "Move window one workspace to the right"
|
||||
msgstr "Μετακίνηση παραθύρου έναν χώρο εργασίας δεξιά"
|
||||
|
||||
#: data/50-mutter-navigation.xml:30
|
||||
#: ../data/50-mutter-navigation.xml.in.h:9
|
||||
msgid "Move window one workspace up"
|
||||
msgstr "Μετακίνηση παραθύρου έναν χώρο εργασίας πάνω"
|
||||
|
||||
#: data/50-mutter-navigation.xml:33
|
||||
#: ../data/50-mutter-navigation.xml.in.h:10
|
||||
msgid "Move window one workspace down"
|
||||
msgstr "Μετακίνηση παραθύρου έναν χώρο εργασίας κάτω"
|
||||
|
||||
#: data/50-mutter-navigation.xml:36
|
||||
#: ../data/50-mutter-navigation.xml.in.h:11
|
||||
msgid "Move window one monitor to the left"
|
||||
msgstr "Μετακίνηση παραθύρου κατά μια οθόνη στα αριστερά"
|
||||
|
||||
#: data/50-mutter-navigation.xml:39
|
||||
#: ../data/50-mutter-navigation.xml.in.h:12
|
||||
msgid "Move window one monitor to the right"
|
||||
msgstr "Μετακίνηση παραθύρου κατά μια οθόνη στα δεξιά"
|
||||
|
||||
#: data/50-mutter-navigation.xml:42
|
||||
#: ../data/50-mutter-navigation.xml.in.h:13
|
||||
msgid "Move window one monitor up"
|
||||
msgstr "Μετακίνηση παραθύρου κατά μια οθόνη προς τα πάνω"
|
||||
|
||||
#: data/50-mutter-navigation.xml:45
|
||||
#: ../data/50-mutter-navigation.xml.in.h:14
|
||||
msgid "Move window one monitor down"
|
||||
msgstr "Μετακίνηση παραθύρου κατά μια οθόνη προς τα κάτω"
|
||||
|
||||
#: data/50-mutter-navigation.xml:49
|
||||
#: ../data/50-mutter-navigation.xml.in.h:15
|
||||
msgid "Switch applications"
|
||||
msgstr "Εναλλαγή εφαρμογών"
|
||||
|
||||
#: data/50-mutter-navigation.xml:54
|
||||
#: ../data/50-mutter-navigation.xml.in.h:16
|
||||
msgid "Switch to previous application"
|
||||
msgstr "Εναλλαγή στην προηγούμενη εφαρμογή"
|
||||
|
||||
#: data/50-mutter-navigation.xml:58
|
||||
#: ../data/50-mutter-navigation.xml.in.h:17
|
||||
msgid "Switch windows"
|
||||
msgstr "Εναλλαγή παραθύρων"
|
||||
|
||||
#: data/50-mutter-navigation.xml:63
|
||||
#: ../data/50-mutter-navigation.xml.in.h:18
|
||||
msgid "Switch to previous window"
|
||||
msgstr "Εναλλαγή στο προηγούμενο παράθυρο"
|
||||
|
||||
#: data/50-mutter-navigation.xml:67
|
||||
#: ../data/50-mutter-navigation.xml.in.h:19
|
||||
msgid "Switch windows of an application"
|
||||
msgstr "Εναλλαγή παραθύρων μιας εφαρμογής"
|
||||
|
||||
#: data/50-mutter-navigation.xml:72
|
||||
#: ../data/50-mutter-navigation.xml.in.h:20
|
||||
msgid "Switch to previous window of an application"
|
||||
msgstr "Εναλλαγή στο προηγούμενο παράθυρο μιας εφαρμογής"
|
||||
|
||||
#: data/50-mutter-navigation.xml:76
|
||||
#: ../data/50-mutter-navigation.xml.in.h:21
|
||||
msgid "Switch system controls"
|
||||
msgstr "Εναλλαγή ελέγχων συστήματος"
|
||||
|
||||
#: data/50-mutter-navigation.xml:81
|
||||
#: ../data/50-mutter-navigation.xml.in.h:22
|
||||
msgid "Switch to previous system control"
|
||||
msgstr "Εναλλαγή σε προηγούμενους ελέγχους συστήματος"
|
||||
|
||||
#: data/50-mutter-navigation.xml:85
|
||||
#: ../data/50-mutter-navigation.xml.in.h:23
|
||||
msgid "Switch windows directly"
|
||||
msgstr "Άμεση εναλλαγή παραθύρων"
|
||||
|
||||
#: data/50-mutter-navigation.xml:90
|
||||
#: ../data/50-mutter-navigation.xml.in.h:24
|
||||
msgid "Switch directly to previous window"
|
||||
msgstr "Άμεση εναλλαγή στο προηγούμενο παράθυρο"
|
||||
|
||||
#: data/50-mutter-navigation.xml:94
|
||||
#: ../data/50-mutter-navigation.xml.in.h:25
|
||||
msgid "Switch windows of an app directly"
|
||||
msgstr "Άμεση εναλλαγή παραθύρων μιας εφαρμογής"
|
||||
|
||||
#: data/50-mutter-navigation.xml:99
|
||||
#: ../data/50-mutter-navigation.xml.in.h:26
|
||||
msgid "Switch directly to previous window of an app"
|
||||
msgstr "Άμεση εναλλαγή στο προηγούμενο παράθυρο μιας εφαρμογής"
|
||||
|
||||
#: data/50-mutter-navigation.xml:103
|
||||
#: ../data/50-mutter-navigation.xml.in.h:27
|
||||
msgid "Switch system controls directly"
|
||||
msgstr "Άμεση εναλλαγή ελέγχων συστήματος"
|
||||
|
||||
#: data/50-mutter-navigation.xml:108
|
||||
#: ../data/50-mutter-navigation.xml.in.h:28
|
||||
msgid "Switch directly to previous system control"
|
||||
msgstr "Άμεση εναλλαγή σε προηγούμενους ελέγχους συστήματος"
|
||||
|
||||
#: data/50-mutter-navigation.xml:111
|
||||
#: ../data/50-mutter-navigation.xml.in.h:29
|
||||
msgid "Hide all normal windows"
|
||||
msgstr "Απόκρυψη όλων των κανονικών παραθύρων"
|
||||
|
||||
#: data/50-mutter-navigation.xml:114
|
||||
#: ../data/50-mutter-navigation.xml.in.h:30
|
||||
msgid "Switch to workspace 1"
|
||||
msgstr "Εναλλαγή στον χώρο εργασίας 1"
|
||||
|
||||
#: data/50-mutter-navigation.xml:117
|
||||
#: ../data/50-mutter-navigation.xml.in.h:31
|
||||
msgid "Switch to workspace 2"
|
||||
msgstr "Εναλλαγή στον χώρο εργασίας 2"
|
||||
|
||||
#: data/50-mutter-navigation.xml:120
|
||||
#: ../data/50-mutter-navigation.xml.in.h:32
|
||||
msgid "Switch to workspace 3"
|
||||
msgstr "Εναλλαγή στον χώρο εργασίας 3"
|
||||
|
||||
#: data/50-mutter-navigation.xml:123
|
||||
#: ../data/50-mutter-navigation.xml.in.h:33
|
||||
msgid "Switch to workspace 4"
|
||||
msgstr "Εναλλαγή στον χώρο εργασίας 4"
|
||||
|
||||
#: data/50-mutter-navigation.xml:126
|
||||
#: ../data/50-mutter-navigation.xml.in.h:34
|
||||
msgid "Switch to last workspace"
|
||||
msgstr "Εναλλαγή στον τελευταίο χώρο εργασίας"
|
||||
|
||||
#: data/50-mutter-navigation.xml:129
|
||||
#: ../data/50-mutter-navigation.xml.in.h:35
|
||||
msgid "Move to workspace left"
|
||||
msgstr "Μετακίνηση στον χώρο εργασίας αριστερά"
|
||||
|
||||
#: data/50-mutter-navigation.xml:132
|
||||
#: ../data/50-mutter-navigation.xml.in.h:36
|
||||
msgid "Move to workspace right"
|
||||
msgstr "Μετακίνηση στον χώρο εργασίας δεξιά"
|
||||
|
||||
#: data/50-mutter-navigation.xml:135
|
||||
#: ../data/50-mutter-navigation.xml.in.h:37
|
||||
msgid "Move to workspace above"
|
||||
msgstr "Μετακίνηση στον χώρο εργασίας επάνω"
|
||||
|
||||
#: data/50-mutter-navigation.xml:138
|
||||
#: ../data/50-mutter-navigation.xml.in.h:38
|
||||
msgid "Move to workspace below"
|
||||
msgstr "Μετακίνηση στον χώρο εργασίας κάτω"
|
||||
|
||||
#: data/50-mutter-system.xml:6
|
||||
#: ../data/50-mutter-system.xml.in.h:1
|
||||
msgid "System"
|
||||
msgstr "Σύστημα"
|
||||
|
||||
#: data/50-mutter-system.xml:8
|
||||
#: ../data/50-mutter-system.xml.in.h:2
|
||||
msgid "Show the run command prompt"
|
||||
msgstr "Εμφάνιση της προτροπής της εντολής run"
|
||||
|
||||
#: data/50-mutter-system.xml:10
|
||||
#: ../data/50-mutter-system.xml.in.h:3
|
||||
msgid "Show the activities overview"
|
||||
msgstr "Εμφάνιση της επισκόπησης των δραστηριοτήτων"
|
||||
|
||||
#: data/50-mutter-windows.xml:6
|
||||
#: ../data/50-mutter-windows.xml.in.h:1
|
||||
msgid "Windows"
|
||||
msgstr "Παράθυρα"
|
||||
|
||||
#: data/50-mutter-windows.xml:8
|
||||
#: ../data/50-mutter-windows.xml.in.h:2
|
||||
msgid "Activate the window menu"
|
||||
msgstr "Ενεργοποίηση του μενού παραθύρου"
|
||||
|
||||
#: data/50-mutter-windows.xml:10
|
||||
#: ../data/50-mutter-windows.xml.in.h:3
|
||||
msgid "Toggle fullscreen mode"
|
||||
msgstr "Εναλλαγή κατάστασης πλήρους οθόνης"
|
||||
|
||||
#: data/50-mutter-windows.xml:12
|
||||
#: ../data/50-mutter-windows.xml.in.h:4
|
||||
msgid "Toggle maximization state"
|
||||
msgstr "Εναλλαγή κατάστασης μεγιστοποίησης"
|
||||
|
||||
#: data/50-mutter-windows.xml:14
|
||||
#: ../data/50-mutter-windows.xml.in.h:5
|
||||
msgid "Maximize window"
|
||||
msgstr "Μεγιστοποίηση παραθύρου"
|
||||
|
||||
#: data/50-mutter-windows.xml:16
|
||||
#: ../data/50-mutter-windows.xml.in.h:6
|
||||
msgid "Restore window"
|
||||
msgstr "Επαναφορά παραθύρου"
|
||||
|
||||
#: data/50-mutter-windows.xml:18
|
||||
#: ../data/50-mutter-windows.xml.in.h:7
|
||||
msgid "Toggle shaded state"
|
||||
msgstr "Εναλλαγή σκιασμένης κατάστασης"
|
||||
|
||||
#: data/50-mutter-windows.xml:20
|
||||
#: ../data/50-mutter-windows.xml.in.h:8
|
||||
msgid "Close window"
|
||||
msgstr "Κλείσιμο παραθύρου"
|
||||
|
||||
#: data/50-mutter-windows.xml:22
|
||||
#: ../data/50-mutter-windows.xml.in.h:9
|
||||
msgid "Hide window"
|
||||
msgstr "Απόκρυψη παραθύρου"
|
||||
|
||||
#: data/50-mutter-windows.xml:24
|
||||
#: ../data/50-mutter-windows.xml.in.h:10
|
||||
msgid "Move window"
|
||||
msgstr "Μετακίνηση παραθύρου"
|
||||
|
||||
#: data/50-mutter-windows.xml:26
|
||||
#: ../data/50-mutter-windows.xml.in.h:11
|
||||
msgid "Resize window"
|
||||
msgstr "Αυξομείωση παραθύρου"
|
||||
|
||||
#: data/50-mutter-windows.xml:29
|
||||
#: ../data/50-mutter-windows.xml.in.h:12
|
||||
msgid "Toggle window on all workspaces or one"
|
||||
msgstr "Εναλλαγή παραθύρου σε όλες τις επιφάνειες εργασίας ή σε μία"
|
||||
|
||||
#: data/50-mutter-windows.xml:31
|
||||
#: ../data/50-mutter-windows.xml.in.h:13
|
||||
msgid "Raise window if covered, otherwise lower it"
|
||||
msgstr "Ανύψωση παραθύρου εάν καλύπτεται, αλλιώς βύθισή του"
|
||||
|
||||
#: data/50-mutter-windows.xml:33
|
||||
#: ../data/50-mutter-windows.xml.in.h:14
|
||||
msgid "Raise window above other windows"
|
||||
msgstr "Ανύψωση παραθύρου πάνω από τα άλλα παράθυρα"
|
||||
|
||||
#: data/50-mutter-windows.xml:35
|
||||
#: ../data/50-mutter-windows.xml.in.h:15
|
||||
msgid "Lower window below other windows"
|
||||
msgstr "Βύθιση παραθύρου κάτω από τα άλλα παράθυρα"
|
||||
|
||||
#: data/50-mutter-windows.xml:37
|
||||
#: ../data/50-mutter-windows.xml.in.h:16
|
||||
msgid "Maximize window vertically"
|
||||
msgstr "Μεγιστοποίηση παραθύρου κάθετα"
|
||||
|
||||
#: data/50-mutter-windows.xml:39
|
||||
#: ../data/50-mutter-windows.xml.in.h:17
|
||||
msgid "Maximize window horizontally"
|
||||
msgstr "Μεγιστοποίηση παραθύρου οριζόντια"
|
||||
|
||||
#: data/50-mutter-windows.xml:43
|
||||
#: ../data/50-mutter-windows.xml.in.h:18
|
||||
msgid "View split on left"
|
||||
msgstr "Μεγιστοποίηση στα αριστερά"
|
||||
|
||||
#: data/50-mutter-windows.xml:47
|
||||
#: ../data/50-mutter-windows.xml.in.h:19
|
||||
msgid "View split on right"
|
||||
msgstr "Μεγιστοποίηση στα δεξιά"
|
||||
|
||||
#: data/mutter.desktop.in:4
|
||||
#: ../data/mutter.desktop.in.h:1
|
||||
msgid "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"
|
||||
msgstr "Μετατροπέας για χρήση στις εκτεταμένες ενέργειες διαχείρισης παραθύρων"
|
||||
|
||||
#: 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 "
|
||||
@ -293,11 +293,11 @@ msgstr ""
|
||||
"αυτή η αντιστοίχιση θα είναι είτε η προεπιλογή ή θα ορίζεται στην κενή "
|
||||
"συμβολοσειρά."
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:20
|
||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:3
|
||||
msgid "Attach modal dialogs"
|
||||
msgstr "Επισύναψη σχηματικών διαλόγων"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:21
|
||||
#: ../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 "
|
||||
@ -307,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"
|
||||
msgstr ""
|
||||
"Ενεργοποίηση της παράθεσης παραθύρων όταν τα μετακινείτε στις άκρες της "
|
||||
"οθόνης"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:31
|
||||
#: ../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 "
|
||||
@ -324,11 +324,11 @@ msgstr ""
|
||||
"καλύψουν το μισό της οθόνης. Το σύρσιμο των παραθύρων στο πάνω μέρος της "
|
||||
"οθόνης τα μεγιστοποιεί ολοκληρωτικά."
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:40
|
||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:7
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Οι χώροι εργασίας διαχειρίζονται δυναμικά"
|
||||
|
||||
#: 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."
|
||||
@ -338,11 +338,11 @@ msgstr ""
|
||||
"στατικός αριθμός χώρων εργασίας (καθορίζεται από το κλειδί num-workspaces "
|
||||
"στο 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"
|
||||
msgstr "Χώροι εργασίας μόνο στην κύρια"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:51
|
||||
#: ../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."
|
||||
@ -350,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"
|
||||
msgstr "Καμία αναδυόμενη καρτέλα"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:60
|
||||
#: ../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."
|
||||
@ -362,12 +362,12 @@ 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"
|
||||
msgstr ""
|
||||
"Η καθυστέρηση της εστίασης αλλάζει μέχρι ο δείκτης να σταματήσει να κινείται"
|
||||
|
||||
#: 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 "
|
||||
@ -377,11 +377,11 @@ msgstr ""
|
||||
"\"mouse\" τότε η εστίαση δεν θα αλλάξει αμέσως όταν ανοίγετε ένα παράθυρο, "
|
||||
"αλλά μόνο όταν ο δείκτης σταματήσει να κινείται."
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:79
|
||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:15
|
||||
msgid "Draggable border width"
|
||||
msgstr "Συρόμενο πλάτος περιγράμματος"
|
||||
|
||||
#: 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."
|
||||
@ -390,13 +390,13 @@ 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"
|
||||
msgstr ""
|
||||
"Αυτόματη μεγιστοποίηση των παραθύρων των οποίων το μέγεθος είναι κοντά με το "
|
||||
"μέγεθος της οθόνης"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:90
|
||||
#: ../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."
|
||||
@ -404,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"
|
||||
msgstr "Τοποθέτηση νέων παραθύρων στο κέντρο"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:99
|
||||
#: ../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."
|
||||
@ -416,93 +416,85 @@ msgstr ""
|
||||
"Αν είναι αληθές, τα νέα παράθυρα θα είναι πάντα τοποθετημένα στο κέντρο της "
|
||||
"κύριας οθόνης."
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:120
|
||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:21
|
||||
msgid "Select window from tab popup"
|
||||
msgstr "Επιλογή παραθύρου από την αναδυόμενη καρτέλα"
|
||||
|
||||
#: data/org.gnome.mutter.gschema.xml.in:125
|
||||
#: ../data/org.gnome.mutter.gschema.xml.in.h:22
|
||||
msgid "Cancel tab popup"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Εναλλαγή στο VT 12"
|
||||
|
||||
#: src/backends/meta-input-settings.c:1707
|
||||
msgid "Switch monitor"
|
||||
msgstr "Εναλλαγή οθόνης"
|
||||
|
||||
#: src/backends/meta-input-settings.c:1709
|
||||
msgid "Show on-screen help"
|
||||
msgstr "Εμφάνιση βοήθειας στην οθόνη"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:514
|
||||
#: ../src/backends/meta-monitor-manager.c:518
|
||||
msgid "Built-in display"
|
||||
msgstr "Ενσωματωμένη οθόνη"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:537
|
||||
#: ../src/backends/meta-monitor-manager.c:544
|
||||
msgid "Unknown"
|
||||
msgstr "Άγνωστη"
|
||||
|
||||
#: src/backends/meta-monitor-manager.c:539
|
||||
#: ../src/backends/meta-monitor-manager.c:546
|
||||
msgid "Unknown Display"
|
||||
msgstr "Άγνωστη οθόνη"
|
||||
|
||||
#. TRANSLATORS: this is a monitor vendor name, followed by a
|
||||
#. * size in inches, like 'Dell 15"'
|
||||
#.
|
||||
#: src/backends/meta-monitor-manager.c:547
|
||||
#: ../src/backends/meta-monitor-manager.c:554
|
||||
#, c-format
|
||||
msgid "%s %s"
|
||||
msgstr "%s %s"
|
||||
|
||||
#. This probably means that a non-WM compositor like xcompmgr is running;
|
||||
#. * we have no way to get it to exit
|
||||
#: src/compositor/compositor.c:463
|
||||
#: ../src/compositor/compositor.c:456
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Another compositing manager is already running on screen %i on display \"%s"
|
||||
@ -510,20 +502,20 @@ msgid ""
|
||||
msgstr ""
|
||||
"Εκτελείται ένας άλλος διαχειριστής παραθύρων στην οθόνη %i προβολή \"%s\"."
|
||||
|
||||
#: src/core/bell.c:194
|
||||
#: ../src/core/bell.c:192
|
||||
msgid "Bell event"
|
||||
msgstr "Ηχητικό συμβάν κουδουνιού"
|
||||
|
||||
#: src/core/delete.c:127
|
||||
#: ../src/core/delete.c:127
|
||||
#, c-format
|
||||
msgid "“%s” is not responding."
|
||||
msgstr "Το “%s” δεν ανταποκρίνεται."
|
||||
|
||||
#: src/core/delete.c:129
|
||||
#: ../src/core/delete.c:129
|
||||
msgid "Application is not responding."
|
||||
msgstr "Η εφαρμογή δεν ανταποκρίνεται."
|
||||
|
||||
#: src/core/delete.c:134
|
||||
#: ../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."
|
||||
@ -531,57 +523,57 @@ msgstr ""
|
||||
"Μπορείτε να επιλέξετε να περιμένετε λίγο για να συνεχίσει, ή να εξαναγκάσετε "
|
||||
"την εφαρμογή σε έξοδο."
|
||||
|
||||
#: src/core/delete.c:141
|
||||
#: ../src/core/delete.c:141
|
||||
msgid "_Wait"
|
||||
msgstr "_Αναμονή"
|
||||
|
||||
#: src/core/delete.c:141
|
||||
#: ../src/core/delete.c:141
|
||||
msgid "_Force Quit"
|
||||
msgstr "_Εξαναγκασμός σε τερματισμό"
|
||||
|
||||
# gconf/gconf-internals.c:2416
|
||||
#: src/core/display.c:590
|
||||
#: ../src/core/display.c:555
|
||||
#, c-format
|
||||
msgid "Failed to open X Window System display '%s'\n"
|
||||
msgstr "Αποτυχία ανοίγματος οθόνης του συστήματος παραθύρων Χ '%s'\n"
|
||||
|
||||
#: src/core/main.c:182
|
||||
#: ../src/core/main.c:181
|
||||
msgid "Disable connection to session manager"
|
||||
msgstr "Απενεργοποίηση σύνδεσης στο διαχειριστή συνεδρίας"
|
||||
|
||||
#: src/core/main.c:188
|
||||
#: ../src/core/main.c:187
|
||||
msgid "Replace the running window manager"
|
||||
msgstr "Αντικατάσταση του τρέχοντος διαχειριστή παραθύρων"
|
||||
|
||||
#: src/core/main.c:194
|
||||
#: ../src/core/main.c:193
|
||||
msgid "Specify session management ID"
|
||||
msgstr "Καθορισμός αναγνωριστικού διαχείρισης συνεδρίας"
|
||||
|
||||
#: src/core/main.c:199
|
||||
#: ../src/core/main.c:198
|
||||
msgid "X Display to use"
|
||||
msgstr "Εμφάνιση Χ για χρήση"
|
||||
|
||||
#: src/core/main.c:205
|
||||
#: ../src/core/main.c:204
|
||||
msgid "Initialize session from savefile"
|
||||
msgstr "Εκκίνηση συνεδρίας από savefile"
|
||||
|
||||
#: src/core/main.c:211
|
||||
#: ../src/core/main.c:210
|
||||
msgid "Make X calls synchronous"
|
||||
msgstr "Να καταστούν σύγχρονες οι κλήσεις του X"
|
||||
|
||||
#: src/core/main.c:218
|
||||
#: ../src/core/main.c:217
|
||||
msgid "Run as a wayland compositor"
|
||||
msgstr "Εκτέλεση ως wayland compositor"
|
||||
|
||||
#: src/core/main.c:224
|
||||
#: ../src/core/main.c:223
|
||||
msgid "Run as a nested compositor"
|
||||
msgstr "Εκτέλεση ως ενσωματωμένος compositor"
|
||||
|
||||
#: src/core/main.c:232
|
||||
#: ../src/core/main.c:231
|
||||
msgid "Run as a full display server, rather than nested"
|
||||
msgstr "Εκτέλεση ως διακομιστής πλήρους οθόνης, αντί ενσωματωμένης"
|
||||
|
||||
#: src/core/mutter.c:39
|
||||
#: ../src/core/mutter.c:39
|
||||
#, c-format
|
||||
msgid ""
|
||||
"mutter %s\n"
|
||||
@ -595,22 +587,22 @@ msgstr ""
|
||||
"άλλοι\n"
|
||||
"Αυτό είναι ελεύθερο λογισμικό, βλ. τον πηγαίο κώδικα για όρους αντιγραφής.\n"
|
||||
"ΔΕΝ παρέχεται καμία εγγύηση, ούτε ΕΜΠΟΡΕΥΣΙΜΟΤΗΤΑΣ ούτε ΚΑΤΑΛΛΗΛΟΤΗΤΑΣ ΓΙΑ "
|
||||
"ΣΥΓΚΕΚΡΙΜΕΝΟ ΣΚΟΠΟ.\n"
|
||||
"ΣΥΓΚΕΚΡΙΜΕΝΟΣΚΟΠΟ.\n"
|
||||
|
||||
#: src/core/mutter.c:53
|
||||
#: ../src/core/mutter.c:53
|
||||
msgid "Print version"
|
||||
msgstr "Εμφάνιση έκδοσης"
|
||||
|
||||
#: src/core/mutter.c:59
|
||||
#: ../src/core/mutter.c:59
|
||||
msgid "Mutter plugin to use"
|
||||
msgstr "Πρόσθετα του Mutter για χρήση"
|
||||
|
||||
#: src/core/prefs.c:1997
|
||||
#: ../src/core/prefs.c:1997
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Χώρος εργασίας %d"
|
||||
|
||||
#: src/core/screen.c:521
|
||||
#: ../src/core/screen.c:521
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Display \"%s\" already has a window manager; try using the --replace option "
|
||||
@ -620,32 +612,27 @@ msgstr ""
|
||||
"χρησιμοποιήσετε την επιλογή --replace για να αντικαταστήσετε τον τρέχων "
|
||||
"διαχειριστή παραθύρων."
|
||||
|
||||
#: src/core/screen.c:606
|
||||
#: ../src/core/screen.c:603
|
||||
#, c-format
|
||||
msgid "Screen %d on display '%s' is invalid\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"
|
||||
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 ""
|
||||
"These windows do not support "save current setup" and will have to "
|
||||
"be restarted manually next time you log in."
|
||||
msgstr ""
|
||||
"Αυτά τα παράθυρα δεν υποστηρίζουν "αποθήκευση της τρέχουσας "
|
||||
"Αυτά τα παράθυρα δεν υποστηρίζουν "αποθήκευση τρέχουσας "
|
||||
"εγκατάστασης" και θα πρέπει να επανεκκινηθούν χειροκίνητα στην επόμενη "
|
||||
"είσοδο σας."
|
||||
|
||||
#: src/x11/window-props.c:548
|
||||
#: ../src/x11/window-props.c:549
|
||||
#, c-format
|
||||
msgid "%s (on %s)"
|
||||
msgstr "%s (σε %s)"
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user