Compare commits
	
		
			3 Commits
		
	
	
		
			wip/nielsd
			...
			wip/rtcm/m
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					a24c66137f | ||
| 
						 | 
					44a07fd74b | ||
| 
						 | 
					d148b445e4 | 
							
								
								
									
										31
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										31
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -36,26 +36,17 @@ mutter-wayland.desktop
 | 
			
		||||
stamp-h1
 | 
			
		||||
*.gmo
 | 
			
		||||
*.make
 | 
			
		||||
*.log
 | 
			
		||||
*.trs
 | 
			
		||||
*~
 | 
			
		||||
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
 | 
			
		||||
mutter-test-client
 | 
			
		||||
mutter-test-runner
 | 
			
		||||
mutter-test-unit-tests
 | 
			
		||||
mutter-test-headless-start-test
 | 
			
		||||
mutter-all.test
 | 
			
		||||
org.gnome.mutter.gschema.valid
 | 
			
		||||
org.gnome.mutter.gschema.xml
 | 
			
		||||
@@ -72,8 +63,6 @@ src/stamp-meta-enum-types.h
 | 
			
		||||
src/meta-dbus-display-config.[ch]
 | 
			
		||||
src/meta-dbus-idle-monitor.[ch]
 | 
			
		||||
src/meta-dbus-login1.[ch]
 | 
			
		||||
src/meta-dbus-remote-desktop.[ch]
 | 
			
		||||
src/meta-dbus-screen-cast.[ch]
 | 
			
		||||
src/gtk-primary-selection-protocol.c
 | 
			
		||||
src/gtk-primary-selection-server-protocol.h
 | 
			
		||||
src/gtk-shell-protocol.c
 | 
			
		||||
@@ -86,25 +75,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/xdg-output-unstable-v1-protocol.c
 | 
			
		||||
src/xdg-output-unstable-v1-server-protocol.h
 | 
			
		||||
src/xwayland-keyboard-grab-unstable-v1-protocol.c
 | 
			
		||||
src/xwayland-keyboard-grab-unstable-v1-server-protocol.h
 | 
			
		||||
src/tablet-unstable-v*-protocol.c
 | 
			
		||||
src/tablet-unstable-v*-server-protocol.h
 | 
			
		||||
src/text-input-unstable-v*-protocol.c
 | 
			
		||||
src/text-input-unstable-v*-server-protocol.h
 | 
			
		||||
src/keyboard-shortcuts-inhibit-unstable-v*-protocol.c
 | 
			
		||||
src/keyboard-shortcuts-inhibit-unstable-v*-server-protocol.h
 | 
			
		||||
src/linux-dmabuf-unstable-v*-protocol.c
 | 
			
		||||
src/linux-dmabuf-unstable-v*-server-protocol.h
 | 
			
		||||
src/xdg-shell-protocol.c
 | 
			
		||||
src/xdg-shell-server-protocol.h
 | 
			
		||||
src/wayland-eglstream-controller-server-protocol.h
 | 
			
		||||
src/meta/meta-version.h
 | 
			
		||||
src/libmutter-*.pc
 | 
			
		||||
doc/reference/*.args
 | 
			
		||||
doc/reference/*.bak
 | 
			
		||||
doc/reference/*.hierarchy
 | 
			
		||||
@@ -130,5 +101,3 @@ ltsugar.m4
 | 
			
		||||
ltversion.m4
 | 
			
		||||
lt~obsolete.m4
 | 
			
		||||
.dirstamp
 | 
			
		||||
**/tags.*
 | 
			
		||||
build/
 | 
			
		||||
 
 | 
			
		||||
@@ -1,20 +0,0 @@
 | 
			
		||||
image: registry.gitlab.gnome.org/gnome/mutter/master:v1
 | 
			
		||||
 | 
			
		||||
stages:
 | 
			
		||||
 - build
 | 
			
		||||
 - test
 | 
			
		||||
 | 
			
		||||
build-mutter:
 | 
			
		||||
  stage: build
 | 
			
		||||
  script:
 | 
			
		||||
    - meson . build -Degl_device=true -Dwayland_eglstream=true
 | 
			
		||||
    - ninja -C build
 | 
			
		||||
    - ninja -C build install
 | 
			
		||||
 | 
			
		||||
test-mutter:
 | 
			
		||||
  stage: test
 | 
			
		||||
  script:
 | 
			
		||||
    - meson . build -Degl_device=true -Dwayland_eglstream=true
 | 
			
		||||
    - ninja -C build
 | 
			
		||||
    - glib-compile-schemas $PWD/build/data
 | 
			
		||||
    - env XDG_RUNTIME_DIR=/tmp/ GSETTINGS_SCHEMA_DIR=$PWD/build/data dbus-run-session -- xvfb-run -s '+iglx -noreset' meson test -C build -t 10 --verbose --no-stdsplit --wrap catchsegv
 | 
			
		||||
@@ -1,14 +0,0 @@
 | 
			
		||||
FROM fedora:29
 | 
			
		||||
 | 
			
		||||
RUN dnf -y update && dnf -y upgrade && \
 | 
			
		||||
    dnf install -y 'dnf-command(builddep)' && \
 | 
			
		||||
    dnf builddep -y mutter && \
 | 
			
		||||
 | 
			
		||||
    # Until Fedora catches up with meson build-deps
 | 
			
		||||
    dnf install -y meson xorg-x11-server-Xorg gnome-settings-daemon-devel egl-wayland-devel xorg-x11-server-Xwayland && \
 | 
			
		||||
 | 
			
		||||
    # For running unit tests
 | 
			
		||||
    dnf install -y xorg-x11-server-Xvfb mesa-dri-drivers dbus dbus-x11 && \
 | 
			
		||||
 | 
			
		||||
    dnf install -y intltool redhat-rpm-config make && \
 | 
			
		||||
    dnf clean all
 | 
			
		||||
@@ -1,5 +1,3 @@
 | 
			
		||||
pkgdatadir = $(datadir)/mutter-$(LIBMUTTER_API_VERSION)
 | 
			
		||||
pkglibdir = $(libdir)/mutter-$(LIBMUTTER_API_VERSION)
 | 
			
		||||
 | 
			
		||||
SUBDIRS = cogl clutter data src po doc
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										714
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										714
									
								
								NEWS
									
									
									
									
									
								
							@@ -1,717 +1,3 @@
 | 
			
		||||
3.31.2
 | 
			
		||||
======
 | 
			
		||||
* Fix handling of non-UTF8 encodings [Florian; !227]
 | 
			
		||||
* Fix memory leaks introduced in 3.30.1 [Jonas; #653]
 | 
			
		||||
* Fix regression when overriding workspace layout [Ron; #270]
 | 
			
		||||
* Fix crash when restarting window manager [Andrea; gnome-shell#595]
 | 
			
		||||
* Add meson build support [Jonas; !167]
 | 
			
		||||
* Freeze clock when headless [Jonas; !170]
 | 
			
		||||
* Fix crash on monitor hotplug [Olivier; #189]
 | 
			
		||||
* Misc. bug fixes [Jonas; #353, !132, #382]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Andrea Azzarone, Olivier Fourdan, Niels De Graef,
 | 
			
		||||
  Alexander Mikhaylenko, Florian Müllner, Akira Nakajima,
 | 
			
		||||
  Georges Basile Stavracas Neto, Pekka Paalanen, Peter Uithoven,
 | 
			
		||||
  Daniel van Vugt, Ron Yorston
 | 
			
		||||
 | 
			
		||||
3.30.1
 | 
			
		||||
======
 | 
			
		||||
* Improve trackball detection [Tony; #258]
 | 
			
		||||
* Fix clipping of scaled surfaces [Jonas; #300]
 | 
			
		||||
* Improve tracking of monitor switch configuration [Daniel; !213]
 | 
			
		||||
* Fix parent-relative positioning of constrained windows [Jonas; #332]
 | 
			
		||||
* Add clutter_input_method_forward_key() method [Carlos; gnome-shell#531]
 | 
			
		||||
* Various crash fixes [Olivier, Jonas; #194, #336]
 | 
			
		||||
* Misc. bug fixes [Carlos, Florian, Olivier, Jonas; gnome-shell#540, #294,
 | 
			
		||||
  #221, !229, #30, #331]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Daniel Drake, Olivier Fourdan, Carlos Garnacho, Peter Hutterer,
 | 
			
		||||
  Ting-Wei Lan, Florian Müllner, Tony Novak, Pekka Paalanen, Sam Spilsbury
 | 
			
		||||
 | 
			
		||||
Translators:
 | 
			
		||||
  Yuras Shumovich [be], Марко Костић [sr], Marek Cernocky [cs]
 | 
			
		||||
 | 
			
		||||
3.30.0
 | 
			
		||||
======
 | 
			
		||||
 | 
			
		||||
Translators:
 | 
			
		||||
  Fran Dieguez [gl], Balázs Meskó [hu], Rūdolfs Mazurs [lv],
 | 
			
		||||
  Trần Ngọc Quân [vi], Ask Hjorth Larsen [da], gogo [hr]
 | 
			
		||||
 | 
			
		||||
3.29.92
 | 
			
		||||
=======
 | 
			
		||||
* Avoid crash when a cursor is not found [Sebastian; #254]
 | 
			
		||||
* Fix screen rotation regression [Jonas; #216]
 | 
			
		||||
* Handle requests to unmanaged windows gracefully [Jonas; #240]
 | 
			
		||||
* Move popups together with their parent [Jonas; #274]
 | 
			
		||||
* Fix non-lowercase letters on virtual key devices [Carlos; gnome-shell#135]
 | 
			
		||||
* Misc. bug fixes [Iain, Jonas; #223, #192, #279]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Carlos Garnacho, Sebastian Keller, Iain Lane, Robert Mader,
 | 
			
		||||
  Daniel van Vugt
 | 
			
		||||
 | 
			
		||||
Translators:
 | 
			
		||||
  Gwan-gyeong Mun [ko], Kukuh Syafaat [id], Milo Casagrande [it],
 | 
			
		||||
  Anders Jonsson [sv], Rafael Fontenelle [pt_BR], Marek Cernocky [cs]
 | 
			
		||||
 | 
			
		||||
3.29.91
 | 
			
		||||
=======
 | 
			
		||||
* Various crash fixes [Olivier, Iain; #255, #223]
 | 
			
		||||
* Fix lock up with some DRI drivers [Alex; #127]
 | 
			
		||||
* Send correct button codes from virtual evdev devices [Jonas; !190]
 | 
			
		||||
* Improve grab-device clock updates on X11 [Jeff; !174]
 | 
			
		||||
* Fix popups closing immediately on key down [Jonas; !180]
 | 
			
		||||
* Prevent clients from modifying the shared keymap [Jonas; #784206]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Andrea Azzarone, Piotr Drąg, Olivier Fourdan, Carlos Garnacho,
 | 
			
		||||
  Jan Grulich, Iain Lane, Alex Villacís Lasso, Jeff Smith, Daniel van Vugt
 | 
			
		||||
 | 
			
		||||
Translators:
 | 
			
		||||
  Matej Urbančič [sl], Mario Blättermann [de], Piotr Drąg [pl],
 | 
			
		||||
  Aurimas Černius [lt], Yi-Jyun Pan [zh_TW], Emin Tufan Çetin [tr],
 | 
			
		||||
  Fabio Tomat [fur], Bruce Cowan [en_GB]
 | 
			
		||||
 | 
			
		||||
3.29.90
 | 
			
		||||
=======
 | 
			
		||||
* Various crash fixes [Olivier, Jonas, Florian; #189, #70, #194, #15, #130]
 | 
			
		||||
* Don't expose resolutions that are below the minimum [Andrea; #793223]
 | 
			
		||||
* Remove support for preference overrides [Florian; #786496]
 | 
			
		||||
* Misc. bug fixes and cleanups [Daniel, Jonas, Florian; #131, #245, !176]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Andrea Azzarone, Olivier Fourdan, Florian Müllner, Kevin Tamool,
 | 
			
		||||
  Daniel van Vugt
 | 
			
		||||
 | 
			
		||||
Translators:
 | 
			
		||||
  Daniel Mustieles [es], Claude Paroz [fr]
 | 
			
		||||
 | 
			
		||||
3.29.4
 | 
			
		||||
======
 | 
			
		||||
* Fix crash with parent-less modal dialogs [Olivier; #174]
 | 
			
		||||
* Preserve paint volumes where possible to optimize CPU usage [Carlos; #782344]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Iain Lane, Bastien Nocera
 | 
			
		||||
 | 
			
		||||
Translators:
 | 
			
		||||
  Daniel Șerbănescu [ro]
 | 
			
		||||
 | 
			
		||||
3.29.3
 | 
			
		||||
======
 | 
			
		||||
* Fix Korean Hangul support on wayland [Changwoo; #152]
 | 
			
		||||
* Improve support for proprietary Nvidia driver [Jonas; #790316]
 | 
			
		||||
* Only upload HW cursor sprite to the GPU that will display them [Jonas; #77]
 | 
			
		||||
* Improve EGLstream support [Miguel; #2, #782575]
 | 
			
		||||
* Remove MetaScreen to prepare for non-mandatary X11 dependency
 | 
			
		||||
  [Armin, Jonas; #759538]
 | 
			
		||||
* Misc. bug fixes [Olivier, Jonas, Sam; #160, !130, #786929, #788834]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Armin Krezović, Corentin Noël,
 | 
			
		||||
  Changwoo Ryu, Sam Spilsbury, Daniel Stone, Marco Trevisan (Treviño),
 | 
			
		||||
  Miguel A. Vico, Daniel van Vugt
 | 
			
		||||
 | 
			
		||||
Translators:
 | 
			
		||||
  Yi-Jyun Pan [zh_TW], Jordi Mas [ca], Daniel Șerbănescu [ro], Fabio Tomat [fur]
 | 
			
		||||
 | 
			
		||||
3.29.2
 | 
			
		||||
======
 | 
			
		||||
* Fix size change animations on wayland [Georges; #780292]
 | 
			
		||||
* Handle touch events on server-side titlebars [Carlos; #770185]
 | 
			
		||||
* Misc. bug fixes [Florian, Olivier, Jonas, Georges; #134, #124, !96, #138,
 | 
			
		||||
  !102, #781471, #150]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Florian Müllner,
 | 
			
		||||
  Georges Basile Stavracas Neto, Marco Trevisan (Treviño), Daniel van Vugt
 | 
			
		||||
 | 
			
		||||
Translators:
 | 
			
		||||
  Daniel Șerbănescu [ro], Marcos Lans [gl], Dz Chen [zh_CN]
 | 
			
		||||
 | 
			
		||||
3.29.1
 | 
			
		||||
======
 | 
			
		||||
* Fix various input-method regressions [Carlos, Olivier; #65, #74, #66, #112]
 | 
			
		||||
* Fix wayland build on FreeBSD [Ting-Wei; #792280, #792717]
 | 
			
		||||
* Fix swapped colors in screenshots (again) [Carlos; #72]
 | 
			
		||||
* Allow building with elogind [Rasmus; !46]
 | 
			
		||||
* Consider display rotation for cursor [Olivier; #85]
 | 
			
		||||
* Fall back to non-modifier GBM surfaces [Daniel; #84]
 | 
			
		||||
* Take inhibitors into account for monitoring idle [Bastien; #705942]
 | 
			
		||||
* Misc. bug fixes [handsome-feng, Olivier, Mario, Jonas; !45, #83, #104,
 | 
			
		||||
  gnome-shell#157, #130, #21]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, handsome-feng, Yussuf Khalil,
 | 
			
		||||
  Ting-Wei Lan, Aleksandr Mezin, Alberts Muktupāvels,
 | 
			
		||||
  Georges Basile Stavracas Neto, Bastien Nocera, Benjamin Otte,
 | 
			
		||||
  Mario Sanchez Prada, Daniel Stone, Ray Strode, Rasmus Thomsen,
 | 
			
		||||
  Marco Trevisan (Treviño), Daniel van Vugt
 | 
			
		||||
 | 
			
		||||
Translators:
 | 
			
		||||
  Emin Tufan Çetin [tr], Dušan Kazik [sk], Matej Urbančič [sl]
 | 
			
		||||
 | 
			
		||||
3.28.0
 | 
			
		||||
======
 | 
			
		||||
* Fix xdg-foreign regression [Carlos; #63]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Carlos Garnacho, Georges Basile Stavracas Neto
 | 
			
		||||
 | 
			
		||||
Translators:
 | 
			
		||||
  Marek Cernocky [cs], Ask Hjorth Larsen [da], Chao-Hsiung Liao [zh_TW],
 | 
			
		||||
  Anders Jonsson [sv], Mart Raudsepp [et]
 | 
			
		||||
 | 
			
		||||
3.27.92
 | 
			
		||||
=======
 | 
			
		||||
* Fix use of modifiers with multi-GPU systems [Louis-Francis; #18]
 | 
			
		||||
* Add xdg-shell stable support [Jonas; #791938]
 | 
			
		||||
* Fix scaling of icons in titlebar buttons [Egmont; #23]
 | 
			
		||||
* Implement missing wacom functionality on X11 [Carlos; #48]
 | 
			
		||||
* Force 8-bit RGB config [Jonas; #2]
 | 
			
		||||
* Misc. bug fixes [Jonas, Olivier, Robert; #6, #27, #792203]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Egmont Koblinger, Robert Mader,
 | 
			
		||||
  Bastien Nocera, Louis-Francis Ratté-Boulianne
 | 
			
		||||
 | 
			
		||||
Translators:
 | 
			
		||||
  Daniel Mustieles [es], Марко Костић [sr], Милош Поповић [sr@latin],
 | 
			
		||||
  Fran Dieguez [gl], Balázs Úr [hu], Gwan-gyeong Mun [ko], Rūdolfs Mazurs [lv],
 | 
			
		||||
  Milo Casagrande [it], Mario Blättermann [de], GNOME Translation Robot [gd,
 | 
			
		||||
  nl], Claude Paroz [fr], Aurimas Černius [lt]
 | 
			
		||||
 | 
			
		||||
3.27.91
 | 
			
		||||
=======
 | 
			
		||||
* Fix handling of trackball settings on wayland [Carlos; #787804]
 | 
			
		||||
* Apply font settings on wayland [Daniel; #645433]
 | 
			
		||||
* Fix keybindings getting mixed up with some layouts [Jonas; #789300]
 | 
			
		||||
* Fix bluetooth mouse cursor disappearing after idle [Benoit; #761067]
 | 
			
		||||
* Support platforms that export EGL_KHR_platform_gbm [memeka; #780668]
 | 
			
		||||
* Add keyboard accessibility support on wayland [Olivier; #788564]
 | 
			
		||||
* Fix missing cursor when using screen magnifier [Carlos; #754806]
 | 
			
		||||
* Fix external monitor shutting off on wayland when lid closes [Jonas; #788915]
 | 
			
		||||
* Add xdg-output support [Olivier; #787363]
 | 
			
		||||
* Add Xwayland grab keyboard support [Olivier; #783342]
 | 
			
		||||
* Allow shortcut inhibition of the super key [Olivier; #790627]
 | 
			
		||||
* Take "panel orientation" drm_connector property into account [Hans; #782294]
 | 
			
		||||
* Fix focus window ending up below other windows on wayland [Olivier; #780820]
 | 
			
		||||
* Fix maximized windows restoring to a tiny size on wayland [Olivier; #783901]
 | 
			
		||||
* Fix tap-and-drag setting on X11 [Jonas; #775755]
 | 
			
		||||
* Fix handling of single-touch devices on wayland [Carlos; #792005]
 | 
			
		||||
* Support tiled/compressed buffers [Daniel; #785779]
 | 
			
		||||
* Port screencast support to pipewire 0.1.8 [Jonas; #792854]
 | 
			
		||||
* Add support for third stylus button on newer tablets [Jason; #790033]
 | 
			
		||||
* Fix background corruption regression on nvidia [Jonas; #739178]
 | 
			
		||||
* Misc. bug fixes [Jonas, Rui, Michael, Marco, Carlos, Olivier, Philip, Piotr,
 | 
			
		||||
  Ting-Wei, Daniel, Jeremy, Hans, Florian, Ray, Jeff, George, Gwan-gyeong;
 | 
			
		||||
  #789153, #788493, #784314, #789227, #789223, #789277, #782344, #789552,
 | 
			
		||||
  #789553, #788695, #789984, #788764, #789386, #784545, #790336, #790358,
 | 
			
		||||
  #791022, #791006, #789070, #772218, #791383, #791809, #776220, #791916,
 | 
			
		||||
  #792281, #790309, #791371, #792527, #792599, #788834, #792765, #792062,
 | 
			
		||||
  #645460, #792853, !2, #792818, #8, #12, #789501, #10, #789961, #13, !15, #1,
 | 
			
		||||
  #26, #28, #35, #36, #38]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Jeremy Bicha, Michael Catanzaro, Piotr Drąg, Olivier Fourdan,
 | 
			
		||||
  Carlos Garnacho, Jason Gerecke, Hans de Goede, Benoit Gschwind,
 | 
			
		||||
  Peter Hutterer, George Kiagiadakis, Ting-Wei Lan, Rui Matos, memeka,
 | 
			
		||||
  Florian Müllner, Gwan-gyeong Mun, Jeremy Nickurak, Marc-Antoine Perennou,
 | 
			
		||||
  Jeff Smith, Daniel Stone, Ray Strode, Marco Trevisan (Treviño),
 | 
			
		||||
  Daniel van Vugt, Philip Withnall
 | 
			
		||||
 | 
			
		||||
Translators:
 | 
			
		||||
  Khaled Hosny [ar], Kjartan Maraas [nb], Piotr Drąg [pl],
 | 
			
		||||
  Rafael Fontenelle [pt_BR], Christian Kirbach [de], Anders Jonsson [sv],
 | 
			
		||||
  Charles Monzat [fr], Marek Cernocky [cs], Muhammet Kara [tr],
 | 
			
		||||
  Milo Casagrande [it], Pawan Chitrakar [ne], Yosef Or Boczko [he],
 | 
			
		||||
  Kukuh Syafaat [id], Daniel Mustieles [es], Fabio Tomat [fur],
 | 
			
		||||
  Kristjan SCHMIDT [eo], Balázs Úr [hu], Andika Triwidada [id],
 | 
			
		||||
  Fran Dieguez [gl], gogo [hr]
 | 
			
		||||
 | 
			
		||||
3.27.1
 | 
			
		||||
======
 | 
			
		||||
* Work with clients that require older linux_dmabuf protocol [Daniel; #788558]
 | 
			
		||||
* Support hybrid GPU systems [Jonas; #785381]
 | 
			
		||||
* Prevent crash when closing maximized windows [Jonni; #788666]
 | 
			
		||||
* Use the correct monitor for HiDPI scaling of shell chrome [Jonas; #788820]
 | 
			
		||||
* Fix unredirection of fullscreen windows [Rui, Jonas; #788493]
 | 
			
		||||
* Fix list of supported monitor scales on X11 [Jonas; #788901]
 | 
			
		||||
* Misc. bug fixes [Florian, Jonas, Marco; #788572, #788569, #788607, #788860,
 | 
			
		||||
  #788921]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Carlos Garnacho, Rui Matos, Florian Müllner, Daniel Stone,
 | 
			
		||||
  Marco Trevisan, Jonni Westphalen
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Xavi Ivars [ca@valencia]
 | 
			
		||||
 | 
			
		||||
3.26.1
 | 
			
		||||
======
 | 
			
		||||
* Fix crash when respawning shortcut inhibitor dialog [Olivier; #787568]
 | 
			
		||||
* Fix crash during monitor configuration migration [Carlos, Jonas; #787668]
 | 
			
		||||
* Fix multihead regressions in X11 session [Jonas; #787477]
 | 
			
		||||
* Fix screen rotation regressions [Hans; #787836]
 | 
			
		||||
* Fix keybindings not being resolved with non-latin layouts [Jonas; #787016]
 | 
			
		||||
* Support snap packages for sandboxed app IDs [Marco; #788217]
 | 
			
		||||
* Fix crash when reconnecting tablet device [Jason; #787649]
 | 
			
		||||
* Support running headless [Jonas; #730551, #787637]
 | 
			
		||||
* Support _NET_RESTACK_WINDOW and ConfigureRequest siblings [Vasilis; #786365]
 | 
			
		||||
* Fix monitor layout not being remembered across sessions [Jonas; #787629]
 | 
			
		||||
* Make sure to export _NET_NUMBER_OF_DESKTOPS [Florian; #760651]
 | 
			
		||||
* Allow resizing of tiled windows [Georges, Florian; #645153]
 | 
			
		||||
* Export tiling information to clients [Georges; #751857]
 | 
			
		||||
* Misc. bug fixes [Jonas, Florian, Jeremy, Rico; #787570, #787715, #787953,
 | 
			
		||||
  #788049, #788199, #788292, #788197]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Andrea Azzarone, Georges Basile Stavracas Neto, Hans de Goede,
 | 
			
		||||
  Olivier Fourdan, Carlos Garnacho, Jason Gerecke, Vasilis Liaskovitis,
 | 
			
		||||
  Rui Matos, Florian Müllner, Jeremy Soller, Marco Trevisan, Rico Tzschichholz
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Matej Urbančič [sl], gogo [hr], Cheng-Chia Tseng [zh_TW]
 | 
			
		||||
 | 
			
		||||
3.26.0
 | 
			
		||||
======
 | 
			
		||||
Contributors:
 | 
			
		||||
  Florian Müllner
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Trần Ngọc Quân [vi], Inaki Larranaga Murgoitio [eu], Jordi Mas [ca],
 | 
			
		||||
  Anders Jonsson [sv], Alexander Shopov [bg], Ask Hjorth Larsen [da],
 | 
			
		||||
  Jean-Baptiste Holcroft [fr], A S Alam [pa]
 | 
			
		||||
 | 
			
		||||
3.25.92
 | 
			
		||||
=======
 | 
			
		||||
* Add screencast and remote desktop support [Jonas; #784199]
 | 
			
		||||
* Support running with no attached monitors [Jonas; #730551]
 | 
			
		||||
* Add a vertical gradient effect to background actor [Alessandro; #786618]
 | 
			
		||||
* Misc. bug fixes [Mario, Daniel, Piotr, Jonas, Bastien; #786619, #786677,
 | 
			
		||||
  #772218, #786918, #760670]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Alessandro Bono, Piotr Drąg, Bastien Nocera,
 | 
			
		||||
  Mario Sanchez Prada, Daniel Stone
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Marek Cernocky [cs], Aurimas Černius [lt], Piotr Drąg [pl],
 | 
			
		||||
  Fran Dieguez [gl], gogo [hr], Dušan Kazik [sk], Milo Casagrande [it],
 | 
			
		||||
  Jordi Mas [ca], Cheng-Chia Tseng [zh_TW], Марко Костић [sr],
 | 
			
		||||
  Милош Поповић [sr@latin], Rūdolfs Mazurs [lv], Matej Urbančič [sl],
 | 
			
		||||
  Ask Hjorth Larsen [da], Piotr Drąg [it, lt], Jiri Grönroos [fi],
 | 
			
		||||
  Emin Tufan Çetin [tr], Wolfgang Stöggl [de], Kukuh Syafaat [id],
 | 
			
		||||
  Yuras Shumovich [be], Changwoo Ryu [ko], Alexander Shopov [bg],
 | 
			
		||||
  Rafael Fontenelle [pt_BR], Balázs Úr [hu]
 | 
			
		||||
 | 
			
		||||
3.25.91
 | 
			
		||||
=======
 | 
			
		||||
* Reduce memory use of suspended instances [Jonas; #786299]
 | 
			
		||||
* Make supported scales determination saner [Rui; #786474]
 | 
			
		||||
* Fix crash on inhibit-shortcuts dialog reponse [Jonas; #786385]
 | 
			
		||||
* Support libinput's tag-and-drag setting [freeroot; #775755]
 | 
			
		||||
* Avoid overlapping keybindings with multiple layouts [Jonas; #786408]
 | 
			
		||||
* Fix non-transformed cursor on rotated monitors [Jonas; #786023]
 | 
			
		||||
* Avoid unnecessary work during background painting [Alessandro; #783512]
 | 
			
		||||
* Misc. bug fixes [Alberts, Jonas, Mario; #691611, #786300, #777732, #786568]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  freeroot, Jonas Ådahl, Alessandro Bono, Carlos Garnacho, Rui Matos,
 | 
			
		||||
  Alberts Muktupāvels, Mario Sanchez Prada
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Muhammet Kara [tr], Claude Paroz [fr], Мирослав Николић [sr, sr@latin],
 | 
			
		||||
  Pawan Chitrakar [ne], Kukuh Syafaat [id]
 | 
			
		||||
 | 
			
		||||
3.25.90
 | 
			
		||||
=======
 | 
			
		||||
* Add zwp_linux_dmabuf_v1 support [Daniel; #785262]
 | 
			
		||||
* Add (x)wayland shortcut inhibitor support [Olivier; #783342]
 | 
			
		||||
* Misc. bug fixes [Daniel, Carlos, Cosimo; #785263, #785347, #767805]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Cosimo Cecchi, Olivier Fourdan, Carlos Garnacho, Daniel Stone
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Fabio Tomat [fur], Kukuh Syafaat [id], Aurimas Černius [lt],
 | 
			
		||||
  Daniel Mustieles [es], Baurzhan Muftakhidinov [kk], Jordi Mas [ca],
 | 
			
		||||
  Matej Urbančič [sl], Marek Cernocky [cs], gogo [hr], Fran Dieguez [gl],
 | 
			
		||||
  Balázs Meskó [hu]
 | 
			
		||||
 | 
			
		||||
3.25.4
 | 
			
		||||
======
 | 
			
		||||
* Do not throttle motion events on tablet tools [Carlos; #783535]
 | 
			
		||||
* Handle left-handed mode on pen/eraser devices [Carlos; #782027]
 | 
			
		||||
* Add wl_surface.damage_buffer() support [Jonas; #784080]
 | 
			
		||||
* Fix crash when moving across on-adjacent monitors [Jonas; #783630]
 | 
			
		||||
* Fix window moving/resizing via tablet tools [Jason; #777333]
 | 
			
		||||
* Support fractional monitor scaling [Jonas, Marco; #765011]
 | 
			
		||||
* Keep override-redirect windows stacked on top [Rui; #780485]
 | 
			
		||||
* Implement tablet rings/strips configuration [Carlos; #782033]
 | 
			
		||||
* Support tablet wheel events on wayland [Jason; #783716]
 | 
			
		||||
* Move g-s-d xrandr functionality into mutter [Rui; #781906]
 | 
			
		||||
* Misc. bug fixes [Florian, Jason, Miguel, Carlos, Jonas; #783502, #784009,
 | 
			
		||||
  #784223, #784272, #784402, #784881, #762083, #784867, #781723]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Miguel A. Vico, Emmanuele Bassi, Carlos Garnacho, Jason Gerecke,
 | 
			
		||||
  Rui Matos, Florian Müllner, Marco Trevisan (Treviño)
 | 
			
		||||
 | 
			
		||||
3.25.3
 | 
			
		||||
======
 | 
			
		||||
* Ignore hotplug-mode-update value on startup [Marco; #783073]
 | 
			
		||||
* Implement configurable monitor scales on X11 [Jonas; #777732]
 | 
			
		||||
* Fix handling of tiled monitors [Jonas; #781723]
 | 
			
		||||
* Handle multiple keycodes for keysym [Christian; #781223]
 | 
			
		||||
* Consider subsurfaces when grabbing [mindtree; #781811]
 | 
			
		||||
* Fix logic for HiPDPI scaling of TV outputs [Christian; #777347]
 | 
			
		||||
* Fix handling of left-handed mode on pen/eraser devices [Carlos; #782027]
 | 
			
		||||
* Fix output cycling in non-display-attached tablets [Carlos; #782032]
 | 
			
		||||
* Fix wacom cursor offset on wayland [Jason; #784009]
 | 
			
		||||
* Handle EXIF orientation of backgrounds [Silvère; #783125]
 | 
			
		||||
* Misc. bug fixes [Piotr, Tim, Bastien, Jonas, Florian, Benoit, Carlos; #772218,
 | 
			
		||||
  #783161, #780407, #783113, #783293, #783505, #781703]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  mitchmindtree, Jonas Ådahl, Ikey Doherty, Piotr Drąg, Carlos Garnacho,
 | 
			
		||||
  Jason Gerecke, Benoit Gschwind, Christian Kellner, Silvère Latchurié,
 | 
			
		||||
  Tim Lunn, Florian Müllner, Bastien Nocera, Marco Trevisan (Treviño)
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Fabio Tomat [fur], Kukuh Syafaat [id], Khaled Hosny [ar],
 | 
			
		||||
  Daniel Mustieles [es]
 | 
			
		||||
 | 
			
		||||
3.25.2
 | 
			
		||||
======
 | 
			
		||||
* Fix frame updates on hide-titlebar-when-maximized changes [Florian; #781862]
 | 
			
		||||
* Fix accessible screen coordinates on X11 [Florian; #781902]
 | 
			
		||||
* Use less CPU when rendering fast-updating windows [Carlos, Emmanuele; #782344]
 | 
			
		||||
* Compute geometry of clients that don't set one explicitly [Olivier; #782213]
 | 
			
		||||
* Fix copy+paste of UTF8 strings between X11 and wayland [Carlos; #782472]
 | 
			
		||||
* Fix non-wayland builds [Chris; #780533]
 | 
			
		||||
* Add plugin vfunc to implement a custom force-quit dialog [Carlos; #711619]
 | 
			
		||||
* Fix swapped red and blue channels in CoglTexture data [Carlos; #779234
 | 
			
		||||
* Fix build where libtool's link_all_deplibs defaults to 'no' [Marco; #782821]
 | 
			
		||||
* Fix glitches when opening a window maximized [Olivier; #781353, #782183]
 | 
			
		||||
* Fix wrong cursor after window underneath the pointer changed [Carlos; #755164]
 | 
			
		||||
* Implement support for disable-while-typing option [Evan; #764852]
 | 
			
		||||
* Emit size-change signal when tiling [Alessandro; #782968]
 | 
			
		||||
* Misc. bug fixes [Nigel, Matthias, Jonas; #759085, #780215, #782156, #782152]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Emmanuele Bassi, Alessandro Bono, Olivier Fourdan,
 | 
			
		||||
  Carlos Garnacho, Matthias Liertzer, Florian Müllner, Nigel Taylor,
 | 
			
		||||
  Marco Trevisan (Treviño), Chris Vine, Evan Welsh
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Fabio Tomat [fur], Jordi Mas [ca], Mario Blättermann [de],
 | 
			
		||||
  Emin Tufan Çetin [tr], Balázs Úr [hu]
 | 
			
		||||
 | 
			
		||||
3.25.1
 | 
			
		||||
======
 | 
			
		||||
* Always sync window geometry on state changes [Jonas; #780292]
 | 
			
		||||
* Use EGL instead of GLX when drawing using GLES [Jonas; #771636]
 | 
			
		||||
* Fix HiDPI detection on vertical monitor layouts [Carlos; #777687]
 | 
			
		||||
* Get double-click timing from desktop mouse settings [Armin; #771576]
 | 
			
		||||
* Scale relative motion deltas with monitor scale [Jonas, Carlos; #778119]
 | 
			
		||||
* Use texture fallback when setting hardware cursor fails [Jente; #770020]
 | 
			
		||||
* Fix lock-up when using additional theme variants [Shantanu; #780254]
 | 
			
		||||
* Rework low-level monitor configuration [Jonas; #777732]
 | 
			
		||||
* Fix building with GLES2 instead of GL [Mario; #781398]
 | 
			
		||||
* Misc. bug fixes [Jonas, Piotr, Philip; #780304, #772218, #781242, #781391]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Philip Chimento, Piotr Drąg, Carlos Garnacho, Shantanu Goel,
 | 
			
		||||
  Jente Hidskes, Armin Krezović, Rui Matos, Florian Müllner, Mario Sanchez Prada
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Yuras Shumovich [be], Yosef Or Boczko [he], Tom Tryfonidis [el],
 | 
			
		||||
  Fabio Tomat [fur], Kukuh Syafaat [id]
 | 
			
		||||
 | 
			
		||||
3.24.0
 | 
			
		||||
======
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Yuri Myasoedov [ru], Rūdolfs Mazurs [lv], Jordi Mas [ca]
 | 
			
		||||
 | 
			
		||||
3.23.92
 | 
			
		||||
=======
 | 
			
		||||
* Properly handle EGLOutput acquire errors [Jonas, Miguel; #779112]
 | 
			
		||||
* Fix crash when a window closes during Alt+Tab [Rui; #779483]
 | 
			
		||||
* Implement DnD handling code in wayland [Hyungwon; #765003]
 | 
			
		||||
* Fix fallout from pixel conversion optimization in 3.23.91 [Carlos; #779234]
 | 
			
		||||
* Fix mouse input stopping to work in applications [Carlos; #763246]
 | 
			
		||||
* Fix DnD between QT5 and GTK3 applications on wayland [Carlos; #779757]
 | 
			
		||||
* Make EDID reading less fragile [Jonas; #779837]
 | 
			
		||||
* Add support for tablet grouping [Carlos; #779986]
 | 
			
		||||
* Misc. bug fixes and cleanups [Rui, Jonas; #779436, #779001, #779745]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Miguel A. Vico, Olivier Fourdan, Carlos Garnacho,
 | 
			
		||||
  Hyungwon Hwang, Rui Matos
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Chao-Hsiung Liao [zh_TW], Sveinn í Felli [is], Ask Hjorth Larsen [da],
 | 
			
		||||
  Changwoo Ryu [ko], Aurimas Černius [lt], GNOME Translation Robot [gd],
 | 
			
		||||
  Marek Černocký [cs], Fran Dieguez [gl], Dušan Kazik [sk]
 | 
			
		||||
 | 
			
		||||
3.23.91
 | 
			
		||||
=======
 | 
			
		||||
* Give libinput read-only access to /sys [Carlos; #778472]
 | 
			
		||||
* Allow edge-scrolling without 2-finger-scroll capable devices [Rui; #778554]
 | 
			
		||||
* Fullscreen windows on the requested monitor on wayland [Rui; #772525]
 | 
			
		||||
* Implement threaded swap_event fallback for NVIDIA driver [Owen; #779039]
 | 
			
		||||
* Avoid pixel conversions when storing textures from cairo [Carlos; #779234]
 | 
			
		||||
* Misc. bug fixes [Piotr, Rui, Florian; #772218, #776919, #778831, #642652]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Piotr Drąg, Carlos Garnacho, Rui Matos, Florian Müllner, Owen W. Taylor
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Inaki Larranaga Murgoitio [eu], Daniel Mustieles [es], Claude Paroz [fr],
 | 
			
		||||
  Mario Blättermann [de], Kjartan Maraas [nb], Piotr Drąg [pl],
 | 
			
		||||
  Andika Triwidada [id], Anders Jonsson [sv], Milo Casagrande [it],
 | 
			
		||||
  Fabio Tomat [fur], Rafael Fontenelle [pt_BR],
 | 
			
		||||
  Мирослав Николић [sr, sr@latin], Balázs Meskó [hu], Chao-Hsiung Liao [zh_TW]
 | 
			
		||||
 | 
			
		||||
3.23.90
 | 
			
		||||
=======
 | 
			
		||||
* Fix window menu placement with HiDPI [Jonas; #776055]
 | 
			
		||||
* Improve EGLStream support [Jonas; #773629]
 | 
			
		||||
* Start moving low-level monitor configuration into mutter [Jonas; #777732]
 | 
			
		||||
* Fix erroneous key event repeats [Rui; #774989]
 | 
			
		||||
* Don't hardcode seat ID in ClutterDeviceManager [Carlos; #778092]
 | 
			
		||||
* Fix "ghost" cursors in multi-monitor setups [Jonas; #771056]
 | 
			
		||||
* Use eglGetPlatformDisplay [Adam; #772422]
 | 
			
		||||
* Fix erratic raise_or_lower behavior [Jose; #705200]
 | 
			
		||||
* Fix coordinate mapping of absolute devices [Carlos; #774115]
 | 
			
		||||
* Show OSD on tablet mode switches [Carlos; #771098]
 | 
			
		||||
* Make mutter libs parallel installable [Jonas; #777317]
 | 
			
		||||
* Only apply keymap when not running nested [Jonas; #777800]
 | 
			
		||||
* Set right scale for tablet tool cursors on HiDPI [Carlos; #778474]
 | 
			
		||||
* Adjust server-side shadows to match Adwaita [Juraj; #744667]
 | 
			
		||||
* Misc. bug fixes [Jonas, Bastien, Carlos, Peter, Lionel, Jeremy, Florian;
 | 
			
		||||
  #774891, #777389, #777691, #778262, #776543, #778684, #778699, #744667]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Jeremy Bicha, Piotr Drąg, Juraj Fiala, Carlos Garnacho,
 | 
			
		||||
  Peter Hutterer, Adam Jackson, Lionel Landwerlin, Jose Marino, Rui Matos,
 | 
			
		||||
  Florian Müllner, Bastien Nocera
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Kjartan Maraas [nb], Mandy Wang [zh_CN], Marek Černocký [cs],
 | 
			
		||||
  Anders Jonsson [sv], Dušan Kazik [sk], Piotr Drąg [pl], Matej Urbančič [sl]
 | 
			
		||||
 | 
			
		||||
3.23.3
 | 
			
		||||
======
 | 
			
		||||
* Fix frequent freezes in multihead setups on wayland [Rui; #774557]
 | 
			
		||||
* Preserve root window mask on XSelectionRequest [Olivier; #776128]
 | 
			
		||||
* Misc. bug fixes [Carlos, Florian, Rui, Olivier; #775478, #774891, #775986,
 | 
			
		||||
  #776036]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Olivier Fourdan, Carlos Garnacho, Rui Matos, Florian Müllner
 | 
			
		||||
 | 
			
		||||
3.23.2
 | 
			
		||||
======
 | 
			
		||||
* Stack docks below other windows on fullscreen monitors [Rui; #772937]
 | 
			
		||||
* Fix popup grabs blocking screen lock on wayland [Rui; #771235]
 | 
			
		||||
* Handle touchpad pinch gestures with more than two fingers [Carlos; #765937]
 | 
			
		||||
* Implement drawing tablet support on X11 [Carlos; #773779]
 | 
			
		||||
* Fix some Wine games starting minimized [Carlos; #774333]
 | 
			
		||||
* Fix switching between two finger- and edge scrolling on wayland [Rui; #771744]
 | 
			
		||||
* Implement support for EGLStream/EGLDevice [Jonas; #773629]
 | 
			
		||||
* Add size_changed vfunc to handle async client size changes [Rui; #770345]
 | 
			
		||||
* Change focus window on clicks with any modifiers [Rui; #746642]
 | 
			
		||||
* Misc. bug fixes and cleanups [Carlos, Daniel, Jonas, Rui; #771067, #774330, #774613,
 | 
			
		||||
  #771297, #774135, #774827, #774923]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Carlos Garnacho, Rui Matos, Florian Müllner, Daniel Stone
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Kjartan Maraas [nb]
 | 
			
		||||
 | 
			
		||||
3.23.1
 | 
			
		||||
======
 | 
			
		||||
* Fix handling of Escape shortcut in force-quit dialog [Landry; #737109]
 | 
			
		||||
* Improve pointer constraints support [Jonas; #771859]
 | 
			
		||||
* Really fix framebuffer capture origin offset [Rui; #771502]
 | 
			
		||||
* Fix session going into idle mode immediately on startup [Rui; #772839]
 | 
			
		||||
* Fix mirror mode with stage views [Rui; #773115]
 | 
			
		||||
* Fall back to X with connectors spread across multiple GPUs [Ray; #771442]
 | 
			
		||||
* Fix various crashes on wayland [Jonas, Carlos; #771646, #771858, #772929]
 | 
			
		||||
* Fix various placement issues on wayland [Olivier, Jonas, Sjoerd; #772729,
 | 
			
		||||
  #768039, #771841, #771841, #773141]
 | 
			
		||||
* Misc. bug fixes [Rui, Jonas, Olivier; #771019, #773116, #772914, #773210]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Rui Matos, Landry MINOZA,
 | 
			
		||||
  Sjoerd Simons, Ray Strode
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Theppitak Karoonboonyanan [th], Kjartan Maraas [nb], Hannie Dumoleyn [nl],
 | 
			
		||||
  liushuyu [zh_CN]
 | 
			
		||||
 | 
			
		||||
3.22.1
 | 
			
		||||
======
 | 
			
		||||
* Fix feedback loop between StClipboard and X11 bridge [Carlos; #760745]
 | 
			
		||||
* Fall back gracefully if DRM plane rotation fails [Carlos; #772512]
 | 
			
		||||
* Approximate native monitor backend behavior to X [Rui; #772176]
 | 
			
		||||
* Fix crash on VT switch on wayland [Jonas; #771646]
 | 
			
		||||
* Expose Flatpak ID for application matching [Florian; #772613, #772614]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Carlos Garnacho, Rui Matos, Florian Müllner, Olav Vitters
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Inaki Larranaga Murgoitio [eu], Milo Casagrande [it]
 | 
			
		||||
 | 
			
		||||
3.22.0
 | 
			
		||||
======
 | 
			
		||||
* Fix wayland crashes [Jonas; #771305, #771345, #770940, #771495]
 | 
			
		||||
* Fix display rotation on wayland [Jonas; #770672]
 | 
			
		||||
* Fix framebuffer capture origin offset [Rui; #771502]
 | 
			
		||||
* Misc. bug fixes [Jonas, Florian, Carlos; #770937, #771536, #771628, #771549]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Carlos Garnacho, Rui Matos, Florian Müllner
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Ask Hjorth Larsen [da], Charles Monzat [fr], Stas Solovey [ru],
 | 
			
		||||
  Tom Tryfonidis [el], David King [en_GB]
 | 
			
		||||
 | 
			
		||||
3.21.92
 | 
			
		||||
=======
 | 
			
		||||
* Fix absolute pointer motion events on wayland [Jonas; #770557]
 | 
			
		||||
* Default to using stage views [Jonas; #770366]
 | 
			
		||||
* Fix animated cursors on wayland [Rui; #749913]
 | 
			
		||||
* Fix various crashes on wayland [Jonas; #757568, #770727, #770992]
 | 
			
		||||
* Fix screen capture for stage views not at (0, 0) [Jonas; #770127]
 | 
			
		||||
* Compress motion events instead of discarding them [Jonas; #771049]
 | 
			
		||||
* Fix XWayland pointer warp emulation [Jonas; #771050]
 | 
			
		||||
* Add common monitor modes in KMS backend [Rui; #744544]
 | 
			
		||||
* Temporarily use g-s-d schemas for tablet configuration [Carlos; #771315]
 | 
			
		||||
* Misc. bug fixes [Jonas, Carlos; #770402, #770647, #770991, #770994, #770929]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Rui Matos, Florian Müllner
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Changwoo Ryu [ko], Baurzhan Muftakhidinov [kk], Anders Jonsson [sv],
 | 
			
		||||
  Tiago Santos [pt], Rafael Fontenelle [pt_BR], Mario Blättermann [de],
 | 
			
		||||
  Alexander Shopov [bg], Rūdolfs Mazurs [lv], Fran Dieguez [gl],
 | 
			
		||||
  Trần Ngọc Quân [vi], Piotr Drąg [pl], Мирослав Николић [sr, sr@latin]
 | 
			
		||||
 | 
			
		||||
3.21.91
 | 
			
		||||
=======
 | 
			
		||||
* Add support for xdg-foreign protocol [Jonas; #769786]
 | 
			
		||||
* Support monitor rotation on wayland [Carlos; #745079]
 | 
			
		||||
* Port xdg-shell implementation to unstable v6 [Jonas; #769936]
 | 
			
		||||
* Handle unsupported buffer sizes more gracefully [Olivier; #770387]
 | 
			
		||||
* Use the same output naming logic as the X server on wayland [Rui; #770338]
 | 
			
		||||
* Fix replies in gnome-shell's chat notifications on wayland [Florian; #758167]
 | 
			
		||||
* Misc. bug fixes and cleanups [Bastien, Sjoerd, Jonas; #769276, #769636,
 | 
			
		||||
  #770131, #770324, #769731]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Olivier Fourdan, Carlos Garnacho, Rui Matos, Florian Müllner,
 | 
			
		||||
  Bastien Nocera, Sjoerd Simons
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Piotr Drąg [pl], Mario Blättermann [de], Andika Triwidada [id],
 | 
			
		||||
  Enrico Nicoletto [pt_BR], Мирослав Николић [sr, sr@latin]
 | 
			
		||||
 | 
			
		||||
3.21.90
 | 
			
		||||
=======
 | 
			
		||||
* 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]
 | 
			
		||||
* Improve X11 <-> wayland copy and paste interaction [Carlos; #768007]
 | 
			
		||||
* Add support for NV_robustness_video_memory_purge extension [Rui; #739178]
 | 
			
		||||
* Fix restoring the old focused window on restart [Owen; #766243]
 | 
			
		||||
* Fix fullscreen windows on other monitors stealing focus after closing
 | 
			
		||||
  a window [Rui; #768221]
 | 
			
		||||
* Draw monitor content to individual framebuffer [Jonas; #768976]
 | 
			
		||||
* Provide screen capture API [Jonas; #768978]
 | 
			
		||||
* Misc. bug fixes and cleanups [Rui, Owen, Luca, Olivier, Jonas, Carlos;
 | 
			
		||||
  #767969, #768243, #762407, #767997, #768039, #768977, #768977]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Luca Bruno, Olivier Fourdan, Carlos Garnacho, Rui Matos,
 | 
			
		||||
  Florian Müllner, Owen W. Taylor
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Andika Triwidada [id]
 | 
			
		||||
 | 
			
		||||
3.21.3
 | 
			
		||||
======
 | 
			
		||||
* Don't create invalid UTF-8 window description strings [Rui; #765535]
 | 
			
		||||
* Convert window titles and wm_class to UTF-8 [Rui; #752788]
 | 
			
		||||
* Communicate tiled state to GTK+ on wayland [Olivier; #766860]
 | 
			
		||||
* Use kill() to force-quit unresponsive wayland clients [Olivier; #767464]
 | 
			
		||||
* Fix window position when unmaximizing via DND on wayland [Olivier; #764180]
 | 
			
		||||
* Avoid full window redraws when using extended frame sync [Florian; #767798]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Olivier Fourdan, Rui Matos, Florian Müllner
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Cédric Valmary [oc]
 | 
			
		||||
 | 
			
		||||
3.21.2
 | 
			
		||||
======
 | 
			
		||||
* Clean up surface <-> shell interaction [Jonas; #763431]
 | 
			
		||||
* Fix grabbing random keys for disabled shortcuts [Rui; #766270]
 | 
			
		||||
* Fix stacking of hidden windows on wayland [Rui; #764844]
 | 
			
		||||
* Misc. bug fixes [Victor, Florian, Marek, Rui; #766306, #766326, #751847,
 | 
			
		||||
  #763832, #766528]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Emmanuele Bassi, Marek Chalupa, Matthias Clasen,
 | 
			
		||||
  Carlos Garnacho, Rui Matos, Florian Müllner, Victor Toso
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  Tiago Santos [pt], Cédric Valmary [oc], Muhammet Kara [tr]
 | 
			
		||||
 | 
			
		||||
3.21.1
 | 
			
		||||
======
 | 
			
		||||
* Notify clients of pending modifier state changes [Rui; #748526]
 | 
			
		||||
* Add get_is_builtin_display_on() method [Florian; #765267]
 | 
			
		||||
* Fix 2-finger titlebar taps on wayland [Carlos; #764519]
 | 
			
		||||
* Merge clutter and cogl forks into mutter [Rui; #760439]
 | 
			
		||||
* Misc. bug fixes [Florian, Victor, Jonas; #765058, #765252, #765062]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Jonas Ådahl, Emmanuele Bassi, Olivier Fourdan, Carlos Garnacho, Rui Matos,
 | 
			
		||||
  Florian Müllner, Victor Toso, Rico Tzschichholz
 | 
			
		||||
 | 
			
		||||
Translations:
 | 
			
		||||
  GNOME Translation Robot [ja, gd]
 | 
			
		||||
 | 
			
		||||
3.20.1
 | 
			
		||||
======
 | 
			
		||||
* Constrain window move/resizes on wayland as on X11 [Rui; #748819]
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										31
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								README.md
									
									
									
									
									
								
							@@ -1,31 +0,0 @@
 | 
			
		||||
# Mutter
 | 
			
		||||
 | 
			
		||||
Mutter is a Wayland display server and X11 window manager and compositor library.
 | 
			
		||||
 | 
			
		||||
When used as a Wayland display server, it runs on top of KMS and libinput. It
 | 
			
		||||
implements the compositor side of the Wayland core protocol as well as various
 | 
			
		||||
protocol extensions. It also has functionality related to running X11
 | 
			
		||||
applications using Xwayland.
 | 
			
		||||
 | 
			
		||||
When used on top of Xorg it acts as a X11 window manager and compositing manager.
 | 
			
		||||
 | 
			
		||||
It contains functionality related to, among other things, window management,
 | 
			
		||||
window compositing, focus tracking, workspace management, keybindings and
 | 
			
		||||
monitor configuration.
 | 
			
		||||
 | 
			
		||||
Internally it uses a fork of Cogl, a hardware acceleration abstraction library
 | 
			
		||||
used to simplify usage of OpenGL pipelines, as well as a fork af Clutter, a
 | 
			
		||||
scene graph and user interface toolkit.
 | 
			
		||||
 | 
			
		||||
Mutter is used by, for example, GNOME Shell, the GNOME core user interface, and
 | 
			
		||||
by  Gala, elementary OS's window manager. It can also be run standalone, using
 | 
			
		||||
the  command "mutter", but just running plain mutter is only intended for
 | 
			
		||||
debugging purposes.
 | 
			
		||||
 | 
			
		||||
## License
 | 
			
		||||
 | 
			
		||||
Mutter is distributed under the terms of the GNU General Public License,
 | 
			
		||||
version 2 or later. See the [COPYING][license] file for detalis.
 | 
			
		||||
 | 
			
		||||
[bug-tracker]: https://gitlab.gnome.org/GNOME/mutter/issues
 | 
			
		||||
[license]: COPYING
 | 
			
		||||
							
								
								
									
										24
									
								
								autogen.sh
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								autogen.sh
									
									
									
									
									
								
							@@ -6,22 +6,16 @@ test -z "$srcdir" && srcdir=.
 | 
			
		||||
 | 
			
		||||
REQUIRED_AUTOMAKE_VERSION=1.11
 | 
			
		||||
 | 
			
		||||
olddir="$(pwd)"
 | 
			
		||||
 | 
			
		||||
cd "${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
 | 
			
		||||
autoreconf --verbose --force --install || exit 1
 | 
			
		||||
 | 
			
		||||
cd "${olddir}"
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								clutter/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								clutter/.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -18,15 +18,16 @@ stamp-enum-types
 | 
			
		||||
stamp-marshal
 | 
			
		||||
tags
 | 
			
		||||
/ChangeLog*
 | 
			
		||||
clutter-build-config.h
 | 
			
		||||
clutter-build-config.h.in
 | 
			
		||||
clutter-config.h
 | 
			
		||||
clutter-enum-types.[ch]
 | 
			
		||||
clutter-marshal.[ch]
 | 
			
		||||
gcov-report.txt
 | 
			
		||||
clutter-json.h
 | 
			
		||||
clutter-lcov.info
 | 
			
		||||
clutter-lcov
 | 
			
		||||
/clutter/clutter-config.h
 | 
			
		||||
/clutter/clutter-enum-types.[ch]
 | 
			
		||||
/clutter/clutter-marshal.[ch]
 | 
			
		||||
/clutter/clutter-version.h
 | 
			
		||||
/clutter/gcov-report.txt
 | 
			
		||||
/clutter/clutter-json.h
 | 
			
		||||
/clutter/*.log
 | 
			
		||||
/clutter/*.trs
 | 
			
		||||
/clutter-lcov.info
 | 
			
		||||
/clutter-lcov
 | 
			
		||||
!/build/autotools/introspection.m4
 | 
			
		||||
!/build/autotools/as-linguas.m4
 | 
			
		||||
!/build/autotools/as-compiler-flag.m4
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,11 @@ NULL =
 | 
			
		||||
 | 
			
		||||
SUBDIRS = build clutter tests
 | 
			
		||||
 | 
			
		||||
DIST_SUBDIRS = clutter tests build
 | 
			
		||||
if BUILD_EXAMPLES
 | 
			
		||||
SUBDIRS += examples
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
DIST_SUBDIRS = clutter tests examples build
 | 
			
		||||
 | 
			
		||||
# XXX - this is a massive hack to make autoreconf honour the ACLOCAL_FLAGS
 | 
			
		||||
# that jhbuild sets while still retaining build/autotools as the authoritative
 | 
			
		||||
 
 | 
			
		||||
@@ -10,20 +10,25 @@ EXTRA_DIST =
 | 
			
		||||
BUILT_SOURCES =
 | 
			
		||||
 | 
			
		||||
AM_CPPFLAGS = \
 | 
			
		||||
	-DCLUTTER_PREFIX=\""$(prefix)"\"	\
 | 
			
		||||
	-DCLUTTER_LIBDIR=\""$(libdir)"\"	\
 | 
			
		||||
	-DCLUTTER_DATADIR=\""$(datadir)"\"	\
 | 
			
		||||
	-DCLUTTER_LOCALEDIR=\""$(localedir)"\"	\
 | 
			
		||||
	-DCLUTTER_SYSCONFDIR=\""$(sysconfdir)"\" \
 | 
			
		||||
	-DCLUTTER_COMPILATION=1			\
 | 
			
		||||
	-DCOGL_ENABLE_EXPERIMENTAL_API		\
 | 
			
		||||
	-DCOGL_DISABLE_DEPRECATION_WARNINGS	\
 | 
			
		||||
	-DG_LOG_DOMAIN=\"Clutter\" 		\
 | 
			
		||||
	-fvisibility=hidden			\
 | 
			
		||||
	-I$(top_srcdir) 			\
 | 
			
		||||
	-I$(top_srcdir)/clutter			\
 | 
			
		||||
	-I$(top_srcdir)/clutter/cally		\
 | 
			
		||||
	-I$(top_builddir)			\
 | 
			
		||||
	-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)	\
 | 
			
		||||
	$(NULL)
 | 
			
		||||
 | 
			
		||||
AM_CFLAGS = $(CLUTTER_CFLAGS) $(MAINTAINER_CFLAGS)
 | 
			
		||||
@@ -32,7 +37,7 @@ AM_CFLAGS = $(CLUTTER_CFLAGS) $(MAINTAINER_CFLAGS)
 | 
			
		||||
INTROSPECTION_GIRS =
 | 
			
		||||
 | 
			
		||||
# the base include path for headers
 | 
			
		||||
clutter_base_includedir = $(includedir)/mutter-$(LIBMUTTER_API_VERSION)/clutter
 | 
			
		||||
clutter_base_includedir = $(includedir)/mutter/clutter-$(CLUTTER_API_VERSION)
 | 
			
		||||
clutter_includedir = $(clutter_base_includedir)/clutter
 | 
			
		||||
clutter_deprecateddir = $(clutter_base_includedir)/clutter/deprecated
 | 
			
		||||
 | 
			
		||||
@@ -57,6 +62,7 @@ source_h =					\
 | 
			
		||||
	clutter-canvas.h		\
 | 
			
		||||
	clutter-child-meta.h		\
 | 
			
		||||
	clutter-click-action.h	\
 | 
			
		||||
	clutter-cogl-compat.h 	\
 | 
			
		||||
	clutter-clone.h		\
 | 
			
		||||
	clutter-color-static.h	\
 | 
			
		||||
	clutter-color.h		\
 | 
			
		||||
@@ -81,9 +87,6 @@ source_h =					\
 | 
			
		||||
	clutter-group.h 		\
 | 
			
		||||
	clutter-image.h		\
 | 
			
		||||
	clutter-input-device.h	\
 | 
			
		||||
	clutter-input-device-tool.h	\
 | 
			
		||||
	clutter-input-focus.h	\
 | 
			
		||||
	clutter-input-method.h	\
 | 
			
		||||
        clutter-interval.h            \
 | 
			
		||||
	clutter-keyframe-transition.h	\
 | 
			
		||||
	clutter-keysyms.h 		\
 | 
			
		||||
@@ -120,7 +123,6 @@ source_h =					\
 | 
			
		||||
	clutter-transition.h		\
 | 
			
		||||
	clutter-types.h		\
 | 
			
		||||
	clutter-units.h 		\
 | 
			
		||||
	clutter-virtual-input-device.h	\
 | 
			
		||||
	clutter-zoom-action.h		\
 | 
			
		||||
	$(NULL)
 | 
			
		||||
 | 
			
		||||
@@ -165,10 +167,6 @@ source_c = \
 | 
			
		||||
	clutter-grid-layout.c 	\
 | 
			
		||||
	clutter-image.c		\
 | 
			
		||||
	clutter-input-device.c	\
 | 
			
		||||
	clutter-input-device-tool.c	\
 | 
			
		||||
	clutter-input-focus.c	\
 | 
			
		||||
	clutter-input-method.c	\
 | 
			
		||||
	clutter-virtual-input-device.c	\
 | 
			
		||||
	clutter-interval.c            \
 | 
			
		||||
	clutter-keyframe-transition.c	\
 | 
			
		||||
	clutter-keysyms-table.c	\
 | 
			
		||||
@@ -228,8 +226,6 @@ source_h_priv = \
 | 
			
		||||
	clutter-flatten-effect.h		\
 | 
			
		||||
	clutter-gesture-action-private.h	\
 | 
			
		||||
	clutter-id-pool.h 			\
 | 
			
		||||
	clutter-input-focus-private.h		\
 | 
			
		||||
	clutter-input-method-private.h		\
 | 
			
		||||
	clutter-master-clock.h			\
 | 
			
		||||
	clutter-master-clock-default.h		\
 | 
			
		||||
	clutter-offscreen-effect-private.h	\
 | 
			
		||||
@@ -240,7 +236,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)
 | 
			
		||||
 | 
			
		||||
@@ -249,7 +244,6 @@ source_c_priv = \
 | 
			
		||||
	clutter-easing.c		\
 | 
			
		||||
	clutter-event-translator.c	\
 | 
			
		||||
	clutter-id-pool.c 		\
 | 
			
		||||
	clutter-stage-view.c		\
 | 
			
		||||
	$(NULL)
 | 
			
		||||
 | 
			
		||||
# deprecated installed headers
 | 
			
		||||
@@ -271,6 +265,7 @@ deprecated_h = \
 | 
			
		||||
	deprecated/clutter-box.h			\
 | 
			
		||||
	deprecated/clutter-cairo-texture.h		\
 | 
			
		||||
	deprecated/clutter-container.h		\
 | 
			
		||||
	deprecated/clutter-fixed.h			\
 | 
			
		||||
	deprecated/clutter-frame-source.h		\
 | 
			
		||||
	deprecated/clutter-group.h			\
 | 
			
		||||
	deprecated/clutter-input-device.h		\
 | 
			
		||||
@@ -307,6 +302,7 @@ deprecated_c = \
 | 
			
		||||
	deprecated/clutter-behaviour-scale.c		\
 | 
			
		||||
	deprecated/clutter-box.c			\
 | 
			
		||||
	deprecated/clutter-cairo-texture.c		\
 | 
			
		||||
	deprecated/clutter-fixed.c			\
 | 
			
		||||
	deprecated/clutter-frame-source.c		\
 | 
			
		||||
	deprecated/clutter-group.c 			\
 | 
			
		||||
	deprecated/clutter-input-device-deprecated.c	\
 | 
			
		||||
@@ -350,10 +346,14 @@ built_source_h = \
 | 
			
		||||
DISTCLEANFILES += clutter-config.h
 | 
			
		||||
EXTRA_DIST += clutter-config.h.in
 | 
			
		||||
 | 
			
		||||
# version header
 | 
			
		||||
DISTCLEANFILES += clutter-version.h
 | 
			
		||||
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
 | 
			
		||||
@@ -385,7 +385,6 @@ x11_source_c = \
 | 
			
		||||
	x11/clutter-keymap-x11.c		\
 | 
			
		||||
	x11/clutter-stage-x11.c		\
 | 
			
		||||
	x11/clutter-x11-texture-pixmap.c	\
 | 
			
		||||
	x11/clutter-xkb-a11y-x11.c		\
 | 
			
		||||
	$(NULL)
 | 
			
		||||
 | 
			
		||||
x11_source_h = \
 | 
			
		||||
@@ -400,7 +399,6 @@ x11_source_h_priv = \
 | 
			
		||||
	x11/clutter-keymap-x11.h		\
 | 
			
		||||
	x11/clutter-settings-x11.h		\
 | 
			
		||||
	x11/clutter-stage-x11.h		\
 | 
			
		||||
	x11/clutter-xkb-a11y-x11.h		\
 | 
			
		||||
	$(NULL)
 | 
			
		||||
 | 
			
		||||
x11_source_c_priv = \
 | 
			
		||||
@@ -413,21 +411,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 += \
 | 
			
		||||
	x11/clutter-virtual-input-device-x11.c	\
 | 
			
		||||
	$(NULL)
 | 
			
		||||
 | 
			
		||||
x11_source_h_priv += \
 | 
			
		||||
	x11/clutter-virtual-input-device-x11.h	\
 | 
			
		||||
	$(NULL)
 | 
			
		||||
 | 
			
		||||
backend_source_h += $(x11_source_h)
 | 
			
		||||
@@ -441,10 +429,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 =
 | 
			
		||||
@@ -470,25 +458,21 @@ backend_source_c += $(glx_source_c)
 | 
			
		||||
evdev_c_priv = \
 | 
			
		||||
	evdev/clutter-device-manager-evdev.c	\
 | 
			
		||||
	evdev/clutter-input-device-evdev.c	\
 | 
			
		||||
	evdev/clutter-seat-evdev.c		\
 | 
			
		||||
	evdev/clutter-virtual-input-device-evdev.c	\
 | 
			
		||||
	evdev/clutter-event-evdev.c		\
 | 
			
		||||
	evdev/clutter-input-device-tool-evdev.c	\
 | 
			
		||||
	$(NULL)
 | 
			
		||||
evdev_h_priv = \
 | 
			
		||||
	evdev/clutter-device-manager-evdev.h	\
 | 
			
		||||
	evdev/clutter-input-device-evdev.h	\
 | 
			
		||||
	evdev/clutter-seat-evdev.h		\
 | 
			
		||||
	evdev/clutter-input-device-tool-evdev.h	\
 | 
			
		||||
	evdev/clutter-virtual-input-device-evdev.h	\
 | 
			
		||||
	$(NULL)
 | 
			
		||||
evdev_h = evdev/clutter-evdev.h
 | 
			
		||||
 | 
			
		||||
if SUPPORT_WAYLAND
 | 
			
		||||
backend_source_c_priv += $(evdev_c_priv)
 | 
			
		||||
backend_source_h_priv += $(evdev_h_priv)
 | 
			
		||||
backend_source_h += $(evdev_h)
 | 
			
		||||
 | 
			
		||||
clutterevdev_includedir = $(clutter_includedir)/evdev
 | 
			
		||||
clutterevdev_include_HEADERS = $(evdev_h)
 | 
			
		||||
 | 
			
		||||
backend_source_c += evdev/clutter-xkb-utils.c
 | 
			
		||||
backend_source_h_priv += evdev/clutter-xkb-utils.h
 | 
			
		||||
 | 
			
		||||
@@ -498,8 +482,8 @@ egl_source_h = \
 | 
			
		||||
	egl/clutter-egl.h		\
 | 
			
		||||
	$(NULL)
 | 
			
		||||
 | 
			
		||||
egl_source_h_priv = egl/clutter-backend-eglnative.h
 | 
			
		||||
egl_source_c = egl/clutter-backend-eglnative.c
 | 
			
		||||
egl_source_h_priv = egl/clutter-backend-eglnative.h egl/clutter-stage-eglnative.h
 | 
			
		||||
egl_source_c = egl/clutter-backend-eglnative.c egl/clutter-stage-eglnative.c
 | 
			
		||||
 | 
			
		||||
wayland_compositor_source_h = \
 | 
			
		||||
	wayland/clutter-wayland-compositor.h		\
 | 
			
		||||
@@ -508,11 +492,15 @@ backend_source_h += $(wayland_compositor_source_h)
 | 
			
		||||
backend_source_c += \
 | 
			
		||||
	wayland/clutter-wayland-surface.c
 | 
			
		||||
 | 
			
		||||
wayland_compositor_includedir = $(clutter_includedir)/wayland
 | 
			
		||||
wayland_compositor_include_HEADERS = $(wayland_compositor_source_h)
 | 
			
		||||
 | 
			
		||||
backend_source_h += $(egl_source_h)
 | 
			
		||||
backend_source_c += $(egl_source_c)
 | 
			
		||||
backend_source_h_priv += $(egl_source_h_priv)
 | 
			
		||||
 | 
			
		||||
endif # SUPPORT_WAYLAND
 | 
			
		||||
clutteregl_includedir = $(clutter_includedir)/egl
 | 
			
		||||
clutteregl_include_HEADERS = $(egl_source_h)
 | 
			
		||||
 | 
			
		||||
# cally
 | 
			
		||||
cally_sources_h = \
 | 
			
		||||
@@ -568,23 +556,23 @@ pkgconfigdir = $(libdir)/pkgconfig
 | 
			
		||||
pkgconfig_DATA = $(pc_files)
 | 
			
		||||
DISTCLEANFILES += $(pc_files)
 | 
			
		||||
 | 
			
		||||
clutter_include_HEADERS = $(source_h) clutter.h clutter-autocleanups.h clutter-mutter.h
 | 
			
		||||
clutter_include_HEADERS = $(source_h) clutter.h clutter-version.h clutter-autocleanups.h
 | 
			
		||||
nodist_clutter_include_HEADERS = clutter-config.h $(built_source_h)
 | 
			
		||||
 | 
			
		||||
clutter_deprecated_HEADERS = $(deprecated_h)
 | 
			
		||||
 | 
			
		||||
mutterlibdir = $(libdir)/mutter-@LIBMUTTER_API_VERSION@
 | 
			
		||||
mutterlib_LTLIBRARIES = libmutter-clutter-@LIBMUTTER_API_VERSION@.la
 | 
			
		||||
mutterlibdir = $(libdir)/mutter
 | 
			
		||||
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) \
 | 
			
		||||
@@ -602,12 +590,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 \
 | 
			
		||||
@@ -621,13 +609,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
 | 
			
		||||
@@ -635,65 +623,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=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-clutter-@LIBMUTTER_API_VERSION@ \
 | 
			
		||||
	--include-uninstalled=$(top_builddir)/clutter/Clutter-@LIBMUTTER_API_VERSION@.gir
 | 
			
		||||
	--pkg-export=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=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.
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,6 @@ stamp-marshal: $(marshal_list)
 | 
			
		||||
	$(AM_V_GEN)$(GLIB_GENMARSHAL) \
 | 
			
		||||
		--prefix=$(glib_marshal_prefix) \
 | 
			
		||||
		--header \
 | 
			
		||||
		--valist-marshallers \
 | 
			
		||||
	$(marshal_list) > xgen-mh \
 | 
			
		||||
	&& (cmp -s xgen-mh $(marshal_h) || cp -f xgen-mh $(marshal_h)) \
 | 
			
		||||
	&& rm -f xgen-mh \
 | 
			
		||||
@@ -44,11 +43,10 @@ $(marshal_h): stamp-marshal
 | 
			
		||||
	@true
 | 
			
		||||
 | 
			
		||||
$(marshal_c): $(marshal_h)
 | 
			
		||||
	$(AM_V_GEN)$(GLIB_GENMARSHAL) \
 | 
			
		||||
	$(AM_V_GEN)(echo "#include \"$(marshal_h)\"" ; \
 | 
			
		||||
	$(GLIB_GENMARSHAL) \
 | 
			
		||||
		--prefix=$(glib_marshal_prefix) \
 | 
			
		||||
		--body \
 | 
			
		||||
		--valist-marshallers \
 | 
			
		||||
		--prototypes \
 | 
			
		||||
	$(marshal_list) > xgen-mc \
 | 
			
		||||
	&& (cmp -s xgen-mc $(marshal_c) || cp -f xgen-mc $(marshal_c)) \
 | 
			
		||||
	$(marshal_list)) > xgen-mc \
 | 
			
		||||
	&& cp xgen-mc $(marshal_c) \
 | 
			
		||||
	&& rm -f xgen-mc
 | 
			
		||||
 
 | 
			
		||||
@@ -67,7 +67,9 @@
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <glib.h>
 | 
			
		||||
#include <clutter/clutter.h>
 | 
			
		||||
@@ -779,7 +781,7 @@ _cally_actor_get_top_level_origin (ClutterActor *actor,
 | 
			
		||||
                   "position of the stage");
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
#endif
 | 
			
		||||
#else
 | 
			
		||||
    {
 | 
			
		||||
      static gboolean yet_warned = FALSE;
 | 
			
		||||
 | 
			
		||||
@@ -791,6 +793,7 @@ _cally_actor_get_top_level_origin (ClutterActor *actor,
 | 
			
		||||
                     "atk_component_get_extents() with ATK_XY_SCREEN.");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  if (xp)
 | 
			
		||||
    *xp = x;
 | 
			
		||||
 
 | 
			
		||||
@@ -126,19 +126,19 @@ struct _CallyActorClass
 | 
			
		||||
  gpointer _padding_dummy[32];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType      cally_actor_get_type              (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
AtkObject* cally_actor_new                   (ClutterActor        *actor);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
guint      cally_actor_add_action            (CallyActor          *cally_actor,
 | 
			
		||||
                                              const gchar         *action_name,
 | 
			
		||||
                                              const gchar         *action_description,
 | 
			
		||||
                                              const gchar         *action_keybinding,
 | 
			
		||||
                                              CallyActionFunc      action_func);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_6
 | 
			
		||||
guint      cally_actor_add_action_full       (CallyActor          *cally_actor,
 | 
			
		||||
                                              const gchar         *action_name,
 | 
			
		||||
                                              const gchar         *action_description,
 | 
			
		||||
@@ -147,11 +147,11 @@ guint      cally_actor_add_action_full       (CallyActor          *cally_actor,
 | 
			
		||||
                                              gpointer             user_data,
 | 
			
		||||
                                              GDestroyNotify       notify);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
gboolean   cally_actor_remove_action         (CallyActor          *cally_actor,
 | 
			
		||||
                                              gint                 action_id);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
gboolean   cally_actor_remove_action_by_name (CallyActor          *cally_actor,
 | 
			
		||||
                                              const gchar         *action_name);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -69,7 +69,7 @@
 | 
			
		||||
 * a11y POV should still be managed as a image (with the proper properties,
 | 
			
		||||
 * position, size, etc.).
 | 
			
		||||
 */
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
 | 
			
		||||
#include "cally-clone.h"
 | 
			
		||||
#include "cally-actor-private.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -74,9 +74,9 @@ struct _CallyCloneClass
 | 
			
		||||
  gpointer _padding_dummy[8];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType      cally_clone_get_type (void) G_GNUC_CONST;
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
AtkObject *cally_clone_new      (ClutterActor *actor);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,7 @@
 | 
			
		||||
 * group.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
 | 
			
		||||
#include "cally-group.h"
 | 
			
		||||
#include "cally-actor-private.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -77,9 +77,9 @@ struct _CallyGroupClass
 | 
			
		||||
  gpointer _padding_dummy[8];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType      cally_group_get_type (void) G_GNUC_CONST;
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
AtkObject* cally_group_new      (ClutterActor *actor);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -34,9 +34,9 @@
 | 
			
		||||
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
gboolean cally_get_cally_initialized (void);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
gboolean cally_accessibility_init    (void);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -30,7 +30,7 @@
 | 
			
		||||
 * In particular it sets a proper role for the rectangle.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_DISABLE_DEPRECATION_WARNINGS
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -74,9 +74,9 @@ struct _CallyRectangleClass
 | 
			
		||||
  gpointer _padding_dummy[8];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType      cally_rectangle_get_type (void) G_GNUC_CONST;
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
AtkObject* cally_rectangle_new      (ClutterActor *actor);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -35,7 +35,7 @@
 | 
			
		||||
 * #ClutterStageManager).
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
 | 
			
		||||
#include "cally-root.h"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -74,9 +74,9 @@ struct _CallyRootClass
 | 
			
		||||
  gpointer _padding_dummy[16];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType      cally_root_get_type (void) G_GNUC_CONST;
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
AtkObject *cally_root_new      (void);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,7 @@
 | 
			
		||||
 * being a canvas. Anyway, this is required for applications using
 | 
			
		||||
 * just clutter, or directly #ClutterStage
 | 
			
		||||
 */
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
 | 
			
		||||
#include "cally-stage.h"
 | 
			
		||||
#include "cally-actor-private.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -74,9 +74,9 @@ struct _CallyStageClass
 | 
			
		||||
  gpointer _padding_dummy[16];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType      cally_stage_get_type (void) G_GNUC_CONST;
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
AtkObject *cally_stage_new      (ClutterActor *actor);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,9 @@
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "cally-text.h"
 | 
			
		||||
#include "cally-actor-private.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -74,9 +74,9 @@ struct _CallyTextClass
 | 
			
		||||
  gpointer _padding_dummy[8];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType      cally_text_get_type (void) G_GNUC_CONST;
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
AtkObject* cally_text_new      (ClutterActor *actor);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -30,7 +30,7 @@
 | 
			
		||||
 *
 | 
			
		||||
 * In particular it sets a proper role for the texture.
 | 
			
		||||
 */
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_DISABLE_DEPRECATION_WARNINGS
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -74,9 +74,9 @@ struct _CallyTextureClass
 | 
			
		||||
  gpointer _padding_dummy[8];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType      cally_texture_get_type (void) G_GNUC_CONST;
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
AtkObject *cally_texture_new      (ClutterActor *actor);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,9 @@
 | 
			
		||||
 * available any accessible object.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
@@ -142,7 +144,7 @@ cally_util_get_toolkit_name (void)
 | 
			
		||||
static const gchar *
 | 
			
		||||
cally_util_get_toolkit_version (void)
 | 
			
		||||
{
 | 
			
		||||
  return MUTTER_VERSION;
 | 
			
		||||
  return CLUTTER_VERSION_S;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static guint
 | 
			
		||||
@@ -212,8 +214,6 @@ cally_util_simulate_snooper_install (void)
 | 
			
		||||
                    G_CALLBACK (cally_util_stage_added_cb), cally_key_snooper);
 | 
			
		||||
  g_signal_connect (G_OBJECT (stage_manager), "stage-removed",
 | 
			
		||||
                    G_CALLBACK (cally_util_stage_removed_cb), cally_key_snooper);
 | 
			
		||||
 | 
			
		||||
  g_slist_free (stage_list);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
 
 | 
			
		||||
@@ -74,7 +74,7 @@ struct _CallyUtilClass
 | 
			
		||||
  gpointer _padding_dummy[8];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType cally_util_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
void _cally_util_override_atk_util (void);
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,9 @@
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_DISABLE_DEPRECATION_WARNINGS
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,9 @@
 | 
			
		||||
 * #ClutterAction is available since Clutter 1.4
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "clutter-action.h"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -78,32 +78,32 @@ struct _ClutterActionClass
 | 
			
		||||
  void (* _clutter_action8) (void);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType clutter_action_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
/* ClutterActor API */
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void           clutter_actor_add_action            (ClutterActor  *self,
 | 
			
		||||
                                                    ClutterAction *action);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void           clutter_actor_add_action_with_name  (ClutterActor  *self,
 | 
			
		||||
                                                    const gchar   *name,
 | 
			
		||||
                                                    ClutterAction *action);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void           clutter_actor_remove_action         (ClutterActor  *self,
 | 
			
		||||
                                                    ClutterAction *action);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void           clutter_actor_remove_action_by_name (ClutterActor  *self,
 | 
			
		||||
                                                    const gchar   *name);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterAction *clutter_actor_get_action            (ClutterActor  *self,
 | 
			
		||||
                                                    const gchar   *name);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GList *        clutter_actor_get_actions           (ClutterActor  *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void           clutter_actor_clear_actions         (ClutterActor  *self);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
gboolean       clutter_actor_has_actions           (ClutterActor  *self);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,6 @@
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <math.h>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,9 @@
 | 
			
		||||
 * #ClutterActorMeta is available since Clutter 1.4
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "clutter-actor-meta-private.h"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -97,21 +97,21 @@ struct _ClutterActorMetaClass
 | 
			
		||||
  void (* _clutter_meta7) (void);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType clutter_actor_meta_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void            clutter_actor_meta_set_name     (ClutterActorMeta *meta,
 | 
			
		||||
                                                 const gchar      *name);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
const gchar *   clutter_actor_meta_get_name     (ClutterActorMeta *meta);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void            clutter_actor_meta_set_enabled  (ClutterActorMeta *meta,
 | 
			
		||||
                                                 gboolean          is_enabled);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
gboolean        clutter_actor_meta_get_enabled  (ClutterActorMeta *meta);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterActor *  clutter_actor_meta_get_actor    (ClutterActorMeta *meta);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -605,7 +605,7 @@
 | 
			
		||||
 *   #ClutterActor:reactive property instead of this macro.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
 | 
			
		||||
#include <math.h>
 | 
			
		||||
 | 
			
		||||
@@ -840,8 +840,6 @@ struct _ClutterActorPrivate
 | 
			
		||||
  guint needs_compute_expand        : 1;
 | 
			
		||||
  guint needs_x_expand              : 1;
 | 
			
		||||
  guint needs_y_expand              : 1;
 | 
			
		||||
  guint needs_paint_volume_update   : 1;
 | 
			
		||||
  guint had_effects_on_last_paint_volume_update : 1;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum
 | 
			
		||||
@@ -1094,11 +1092,6 @@ static void clutter_actor_set_child_transform_internal (ClutterActor        *sel
 | 
			
		||||
static void     clutter_actor_realize_internal          (ClutterActor *self);
 | 
			
		||||
static void     clutter_actor_unrealize_internal        (ClutterActor *self);
 | 
			
		||||
 | 
			
		||||
static void clutter_actor_push_in_cloned_branch (ClutterActor *self,
 | 
			
		||||
                                                 gulong        count);
 | 
			
		||||
static void clutter_actor_pop_in_cloned_branch (ClutterActor *self,
 | 
			
		||||
                                                gulong        count);
 | 
			
		||||
 | 
			
		||||
/* Helper macro which translates by the anchor coord, applies the
 | 
			
		||||
   given transformation and then translates back */
 | 
			
		||||
#define TRANSFORM_ABOUT_ANCHOR_COORD(a,m,c,_transform)  G_STMT_START { \
 | 
			
		||||
@@ -1511,8 +1504,6 @@ clutter_actor_real_map (ClutterActor *self)
 | 
			
		||||
 | 
			
		||||
  CLUTTER_ACTOR_SET_FLAGS (self, CLUTTER_ACTOR_MAPPED);
 | 
			
		||||
 | 
			
		||||
  self->priv->needs_paint_volume_update = TRUE;
 | 
			
		||||
 | 
			
		||||
  stage = _clutter_actor_get_stage_internal (self);
 | 
			
		||||
  priv->pick_id = _clutter_stage_acquire_pick_id (CLUTTER_STAGE (stage), self);
 | 
			
		||||
 | 
			
		||||
@@ -2227,46 +2218,25 @@ static void
 | 
			
		||||
clutter_actor_real_pick (ClutterActor       *self,
 | 
			
		||||
			 const ClutterColor *color)
 | 
			
		||||
{
 | 
			
		||||
  CoglFramebuffer *framebuffer = cogl_get_draw_framebuffer ();
 | 
			
		||||
 | 
			
		||||
  /* the default implementation is just to paint a rectangle
 | 
			
		||||
   * with the same size of the actor using the passed color
 | 
			
		||||
   */
 | 
			
		||||
  if (clutter_actor_should_pick_paint (self))
 | 
			
		||||
    {
 | 
			
		||||
      static CoglPipeline *default_pick_pipeline = NULL;
 | 
			
		||||
      ClutterActorBox box = { 0, };
 | 
			
		||||
      CoglPipeline *pick_pipeline;
 | 
			
		||||
      float width, height;
 | 
			
		||||
 | 
			
		||||
      if (G_UNLIKELY (default_pick_pipeline == NULL))
 | 
			
		||||
        {
 | 
			
		||||
          CoglContext *ctx =
 | 
			
		||||
            clutter_backend_get_cogl_context (clutter_get_default_backend ());
 | 
			
		||||
 | 
			
		||||
          default_pick_pipeline = cogl_pipeline_new (ctx);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
      g_assert (default_pick_pipeline != NULL);
 | 
			
		||||
      pick_pipeline = cogl_pipeline_copy (default_pick_pipeline);
 | 
			
		||||
 | 
			
		||||
      clutter_actor_get_allocation_box (self, &box);
 | 
			
		||||
 | 
			
		||||
      width = box.x2 - box.x1;
 | 
			
		||||
      height = box.y2 - box.y1;
 | 
			
		||||
 | 
			
		||||
      cogl_pipeline_set_color4ub (pick_pipeline,
 | 
			
		||||
                                  color->red,
 | 
			
		||||
      cogl_set_source_color4ub (color->red,
 | 
			
		||||
                                color->green,
 | 
			
		||||
                                color->blue,
 | 
			
		||||
                                color->alpha);
 | 
			
		||||
 | 
			
		||||
      cogl_framebuffer_draw_rectangle (framebuffer,
 | 
			
		||||
                                       pick_pipeline,
 | 
			
		||||
                                       0, 0,
 | 
			
		||||
                                       width, height);
 | 
			
		||||
 | 
			
		||||
      cogl_object_unref (pick_pipeline);
 | 
			
		||||
      cogl_rectangle (0, 0, width, height);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  /* XXX - this thoroughly sucks, but we need to maintain compatibility
 | 
			
		||||
@@ -2686,15 +2656,7 @@ _clutter_actor_signal_queue_redraw (ClutterActor *self,
 | 
			
		||||
  _clutter_actor_queue_redraw_on_clones (self);
 | 
			
		||||
 | 
			
		||||
  /* calls klass->queue_redraw in default handler */
 | 
			
		||||
  if (g_signal_has_handler_pending (self, actor_signals[QUEUE_REDRAW],
 | 
			
		||||
                                    0, TRUE))
 | 
			
		||||
    {
 | 
			
		||||
  g_signal_emit (self, actor_signals[QUEUE_REDRAW], 0, origin);
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    {
 | 
			
		||||
      CLUTTER_ACTOR_GET_CLASS (self)->queue_redraw (self, origin);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
@@ -2767,7 +2729,6 @@ clutter_actor_real_queue_relayout (ClutterActor *self)
 | 
			
		||||
  priv->needs_width_request  = TRUE;
 | 
			
		||||
  priv->needs_height_request = TRUE;
 | 
			
		||||
  priv->needs_allocation     = TRUE;
 | 
			
		||||
  priv->needs_paint_volume_update = TRUE;
 | 
			
		||||
 | 
			
		||||
  /* reset the cached size requests */
 | 
			
		||||
  memset (priv->width_requests, 0,
 | 
			
		||||
@@ -2852,7 +2813,7 @@ _clutter_actor_fully_transform_vertices (ClutterActor *self,
 | 
			
		||||
  /* Note: we pass NULL as the ancestor because we don't just want the modelview
 | 
			
		||||
   * that gets us to stage coordinates, we want to go all the way to eye
 | 
			
		||||
   * coordinates */
 | 
			
		||||
  _clutter_actor_get_relative_transformation_matrix (self, NULL, &modelview);
 | 
			
		||||
  _clutter_actor_apply_relative_transformation_matrix (self, NULL, &modelview);
 | 
			
		||||
 | 
			
		||||
  /* Fetch the projection and viewport */
 | 
			
		||||
  _clutter_stage_get_projection_matrix (CLUTTER_STAGE (stage), &projection);
 | 
			
		||||
@@ -4054,11 +4015,7 @@ clutter_actor_continue_paint (ClutterActor *self)
 | 
			
		||||
          clutter_paint_node_unref (dummy);
 | 
			
		||||
 | 
			
		||||
          /* XXX:2.0 - Call the paint() virtual directly */
 | 
			
		||||
          if (g_signal_has_handler_pending (self, actor_signals[PAINT],
 | 
			
		||||
                                            0, TRUE))
 | 
			
		||||
          g_signal_emit (self, actor_signals[PAINT], 0);
 | 
			
		||||
          else
 | 
			
		||||
            CLUTTER_ACTOR_GET_CLASS (self)->paint (self);
 | 
			
		||||
        }
 | 
			
		||||
      else
 | 
			
		||||
        {
 | 
			
		||||
@@ -4072,11 +4029,7 @@ clutter_actor_continue_paint (ClutterActor *self)
 | 
			
		||||
           *
 | 
			
		||||
           * XXX:2.0 - Call the pick() virtual directly
 | 
			
		||||
           */
 | 
			
		||||
          if (g_signal_has_handler_pending (self, actor_signals[PICK],
 | 
			
		||||
                                            0, TRUE))
 | 
			
		||||
          g_signal_emit (self, actor_signals[PICK], 0, &col);
 | 
			
		||||
          else
 | 
			
		||||
            CLUTTER_ACTOR_GET_CLASS (self)->pick (self, &col);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
@@ -4316,9 +4269,6 @@ clutter_actor_remove_child_internal (ClutterActor                 *self,
 | 
			
		||||
 | 
			
		||||
  self->priv->age += 1;
 | 
			
		||||
 | 
			
		||||
  if (self->priv->in_cloned_branch)
 | 
			
		||||
    clutter_actor_pop_in_cloned_branch (child, self->priv->in_cloned_branch);
 | 
			
		||||
 | 
			
		||||
  /* if the child that got removed was visible and set to
 | 
			
		||||
   * expand then we want to reset the parent's state in
 | 
			
		||||
   * case the child was the only thing that was making it
 | 
			
		||||
@@ -8552,7 +8502,6 @@ clutter_actor_init (ClutterActor *self)
 | 
			
		||||
  priv->needs_width_request = TRUE;
 | 
			
		||||
  priv->needs_height_request = TRUE;
 | 
			
		||||
  priv->needs_allocation = TRUE;
 | 
			
		||||
  priv->needs_paint_volume_update = TRUE;
 | 
			
		||||
 | 
			
		||||
  priv->cached_width_age = 1;
 | 
			
		||||
  priv->cached_height_age = 1;
 | 
			
		||||
@@ -9045,7 +8994,7 @@ _clutter_actor_queue_only_relayout (ClutterActor *self)
 | 
			
		||||
      priv->needs_allocation)
 | 
			
		||||
    return; /* save some cpu cycles */
 | 
			
		||||
 | 
			
		||||
#ifdef CLUTTER_ENABLE_DEBUG
 | 
			
		||||
#if CLUTTER_ENABLE_DEBUG
 | 
			
		||||
  if (!CLUTTER_ACTOR_IS_TOPLEVEL (self) && CLUTTER_ACTOR_IN_RELAYOUT (self))
 | 
			
		||||
    {
 | 
			
		||||
      g_warning ("The actor '%s' is currently inside an allocation "
 | 
			
		||||
@@ -10119,9 +10068,6 @@ clutter_actor_allocate (ClutterActor           *self,
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  if (CLUTTER_ACTOR_IS_MAPPED (self))
 | 
			
		||||
    self->priv->needs_paint_volume_update = TRUE;
 | 
			
		||||
 | 
			
		||||
  if (!stage_allocation_changed)
 | 
			
		||||
    {
 | 
			
		||||
      /* If the actor didn't move but needs_allocation is set, we just
 | 
			
		||||
@@ -12940,9 +12886,6 @@ clutter_actor_add_child_internal (ClutterActor              *self,
 | 
			
		||||
 | 
			
		||||
  self->priv->age += 1;
 | 
			
		||||
 | 
			
		||||
  if (self->priv->in_cloned_branch)
 | 
			
		||||
    clutter_actor_push_in_cloned_branch (child, self->priv->in_cloned_branch);
 | 
			
		||||
 | 
			
		||||
  /* if push_internal() has been called then we automatically set
 | 
			
		||||
   * the flag on the actor
 | 
			
		||||
   */
 | 
			
		||||
@@ -13013,9 +12956,6 @@ clutter_actor_add_child_internal (ClutterActor              *self,
 | 
			
		||||
      child->priv->needs_height_request = TRUE;
 | 
			
		||||
      child->priv->needs_allocation = TRUE;
 | 
			
		||||
 | 
			
		||||
      if (CLUTTER_ACTOR_IS_MAPPED (child))
 | 
			
		||||
        child->priv->needs_paint_volume_update = TRUE;
 | 
			
		||||
 | 
			
		||||
      /* we only queue a relayout here, because any possible
 | 
			
		||||
       * redraw has already been queued either by show() or
 | 
			
		||||
       * by our call to queue_redraw() above
 | 
			
		||||
@@ -15211,8 +15151,9 @@ clutter_actor_transform_stage_point (ClutterActor *self,
 | 
			
		||||
   *   http://www.cs.cmu.edu/~ph/src/texfund/
 | 
			
		||||
   *
 | 
			
		||||
   * Our texture is a rectangle with origin [0, 0], so we are mapping from
 | 
			
		||||
   * quad to rectangle only, which significantly simplifies things.
 | 
			
		||||
   * Function calls have been unrolled.
 | 
			
		||||
   * quad to rectangle only, which significantly simplifies things; the
 | 
			
		||||
   * function calls have been unrolled, and most of the math is done in fixed
 | 
			
		||||
   * point.
 | 
			
		||||
   */
 | 
			
		||||
  clutter_actor_get_abs_allocation_vertices (self, v);
 | 
			
		||||
 | 
			
		||||
@@ -17506,7 +17447,7 @@ _clutter_actor_get_paint_volume_real (ClutterActor *self,
 | 
			
		||||
           */
 | 
			
		||||
          effects = _clutter_meta_group_peek_metas (priv->effects);
 | 
			
		||||
          for (l = effects;
 | 
			
		||||
               l != NULL && l->data != priv->current_effect;
 | 
			
		||||
               l != NULL || (l != NULL && l->data != priv->current_effect);
 | 
			
		||||
               l = l->next)
 | 
			
		||||
            {
 | 
			
		||||
              if (!_clutter_effect_get_paint_volume (l->data, pv))
 | 
			
		||||
@@ -17542,32 +17483,6 @@ _clutter_actor_get_paint_volume_real (ClutterActor *self,
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static gboolean
 | 
			
		||||
_clutter_actor_has_active_paint_volume_override_effects (ClutterActor *self)
 | 
			
		||||
{
 | 
			
		||||
  const GList *l;
 | 
			
		||||
 | 
			
		||||
  if (self->priv->effects == NULL)
 | 
			
		||||
    return FALSE;
 | 
			
		||||
 | 
			
		||||
  /* We just need to all effects current effect to see
 | 
			
		||||
   * if anyone wants to override the paint volume. If so, then
 | 
			
		||||
   * we need to recompute, since the paint volume returned can
 | 
			
		||||
   * change from call to call. */
 | 
			
		||||
  for (l = _clutter_meta_group_peek_metas (self->priv->effects);
 | 
			
		||||
       l != NULL;
 | 
			
		||||
       l = l->next)
 | 
			
		||||
    {
 | 
			
		||||
      ClutterEffect *effect = l->data;
 | 
			
		||||
 | 
			
		||||
      if (clutter_actor_meta_get_enabled (CLUTTER_ACTOR_META (effect)) &&
 | 
			
		||||
          _clutter_effect_has_custom_paint_volume (effect))
 | 
			
		||||
        return TRUE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  return FALSE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* The public clutter_actor_get_paint_volume API returns a const
 | 
			
		||||
 * pointer since we return a pointer directly to the cached
 | 
			
		||||
 * PaintVolume associated with the actor and don't want the user to
 | 
			
		||||
@@ -17578,37 +17493,16 @@ _clutter_actor_has_active_paint_volume_override_effects (ClutterActor *self)
 | 
			
		||||
static ClutterPaintVolume *
 | 
			
		||||
_clutter_actor_get_paint_volume_mutable (ClutterActor *self)
 | 
			
		||||
{
 | 
			
		||||
  gboolean has_paint_volume_override_effects;
 | 
			
		||||
  ClutterActorPrivate *priv;
 | 
			
		||||
 | 
			
		||||
  priv = self->priv;
 | 
			
		||||
 | 
			
		||||
  has_paint_volume_override_effects = _clutter_actor_has_active_paint_volume_override_effects (self);
 | 
			
		||||
 | 
			
		||||
  if (priv->paint_volume_valid)
 | 
			
		||||
    {
 | 
			
		||||
      /* If effects are applied, the actor paint volume
 | 
			
		||||
       * needs to be recomputed on each paint, since those
 | 
			
		||||
       * paint volumes could change over the duration of the
 | 
			
		||||
       * effect.
 | 
			
		||||
       *
 | 
			
		||||
       * We also need to update the paint volume if we went
 | 
			
		||||
       * from having effects to not having effects on the last
 | 
			
		||||
       * paint volume update. */
 | 
			
		||||
      if (!priv->needs_paint_volume_update &&
 | 
			
		||||
          priv->current_effect == NULL &&
 | 
			
		||||
          !has_paint_volume_override_effects &&
 | 
			
		||||
          !priv->had_effects_on_last_paint_volume_update)
 | 
			
		||||
        return &priv->paint_volume;
 | 
			
		||||
    clutter_paint_volume_free (&priv->paint_volume);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  priv->had_effects_on_last_paint_volume_update = has_paint_volume_override_effects;
 | 
			
		||||
 | 
			
		||||
  if (_clutter_actor_get_paint_volume_real (self, &priv->paint_volume))
 | 
			
		||||
    {
 | 
			
		||||
      priv->paint_volume_valid = TRUE;
 | 
			
		||||
      priv->needs_paint_volume_update = FALSE;
 | 
			
		||||
      return &priv->paint_volume;
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
@@ -20778,31 +20672,29 @@ clutter_actor_get_child_transform (ClutterActor  *self,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_actor_push_in_cloned_branch (ClutterActor *self,
 | 
			
		||||
                                     gulong        count)
 | 
			
		||||
clutter_actor_push_in_cloned_branch (ClutterActor *self)
 | 
			
		||||
{
 | 
			
		||||
  ClutterActor *iter;
 | 
			
		||||
 | 
			
		||||
  for (iter = self->priv->first_child;
 | 
			
		||||
       iter != NULL;
 | 
			
		||||
       iter = iter->priv->next_sibling)
 | 
			
		||||
    clutter_actor_push_in_cloned_branch (iter, count);
 | 
			
		||||
    clutter_actor_push_in_cloned_branch (iter);
 | 
			
		||||
 | 
			
		||||
  self->priv->in_cloned_branch += count;
 | 
			
		||||
  self->priv->in_cloned_branch += 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_actor_pop_in_cloned_branch (ClutterActor *self,
 | 
			
		||||
                                    gulong        count)
 | 
			
		||||
clutter_actor_pop_in_cloned_branch (ClutterActor *self)
 | 
			
		||||
{
 | 
			
		||||
  ClutterActor *iter;
 | 
			
		||||
 | 
			
		||||
  self->priv->in_cloned_branch -= count;
 | 
			
		||||
  self->priv->in_cloned_branch -= 1;
 | 
			
		||||
 | 
			
		||||
  for (iter = self->priv->first_child;
 | 
			
		||||
       iter != NULL;
 | 
			
		||||
       iter = iter->priv->next_sibling)
 | 
			
		||||
    clutter_actor_pop_in_cloned_branch (iter, count);
 | 
			
		||||
    clutter_actor_pop_in_cloned_branch (iter);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
@@ -20818,7 +20710,7 @@ _clutter_actor_attach_clone (ClutterActor *actor,
 | 
			
		||||
 | 
			
		||||
  g_hash_table_add (priv->clones, clone);
 | 
			
		||||
 | 
			
		||||
  clutter_actor_push_in_cloned_branch (actor, 1);
 | 
			
		||||
  clutter_actor_push_in_cloned_branch (actor);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
@@ -20833,7 +20725,7 @@ _clutter_actor_detach_clone (ClutterActor *actor,
 | 
			
		||||
      g_hash_table_lookup (priv->clones, clone) == NULL)
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  clutter_actor_pop_in_cloned_branch (actor, 1);
 | 
			
		||||
  clutter_actor_pop_in_cloned_branch (actor);
 | 
			
		||||
 | 
			
		||||
  g_hash_table_remove (priv->clones, clone);
 | 
			
		||||
 | 
			
		||||
@@ -21176,7 +21068,6 @@ clutter_actor_bind_model_with_properties (ClutterActor *self,
 | 
			
		||||
 | 
			
		||||
      model_property = va_arg (args, char *);
 | 
			
		||||
    }
 | 
			
		||||
  va_end (args);
 | 
			
		||||
 | 
			
		||||
  clutter_actor_bind_model (self, model, bind_child_with_properties, clos, bind_closure_free);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -61,7 +61,7 @@ G_BEGIN_DECLS
 | 
			
		||||
 *   internal state.
 | 
			
		||||
 */
 | 
			
		||||
#define CLUTTER_ACTOR_SET_FLAGS(a,f) \
 | 
			
		||||
  CLUTTER_MACRO_DEPRECATED \
 | 
			
		||||
  CLUTTER_MACRO_DEPRECATED_IN_1_24 \
 | 
			
		||||
  (((ClutterActor*)(a))->flags |= (f))
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -76,23 +76,23 @@ G_BEGIN_DECLS
 | 
			
		||||
 *   internal state.
 | 
			
		||||
 */
 | 
			
		||||
#define CLUTTER_ACTOR_UNSET_FLAGS(a,f) \
 | 
			
		||||
  CLUTTER_MACRO_DEPRECATED \
 | 
			
		||||
  CLUTTER_MACRO_DEPRECATED_IN_1_24 \
 | 
			
		||||
  (((ClutterActor*)(a))->flags &= ~(f))
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_ACTOR_IS_MAPPED(a) \
 | 
			
		||||
  CLUTTER_MACRO_DEPRECATED_FOR ("Deprecated macro. Use clutter_actor_is_mapped instead") \
 | 
			
		||||
  CLUTTER_MACRO_DEPRECATED_IN_1_24_FOR ("Deprecated macro. Use clutter_actor_is_mapped instead") \
 | 
			
		||||
  ((((ClutterActor*)(a))->flags & CLUTTER_ACTOR_MAPPED) != FALSE)
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_ACTOR_IS_REALIZED(a) \
 | 
			
		||||
  CLUTTER_MACRO_DEPRECATED_FOR ("Deprecated macro. Use clutter_actor_is_realized instead") \
 | 
			
		||||
  CLUTTER_MACRO_DEPRECATED_IN_1_24_FOR ("Deprecated macro. Use clutter_actor_is_realized instead") \
 | 
			
		||||
  ((((ClutterActor*)(a))->flags & CLUTTER_ACTOR_REALIZED) != FALSE)
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_ACTOR_IS_VISIBLE(a) \
 | 
			
		||||
  CLUTTER_MACRO_DEPRECATED_FOR ("Deprecated macro. Use clutter_actor_is_visible instead") \
 | 
			
		||||
  CLUTTER_MACRO_DEPRECATED_IN_1_24_FOR ("Deprecated macro. Use clutter_actor_is_visible instead") \
 | 
			
		||||
  ((((ClutterActor*)(a))->flags & CLUTTER_ACTOR_VISIBLE) != FALSE)
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_ACTOR_IS_REACTIVE(a) \
 | 
			
		||||
  CLUTTER_MACRO_DEPRECATED_FOR ("Deprecated macro. Use clutter_actor_get_reactive instead") \
 | 
			
		||||
  CLUTTER_MACRO_DEPRECATED_IN_1_24_FOR ("Deprecated macro. Use clutter_actor_get_reactive instead") \
 | 
			
		||||
  ((((ClutterActor*)(a))->flags & CLUTTER_ACTOR_REACTIVE) != FALSE)
 | 
			
		||||
 | 
			
		||||
typedef struct _ClutterActorClass    ClutterActorClass;
 | 
			
		||||
@@ -322,97 +322,97 @@ struct _ClutterActorIter
 | 
			
		||||
  gpointer CLUTTER_PRIVATE_FIELD (dummy5);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
GType clutter_actor_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
ClutterActor *                  clutter_actor_new                               (void);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_set_flags                         (ClutterActor                *self,
 | 
			
		||||
                                                                                 ClutterActorFlags            flags);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_unset_flags                       (ClutterActor                *self,
 | 
			
		||||
                                                                                 ClutterActorFlags            flags);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
ClutterActorFlags               clutter_actor_get_flags                         (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_show                              (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_hide                              (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_realize                           (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_unrealize                         (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_map                               (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_unmap                             (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_paint                             (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_continue_paint                    (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_queue_redraw                      (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_queue_redraw_with_clip            (ClutterActor                *self,
 | 
			
		||||
                                                                                 const cairo_rectangle_int_t *clip);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_queue_relayout                    (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_destroy                           (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_set_name                          (ClutterActor                *self,
 | 
			
		||||
                                                                                 const gchar                 *name);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
const gchar *                   clutter_actor_get_name                          (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
AtkObject *                     clutter_actor_get_accessible                    (ClutterActor                *self);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_24
 | 
			
		||||
gboolean                        clutter_actor_is_visible                        (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_24
 | 
			
		||||
gboolean                        clutter_actor_is_mapped                         (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_24
 | 
			
		||||
gboolean                        clutter_actor_is_realized                       (ClutterActor                *self);
 | 
			
		||||
 | 
			
		||||
/* Size negotiation */
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_set_request_mode                  (ClutterActor                *self,
 | 
			
		||||
                                                                                 ClutterRequestMode           mode);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
ClutterRequestMode              clutter_actor_get_request_mode                  (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_get_preferred_width               (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                       for_height,
 | 
			
		||||
                                                                                 gfloat                      *min_width_p,
 | 
			
		||||
                                                                                 gfloat                      *natural_width_p);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_get_preferred_height              (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                       for_width,
 | 
			
		||||
                                                                                 gfloat                      *min_height_p,
 | 
			
		||||
                                                                                 gfloat                      *natural_height_p);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_get_preferred_size                (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                      *min_width_p,
 | 
			
		||||
                                                                                 gfloat                      *min_height_p,
 | 
			
		||||
                                                                                 gfloat                      *natural_width_p,
 | 
			
		||||
                                                                                 gfloat                      *natural_height_p);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_allocate                          (ClutterActor                *self,
 | 
			
		||||
                                                                                 const ClutterActorBox       *box,
 | 
			
		||||
                                                                                 ClutterAllocationFlags       flags);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_allocate_preferred_size           (ClutterActor                *self,
 | 
			
		||||
                                                                                 ClutterAllocationFlags       flags);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_allocate_available_size           (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                       x,
 | 
			
		||||
                                                                                 gfloat                       y,
 | 
			
		||||
                                                                                 gfloat                       available_width,
 | 
			
		||||
                                                                                 gfloat                       available_height,
 | 
			
		||||
                                                                                 ClutterAllocationFlags       flags);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_allocate_align_fill               (ClutterActor                *self,
 | 
			
		||||
                                                                                 const ClutterActorBox       *box,
 | 
			
		||||
                                                                                 gdouble                      x_align,
 | 
			
		||||
@@ -420,449 +420,452 @@ void                            clutter_actor_allocate_align_fill
 | 
			
		||||
                                                                                 gboolean                     x_fill,
 | 
			
		||||
                                                                                 gboolean                     y_fill,
 | 
			
		||||
                                                                                 ClutterAllocationFlags       flags);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_allocation                    (ClutterActor                *self,
 | 
			
		||||
                                                                                 const ClutterActorBox       *box,
 | 
			
		||||
                                                                                 ClutterAllocationFlags       flags);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_get_allocation_box                (ClutterActor                *self,
 | 
			
		||||
                                                                                 ClutterActorBox             *box);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_get_allocation_vertices           (ClutterActor                *self,
 | 
			
		||||
                                                                                 ClutterActor                *ancestor,
 | 
			
		||||
                                                                                 ClutterVertex                verts[]);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gboolean                        clutter_actor_has_allocation                    (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_set_size                          (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                       width,
 | 
			
		||||
                                                                                 gfloat                       height);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_get_size                          (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                      *width,
 | 
			
		||||
                                                                                 gfloat                      *height);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_set_position                      (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                       x,
 | 
			
		||||
                                                                                 gfloat                       y);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_get_position                      (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                      *x,
 | 
			
		||||
                                                                                 gfloat                      *y);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gboolean                        clutter_actor_get_fixed_position_set            (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_set_fixed_position_set            (ClutterActor                *self,
 | 
			
		||||
                                                                                 gboolean                     is_set);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_move_by                           (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                       dx,
 | 
			
		||||
                                                                                 gfloat                       dy);
 | 
			
		||||
 | 
			
		||||
/* Actor geometry */
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gfloat                          clutter_actor_get_width                         (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gfloat                          clutter_actor_get_height                        (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_set_width                         (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                       width);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_set_height                        (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                       height);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gfloat                          clutter_actor_get_x                             (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gfloat                          clutter_actor_get_y                             (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_set_x                             (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                       x);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_set_y                             (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                       y);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void                            clutter_actor_set_z_position                    (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                       z_position);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
gfloat                          clutter_actor_get_z_position                    (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_layout_manager                (ClutterActor                *self,
 | 
			
		||||
                                                                                 ClutterLayoutManager        *manager);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
ClutterLayoutManager *          clutter_actor_get_layout_manager                (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_x_align                       (ClutterActor                *self,
 | 
			
		||||
                                                                                 ClutterActorAlign            x_align);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
ClutterActorAlign               clutter_actor_get_x_align                       (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_y_align                       (ClutterActor                *self,
 | 
			
		||||
                                                                                 ClutterActorAlign            y_align);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
ClutterActorAlign               clutter_actor_get_y_align                       (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_margin_top                    (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                       margin);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
gfloat                          clutter_actor_get_margin_top                    (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_margin_bottom                 (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                       margin);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
gfloat                          clutter_actor_get_margin_bottom                 (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_margin_left                   (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                       margin);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
gfloat                          clutter_actor_get_margin_left                   (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_margin_right                  (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                       margin);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
gfloat                          clutter_actor_get_margin_right                  (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_margin                        (ClutterActor                *self,
 | 
			
		||||
                                                                                 const ClutterMargin         *margin);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_get_margin                        (ClutterActor                *self,
 | 
			
		||||
                                                                                 ClutterMargin               *margin);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void                            clutter_actor_set_x_expand                      (ClutterActor                *self,
 | 
			
		||||
                                                                                 gboolean                     expand);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
gboolean                        clutter_actor_get_x_expand                      (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void                            clutter_actor_set_y_expand                      (ClutterActor                *self,
 | 
			
		||||
                                                                                 gboolean                     expand);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
gboolean                        clutter_actor_get_y_expand                      (ClutterActor                *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
gboolean                        clutter_actor_needs_expand                      (ClutterActor                *self,
 | 
			
		||||
                                                                                 ClutterOrientation           orientation);
 | 
			
		||||
 | 
			
		||||
/* Paint */
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_set_clip                          (ClutterActor                *self,
 | 
			
		||||
                                                                                 gfloat                       xoff,
 | 
			
		||||
                                                                                 gfloat                       yoff,
 | 
			
		||||
                                                                                 gfloat                       width,
 | 
			
		||||
                                                                                 gfloat                       height);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_remove_clip                       (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gboolean                        clutter_actor_has_clip                          (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_get_clip                          (ClutterActor               *self,
 | 
			
		||||
                                                                                 gfloat                     *xoff,
 | 
			
		||||
                                                                                 gfloat                     *yoff,
 | 
			
		||||
                                                                                 gfloat                     *width,
 | 
			
		||||
                                                                                 gfloat                     *height);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_set_clip_to_allocation            (ClutterActor               *self,
 | 
			
		||||
                                                                                 gboolean                    clip_set);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gboolean                        clutter_actor_get_clip_to_allocation            (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_set_opacity                       (ClutterActor               *self,
 | 
			
		||||
                                                                                 guint8                      opacity);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
guint8                          clutter_actor_get_opacity                       (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
guint8                          clutter_actor_get_paint_opacity                 (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gboolean                        clutter_actor_get_paint_visibility              (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_8
 | 
			
		||||
void                            clutter_actor_set_offscreen_redirect            (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterOffscreenRedirect    redirect);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_8
 | 
			
		||||
ClutterOffscreenRedirect        clutter_actor_get_offscreen_redirect            (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gboolean                        clutter_actor_should_pick_paint                 (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gboolean                        clutter_actor_is_in_clone_paint                 (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gboolean                        clutter_actor_get_paint_box                     (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterActorBox            *box);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_8
 | 
			
		||||
gboolean                        clutter_actor_has_overlaps                      (ClutterActor               *self);
 | 
			
		||||
 | 
			
		||||
/* Content */
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_content                       (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterContent             *content);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
ClutterContent *                clutter_actor_get_content                       (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_content_gravity               (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterContentGravity       gravity);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
ClutterContentGravity           clutter_actor_get_content_gravity               (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_content_scaling_filters       (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterScalingFilter        min_filter,
 | 
			
		||||
                                                                                 ClutterScalingFilter        mag_filter);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_get_content_scaling_filters       (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterScalingFilter       *min_filter,
 | 
			
		||||
                                                                                 ClutterScalingFilter       *mag_filter);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void                            clutter_actor_set_content_repeat                (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterContentRepeat        repeat);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
ClutterContentRepeat            clutter_actor_get_content_repeat                (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_get_content_box                   (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterActorBox            *box);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_background_color              (ClutterActor               *self,
 | 
			
		||||
                                                                                 const ClutterColor         *color);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_get_background_color              (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterColor               *color);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_6
 | 
			
		||||
const ClutterPaintVolume *      clutter_actor_get_paint_volume                  (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_6
 | 
			
		||||
const ClutterPaintVolume *      clutter_actor_get_transformed_paint_volume      (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterActor               *relative_to_ancestor);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
const ClutterPaintVolume *      clutter_actor_get_default_paint_volume          (ClutterActor               *self);
 | 
			
		||||
 | 
			
		||||
/* Events */
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_set_reactive                      (ClutterActor               *actor,
 | 
			
		||||
                                                                                 gboolean                    reactive);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gboolean                        clutter_actor_get_reactive                      (ClutterActor               *actor);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gboolean                        clutter_actor_has_key_focus                     (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_grab_key_focus                    (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gboolean                        clutter_actor_event                             (ClutterActor               *actor,
 | 
			
		||||
                                                                                 const ClutterEvent         *event,
 | 
			
		||||
                                                                                 gboolean                    capture);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gboolean                        clutter_actor_has_pointer                       (ClutterActor               *self);
 | 
			
		||||
 | 
			
		||||
/* Text */
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
PangoContext *                  clutter_actor_get_pango_context                 (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
PangoContext *                  clutter_actor_create_pango_context              (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
PangoLayout *                   clutter_actor_create_pango_layout               (ClutterActor               *self,
 | 
			
		||||
                                                                                 const gchar                *text);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_set_text_direction                (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterTextDirection        text_dir);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
ClutterTextDirection            clutter_actor_get_text_direction                (ClutterActor               *self);
 | 
			
		||||
 | 
			
		||||
/* Actor hierarchy */
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_add_child                         (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterActor               *child);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_insert_child_at_index             (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterActor               *child,
 | 
			
		||||
                                                                                 gint                        index_);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_insert_child_above                (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterActor               *child,
 | 
			
		||||
                                                                                 ClutterActor               *sibling);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_insert_child_below                (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterActor               *child,
 | 
			
		||||
                                                                                 ClutterActor               *sibling);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_replace_child                     (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterActor               *old_child,
 | 
			
		||||
                                                                                 ClutterActor               *new_child);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_remove_child                      (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterActor               *child);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_remove_all_children               (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_destroy_all_children              (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
GList *                         clutter_actor_get_children                      (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
gint                            clutter_actor_get_n_children                    (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
ClutterActor *                  clutter_actor_get_child_at_index                (ClutterActor               *self,
 | 
			
		||||
                                                                                 gint                        index_);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
ClutterActor *                  clutter_actor_get_previous_sibling              (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
ClutterActor *                  clutter_actor_get_next_sibling                  (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
ClutterActor *                  clutter_actor_get_first_child                   (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
ClutterActor *                  clutter_actor_get_last_child                    (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
ClutterActor *                  clutter_actor_get_parent                        (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
gboolean                        clutter_actor_contains                          (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterActor               *descendant);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
ClutterActor*                   clutter_actor_get_stage                         (ClutterActor               *actor);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_child_below_sibling           (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterActor               *child,
 | 
			
		||||
                                                                                 ClutterActor               *sibling);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_child_above_sibling           (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterActor               *child,
 | 
			
		||||
                                                                                 ClutterActor               *sibling);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_child_at_index                (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterActor               *child,
 | 
			
		||||
                                                                                 gint                        index_);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_iter_init                         (ClutterActorIter           *iter,
 | 
			
		||||
                                                                                 ClutterActor               *root);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
gboolean                        clutter_actor_iter_next                         (ClutterActorIter           *iter,
 | 
			
		||||
                                                                                 ClutterActor              **child);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
gboolean                        clutter_actor_iter_prev                         (ClutterActorIter           *iter,
 | 
			
		||||
                                                                                 ClutterActor              **child);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_iter_remove                       (ClutterActorIter           *iter);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_iter_destroy                      (ClutterActorIter           *iter);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
gboolean                        clutter_actor_iter_is_valid                     (const ClutterActorIter     *iter);
 | 
			
		||||
 | 
			
		||||
/* Transformations */
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gboolean                        clutter_actor_is_rotated                        (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gboolean                        clutter_actor_is_scaled                         (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void                            clutter_actor_set_pivot_point                   (ClutterActor               *self,
 | 
			
		||||
                                                                                 gfloat                      pivot_x,
 | 
			
		||||
                                                                                 gfloat                      pivot_y);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void                            clutter_actor_get_pivot_point                   (ClutterActor               *self,
 | 
			
		||||
                                                                                 gfloat                     *pivot_x,
 | 
			
		||||
                                                                                 gfloat                     *pivot_y);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void                            clutter_actor_set_pivot_point_z                 (ClutterActor               *self,
 | 
			
		||||
                                                                                 gfloat                      pivot_z);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
gfloat                          clutter_actor_get_pivot_point_z                 (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void                            clutter_actor_set_rotation_angle                (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterRotateAxis           axis,
 | 
			
		||||
                                                                                 gdouble                     angle);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
gdouble                         clutter_actor_get_rotation_angle                (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterRotateAxis           axis);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_set_scale                         (ClutterActor               *self,
 | 
			
		||||
                                                                                 gdouble                     scale_x,
 | 
			
		||||
                                                                                 gdouble                     scale_y);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_get_scale                         (ClutterActor               *self,
 | 
			
		||||
                                                                                 gdouble                    *scale_x,
 | 
			
		||||
                                                                                 gdouble                    *scale_y);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void                            clutter_actor_set_scale_z                       (ClutterActor               *self,
 | 
			
		||||
                                                                                 gdouble                     scale_z);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
gdouble                         clutter_actor_get_scale_z                       (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void                            clutter_actor_set_translation                   (ClutterActor               *self,
 | 
			
		||||
                                                                                 gfloat                      translate_x,
 | 
			
		||||
                                                                                 gfloat                      translate_y,
 | 
			
		||||
                                                                                 gfloat                      translate_z);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void                            clutter_actor_get_translation                   (ClutterActor               *self,
 | 
			
		||||
                                                                                 gfloat                     *translate_x,
 | 
			
		||||
                                                                                 gfloat                     *translate_y,
 | 
			
		||||
                                                                                 gfloat                     *translate_z);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void                            clutter_actor_set_transform                     (ClutterActor               *self,
 | 
			
		||||
                                                                                 const ClutterMatrix        *transform);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void                            clutter_actor_get_transform                     (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterMatrix              *transform);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void                            clutter_actor_set_child_transform               (ClutterActor               *self,
 | 
			
		||||
                                                                                 const ClutterMatrix        *transform);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void                            clutter_actor_get_child_transform               (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterMatrix              *transform);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_get_transformed_position          (ClutterActor               *self,
 | 
			
		||||
                                                                                 gfloat                     *x,
 | 
			
		||||
                                                                                 gfloat                     *y);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_get_transformed_size              (ClutterActor               *self,
 | 
			
		||||
                                                                                 gfloat                     *width,
 | 
			
		||||
                                                                                 gfloat                     *height);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gboolean                        clutter_actor_transform_stage_point             (ClutterActor               *self,
 | 
			
		||||
                                                                                 gfloat                      x,
 | 
			
		||||
                                                                                 gfloat                      y,
 | 
			
		||||
                                                                                 gfloat                     *x_out,
 | 
			
		||||
                                                                                 gfloat                     *y_out);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_get_abs_allocation_vertices       (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterVertex               verts[]);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_apply_transform_to_point          (ClutterActor               *self,
 | 
			
		||||
                                                                                 const ClutterVertex        *point,
 | 
			
		||||
                                                                                 ClutterVertex              *vertex);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_actor_apply_relative_transform_to_point (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterActor               *ancestor,
 | 
			
		||||
                                                                                 const ClutterVertex        *point,
 | 
			
		||||
                                                                                 ClutterVertex              *vertex);
 | 
			
		||||
 | 
			
		||||
/* Implicit animations */
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_save_easing_state                 (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_restore_easing_state              (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_easing_mode                   (ClutterActor               *self,
 | 
			
		||||
                                                                                 ClutterAnimationMode        mode);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
ClutterAnimationMode            clutter_actor_get_easing_mode                   (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_easing_duration               (ClutterActor               *self,
 | 
			
		||||
                                                                                 guint                       msecs);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
guint                           clutter_actor_get_easing_duration               (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_set_easing_delay                  (ClutterActor               *self,
 | 
			
		||||
                                                                                 guint                       msecs);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
guint                           clutter_actor_get_easing_delay                  (ClutterActor               *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
ClutterTransition *             clutter_actor_get_transition                    (ClutterActor               *self,
 | 
			
		||||
                                                                                 const char                 *name);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_add_transition                    (ClutterActor               *self,
 | 
			
		||||
                                                                                 const char                 *name,
 | 
			
		||||
                                                                                 ClutterTransition          *transition);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_remove_transition                 (ClutterActor               *self,
 | 
			
		||||
                                                                                 const char                 *name);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void                            clutter_actor_remove_all_transitions            (ClutterActor               *self);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
/* Experimental API */
 | 
			
		||||
#ifdef CLUTTER_ENABLE_EXPERIMENTAL_API
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_16
 | 
			
		||||
gboolean                        clutter_actor_has_mapped_clones                 (ClutterActor *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_22
 | 
			
		||||
void                            clutter_actor_set_opacity_override              (ClutterActor               *self,
 | 
			
		||||
                                                                                 gint                        opacity);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_22
 | 
			
		||||
gint                            clutter_actor_get_opacity_override              (ClutterActor               *self);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * ClutterActorCreateChildFunc:
 | 
			
		||||
@@ -883,13 +886,13 @@ gint                            clutter_actor_get_opacity_override
 | 
			
		||||
typedef ClutterActor * (* ClutterActorCreateChildFunc) (gpointer item,
 | 
			
		||||
                                                        gpointer user_data);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_24
 | 
			
		||||
void                            clutter_actor_bind_model                        (ClutterActor               *self,
 | 
			
		||||
                                                                                 GListModel                 *model,
 | 
			
		||||
                                                                                 ClutterActorCreateChildFunc create_child_func,
 | 
			
		||||
                                                                                 gpointer                    user_data,
 | 
			
		||||
                                                                                 GDestroyNotify              notify);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_24
 | 
			
		||||
void                            clutter_actor_bind_model_with_properties        (ClutterActor               *self,
 | 
			
		||||
                                                                                 GListModel                 *model,
 | 
			
		||||
                                                                                 GType                       child_type,
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,9 @@
 | 
			
		||||
 * #ClutterAlignConstraint is available since Clutter 1.4
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "clutter-align-constraint.h"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -48,28 +48,28 @@ G_BEGIN_DECLS
 | 
			
		||||
typedef struct _ClutterAlignConstraint          ClutterAlignConstraint;
 | 
			
		||||
typedef struct _ClutterAlignConstraintClass     ClutterAlignConstraintClass;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType clutter_align_constraint_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterConstraint *clutter_align_constraint_new            (ClutterActor           *source,
 | 
			
		||||
                                                            ClutterAlignAxis        axis,
 | 
			
		||||
                                                            gfloat                  factor);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void               clutter_align_constraint_set_source     (ClutterAlignConstraint *align,
 | 
			
		||||
                                                            ClutterActor           *source);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterActor *     clutter_align_constraint_get_source     (ClutterAlignConstraint *align);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void               clutter_align_constraint_set_align_axis (ClutterAlignConstraint *align,
 | 
			
		||||
                                                            ClutterAlignAxis        axis);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterAlignAxis   clutter_align_constraint_get_align_axis (ClutterAlignConstraint *align);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void               clutter_align_constraint_set_factor     (ClutterAlignConstraint *align,
 | 
			
		||||
                                                            gfloat                  factor);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
gfloat             clutter_align_constraint_get_factor     (ClutterAlignConstraint *align);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,9 @@
 | 
			
		||||
 * #ClutterAnimatable is available since Clutter 1.0
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_DISABLE_DEPRECATION_WARNINGS
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -95,21 +95,21 @@ struct _ClutterAnimatableIface
 | 
			
		||||
                                     GValue            *value);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
GType clutter_animatable_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
GParamSpec *clutter_animatable_find_property     (ClutterAnimatable *animatable,
 | 
			
		||||
                                                  const gchar       *property_name);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
void        clutter_animatable_get_initial_state (ClutterAnimatable *animatable,
 | 
			
		||||
                                                  const gchar       *property_name,
 | 
			
		||||
                                                  GValue            *value);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
void        clutter_animatable_set_final_state   (ClutterAnimatable *animatable,
 | 
			
		||||
                                                  const gchar       *property_name,
 | 
			
		||||
                                                  const GValue      *value);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_8
 | 
			
		||||
gboolean    clutter_animatable_interpolate_value (ClutterAnimatable *animatable,
 | 
			
		||||
                                                  const gchar       *property_name,
 | 
			
		||||
                                                  ClutterInterval   *interval,
 | 
			
		||||
 
 | 
			
		||||
@@ -58,8 +58,6 @@ struct _ClutterBackend
 | 
			
		||||
  gint32 units_serial;
 | 
			
		||||
 | 
			
		||||
  GList *event_translators;
 | 
			
		||||
 | 
			
		||||
  ClutterInputMethod *input_method;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct _ClutterBackendClass
 | 
			
		||||
@@ -67,6 +65,8 @@ struct _ClutterBackendClass
 | 
			
		||||
  /*< private >*/
 | 
			
		||||
  GObjectClass parent_class;
 | 
			
		||||
 | 
			
		||||
  GType stage_window_type;
 | 
			
		||||
 | 
			
		||||
  /* vfuncs */
 | 
			
		||||
  gboolean              (* pre_parse)          (ClutterBackend  *backend,
 | 
			
		||||
                                                GError         **error);
 | 
			
		||||
@@ -88,6 +88,8 @@ struct _ClutterBackendClass
 | 
			
		||||
                                                GError         **error);
 | 
			
		||||
  gboolean              (* create_context)     (ClutterBackend  *backend,
 | 
			
		||||
                                                GError         **error);
 | 
			
		||||
  void                  (* ensure_context)     (ClutterBackend  *backend,
 | 
			
		||||
                                                ClutterStage    *stage);
 | 
			
		||||
  ClutterDeviceManager *(* get_device_manager) (ClutterBackend  *backend);
 | 
			
		||||
 | 
			
		||||
  void                  (* copy_event_data)    (ClutterBackend     *backend,
 | 
			
		||||
@@ -102,8 +104,6 @@ struct _ClutterBackendClass
 | 
			
		||||
 | 
			
		||||
  PangoDirection        (* get_keymap_direction) (ClutterBackend   *backend);
 | 
			
		||||
 | 
			
		||||
  void                  (* bell_notify)          (ClutterBackend   *backend);
 | 
			
		||||
 | 
			
		||||
  /* signals */
 | 
			
		||||
  void (* resolution_changed) (ClutterBackend *backend);
 | 
			
		||||
  void (* font_changed)       (ClutterBackend *backend);
 | 
			
		||||
@@ -115,6 +115,10 @@ ClutterBackend *        _clutter_create_backend                         (void);
 | 
			
		||||
ClutterStageWindow *    _clutter_backend_create_stage                   (ClutterBackend         *backend,
 | 
			
		||||
                                                                         ClutterStage           *wrapper,
 | 
			
		||||
                                                                         GError                **error);
 | 
			
		||||
void                    _clutter_backend_ensure_context                 (ClutterBackend         *backend,
 | 
			
		||||
                                                                         ClutterStage           *stage);
 | 
			
		||||
void                    _clutter_backend_ensure_context_internal        (ClutterBackend         *backend,
 | 
			
		||||
                                                                         ClutterStage           *stage);
 | 
			
		||||
gboolean                _clutter_backend_create_context                 (ClutterBackend         *backend,
 | 
			
		||||
                                                                         GError                **error);
 | 
			
		||||
 | 
			
		||||
@@ -134,11 +138,8 @@ void                    _clutter_backend_free_event_data                (Clutter
 | 
			
		||||
gboolean                _clutter_backend_translate_event                (ClutterBackend         *backend,
 | 
			
		||||
                                                                         gpointer                native,
 | 
			
		||||
                                                                         ClutterEvent           *event);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
void                    _clutter_backend_add_event_translator           (ClutterBackend         *backend,
 | 
			
		||||
                                                                         ClutterEventTranslator *translator);
 | 
			
		||||
 | 
			
		||||
void                    _clutter_backend_remove_event_translator        (ClutterBackend         *backend,
 | 
			
		||||
                                                                         ClutterEventTranslator *translator);
 | 
			
		||||
 | 
			
		||||
@@ -150,7 +151,6 @@ gint32                  _clutter_backend_get_units_serial               (Clutter
 | 
			
		||||
 | 
			
		||||
PangoDirection          _clutter_backend_get_keymap_direction           (ClutterBackend         *backend);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
void                    _clutter_backend_reset_cogl_framebuffer         (ClutterBackend         *backend);
 | 
			
		||||
 | 
			
		||||
void                    clutter_set_allowed_drivers                     (const char             *drivers);
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,9 @@
 | 
			
		||||
 * #ClutterBackend is available since Clutter 0.4
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
 | 
			
		||||
 | 
			
		||||
@@ -46,11 +48,11 @@
 | 
			
		||||
#include "clutter-debug.h"
 | 
			
		||||
#include "clutter-event-private.h"
 | 
			
		||||
#include "clutter-marshal.h"
 | 
			
		||||
#include "clutter-mutter.h"
 | 
			
		||||
#include "clutter-private.h"
 | 
			
		||||
#include "clutter-stage-manager-private.h"
 | 
			
		||||
#include "clutter-stage-private.h"
 | 
			
		||||
#include "clutter-stage-window.h"
 | 
			
		||||
#include "clutter-version.h"
 | 
			
		||||
#include "clutter-device-manager-private.h"
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_DISABLE_DEPRECATION_WARNINGS
 | 
			
		||||
@@ -124,7 +126,6 @@ clutter_backend_finalize (GObject *gobject)
 | 
			
		||||
 | 
			
		||||
  g_free (backend->font_name);
 | 
			
		||||
  clutter_backend_set_font_options (backend, NULL);
 | 
			
		||||
  g_clear_object (&backend->input_method);
 | 
			
		||||
 | 
			
		||||
  G_OBJECT_CLASS (clutter_backend_parent_class)->finalize (gobject);
 | 
			
		||||
}
 | 
			
		||||
@@ -229,17 +230,31 @@ clutter_backend_do_real_create_context (ClutterBackend  *backend,
 | 
			
		||||
  CoglSwapChain *swap_chain;
 | 
			
		||||
  GError *internal_error;
 | 
			
		||||
 | 
			
		||||
  if (backend->cogl_context != NULL)
 | 
			
		||||
    return TRUE;
 | 
			
		||||
 | 
			
		||||
  klass = CLUTTER_BACKEND_GET_CLASS (backend);
 | 
			
		||||
 | 
			
		||||
  swap_chain = NULL;
 | 
			
		||||
  internal_error = NULL;
 | 
			
		||||
 | 
			
		||||
  CLUTTER_NOTE (BACKEND, "Creating Cogl renderer");
 | 
			
		||||
  if (klass->get_renderer != NULL)
 | 
			
		||||
    backend->cogl_renderer = klass->get_renderer (backend, &internal_error);
 | 
			
		||||
  else
 | 
			
		||||
    backend->cogl_renderer = cogl_renderer_new ();
 | 
			
		||||
 | 
			
		||||
  if (backend->cogl_renderer == NULL)
 | 
			
		||||
    goto error;
 | 
			
		||||
 | 
			
		||||
#ifdef CLUTTER_HAS_WAYLAND_COMPOSITOR_SUPPORT
 | 
			
		||||
  /* If the application is trying to act as a Wayland compositor then
 | 
			
		||||
     it needs to have an EGL-based renderer backend */
 | 
			
		||||
  if (_wayland_compositor_display)
 | 
			
		||||
    cogl_renderer_add_constraint (backend->cogl_renderer,
 | 
			
		||||
                                  COGL_RENDERER_CONSTRAINT_USES_EGL);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  CLUTTER_NOTE (BACKEND, "Connecting the renderer");
 | 
			
		||||
  cogl_renderer_set_driver (backend->cogl_renderer, driver_id);
 | 
			
		||||
  if (!cogl_renderer_connect (backend->cogl_renderer, &internal_error))
 | 
			
		||||
@@ -346,9 +361,6 @@ clutter_backend_real_create_context (ClutterBackend  *backend,
 | 
			
		||||
  gboolean allow_any;
 | 
			
		||||
  int i;
 | 
			
		||||
 | 
			
		||||
  if (backend->cogl_context != NULL)
 | 
			
		||||
    return TRUE;
 | 
			
		||||
 | 
			
		||||
  if (allowed_drivers == NULL)
 | 
			
		||||
    allowed_drivers = CLUTTER_DRIVERS;
 | 
			
		||||
 | 
			
		||||
@@ -411,6 +423,27 @@ clutter_backend_real_create_context (ClutterBackend  *backend,
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
clutter_backend_real_ensure_context (ClutterBackend *backend,
 | 
			
		||||
                                     ClutterStage   *stage)
 | 
			
		||||
{
 | 
			
		||||
  ClutterStageWindow *stage_impl;
 | 
			
		||||
  CoglFramebuffer *framebuffer;
 | 
			
		||||
 | 
			
		||||
  if (stage == NULL)
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  stage_impl = _clutter_stage_get_window (stage);
 | 
			
		||||
  if (stage_impl == NULL)
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  framebuffer = _clutter_stage_window_get_active_framebuffer (stage_impl);
 | 
			
		||||
  if (framebuffer == NULL)
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  cogl_set_framebuffer (framebuffer);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static ClutterFeatureFlags
 | 
			
		||||
clutter_backend_real_get_features (ClutterBackend *backend)
 | 
			
		||||
{
 | 
			
		||||
@@ -444,9 +477,38 @@ clutter_backend_real_get_features (ClutterBackend *backend)
 | 
			
		||||
  return flags;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const char *allowed_backends;
 | 
			
		||||
static ClutterStageWindow *
 | 
			
		||||
clutter_backend_real_create_stage (ClutterBackend  *backend,
 | 
			
		||||
                                   ClutterStage    *wrapper,
 | 
			
		||||
                                   GError         **error)
 | 
			
		||||
{
 | 
			
		||||
  ClutterBackendClass *klass;
 | 
			
		||||
 | 
			
		||||
static ClutterBackend * (* custom_backend_func) (void);
 | 
			
		||||
  if (!clutter_feature_available (CLUTTER_FEATURE_STAGE_MULTIPLE))
 | 
			
		||||
    {
 | 
			
		||||
      ClutterStageManager *manager = clutter_stage_manager_get_default ();
 | 
			
		||||
 | 
			
		||||
      if (clutter_stage_manager_get_default_stage (manager) != NULL)
 | 
			
		||||
        {
 | 
			
		||||
          g_set_error (error, CLUTTER_INIT_ERROR,
 | 
			
		||||
                       CLUTTER_INIT_ERROR_BACKEND,
 | 
			
		||||
                       _("The backend of type '%s' does not support "
 | 
			
		||||
                         "creating multiple stages"),
 | 
			
		||||
                       G_OBJECT_TYPE_NAME (backend));
 | 
			
		||||
          return NULL;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  klass = CLUTTER_BACKEND_GET_CLASS (backend);
 | 
			
		||||
  g_assert (klass->stage_window_type != G_TYPE_INVALID);
 | 
			
		||||
 | 
			
		||||
  return g_object_new (klass->stage_window_type,
 | 
			
		||||
                       "backend", backend,
 | 
			
		||||
                       "wrapper", wrapper,
 | 
			
		||||
                       NULL);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static const char *allowed_backends;
 | 
			
		||||
 | 
			
		||||
static const struct {
 | 
			
		||||
  const char *name;
 | 
			
		||||
@@ -455,18 +517,15 @@ static const struct {
 | 
			
		||||
#ifdef CLUTTER_WINDOWING_X11
 | 
			
		||||
  { CLUTTER_WINDOWING_X11, clutter_backend_x11_new },
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef CLUTTER_WINDOWING_WAYLAND
 | 
			
		||||
  { CLUTTER_WINDOWING_WAYLAND, clutter_backend_wayland_new },
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef CLUTTER_WINDOWING_EGL
 | 
			
		||||
  { CLUTTER_WINDOWING_EGL, clutter_backend_egl_native_new },
 | 
			
		||||
#endif
 | 
			
		||||
  { NULL, NULL },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_set_custom_backend_func (ClutterBackend *(* func) (void))
 | 
			
		||||
{
 | 
			
		||||
  custom_backend_func = func;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ClutterBackend *
 | 
			
		||||
_clutter_create_backend (void)
 | 
			
		||||
{
 | 
			
		||||
@@ -476,16 +535,6 @@ _clutter_create_backend (void)
 | 
			
		||||
  char **backends;
 | 
			
		||||
  int i;
 | 
			
		||||
 | 
			
		||||
  if (custom_backend_func)
 | 
			
		||||
    {
 | 
			
		||||
      retval = custom_backend_func ();
 | 
			
		||||
 | 
			
		||||
      if (!retval)
 | 
			
		||||
        g_error ("Failed to create custom backend.");
 | 
			
		||||
 | 
			
		||||
      return retval;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  if (allowed_backends == NULL)
 | 
			
		||||
    allowed_backends = "*";
 | 
			
		||||
 | 
			
		||||
@@ -613,6 +662,8 @@ clutter_backend_class_init (ClutterBackendClass *klass)
 | 
			
		||||
  gobject_class->dispose = clutter_backend_dispose;
 | 
			
		||||
  gobject_class->finalize = clutter_backend_finalize;
 | 
			
		||||
 | 
			
		||||
  klass->stage_window_type = G_TYPE_INVALID;
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * ClutterBackend::resolution-changed:
 | 
			
		||||
   * @backend: the #ClutterBackend that emitted the signal
 | 
			
		||||
@@ -674,7 +725,9 @@ clutter_backend_class_init (ClutterBackendClass *klass)
 | 
			
		||||
  klass->get_device_manager = clutter_backend_real_get_device_manager;
 | 
			
		||||
  klass->translate_event = clutter_backend_real_translate_event;
 | 
			
		||||
  klass->create_context = clutter_backend_real_create_context;
 | 
			
		||||
  klass->ensure_context = clutter_backend_real_ensure_context;
 | 
			
		||||
  klass->get_features = clutter_backend_real_get_features;
 | 
			
		||||
  klass->create_stage = clutter_backend_real_create_stage;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
@@ -765,6 +818,87 @@ _clutter_backend_create_context (ClutterBackend  *backend,
 | 
			
		||||
  return klass->create_context (backend, error);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
_clutter_backend_ensure_context_internal (ClutterBackend  *backend,
 | 
			
		||||
                                          ClutterStage    *stage)
 | 
			
		||||
{
 | 
			
		||||
  ClutterBackendClass *klass = CLUTTER_BACKEND_GET_CLASS (backend);
 | 
			
		||||
  if (G_LIKELY (klass->ensure_context))
 | 
			
		||||
    klass->ensure_context (backend, stage);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
_clutter_backend_ensure_context (ClutterBackend *backend,
 | 
			
		||||
                                 ClutterStage   *stage)
 | 
			
		||||
{
 | 
			
		||||
  static ClutterStage *current_context_stage = NULL;
 | 
			
		||||
 | 
			
		||||
  g_assert (CLUTTER_IS_BACKEND (backend));
 | 
			
		||||
  g_assert (CLUTTER_IS_STAGE (stage));
 | 
			
		||||
 | 
			
		||||
  if (current_context_stage != stage ||
 | 
			
		||||
      !clutter_actor_is_realized (CLUTTER_ACTOR (stage)))
 | 
			
		||||
    {
 | 
			
		||||
      ClutterStage *new_stage = NULL;
 | 
			
		||||
 | 
			
		||||
      if (!clutter_actor_is_realized (CLUTTER_ACTOR (stage)))
 | 
			
		||||
        {
 | 
			
		||||
          new_stage = NULL;
 | 
			
		||||
 | 
			
		||||
          CLUTTER_NOTE (BACKEND,
 | 
			
		||||
                        "Stage [%p] is not realized, unsetting the stage",
 | 
			
		||||
                        stage);
 | 
			
		||||
        }
 | 
			
		||||
      else
 | 
			
		||||
        {
 | 
			
		||||
          new_stage = stage;
 | 
			
		||||
 | 
			
		||||
          CLUTTER_NOTE (BACKEND,
 | 
			
		||||
                        "Setting the new stage [%p]",
 | 
			
		||||
                        new_stage);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
      /* XXX: Until Cogl becomes fully responsible for backend windows
 | 
			
		||||
       * Clutter need to manually keep it informed of the current window size
 | 
			
		||||
       *
 | 
			
		||||
       * NB: This must be done after we ensure_context above because Cogl
 | 
			
		||||
       * always assumes there is a current GL context.
 | 
			
		||||
       */
 | 
			
		||||
      if (new_stage != NULL)
 | 
			
		||||
        {
 | 
			
		||||
          float width, height;
 | 
			
		||||
 | 
			
		||||
          _clutter_backend_ensure_context_internal (backend, new_stage);
 | 
			
		||||
 | 
			
		||||
          clutter_actor_get_size (CLUTTER_ACTOR (stage), &width, &height);
 | 
			
		||||
 | 
			
		||||
          cogl_onscreen_clutter_backend_set_size (width, height);
 | 
			
		||||
 | 
			
		||||
          /* Eventually we will have a separate CoglFramebuffer for
 | 
			
		||||
           * each stage and each one will track private projection
 | 
			
		||||
           * matrix and viewport state, but until then we need to make
 | 
			
		||||
           * sure we update the projection and viewport whenever we
 | 
			
		||||
           * switch between stages.
 | 
			
		||||
           *
 | 
			
		||||
           * This dirty mechanism will ensure they are asserted before
 | 
			
		||||
           * the next paint...
 | 
			
		||||
           */
 | 
			
		||||
          _clutter_stage_dirty_viewport (stage);
 | 
			
		||||
          _clutter_stage_dirty_projection (stage);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
      /* FIXME: With a NULL stage and thus no active context it may make more
 | 
			
		||||
       * sense to clean the context but then re call with the default stage 
 | 
			
		||||
       * so at least there is some kind of context in place (as to avoid
 | 
			
		||||
       * potential issue of GL calls with no context).
 | 
			
		||||
       */
 | 
			
		||||
      current_context_stage = new_stage;
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    CLUTTER_NOTE (BACKEND, "Stage is the same");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ClutterFeatureFlags
 | 
			
		||||
_clutter_backend_get_features (ClutterBackend *backend)
 | 
			
		||||
{
 | 
			
		||||
@@ -1212,7 +1346,7 @@ _clutter_backend_remove_event_translator (ClutterBackend         *backend,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * clutter_backend_get_cogl_context: (skip)
 | 
			
		||||
 * clutter_backend_get_cogl_context:
 | 
			
		||||
 * @backend: a #ClutterBackend
 | 
			
		||||
 *
 | 
			
		||||
 * Retrieves the #CoglContext associated with the given clutter
 | 
			
		||||
@@ -1361,41 +1495,3 @@ clutter_set_allowed_drivers (const char *drivers)
 | 
			
		||||
 | 
			
		||||
  allowed_drivers = g_strdup (drivers);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_backend_bell_notify (ClutterBackend *backend)
 | 
			
		||||
{
 | 
			
		||||
  ClutterBackendClass *klass;
 | 
			
		||||
 | 
			
		||||
  klass = CLUTTER_BACKEND_GET_CLASS (backend);
 | 
			
		||||
  if (klass->bell_notify)
 | 
			
		||||
    klass->bell_notify (backend);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * clutter_backend_get_input_method:
 | 
			
		||||
 * @backend: the #CLutterBackend
 | 
			
		||||
 *
 | 
			
		||||
 * Returns the input method used by Clutter
 | 
			
		||||
 *
 | 
			
		||||
 * Returns: (transfer none): the input method
 | 
			
		||||
 **/
 | 
			
		||||
ClutterInputMethod *
 | 
			
		||||
clutter_backend_get_input_method (ClutterBackend *backend)
 | 
			
		||||
{
 | 
			
		||||
  return backend->input_method;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * clutter_backend_set_input_method:
 | 
			
		||||
 * @backend: the #ClutterBackend
 | 
			
		||||
 * @method: the input method
 | 
			
		||||
 *
 | 
			
		||||
 * Sets the input method to be used by Clutter
 | 
			
		||||
 **/
 | 
			
		||||
void
 | 
			
		||||
clutter_backend_set_input_method (ClutterBackend     *backend,
 | 
			
		||||
                                  ClutterInputMethod *method)
 | 
			
		||||
{
 | 
			
		||||
  g_set_object (&backend->input_method, method);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -31,7 +31,9 @@
 | 
			
		||||
#include <cairo.h>
 | 
			
		||||
#include <pango/pango.h>
 | 
			
		||||
 | 
			
		||||
#ifdef COGL_ENABLE_EXPERIMENTAL_API
 | 
			
		||||
#include <cogl/cogl.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <clutter/clutter-config.h>
 | 
			
		||||
#include <clutter/clutter-types.h>
 | 
			
		||||
@@ -53,36 +55,29 @@ G_BEGIN_DECLS
 | 
			
		||||
typedef struct _ClutterBackend          ClutterBackend;
 | 
			
		||||
typedef struct _ClutterBackendClass     ClutterBackendClass;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
GType clutter_backend_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
ClutterBackend *                clutter_get_default_backend             (void);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_16
 | 
			
		||||
void                            clutter_set_windowing_backend           (const char *backend_type);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gdouble                         clutter_backend_get_resolution          (ClutterBackend             *backend);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                            clutter_backend_set_font_options        (ClutterBackend             *backend,
 | 
			
		||||
                                                                         const cairo_font_options_t *options);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
const cairo_font_options_t *    clutter_backend_get_font_options        (ClutterBackend             *backend);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
#if defined (COGL_ENABLE_EXPERIMENTAL_API) && defined (CLUTTER_ENABLE_EXPERIMENTAL_API)
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_8
 | 
			
		||||
CoglContext *                   clutter_backend_get_cogl_context        (ClutterBackend             *backend);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
void                            clutter_backend_bell_notify             (ClutterBackend             *backend);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
ClutterInputMethod *            clutter_backend_get_input_method        (ClutterBackend             *backend);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
void                            clutter_backend_set_input_method        (ClutterBackend             *backend,
 | 
			
		||||
                                                                         ClutterInputMethod         *method);
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif /* __CLUTTER_BACKEND_H__ */
 | 
			
		||||
 
 | 
			
		||||
@@ -30,7 +30,9 @@
 | 
			
		||||
 * across the whole API.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "clutter-types.h"
 | 
			
		||||
#include "clutter-private.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -21,8 +21,6 @@
 | 
			
		||||
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
 | 
			
		||||
#include <glib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include "clutter-bezier.h"
 | 
			
		||||
@@ -59,10 +57,6 @@
 | 
			
		||||
#define CBZ_T_STEP (CBZ_T_ONE / CBZ_T_SAMPLES)
 | 
			
		||||
#define CBZ_L_STEP (CBZ_T_ONE / CBZ_T_SAMPLES)
 | 
			
		||||
 | 
			
		||||
#define FIXED_BITS (32)
 | 
			
		||||
#define FIXED_Q (FIXED_BITS - 16)
 | 
			
		||||
#define FIXED_FROM_INT(x) ((x) << FIXED_Q)
 | 
			
		||||
 | 
			
		||||
typedef gint32 _FixedT;
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
@@ -192,90 +186,6 @@ _clutter_bezier_advance (const ClutterBezier *b, gint L, ClutterKnot * knot)
 | 
			
		||||
                knot->x, knot->y);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
sqrti (int number)
 | 
			
		||||
{
 | 
			
		||||
#if defined __SSE2__
 | 
			
		||||
    /* The GCC built-in with SSE2 (sqrtsd) is up to twice as fast as
 | 
			
		||||
     * the pure integer code below. It is also more accurate.
 | 
			
		||||
     */
 | 
			
		||||
    return __builtin_sqrt (number);
 | 
			
		||||
#else
 | 
			
		||||
    /* This is a fixed point implementation of the Quake III sqrt algorithm,
 | 
			
		||||
     * described, for example, at
 | 
			
		||||
     *   http://www.codemaestro.com/reviews/review00000105.html
 | 
			
		||||
     *
 | 
			
		||||
     * While the original QIII is extremely fast, the use of floating division
 | 
			
		||||
     * and multiplication makes it perform very on arm processors without FPU.
 | 
			
		||||
     *
 | 
			
		||||
     * The key to successfully replacing the floating point operations with
 | 
			
		||||
     * fixed point is in the choice of the fixed point format. The QIII
 | 
			
		||||
     * algorithm does not calculate the square root, but its reciprocal ('y'
 | 
			
		||||
     * below), which is only at the end turned to the inverse value. In order
 | 
			
		||||
     * for the algorithm to produce satisfactory results, the reciprocal value
 | 
			
		||||
     * must be represented with sufficient precission; the 16.16 we use
 | 
			
		||||
     * elsewhere in clutter is not good enough, and 10.22 is used instead.
 | 
			
		||||
     */
 | 
			
		||||
    _FixedT x;
 | 
			
		||||
    uint32_t y_1;        /* 10.22 fixed point */
 | 
			
		||||
    uint32_t f = 0x600000; /* '1.5' as 10.22 fixed */
 | 
			
		||||
 | 
			
		||||
    union
 | 
			
		||||
    {
 | 
			
		||||
	float f;
 | 
			
		||||
	uint32_t i;
 | 
			
		||||
    } flt, flt2;
 | 
			
		||||
 | 
			
		||||
    flt.f = number;
 | 
			
		||||
 | 
			
		||||
    x = FIXED_FROM_INT (number) / 2;
 | 
			
		||||
 | 
			
		||||
    /* The QIII initial estimate */
 | 
			
		||||
    flt.i = 0x5f3759df - ( flt.i >> 1 );
 | 
			
		||||
 | 
			
		||||
    /* Now, we convert the float to 10.22 fixed. We exploit the mechanism
 | 
			
		||||
     * described at http://www.d6.com/users/checker/pdfs/gdmfp.pdf.
 | 
			
		||||
     *
 | 
			
		||||
     * We want 22 bit fraction; a single precission float uses 23 bit
 | 
			
		||||
     * mantisa, so we only need to add 2^(23-22) (no need for the 1.5
 | 
			
		||||
     * multiplier as we are only dealing with positive numbers).
 | 
			
		||||
     *
 | 
			
		||||
     * Note: we have to use two separate variables here -- for some reason,
 | 
			
		||||
     * if we try to use just the flt variable, gcc on ARM optimises the whole
 | 
			
		||||
     * addition out, and it all goes pear shape, since without it, the bits
 | 
			
		||||
     * in the float will not be correctly aligned.
 | 
			
		||||
     */
 | 
			
		||||
    flt2.f = flt.f + 2.0;
 | 
			
		||||
    flt2.i &= 0x7FFFFF;
 | 
			
		||||
 | 
			
		||||
    /* Now we correct the estimate */
 | 
			
		||||
    y_1 = (flt2.i >> 11) * (flt2.i >> 11);
 | 
			
		||||
    y_1 = (y_1 >> 8) * (x >> 8);
 | 
			
		||||
 | 
			
		||||
    y_1 = f - y_1;
 | 
			
		||||
    flt2.i = (flt2.i >> 11) * (y_1 >> 11);
 | 
			
		||||
 | 
			
		||||
    /* If the original argument is less than 342, we do another
 | 
			
		||||
     * iteration to improve precission (for arguments >= 342, the single
 | 
			
		||||
     * iteration produces generally better results).
 | 
			
		||||
     */
 | 
			
		||||
    if (x < 171)
 | 
			
		||||
      {
 | 
			
		||||
	y_1 = (flt2.i >> 11) * (flt2.i >> 11);
 | 
			
		||||
	y_1 = (y_1 >> 8) * (x >> 8);
 | 
			
		||||
 | 
			
		||||
	y_1 = f - y_1;
 | 
			
		||||
	flt2.i = (flt2.i >> 11) * (y_1 >> 11);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
    /* Invert, round and convert from 10.22 to an integer
 | 
			
		||||
     * 0x1e3c68 is a magical rounding constant that produces slightly
 | 
			
		||||
     * better results than 0x200000.
 | 
			
		||||
     */
 | 
			
		||||
    return (number * flt2.i + 0x1e3c68) >> 22;
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
_clutter_bezier_init (ClutterBezier *b,
 | 
			
		||||
		     gint x_0, gint y_0,
 | 
			
		||||
@@ -324,7 +234,7 @@ _clutter_bezier_init (ClutterBezier *b,
 | 
			
		||||
   * triggers, we need to change those two functions a bit.
 | 
			
		||||
   */
 | 
			
		||||
  if (b->ax > 0x1fff || b->bx > 0x1fff || b->cx > 0x1fff)
 | 
			
		||||
    g_warning ("Calculated coefficients will result in multiplication "
 | 
			
		||||
    g_warning ("Calculated coefficents will result in multiplication "
 | 
			
		||||
               "overflow in clutter_bezier_t2x and clutter_bezier_t2y.");
 | 
			
		||||
 | 
			
		||||
  /*
 | 
			
		||||
@@ -340,7 +250,7 @@ _clutter_bezier_init (ClutterBezier *b,
 | 
			
		||||
      int x = _clutter_bezier_t2x (b, t);
 | 
			
		||||
      int y = _clutter_bezier_t2y (b, t);
 | 
			
		||||
	
 | 
			
		||||
      guint l = sqrti ((y - yp)*(y - yp) + (x - xp)*(x - xp));
 | 
			
		||||
      guint l = cogl_sqrti ((y - yp)*(y - yp) + (x - xp)*(x - xp));
 | 
			
		||||
 | 
			
		||||
      l += length[i-1];
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,9 @@
 | 
			
		||||
 * #ClutterBinLayout is available since Clutter 1.2
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <math.h>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -74,10 +74,10 @@ struct _ClutterBinLayoutClass
 | 
			
		||||
  ClutterLayoutManagerClass parent_class;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
GType clutter_bin_layout_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
ClutterLayoutManager *  clutter_bin_layout_new  (ClutterBinAlignment x_align,
 | 
			
		||||
                                                 ClutterBinAlignment y_align);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -80,7 +80,9 @@
 | 
			
		||||
 * #ClutterBindConstraint is available since Clutter 1.4
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <math.h>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -48,28 +48,28 @@ G_BEGIN_DECLS
 | 
			
		||||
typedef struct _ClutterBindConstraint           ClutterBindConstraint;
 | 
			
		||||
typedef struct _ClutterBindConstraintClass      ClutterBindConstraintClass;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType clutter_bind_constraint_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterConstraint *   clutter_bind_constraint_new            (ClutterActor          *source,
 | 
			
		||||
                                                              ClutterBindCoordinate  coordinate,
 | 
			
		||||
                                                              gfloat                 offset);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void                  clutter_bind_constraint_set_source     (ClutterBindConstraint *constraint,
 | 
			
		||||
                                                              ClutterActor          *source);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterActor *        clutter_bind_constraint_get_source     (ClutterBindConstraint *constraint);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void                  clutter_bind_constraint_set_coordinate (ClutterBindConstraint *constraint,
 | 
			
		||||
                                                              ClutterBindCoordinate  coordinate);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterBindCoordinate clutter_bind_constraint_get_coordinate (ClutterBindConstraint *constraint);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void                  clutter_bind_constraint_set_offset     (ClutterBindConstraint *constraint,
 | 
			
		||||
                                                              gfloat                 offset);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
gfloat                clutter_bind_constraint_get_offset     (ClutterBindConstraint *constraint);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -94,7 +94,9 @@
 | 
			
		||||
 * #ClutterBindingPool is available since Clutter 1.0
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "clutter-binding-pool.h"
 | 
			
		||||
#include "clutter-debug.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -71,17 +71,17 @@ typedef gboolean (* ClutterBindingActionFunc) (GObject             *gobject,
 | 
			
		||||
                                               ClutterModifierType  modifiers,
 | 
			
		||||
                                               gpointer             user_data);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
GType clutter_binding_pool_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
ClutterBindingPool *  clutter_binding_pool_new              (const gchar         *name);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
ClutterBindingPool *  clutter_binding_pool_get_for_class    (gpointer             klass);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
ClutterBindingPool *  clutter_binding_pool_find             (const gchar         *name);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
void                  clutter_binding_pool_install_action   (ClutterBindingPool  *pool,
 | 
			
		||||
                                                             const gchar         *action_name,
 | 
			
		||||
                                                             guint                key_val,
 | 
			
		||||
@@ -89,44 +89,44 @@ void                  clutter_binding_pool_install_action   (ClutterBindingPool
 | 
			
		||||
                                                             GCallback            callback,
 | 
			
		||||
                                                             gpointer             data,
 | 
			
		||||
                                                             GDestroyNotify       notify);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
void                  clutter_binding_pool_install_closure  (ClutterBindingPool  *pool,
 | 
			
		||||
                                                             const gchar         *action_name,
 | 
			
		||||
                                                             guint                key_val,
 | 
			
		||||
                                                             ClutterModifierType  modifiers,
 | 
			
		||||
                                                             GClosure            *closure);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
void                  clutter_binding_pool_override_action  (ClutterBindingPool  *pool,
 | 
			
		||||
                                                             guint                key_val,
 | 
			
		||||
                                                             ClutterModifierType  modifiers,
 | 
			
		||||
                                                             GCallback            callback,
 | 
			
		||||
                                                             gpointer             data,
 | 
			
		||||
                                                             GDestroyNotify       notify);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
void                  clutter_binding_pool_override_closure (ClutterBindingPool  *pool,
 | 
			
		||||
                                                             guint                key_val,
 | 
			
		||||
                                                             ClutterModifierType  modifiers,
 | 
			
		||||
                                                             GClosure            *closure);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
const gchar *         clutter_binding_pool_find_action      (ClutterBindingPool  *pool,
 | 
			
		||||
                                                             guint                key_val,
 | 
			
		||||
                                                             ClutterModifierType  modifiers);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
void                  clutter_binding_pool_remove_action    (ClutterBindingPool  *pool,
 | 
			
		||||
                                                             guint                key_val,
 | 
			
		||||
                                                             ClutterModifierType  modifiers);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
gboolean              clutter_binding_pool_activate         (ClutterBindingPool  *pool,
 | 
			
		||||
                                                             guint                key_val,
 | 
			
		||||
                                                             ClutterModifierType  modifiers,
 | 
			
		||||
                                                             GObject             *gobject);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
void                  clutter_binding_pool_block_action     (ClutterBindingPool  *pool,
 | 
			
		||||
                                                             const gchar         *action_name);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
void                  clutter_binding_pool_unblock_action   (ClutterBindingPool  *pool,
 | 
			
		||||
                                                             const gchar         *action_name);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,9 @@
 | 
			
		||||
#define CLUTTER_IS_BLUR_EFFECT_CLASS(klass)     (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_BLUR_EFFECT))
 | 
			
		||||
#define CLUTTER_BLUR_EFFECT_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_BLUR_EFFECT, ClutterBlurEffectClass))
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
 | 
			
		||||
 | 
			
		||||
@@ -160,7 +162,6 @@ static void
 | 
			
		||||
clutter_blur_effect_paint_target (ClutterOffscreenEffect *effect)
 | 
			
		||||
{
 | 
			
		||||
  ClutterBlurEffect *self = CLUTTER_BLUR_EFFECT (effect);
 | 
			
		||||
  CoglFramebuffer *framebuffer = cogl_get_draw_framebuffer ();
 | 
			
		||||
  guint8 paint_opacity;
 | 
			
		||||
 | 
			
		||||
  paint_opacity = clutter_actor_get_paint_opacity (self->actor);
 | 
			
		||||
@@ -170,11 +171,11 @@ clutter_blur_effect_paint_target (ClutterOffscreenEffect *effect)
 | 
			
		||||
                              paint_opacity,
 | 
			
		||||
                              paint_opacity,
 | 
			
		||||
                              paint_opacity);
 | 
			
		||||
  cogl_push_source (self->pipeline);
 | 
			
		||||
 | 
			
		||||
  cogl_framebuffer_draw_rectangle (framebuffer,
 | 
			
		||||
                                   self->pipeline,
 | 
			
		||||
                                   0, 0,
 | 
			
		||||
                                   self->tex_width, self->tex_height);
 | 
			
		||||
  cogl_rectangle (0, 0, self->tex_width, self->tex_height);
 | 
			
		||||
 | 
			
		||||
  cogl_pop_source ();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static gboolean
 | 
			
		||||
 
 | 
			
		||||
@@ -48,10 +48,10 @@ G_BEGIN_DECLS
 | 
			
		||||
typedef struct _ClutterBlurEffect       ClutterBlurEffect;
 | 
			
		||||
typedef struct _ClutterBlurEffectClass  ClutterBlurEffectClass;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType clutter_blur_effect_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterEffect *clutter_blur_effect_new (void);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,9 @@
 | 
			
		||||
 * #ClutterBoxLayout is available since Clutter 1.2
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <math.h>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -77,41 +77,41 @@ struct _ClutterBoxLayoutClass
 | 
			
		||||
  ClutterLayoutManagerClass parent_class;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
GType clutter_box_layout_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
ClutterLayoutManager *  clutter_box_layout_new                 (void);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void                    clutter_box_layout_set_orientation      (ClutterBoxLayout    *layout,
 | 
			
		||||
                                                                 ClutterOrientation   orientation);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
ClutterOrientation      clutter_box_layout_get_orientation      (ClutterBoxLayout    *layout);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
void                    clutter_box_layout_set_spacing          (ClutterBoxLayout    *layout,
 | 
			
		||||
                                                                 guint                spacing);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
guint                   clutter_box_layout_get_spacing          (ClutterBoxLayout    *layout);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
void                    clutter_box_layout_set_homogeneous      (ClutterBoxLayout    *layout,
 | 
			
		||||
                                                                 gboolean             homogeneous);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
gboolean                clutter_box_layout_get_homogeneous      (ClutterBoxLayout    *layout);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
void                    clutter_box_layout_set_pack_start       (ClutterBoxLayout    *layout,
 | 
			
		||||
                                                                 gboolean             pack_start);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
gboolean                clutter_box_layout_get_pack_start       (ClutterBoxLayout    *layout);
 | 
			
		||||
 | 
			
		||||
CLUTTER_DEPRECATED_FOR(clutter_box_layout_set_orientation)
 | 
			
		||||
CLUTTER_DEPRECATED_IN_1_12_FOR(clutter_box_layout_set_orientation)
 | 
			
		||||
void                    clutter_box_layout_set_vertical         (ClutterBoxLayout    *layout,
 | 
			
		||||
                                                                 gboolean             vertical);
 | 
			
		||||
CLUTTER_DEPRECATED_FOR(clutter_box_layout_get_orientation)
 | 
			
		||||
CLUTTER_DEPRECATED_IN_1_12_FOR(clutter_box_layout_get_orientation)
 | 
			
		||||
gboolean                clutter_box_layout_get_vertical         (ClutterBoxLayout    *layout);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
void                    clutter_box_layout_pack                 (ClutterBoxLayout    *layout,
 | 
			
		||||
                                                                 ClutterActor        *actor,
 | 
			
		||||
                                                                 gboolean             expand,
 | 
			
		||||
@@ -119,48 +119,48 @@ void                    clutter_box_layout_pack                 (ClutterBoxLayou
 | 
			
		||||
                                                                 gboolean             y_fill,
 | 
			
		||||
                                                                 ClutterBoxAlignment  x_align,
 | 
			
		||||
                                                                 ClutterBoxAlignment  y_align);
 | 
			
		||||
CLUTTER_DEPRECATED
 | 
			
		||||
CLUTTER_DEPRECATED_IN_1_12
 | 
			
		||||
void                    clutter_box_layout_set_alignment        (ClutterBoxLayout    *layout,
 | 
			
		||||
                                                                 ClutterActor        *actor,
 | 
			
		||||
                                                                 ClutterBoxAlignment  x_align,
 | 
			
		||||
                                                                 ClutterBoxAlignment  y_align);
 | 
			
		||||
CLUTTER_DEPRECATED
 | 
			
		||||
CLUTTER_DEPRECATED_IN_1_12
 | 
			
		||||
void                    clutter_box_layout_get_alignment        (ClutterBoxLayout    *layout,
 | 
			
		||||
                                                                 ClutterActor        *actor,
 | 
			
		||||
                                                                 ClutterBoxAlignment *x_align,
 | 
			
		||||
                                                                 ClutterBoxAlignment *y_align);
 | 
			
		||||
CLUTTER_DEPRECATED
 | 
			
		||||
CLUTTER_DEPRECATED_IN_1_12
 | 
			
		||||
void                    clutter_box_layout_set_fill             (ClutterBoxLayout    *layout,
 | 
			
		||||
                                                                 ClutterActor        *actor,
 | 
			
		||||
                                                                 gboolean             x_fill,
 | 
			
		||||
                                                                 gboolean             y_fill);
 | 
			
		||||
CLUTTER_DEPRECATED
 | 
			
		||||
CLUTTER_DEPRECATED_IN_1_12
 | 
			
		||||
void                    clutter_box_layout_get_fill             (ClutterBoxLayout    *layout,
 | 
			
		||||
                                                                 ClutterActor        *actor,
 | 
			
		||||
                                                                 gboolean            *x_fill,
 | 
			
		||||
                                                                 gboolean            *y_fill);
 | 
			
		||||
CLUTTER_DEPRECATED
 | 
			
		||||
CLUTTER_DEPRECATED_IN_1_12
 | 
			
		||||
void                    clutter_box_layout_set_expand           (ClutterBoxLayout    *layout,
 | 
			
		||||
                                                                 ClutterActor        *actor,
 | 
			
		||||
                                                                 gboolean             expand);
 | 
			
		||||
CLUTTER_DEPRECATED
 | 
			
		||||
CLUTTER_DEPRECATED_IN_1_12
 | 
			
		||||
gboolean                clutter_box_layout_get_expand           (ClutterBoxLayout    *layout,
 | 
			
		||||
                                                                 ClutterActor        *actor);
 | 
			
		||||
 | 
			
		||||
CLUTTER_DEPRECATED
 | 
			
		||||
CLUTTER_DEPRECATED_IN_1_12
 | 
			
		||||
void                    clutter_box_layout_set_use_animations   (ClutterBoxLayout    *layout,
 | 
			
		||||
                                                                 gboolean             animate);
 | 
			
		||||
CLUTTER_DEPRECATED
 | 
			
		||||
CLUTTER_DEPRECATED_IN_1_12
 | 
			
		||||
gboolean                clutter_box_layout_get_use_animations   (ClutterBoxLayout    *layout);
 | 
			
		||||
CLUTTER_DEPRECATED
 | 
			
		||||
CLUTTER_DEPRECATED_IN_1_12
 | 
			
		||||
void                    clutter_box_layout_set_easing_mode      (ClutterBoxLayout    *layout,
 | 
			
		||||
                                                                 gulong               mode);
 | 
			
		||||
CLUTTER_DEPRECATED
 | 
			
		||||
CLUTTER_DEPRECATED_IN_1_12
 | 
			
		||||
gulong                  clutter_box_layout_get_easing_mode      (ClutterBoxLayout    *layout);
 | 
			
		||||
CLUTTER_DEPRECATED
 | 
			
		||||
CLUTTER_DEPRECATED_IN_1_12
 | 
			
		||||
void                    clutter_box_layout_set_easing_duration  (ClutterBoxLayout    *layout,
 | 
			
		||||
                                                                 guint                msecs);
 | 
			
		||||
CLUTTER_DEPRECATED
 | 
			
		||||
CLUTTER_DEPRECATED_IN_1_12
 | 
			
		||||
guint                   clutter_box_layout_get_easing_duration  (ClutterBoxLayout    *layout);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,9 @@
 | 
			
		||||
#define CLUTTER_IS_BRIGHTNESS_CONTRAST_EFFECT_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_BRIGHTNESS_CONTRAST_EFFECT))
 | 
			
		||||
#define CLUTTER_BRIGHTNESS_CONTRAST_EFFECT_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_BRIGHTNESS_CONTRAST_EFFECT, ClutterBrightnessContrastEffectClass))
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <math.h>
 | 
			
		||||
 | 
			
		||||
@@ -178,7 +180,6 @@ static void
 | 
			
		||||
clutter_brightness_contrast_effect_paint_target (ClutterOffscreenEffect *effect)
 | 
			
		||||
{
 | 
			
		||||
  ClutterBrightnessContrastEffect *self = CLUTTER_BRIGHTNESS_CONTRAST_EFFECT (effect);
 | 
			
		||||
  CoglFramebuffer *framebuffer = cogl_get_draw_framebuffer ();
 | 
			
		||||
  ClutterActor *actor;
 | 
			
		||||
  guint8 paint_opacity;
 | 
			
		||||
 | 
			
		||||
@@ -190,11 +191,11 @@ clutter_brightness_contrast_effect_paint_target (ClutterOffscreenEffect *effect)
 | 
			
		||||
                              paint_opacity,
 | 
			
		||||
                              paint_opacity,
 | 
			
		||||
                              paint_opacity);
 | 
			
		||||
  cogl_push_source (self->pipeline);
 | 
			
		||||
 | 
			
		||||
  cogl_framebuffer_draw_rectangle (framebuffer,
 | 
			
		||||
                                   self->pipeline,
 | 
			
		||||
                                   0, 0,
 | 
			
		||||
                                   self->tex_width, self->tex_height);
 | 
			
		||||
  cogl_rectangle (0, 0, self->tex_width, self->tex_height);
 | 
			
		||||
 | 
			
		||||
  cogl_pop_source ();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
 
 | 
			
		||||
@@ -49,35 +49,35 @@ G_BEGIN_DECLS
 | 
			
		||||
typedef struct _ClutterBrightnessContrastEffect         ClutterBrightnessContrastEffect;
 | 
			
		||||
typedef struct _ClutterBrightnessContrastEffectClass    ClutterBrightnessContrastEffectClass;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
GType clutter_brightness_contrast_effect_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
ClutterEffect * clutter_brightness_contrast_effect_new                          (void);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void            clutter_brightness_contrast_effect_set_brightness_full          (ClutterBrightnessContrastEffect *effect,
 | 
			
		||||
                                                                                 float                            red,
 | 
			
		||||
                                                                                 float                            green,
 | 
			
		||||
                                                                                 float                            blue);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void            clutter_brightness_contrast_effect_set_brightness               (ClutterBrightnessContrastEffect *effect,
 | 
			
		||||
                                                                                 float                            brightness);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void            clutter_brightness_contrast_effect_get_brightness               (ClutterBrightnessContrastEffect *effect,
 | 
			
		||||
                                                                                 float                           *red,
 | 
			
		||||
                                                                                 float                           *green,
 | 
			
		||||
                                                                                 float                           *blue);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void            clutter_brightness_contrast_effect_set_contrast_full            (ClutterBrightnessContrastEffect *effect,
 | 
			
		||||
                                                                                 float                            red,
 | 
			
		||||
                                                                                 float                            green,
 | 
			
		||||
                                                                                 float                            blue);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void            clutter_brightness_contrast_effect_set_contrast                 (ClutterBrightnessContrastEffect *effect,
 | 
			
		||||
                                                                                 float                            contrast);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void            clutter_brightness_contrast_effect_get_contrast                 (ClutterBrightnessContrastEffect *effect,
 | 
			
		||||
                                                                                 float                           *red,
 | 
			
		||||
                                                                                 float                           *green,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,14 +0,0 @@
 | 
			
		||||
/* Mutter version */
 | 
			
		||||
#mesondefine MUTTER_VERSION
 | 
			
		||||
 | 
			
		||||
/* List of Cogl drivers */
 | 
			
		||||
#mesondefine CLUTTER_DRIVERS
 | 
			
		||||
 | 
			
		||||
/* Have evdev support for input handling */
 | 
			
		||||
#mesondefine HAVE_EVDEV
 | 
			
		||||
 | 
			
		||||
/* Building with libwacom for advanced tablet management */
 | 
			
		||||
#mesondefine HAVE_LIBWACOM
 | 
			
		||||
 | 
			
		||||
/* Supports PangoFt2 */
 | 
			
		||||
#mesondefine HAVE_PANGO_FT2
 | 
			
		||||
@@ -27,7 +27,9 @@
 | 
			
		||||
 * Clutter provides some utility functions for using Cairo.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "clutter-cairo.h"
 | 
			
		||||
#include "clutter-color.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -50,9 +50,9 @@ G_BEGIN_DECLS
 | 
			
		||||
#define CLUTTER_CAIRO_FORMAT_ARGB32     (COGL_PIXEL_FORMAT_ARGB_8888_PRE)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void    clutter_cairo_clear             (cairo_t               *cr);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
void    clutter_cairo_set_source_color  (cairo_t               *cr,
 | 
			
		||||
                                         const ClutterColor    *color);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -42,7 +42,9 @@
 | 
			
		||||
 * #ClutterCanvas is available since Clutter 1.10.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <cogl/cogl.h>
 | 
			
		||||
#include <cairo-gobject.h>
 | 
			
		||||
@@ -74,6 +76,9 @@ struct _ClutterCanvasPrivate
 | 
			
		||||
  gboolean dirty;
 | 
			
		||||
 | 
			
		||||
  CoglBitmap *buffer;
 | 
			
		||||
 | 
			
		||||
  int scale_factor;
 | 
			
		||||
  guint scale_factor_set : 1;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum
 | 
			
		||||
@@ -82,6 +87,8 @@ enum
 | 
			
		||||
 | 
			
		||||
  PROP_WIDTH,
 | 
			
		||||
  PROP_HEIGHT,
 | 
			
		||||
  PROP_SCALE_FACTOR,
 | 
			
		||||
  PROP_SCALE_FACTOR_SET,
 | 
			
		||||
 | 
			
		||||
  LAST_PROP
 | 
			
		||||
};
 | 
			
		||||
@@ -178,6 +185,11 @@ clutter_canvas_set_property (GObject      *gobject,
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case PROP_SCALE_FACTOR:
 | 
			
		||||
      clutter_canvas_set_scale_factor (CLUTTER_CANVAS (gobject),
 | 
			
		||||
                                       g_value_get_int (value));
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    default:
 | 
			
		||||
      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
 | 
			
		||||
      break;
 | 
			
		||||
@@ -202,6 +214,17 @@ clutter_canvas_get_property (GObject    *gobject,
 | 
			
		||||
      g_value_set_int (value, priv->height);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case PROP_SCALE_FACTOR:
 | 
			
		||||
      if (priv->scale_factor_set)
 | 
			
		||||
        g_value_set_int (value, priv->scale_factor);
 | 
			
		||||
      else
 | 
			
		||||
        g_value_set_int (value, -1);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case PROP_SCALE_FACTOR_SET:
 | 
			
		||||
      g_value_set_boolean (value, priv->scale_factor_set);
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    default:
 | 
			
		||||
      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
 | 
			
		||||
      break;
 | 
			
		||||
@@ -245,6 +268,46 @@ clutter_canvas_class_init (ClutterCanvasClass *klass)
 | 
			
		||||
                      G_PARAM_READWRITE |
 | 
			
		||||
                      G_PARAM_STATIC_STRINGS);
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * ClutterCanvas:scale-factor-set:
 | 
			
		||||
   *
 | 
			
		||||
   * Whether the #ClutterCanvas:scale-factor property is set.
 | 
			
		||||
   *
 | 
			
		||||
   * If the #ClutterCanvas:scale-factor-set property is %FALSE
 | 
			
		||||
   * then #ClutterCanvas will use the #ClutterSettings:window-scaling-factor
 | 
			
		||||
   * property.
 | 
			
		||||
   *
 | 
			
		||||
   * Since: 1.18
 | 
			
		||||
   */
 | 
			
		||||
  obj_props[PROP_SCALE_FACTOR_SET] =
 | 
			
		||||
    g_param_spec_boolean ("scale-factor-set",
 | 
			
		||||
                          P_("Scale Factor Set"),
 | 
			
		||||
                          P_("Whether the scale-factor property is set"),
 | 
			
		||||
                          FALSE,
 | 
			
		||||
                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * ClutterCanvas:scale-factor:
 | 
			
		||||
   *
 | 
			
		||||
   * The scaling factor to be applied to the Cairo surface used for
 | 
			
		||||
   * drawing.
 | 
			
		||||
   *
 | 
			
		||||
   * If #ClutterCanvas:scale-factor is set to a negative value, the
 | 
			
		||||
   * value of the #ClutterSettings:window-scaling-factor property is
 | 
			
		||||
   * used instead.
 | 
			
		||||
   *
 | 
			
		||||
   * Use #ClutterCanvas:scale-factor-set to check if the scale factor
 | 
			
		||||
   * is set.
 | 
			
		||||
   *
 | 
			
		||||
   * Since: 1.18
 | 
			
		||||
   */
 | 
			
		||||
  obj_props[PROP_SCALE_FACTOR] =
 | 
			
		||||
    g_param_spec_int ("scale-factor",
 | 
			
		||||
                      P_("Scale Factor"),
 | 
			
		||||
                      P_("The scaling factor for the surface"),
 | 
			
		||||
                      -1, 1000,
 | 
			
		||||
                      -1,
 | 
			
		||||
                      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * ClutterCanvas::draw:
 | 
			
		||||
@@ -291,6 +354,7 @@ clutter_canvas_init (ClutterCanvas *self)
 | 
			
		||||
 | 
			
		||||
  self->priv->width = -1;
 | 
			
		||||
  self->priv->height = -1;
 | 
			
		||||
  self->priv->scale_factor = -1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
@@ -333,18 +397,28 @@ clutter_canvas_emit_draw (ClutterCanvas *self)
 | 
			
		||||
  gboolean mapped_buffer;
 | 
			
		||||
  unsigned char *data;
 | 
			
		||||
  CoglBuffer *buffer;
 | 
			
		||||
  int window_scale = 1;
 | 
			
		||||
  gboolean res;
 | 
			
		||||
  cairo_t *cr;
 | 
			
		||||
 | 
			
		||||
  g_assert (priv->height > 0 && priv->width > 0);
 | 
			
		||||
  g_assert (priv->width > 0 && priv->width > 0);
 | 
			
		||||
 | 
			
		||||
  priv->dirty = TRUE;
 | 
			
		||||
 | 
			
		||||
  real_width = priv->width;
 | 
			
		||||
  real_height = priv->height;
 | 
			
		||||
  if (priv->scale_factor_set)
 | 
			
		||||
    window_scale = priv->scale_factor;
 | 
			
		||||
  else
 | 
			
		||||
    g_object_get (clutter_settings_get_default (),
 | 
			
		||||
                  "window-scaling-factor", &window_scale,
 | 
			
		||||
                  NULL);
 | 
			
		||||
 | 
			
		||||
  CLUTTER_NOTE (MISC, "Creating Cairo surface with size %d x %d",
 | 
			
		||||
                priv->width, priv->height);
 | 
			
		||||
  real_width = priv->width * window_scale;
 | 
			
		||||
  real_height = priv->height * window_scale;
 | 
			
		||||
 | 
			
		||||
  CLUTTER_NOTE (MISC, "Creating Cairo surface with size %d x %d (real: %d x %d, scale: %d)",
 | 
			
		||||
                priv->width, priv->height,
 | 
			
		||||
                real_width, real_height,
 | 
			
		||||
                window_scale);
 | 
			
		||||
 | 
			
		||||
  if (priv->buffer == NULL)
 | 
			
		||||
    {
 | 
			
		||||
@@ -387,6 +461,8 @@ clutter_canvas_emit_draw (ClutterCanvas *self)
 | 
			
		||||
      mapped_buffer = FALSE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  cairo_surface_set_device_scale (surface, window_scale, window_scale);
 | 
			
		||||
 | 
			
		||||
  self->priv->cr = cr = cairo_create (surface);
 | 
			
		||||
 | 
			
		||||
  g_signal_emit (self, canvas_signals[DRAW], 0,
 | 
			
		||||
@@ -560,3 +636,81 @@ clutter_canvas_set_size (ClutterCanvas *canvas,
 | 
			
		||||
 | 
			
		||||
  return clutter_canvas_invalidate_internal (canvas, width, height);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * clutter_canvas_set_scale_factor:
 | 
			
		||||
 * @canvas: a #ClutterCanvas
 | 
			
		||||
 * @scale: the scale factor, or -1 for the default
 | 
			
		||||
 *
 | 
			
		||||
 * Sets the scaling factor for the Cairo surface used by @canvas.
 | 
			
		||||
 *
 | 
			
		||||
 * This function should rarely be used.
 | 
			
		||||
 *
 | 
			
		||||
 * The default scaling factor of a #ClutterCanvas content uses the
 | 
			
		||||
 * #ClutterSettings:window-scaling-factor property, which is set by
 | 
			
		||||
 * the windowing system. By using this function it is possible to
 | 
			
		||||
 * override that setting.
 | 
			
		||||
 *
 | 
			
		||||
 * Changing the scale factor will invalidate the @canvas.
 | 
			
		||||
 *
 | 
			
		||||
 * Since: 1.18
 | 
			
		||||
 */
 | 
			
		||||
void
 | 
			
		||||
clutter_canvas_set_scale_factor (ClutterCanvas *canvas,
 | 
			
		||||
                                 int            scale)
 | 
			
		||||
{
 | 
			
		||||
  ClutterCanvasPrivate *priv;
 | 
			
		||||
  GObject *obj;
 | 
			
		||||
 | 
			
		||||
  g_return_if_fail (CLUTTER_IS_CANVAS (canvas));
 | 
			
		||||
  g_return_if_fail (scale != 0);
 | 
			
		||||
 | 
			
		||||
  priv = canvas->priv;
 | 
			
		||||
 | 
			
		||||
  if (scale < 0)
 | 
			
		||||
    {
 | 
			
		||||
      if (!priv->scale_factor_set)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
      priv->scale_factor_set = FALSE;
 | 
			
		||||
      priv->scale_factor = -1;
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    {
 | 
			
		||||
      if (priv->scale_factor_set && priv->scale_factor == scale)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
      priv->scale_factor_set = TRUE;
 | 
			
		||||
      priv->scale_factor = scale;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  clutter_content_invalidate (CLUTTER_CONTENT (canvas));
 | 
			
		||||
 | 
			
		||||
  obj = G_OBJECT (canvas);
 | 
			
		||||
 | 
			
		||||
  g_object_notify_by_pspec (obj, obj_props[PROP_SCALE_FACTOR]);
 | 
			
		||||
  g_object_notify_by_pspec (obj, obj_props[PROP_SCALE_FACTOR_SET]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * clutter_canvas_get_scale_factor:
 | 
			
		||||
 * @canvas: a #ClutterCanvas
 | 
			
		||||
 *
 | 
			
		||||
 * Retrieves the scaling factor of @canvas, as set using
 | 
			
		||||
 * clutter_canvas_set_scale_factor().
 | 
			
		||||
 *
 | 
			
		||||
 * Return value: the scaling factor, or -1 if the @canvas
 | 
			
		||||
 *   uses the default from #ClutterSettings
 | 
			
		||||
 *
 | 
			
		||||
 * Since: 1.18
 | 
			
		||||
 */
 | 
			
		||||
int
 | 
			
		||||
clutter_canvas_get_scale_factor (ClutterCanvas *canvas)
 | 
			
		||||
{
 | 
			
		||||
  g_return_val_if_fail (CLUTTER_IS_CANVAS (canvas), -1);
 | 
			
		||||
 | 
			
		||||
  if (!canvas->priv->scale_factor_set)
 | 
			
		||||
    return -1;
 | 
			
		||||
 | 
			
		||||
  return canvas->priv->scale_factor;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -85,20 +85,20 @@ struct _ClutterCanvasClass
 | 
			
		||||
  gpointer _padding[16];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
GType clutter_canvas_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
ClutterContent *        clutter_canvas_new                      (void);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
gboolean                clutter_canvas_set_size                 (ClutterCanvas *canvas,
 | 
			
		||||
                                                                 int            width,
 | 
			
		||||
                                                                 int            height);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_18
 | 
			
		||||
void                    clutter_canvas_set_scale_factor         (ClutterCanvas *canvas,
 | 
			
		||||
                                                                 int            scale);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_18
 | 
			
		||||
int                     clutter_canvas_get_scale_factor         (ClutterCanvas *canvas);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -36,8 +36,9 @@
 | 
			
		||||
 *
 | 
			
		||||
 * #ClutterChildMeta is available since Clutter 0.8
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "clutter-child-meta.h"
 | 
			
		||||
#include "clutter-container.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -109,12 +109,12 @@ struct _ClutterChildMetaClass
 | 
			
		||||
  GObjectClass parent_class;
 | 
			
		||||
}; 
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
GType clutter_child_meta_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
ClutterContainer *      clutter_child_meta_get_container        (ClutterChildMeta *data);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
ClutterActor     *      clutter_child_meta_get_actor            (ClutterChildMeta *data);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -92,7 +92,9 @@
 | 
			
		||||
 * #ClutterClickAction is available since Clutter 1.4
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "clutter-click-action.h"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -97,22 +97,22 @@ struct _ClutterClickActionClass
 | 
			
		||||
  void (* _clutter_click_action7) (void);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType clutter_click_action_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterAction *        clutter_click_action_new        (void);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
guint                  clutter_click_action_get_button (ClutterClickAction *action);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterModifierType    clutter_click_action_get_state  (ClutterClickAction *action);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_8
 | 
			
		||||
void                   clutter_click_action_get_coords (ClutterClickAction *action,
 | 
			
		||||
                                                        gfloat             *press_x,
 | 
			
		||||
                                                        gfloat             *press_y);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void                   clutter_click_action_release    (ClutterClickAction *action);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,9 @@
 | 
			
		||||
 * #ClutterClone is available since Clutter 1.0
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
 | 
			
		||||
#include "clutter-actor-private.h"
 | 
			
		||||
@@ -52,7 +54,6 @@
 | 
			
		||||
struct _ClutterClonePrivate
 | 
			
		||||
{
 | 
			
		||||
  ClutterActor *clone_source;
 | 
			
		||||
  gulong source_destroy_id;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
G_DEFINE_TYPE_WITH_PRIVATE (ClutterClone, clutter_clone, CLUTTER_TYPE_ACTOR)
 | 
			
		||||
@@ -375,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)
 | 
			
		||||
@@ -393,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;
 | 
			
		||||
@@ -404,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]);
 | 
			
		||||
 
 | 
			
		||||
@@ -78,15 +78,15 @@ struct _ClutterCloneClass
 | 
			
		||||
  void (*_clutter_actor_clone4) (void);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
GType clutter_clone_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
ClutterActor *  clutter_clone_new               (ClutterActor *source);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
void            clutter_clone_set_source        (ClutterClone *self,
 | 
			
		||||
                                                 ClutterActor *source);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
ClutterActor *  clutter_clone_get_source        (ClutterClone *self);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										52
									
								
								clutter/clutter/clutter-cogl-compat.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								clutter/clutter/clutter-cogl-compat.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Clutter.
 | 
			
		||||
 *
 | 
			
		||||
 * An OpenGL based 'interactive canvas' library.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2012  Intel Corporation.
 | 
			
		||||
 *
 | 
			
		||||
 * 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/>.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef __CLUTTER_COGL_COMPAT_H__
 | 
			
		||||
#define __CLUTTER_COGL_COMPAT_H__
 | 
			
		||||
 | 
			
		||||
#if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION)
 | 
			
		||||
#error "Only <clutter/clutter.h> can be included directly."
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
/* XXX: Some public Clutter apis depend on Cogl types that have been
 | 
			
		||||
 * removed from the Cogl 2.0 experimental api.
 | 
			
		||||
 *
 | 
			
		||||
 * If somone has opted to use the Cogl 2.0 experimental api by
 | 
			
		||||
 * defining COGL_ENABLE_EXPERIMENTAL_2_0_API then we need to define
 | 
			
		||||
 * some place holder typdefs for compatability.
 | 
			
		||||
 *
 | 
			
		||||
 * NB: we build all clutter internals with COGL_ENABLE_EXPERIMENTAL_2_0_API
 | 
			
		||||
 * defined.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifdef COGL_ENABLE_EXPERIMENTAL_2_0_API
 | 
			
		||||
 | 
			
		||||
/* CoglMaterial has been replaced with CoglPipeline in Cogl 2.0 */
 | 
			
		||||
typedef struct _CoglMaterial CoglMaterial;
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif /* __CLUTTER_COGL_COMPAT_H__ */
 | 
			
		||||
@@ -33,7 +33,9 @@
 | 
			
		||||
 * The alpha channel is fully opaque at 255 and fully transparent at 0.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <math.h>
 | 
			
		||||
 | 
			
		||||
@@ -46,7 +48,7 @@
 | 
			
		||||
#include "clutter-debug.h"
 | 
			
		||||
 | 
			
		||||
/* XXX - keep in sync with the ClutterStaticColor enumeration order */
 | 
			
		||||
static const ClutterColor static_colors[] = {
 | 
			
		||||
static const ClutterColor const static_colors[] = {
 | 
			
		||||
  /* CGA/EGA color palette */
 | 
			
		||||
  { 0xff, 0xff, 0xff, 0xff },   /* white */
 | 
			
		||||
  { 0x00, 0x00, 0x00, 0xff },   /* black */
 | 
			
		||||
 
 | 
			
		||||
@@ -68,76 +68,76 @@ struct _ClutterColor
 | 
			
		||||
 */
 | 
			
		||||
#define CLUTTER_COLOR_INIT(r,g,b,a)     { (r), (g), (b), (a) }
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
GType clutter_color_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
ClutterColor *clutter_color_new         (guint8              red,
 | 
			
		||||
                                         guint8              green,
 | 
			
		||||
                                         guint8              blue,
 | 
			
		||||
                                         guint8              alpha);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
ClutterColor *clutter_color_alloc       (void);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
ClutterColor *clutter_color_init        (ClutterColor       *color,
 | 
			
		||||
                                         guint8              red,
 | 
			
		||||
                                         guint8              green,
 | 
			
		||||
                                         guint8              blue,
 | 
			
		||||
                                         guint8              alpha);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
ClutterColor *clutter_color_copy        (const ClutterColor *color);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void          clutter_color_free        (ClutterColor       *color);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void          clutter_color_add         (const ClutterColor *a,
 | 
			
		||||
                                         const ClutterColor *b,
 | 
			
		||||
                                         ClutterColor       *result);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void          clutter_color_subtract    (const ClutterColor *a,
 | 
			
		||||
                                         const ClutterColor *b,
 | 
			
		||||
                                         ClutterColor       *result);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void          clutter_color_lighten     (const ClutterColor *color,
 | 
			
		||||
                                         ClutterColor       *result);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void          clutter_color_darken      (const ClutterColor *color,
 | 
			
		||||
                                         ClutterColor       *result);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void          clutter_color_shade       (const ClutterColor *color,
 | 
			
		||||
                                         gdouble             factor,
 | 
			
		||||
                                         ClutterColor       *result);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gchar *       clutter_color_to_string   (const ClutterColor *color);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
gboolean      clutter_color_from_string (ClutterColor       *color,
 | 
			
		||||
                                         const gchar        *str);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void          clutter_color_to_hls      (const ClutterColor *color,
 | 
			
		||||
                                         gfloat             *hue,
 | 
			
		||||
					 gfloat             *luminance,
 | 
			
		||||
					 gfloat             *saturation);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void          clutter_color_from_hls    (ClutterColor       *color,
 | 
			
		||||
                                         gfloat              hue,
 | 
			
		||||
                                         gfloat              luminance,
 | 
			
		||||
                                         gfloat              saturation);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
guint32       clutter_color_to_pixel    (const ClutterColor *color);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void          clutter_color_from_pixel  (ClutterColor       *color,
 | 
			
		||||
                                         guint32             pixel);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
guint         clutter_color_hash        (gconstpointer       v);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
gboolean      clutter_color_equal       (gconstpointer       v1,
 | 
			
		||||
                                         gconstpointer       v2);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_6
 | 
			
		||||
void          clutter_color_interpolate (const ClutterColor *initial,
 | 
			
		||||
                                         const ClutterColor *final,
 | 
			
		||||
                                         gdouble             progress,
 | 
			
		||||
@@ -177,22 +177,22 @@ struct _ClutterParamSpecColor
 | 
			
		||||
  ClutterColor *default_value;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
void                    clutter_value_set_color         (GValue             *value,
 | 
			
		||||
                                                         const ClutterColor *color);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
const ClutterColor *    clutter_value_get_color         (const GValue       *value);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
GType clutter_param_color_get_type (void) G_GNUC_CONST;
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_0
 | 
			
		||||
GParamSpec *    clutter_param_spec_color        (const gchar        *name,
 | 
			
		||||
                                                 const gchar        *nick,
 | 
			
		||||
                                                 const gchar        *blurb,
 | 
			
		||||
                                                 const ClutterColor *default_value,
 | 
			
		||||
                                                 GParamFlags         flags);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_6
 | 
			
		||||
const ClutterColor *clutter_color_get_static (ClutterStaticColor color);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,9 @@
 | 
			
		||||
#define CLUTTER_IS_COLORIZE_EFFECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_COLORIZE_EFFECT))
 | 
			
		||||
#define CLUTTER_COLORIZE_EFFECT_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_COLORIZE_EFFECT, ClutterColorizeEffectClass))
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
 | 
			
		||||
 | 
			
		||||
@@ -148,7 +150,6 @@ static void
 | 
			
		||||
clutter_colorize_effect_paint_target (ClutterOffscreenEffect *effect)
 | 
			
		||||
{
 | 
			
		||||
  ClutterColorizeEffect *self = CLUTTER_COLORIZE_EFFECT (effect);
 | 
			
		||||
  CoglFramebuffer *framebuffer = cogl_get_draw_framebuffer ();
 | 
			
		||||
  ClutterActor *actor;
 | 
			
		||||
  guint8 paint_opacity;
 | 
			
		||||
 | 
			
		||||
@@ -160,11 +161,11 @@ clutter_colorize_effect_paint_target (ClutterOffscreenEffect *effect)
 | 
			
		||||
                              paint_opacity,
 | 
			
		||||
                              paint_opacity,
 | 
			
		||||
                              paint_opacity);
 | 
			
		||||
  cogl_push_source (self->pipeline);
 | 
			
		||||
 | 
			
		||||
  cogl_framebuffer_draw_rectangle (framebuffer,
 | 
			
		||||
                                   self->pipeline,
 | 
			
		||||
                                   0, 0,
 | 
			
		||||
                                   self->tex_width, self->tex_height);
 | 
			
		||||
  cogl_rectangle (0, 0, self->tex_width, self->tex_height);
 | 
			
		||||
 | 
			
		||||
  cogl_pop_source ();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
 
 | 
			
		||||
@@ -49,16 +49,16 @@ G_BEGIN_DECLS
 | 
			
		||||
typedef struct _ClutterColorizeEffect           ClutterColorizeEffect;
 | 
			
		||||
typedef struct _ClutterColorizeEffectClass      ClutterColorizeEffectClass;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType clutter_colorize_effect_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterEffect *clutter_colorize_effect_new      (const ClutterColor *tint);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void           clutter_colorize_effect_set_tint (ClutterColorizeEffect *effect,
 | 
			
		||||
                                                 const ClutterColor    *tint);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void           clutter_colorize_effect_get_tint (ClutterColorizeEffect *effect,
 | 
			
		||||
                                                 ClutterColor          *tint);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -128,7 +128,9 @@
 | 
			
		||||
 * can be recovered at any point using clutter_actor_meta_get_actor().
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <string.h>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -96,32 +96,32 @@ struct _ClutterConstraintClass
 | 
			
		||||
  void (* _clutter_constraint7) (void);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType clutter_constraint_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
/* ClutterActor API */
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void               clutter_actor_add_constraint            (ClutterActor      *self,
 | 
			
		||||
                                                            ClutterConstraint *constraint);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void               clutter_actor_add_constraint_with_name  (ClutterActor      *self,
 | 
			
		||||
                                                            const gchar       *name,
 | 
			
		||||
                                                            ClutterConstraint *constraint);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void               clutter_actor_remove_constraint         (ClutterActor      *self,
 | 
			
		||||
                                                            ClutterConstraint *constraint);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void               clutter_actor_remove_constraint_by_name (ClutterActor      *self,
 | 
			
		||||
                                                            const gchar       *name);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GList *            clutter_actor_get_constraints           (ClutterActor      *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterConstraint *clutter_actor_get_constraint            (ClutterActor      *self,
 | 
			
		||||
                                                            const gchar       *name);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void               clutter_actor_clear_constraints         (ClutterActor      *self);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
gboolean           clutter_actor_has_constraints           (ClutterActor      *self);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -26,7 +26,9 @@
 | 
			
		||||
 * Author: Emmanuele Bassi <ebassi@openedhand.com>
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <stdarg.h>
 | 
			
		||||
#include <glib-object.h>
 | 
			
		||||
 
 | 
			
		||||
@@ -141,52 +141,52 @@ struct _ClutterContainerIface
 | 
			
		||||
                          GParamSpec       *pspec);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
GType clutter_container_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
ClutterActor *          clutter_container_find_child_by_name            (ClutterContainer *container,
 | 
			
		||||
                                                                         const gchar      *child_name);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
GParamSpec *            clutter_container_class_find_child_property     (GObjectClass     *klass,
 | 
			
		||||
                                                                         const gchar      *property_name);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
GParamSpec **           clutter_container_class_list_child_properties   (GObjectClass     *klass,
 | 
			
		||||
                                                                         guint            *n_properties);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                    clutter_container_create_child_meta             (ClutterContainer *container,
 | 
			
		||||
                                                                         ClutterActor     *actor);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                    clutter_container_destroy_child_meta            (ClutterContainer *container,
 | 
			
		||||
                                                                         ClutterActor     *actor);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
ClutterChildMeta *      clutter_container_get_child_meta                (ClutterContainer *container,
 | 
			
		||||
                                                                         ClutterActor     *actor);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                    clutter_container_child_set_property            (ClutterContainer *container,
 | 
			
		||||
                                                                         ClutterActor     *child,
 | 
			
		||||
                                                                         const gchar      * property,
 | 
			
		||||
                                                                         const GValue     *value);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                    clutter_container_child_get_property            (ClutterContainer *container,
 | 
			
		||||
                                                                         ClutterActor     *child,
 | 
			
		||||
                                                                         const gchar      *property,
 | 
			
		||||
                                                                         GValue           *value);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                    clutter_container_child_set                     (ClutterContainer *container,
 | 
			
		||||
                                                                         ClutterActor     *actor,
 | 
			
		||||
                                                                         const gchar      *first_prop,
 | 
			
		||||
                                                                         ...) G_GNUC_NULL_TERMINATED;
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                    clutter_container_child_get                     (ClutterContainer *container,
 | 
			
		||||
                                                                         ClutterActor     *actor,
 | 
			
		||||
                                                                         const gchar      *first_prop,
 | 
			
		||||
                                                                         ...) G_GNUC_NULL_TERMINATED;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL
 | 
			
		||||
void                    clutter_container_child_notify                  (ClutterContainer *container,
 | 
			
		||||
                                                                         ClutterActor     *child,
 | 
			
		||||
                                                                         GParamSpec       *pspec);
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,9 @@
 | 
			
		||||
 * #ClutterContent is available since Clutter 1.10.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "clutter-content-private.h"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -88,14 +88,14 @@ struct _ClutterContentIface
 | 
			
		||||
  void          (* invalidate)          (ClutterContent   *content);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
GType clutter_content_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
gboolean        clutter_content_get_preferred_size      (ClutterContent *content,
 | 
			
		||||
                                                         gfloat         *width,
 | 
			
		||||
                                                         gfloat         *height);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
void            clutter_content_invalidate              (ClutterContent *content);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -39,8 +39,7 @@ typedef enum {
 | 
			
		||||
  CLUTTER_DEBUG_DISABLE_CULLING         = 1 << 4,
 | 
			
		||||
  CLUTTER_DEBUG_DISABLE_OFFSCREEN_REDIRECT = 1 << 5,
 | 
			
		||||
  CLUTTER_DEBUG_CONTINUOUS_REDRAW       = 1 << 6,
 | 
			
		||||
  CLUTTER_DEBUG_PAINT_DEFORM_TILES      = 1 << 7,
 | 
			
		||||
  CLUTTER_DEBUG_PAINT_DAMAGE_REGION     = 1 << 8,
 | 
			
		||||
  CLUTTER_DEBUG_PAINT_DEFORM_TILES      = 1 << 7
 | 
			
		||||
} ClutterDrawDebugFlag;
 | 
			
		||||
 | 
			
		||||
#ifdef CLUTTER_ENABLE_DEBUG
 | 
			
		||||
 
 | 
			
		||||
@@ -51,7 +51,9 @@
 | 
			
		||||
 * deformation algorithm.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
 | 
			
		||||
#include "clutter-deform-effect.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -92,24 +92,24 @@ struct _ClutterDeformEffectClass
 | 
			
		||||
  void (*_clutter_deform7) (void);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType clutter_deform_effect_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void            clutter_deform_effect_set_back_material (ClutterDeformEffect *effect,
 | 
			
		||||
                                                         CoglHandle           material);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
CoglHandle      clutter_deform_effect_get_back_material (ClutterDeformEffect *effect);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void            clutter_deform_effect_set_n_tiles       (ClutterDeformEffect *effect,
 | 
			
		||||
                                                         guint                x_tiles,
 | 
			
		||||
                                                         guint                y_tiles);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void            clutter_deform_effect_get_n_tiles       (ClutterDeformEffect *effect,
 | 
			
		||||
                                                         guint               *x_tiles,
 | 
			
		||||
                                                         guint               *y_tiles);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void            clutter_deform_effect_invalidate        (ClutterDeformEffect *effect);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,7 @@
 | 
			
		||||
#include "deprecated/clutter-box.h"
 | 
			
		||||
#include "deprecated/clutter-cairo-texture.h"
 | 
			
		||||
#include "deprecated/clutter-container.h"
 | 
			
		||||
#include "deprecated/clutter-fixed.h"
 | 
			
		||||
#include "deprecated/clutter-frame-source.h"
 | 
			
		||||
#include "deprecated/clutter-group.h"
 | 
			
		||||
#include "deprecated/clutter-input-device.h"
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,9 @@
 | 
			
		||||
#define CLUTTER_IS_DESATURATE_EFFECT_CLASS(klass)     (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_DESATURATE_EFFECT))
 | 
			
		||||
#define CLUTTER_DESATURATE_EFFECT_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_DESATURATE_EFFECT, ClutterDesaturateEffectClass))
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
 | 
			
		||||
 | 
			
		||||
@@ -155,7 +157,6 @@ static void
 | 
			
		||||
clutter_desaturate_effect_paint_target (ClutterOffscreenEffect *effect)
 | 
			
		||||
{
 | 
			
		||||
  ClutterDesaturateEffect *self = CLUTTER_DESATURATE_EFFECT (effect);
 | 
			
		||||
  CoglFramebuffer *framebuffer = cogl_get_draw_framebuffer ();
 | 
			
		||||
  ClutterActor *actor;
 | 
			
		||||
  CoglHandle texture;
 | 
			
		||||
  guint8 paint_opacity;
 | 
			
		||||
@@ -171,12 +172,13 @@ clutter_desaturate_effect_paint_target (ClutterOffscreenEffect *effect)
 | 
			
		||||
                              paint_opacity,
 | 
			
		||||
                              paint_opacity,
 | 
			
		||||
                              paint_opacity);
 | 
			
		||||
  cogl_push_source (self->pipeline);
 | 
			
		||||
 | 
			
		||||
  cogl_framebuffer_draw_rectangle (framebuffer,
 | 
			
		||||
                                   self->pipeline,
 | 
			
		||||
                                   0, 0,
 | 
			
		||||
  cogl_rectangle (0, 0,
 | 
			
		||||
                  cogl_texture_get_width (texture),
 | 
			
		||||
                  cogl_texture_get_height (texture));
 | 
			
		||||
 | 
			
		||||
  cogl_pop_source ();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
 
 | 
			
		||||
@@ -48,16 +48,16 @@ G_BEGIN_DECLS
 | 
			
		||||
typedef struct _ClutterDesaturateEffect         ClutterDesaturateEffect;
 | 
			
		||||
typedef struct _ClutterDesaturateEffectClass    ClutterDesaturateEffectClass;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType clutter_desaturate_effect_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterEffect *clutter_desaturate_effect_new        (gdouble                  factor);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void           clutter_desaturate_effect_set_factor (ClutterDesaturateEffect *effect,
 | 
			
		||||
                                                     gdouble                  factor);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
gdouble        clutter_desaturate_effect_get_factor (ClutterDesaturateEffect *effect);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -131,23 +131,11 @@ struct _ClutterInputDevice
 | 
			
		||||
 | 
			
		||||
  gchar *vendor_id;
 | 
			
		||||
  gchar *product_id;
 | 
			
		||||
  gchar *node_path;
 | 
			
		||||
 | 
			
		||||
  GPtrArray *tools;
 | 
			
		||||
 | 
			
		||||
  gint n_rings;
 | 
			
		||||
  gint n_strips;
 | 
			
		||||
  gint n_mode_groups;
 | 
			
		||||
 | 
			
		||||
  ClutterInputDeviceMapping mapping_mode;
 | 
			
		||||
 | 
			
		||||
  guint has_cursor : 1;
 | 
			
		||||
  guint is_enabled : 1;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
typedef void (*ClutterEmitInputDeviceEvent) (ClutterEvent       *event,
 | 
			
		||||
                                             ClutterInputDevice *device);
 | 
			
		||||
 | 
			
		||||
struct _ClutterInputDeviceClass
 | 
			
		||||
{
 | 
			
		||||
  GObjectClass parent_class;
 | 
			
		||||
@@ -155,22 +143,6 @@ struct _ClutterInputDeviceClass
 | 
			
		||||
  gboolean (* keycode_to_evdev) (ClutterInputDevice *device,
 | 
			
		||||
                                 guint               hardware_keycode,
 | 
			
		||||
                                 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);
 | 
			
		||||
 | 
			
		||||
  /* Keyboard accessbility */
 | 
			
		||||
  void (* process_kbd_a11y_event) (ClutterEvent               *event,
 | 
			
		||||
                                   ClutterInputDevice         *device,
 | 
			
		||||
                                   ClutterEmitInputDeviceEvent emit_event_func);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* Platform-dependent interface */
 | 
			
		||||
@@ -205,10 +177,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);
 | 
			
		||||
@@ -267,15 +235,6 @@ gboolean        _clutter_input_device_get_scroll_delta          (ClutterInputDev
 | 
			
		||||
                                                                 ClutterScrollDirection *direction_p,
 | 
			
		||||
                                                                 gdouble                *delta_p);
 | 
			
		||||
 | 
			
		||||
ClutterInputDeviceTool * clutter_input_device_lookup_tool       (ClutterInputDevice         *device,
 | 
			
		||||
                                                                 guint64                     serial,
 | 
			
		||||
                                                                 ClutterInputDeviceToolType  type);
 | 
			
		||||
void            clutter_input_device_add_tool                   (ClutterInputDevice     *device,
 | 
			
		||||
                                                                 ClutterInputDeviceTool *tool);
 | 
			
		||||
 | 
			
		||||
void            clutter_input_device_update_from_tool           (ClutterInputDevice     *device,
 | 
			
		||||
                                                                 ClutterInputDeviceTool *tool);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif /* __CLUTTER_DEVICE_MANAGER_PRIVATE_H__ */
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,9 @@
 | 
			
		||||
 * #ClutterDeviceManager is available since Clutter 1.2
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "clutter-backend-private.h"
 | 
			
		||||
#include "clutter-debug.h"
 | 
			
		||||
@@ -45,16 +47,11 @@
 | 
			
		||||
#include "clutter-marshal.h"
 | 
			
		||||
#include "clutter-private.h"
 | 
			
		||||
#include "clutter-stage-private.h"
 | 
			
		||||
#include "clutter-virtual-input-device.h"
 | 
			
		||||
#include "clutter-input-device-tool.h"
 | 
			
		||||
 | 
			
		||||
struct _ClutterDeviceManagerPrivate
 | 
			
		||||
{
 | 
			
		||||
  /* back-pointer to the backend */
 | 
			
		||||
  ClutterBackend *backend;
 | 
			
		||||
 | 
			
		||||
  /* Keyboard a11y */
 | 
			
		||||
  ClutterKbdA11ySettings kbd_a11y_settings;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum
 | 
			
		||||
@@ -72,9 +69,6 @@ enum
 | 
			
		||||
{
 | 
			
		||||
  DEVICE_ADDED,
 | 
			
		||||
  DEVICE_REMOVED,
 | 
			
		||||
  TOOL_CHANGED,
 | 
			
		||||
  KBD_A11Y_MASK_CHANGED,
 | 
			
		||||
  KBD_A11Y_FLAGS_CHANGED,
 | 
			
		||||
 | 
			
		||||
  LAST_SIGNAL
 | 
			
		||||
};
 | 
			
		||||
@@ -189,56 +183,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);
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * ClutterDeviceManager::kbd-a11y-mods-state-changed:
 | 
			
		||||
   * @manager: the #ClutterDeviceManager that emitted the signal
 | 
			
		||||
   * @latched_mask: the latched modifier mask from stickykeys
 | 
			
		||||
   * @locked_mask:  the locked modifier mask from stickykeys
 | 
			
		||||
   *
 | 
			
		||||
   * The ::kbd-a11y-mods-state-changed signal is emitted each time either the
 | 
			
		||||
   * latched modifiers mask or locked modifiers mask are changed as the
 | 
			
		||||
   * result of keyboard accessibilty's sticky keys operations.
 | 
			
		||||
   */
 | 
			
		||||
  manager_signals[KBD_A11Y_MASK_CHANGED] =
 | 
			
		||||
    g_signal_new (I_("kbd-a11y-mods-state-changed"),
 | 
			
		||||
                  G_TYPE_FROM_CLASS (klass),
 | 
			
		||||
                  G_SIGNAL_RUN_LAST,
 | 
			
		||||
                  0, NULL, NULL,
 | 
			
		||||
                  _clutter_marshal_VOID__UINT_UINT,
 | 
			
		||||
                  G_TYPE_NONE, 2,
 | 
			
		||||
                  G_TYPE_UINT,
 | 
			
		||||
                  G_TYPE_UINT);
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * ClutterDeviceManager::kbd-a11y-flags-changed:
 | 
			
		||||
   * @manager: the #ClutterDeviceManager that emitted the signal
 | 
			
		||||
   * @settings_flags: the new ClutterKeyboardA11yFlags configuration
 | 
			
		||||
   * @changed_mask: the ClutterKeyboardA11yFlags changed
 | 
			
		||||
   *
 | 
			
		||||
   * The ::kbd-a11y-flags-changed signal is emitted each time the
 | 
			
		||||
   * ClutterKeyboardA11yFlags configuration is changed as the result of
 | 
			
		||||
   * keyboard accessibilty operations.
 | 
			
		||||
   */
 | 
			
		||||
  manager_signals[KBD_A11Y_FLAGS_CHANGED] =
 | 
			
		||||
    g_signal_new (I_("kbd-a11y-flags-changed"),
 | 
			
		||||
                  G_TYPE_FROM_CLASS (klass),
 | 
			
		||||
                  G_SIGNAL_RUN_LAST,
 | 
			
		||||
                  0, NULL, NULL,
 | 
			
		||||
                  _clutter_marshal_VOID__UINT_UINT,
 | 
			
		||||
                  G_TYPE_NONE, 2,
 | 
			
		||||
                  G_TYPE_UINT,
 | 
			
		||||
                  G_TYPE_UINT);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
@@ -491,97 +435,3 @@ _clutter_device_manager_get_backend (ClutterDeviceManager *manager)
 | 
			
		||||
 | 
			
		||||
  return manager->priv->backend;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * clutter_device_manager_create_virtual_device:
 | 
			
		||||
 * @device_manager: a #ClutterDeviceManager
 | 
			
		||||
 * @device_type: the type of the virtual device
 | 
			
		||||
 *
 | 
			
		||||
 * Creates a virtual input device.
 | 
			
		||||
 *
 | 
			
		||||
 * Returns: (transfer full): a newly created virtual device
 | 
			
		||||
 **/
 | 
			
		||||
ClutterVirtualInputDevice *
 | 
			
		||||
clutter_device_manager_create_virtual_device (ClutterDeviceManager   *device_manager,
 | 
			
		||||
                                              ClutterInputDeviceType  device_type)
 | 
			
		||||
{
 | 
			
		||||
  ClutterDeviceManagerClass *manager_class;
 | 
			
		||||
 | 
			
		||||
  g_return_val_if_fail (CLUTTER_IS_DEVICE_MANAGER (device_manager), NULL);
 | 
			
		||||
 | 
			
		||||
  manager_class = CLUTTER_DEVICE_MANAGER_GET_CLASS (device_manager);
 | 
			
		||||
  return manager_class->create_virtual_device (device_manager,
 | 
			
		||||
                                               device_type);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * clutter_device_manager_supported_virtua_device_types: (skip)
 | 
			
		||||
 */
 | 
			
		||||
ClutterVirtualDeviceType
 | 
			
		||||
clutter_device_manager_get_supported_virtual_device_types (ClutterDeviceManager *device_manager)
 | 
			
		||||
{
 | 
			
		||||
  ClutterDeviceManagerClass *manager_class;
 | 
			
		||||
 | 
			
		||||
  g_return_val_if_fail (CLUTTER_IS_DEVICE_MANAGER (device_manager),
 | 
			
		||||
                        CLUTTER_VIRTUAL_DEVICE_TYPE_NONE);
 | 
			
		||||
 | 
			
		||||
  manager_class = CLUTTER_DEVICE_MANAGER_GET_CLASS (device_manager);
 | 
			
		||||
  return manager_class->get_supported_virtual_device_types (device_manager);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static gboolean
 | 
			
		||||
are_kbd_a11y_settings_equal (ClutterKbdA11ySettings *a,
 | 
			
		||||
                             ClutterKbdA11ySettings *b)
 | 
			
		||||
{
 | 
			
		||||
  return (a->controls == b->controls &&
 | 
			
		||||
          a->slowkeys_delay == b->slowkeys_delay &&
 | 
			
		||||
          a->debounce_delay == b->debounce_delay &&
 | 
			
		||||
          a->timeout_delay == b->timeout_delay &&
 | 
			
		||||
          a->mousekeys_init_delay == b->mousekeys_init_delay &&
 | 
			
		||||
          a->mousekeys_max_speed == b->mousekeys_max_speed &&
 | 
			
		||||
          a->mousekeys_accel_time == b->mousekeys_accel_time);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_device_manager_set_kbd_a11y_settings (ClutterDeviceManager   *device_manager,
 | 
			
		||||
                                              ClutterKbdA11ySettings *settings)
 | 
			
		||||
{
 | 
			
		||||
  ClutterDeviceManagerClass *manager_class;
 | 
			
		||||
 | 
			
		||||
  g_return_if_fail (CLUTTER_IS_DEVICE_MANAGER (device_manager));
 | 
			
		||||
 | 
			
		||||
  if (are_kbd_a11y_settings_equal (&device_manager->priv->kbd_a11y_settings, settings))
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  device_manager->priv->kbd_a11y_settings = *settings;
 | 
			
		||||
 | 
			
		||||
  manager_class = CLUTTER_DEVICE_MANAGER_GET_CLASS (device_manager);
 | 
			
		||||
  if (manager_class->apply_kbd_a11y_settings)
 | 
			
		||||
    manager_class->apply_kbd_a11y_settings (device_manager, settings);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
clutter_device_manager_get_kbd_a11y_settings (ClutterDeviceManager   *device_manager,
 | 
			
		||||
                                              ClutterKbdA11ySettings *settings)
 | 
			
		||||
{
 | 
			
		||||
  g_return_if_fail (CLUTTER_IS_DEVICE_MANAGER (device_manager));
 | 
			
		||||
 | 
			
		||||
  *settings = device_manager->priv->kbd_a11y_settings;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -44,35 +44,6 @@ typedef struct _ClutterDeviceManager            ClutterDeviceManager;
 | 
			
		||||
typedef struct _ClutterDeviceManagerPrivate     ClutterDeviceManagerPrivate;
 | 
			
		||||
typedef struct _ClutterDeviceManagerClass       ClutterDeviceManagerClass;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * ClutterVirtualDeviceType:
 | 
			
		||||
 */
 | 
			
		||||
typedef enum _ClutterVirtualDeviceType
 | 
			
		||||
{
 | 
			
		||||
  CLUTTER_VIRTUAL_DEVICE_TYPE_NONE = 0,
 | 
			
		||||
  CLUTTER_VIRTUAL_DEVICE_TYPE_KEYBOARD = 1 << 0,
 | 
			
		||||
  CLUTTER_VIRTUAL_DEVICE_TYPE_POINTER = 1 << 1,
 | 
			
		||||
  CLUTTER_VIRTUAL_DEVICE_TYPE_TOUCHSCREEN = 1 << 2,
 | 
			
		||||
} ClutterVirtualDeviceType;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * ClutterKbdA11ySettings:
 | 
			
		||||
 *
 | 
			
		||||
 * The #ClutterKbdA11ySettings structure contains keyboard accessibility
 | 
			
		||||
 * settings
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
typedef struct _ClutterKbdA11ySettings
 | 
			
		||||
{
 | 
			
		||||
  ClutterKeyboardA11yFlags controls;
 | 
			
		||||
  gint slowkeys_delay;
 | 
			
		||||
  gint debounce_delay;
 | 
			
		||||
  gint timeout_delay;
 | 
			
		||||
  gint mousekeys_init_delay;
 | 
			
		||||
  gint mousekeys_max_speed;
 | 
			
		||||
  gint mousekeys_accel_time;
 | 
			
		||||
} ClutterKbdA11ySettings;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * ClutterDeviceManager:
 | 
			
		||||
 *
 | 
			
		||||
@@ -112,50 +83,28 @@ struct _ClutterDeviceManagerClass
 | 
			
		||||
                                           ClutterInputDevice     *device);
 | 
			
		||||
  void                (* select_stage_events) (ClutterDeviceManager *manager,
 | 
			
		||||
                                               ClutterStage       *stage);
 | 
			
		||||
  ClutterVirtualInputDevice *(* create_virtual_device) (ClutterDeviceManager  *device_manager,
 | 
			
		||||
                                                        ClutterInputDeviceType device_type);
 | 
			
		||||
  ClutterVirtualDeviceType (* get_supported_virtual_device_types) (ClutterDeviceManager *device_manager);
 | 
			
		||||
  void                (* compress_motion) (ClutterDeviceManager *device_manger,
 | 
			
		||||
                                           ClutterEvent         *event,
 | 
			
		||||
                                           const ClutterEvent   *to_discard);
 | 
			
		||||
  /* Keyboard accessbility */
 | 
			
		||||
  void                (* apply_kbd_a11y_settings) (ClutterDeviceManager   *device_manger,
 | 
			
		||||
                                                   ClutterKbdA11ySettings *settings);
 | 
			
		||||
 | 
			
		||||
  /* padding */
 | 
			
		||||
  gpointer _padding[6];
 | 
			
		||||
  gpointer _padding[7];
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
GType clutter_device_manager_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
ClutterDeviceManager *clutter_device_manager_get_default     (void);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
GSList *              clutter_device_manager_list_devices    (ClutterDeviceManager   *device_manager);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
const GSList *        clutter_device_manager_peek_devices    (ClutterDeviceManager   *device_manager);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
ClutterInputDevice *  clutter_device_manager_get_device      (ClutterDeviceManager   *device_manager,
 | 
			
		||||
                                                              gint                    device_id);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_2
 | 
			
		||||
ClutterInputDevice *  clutter_device_manager_get_core_device (ClutterDeviceManager   *device_manager,
 | 
			
		||||
                                                              ClutterInputDeviceType  device_type);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
ClutterVirtualInputDevice *clutter_device_manager_create_virtual_device (ClutterDeviceManager  *device_manager,
 | 
			
		||||
                                                                         ClutterInputDeviceType device_type);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
ClutterVirtualDeviceType clutter_device_manager_get_supported_virtual_device_types (ClutterDeviceManager *device_manager);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
void clutter_device_manager_set_kbd_a11y_settings (ClutterDeviceManager   *device_manager,
 | 
			
		||||
                                                   ClutterKbdA11ySettings *settings);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
void clutter_device_manager_get_kbd_a11y_settings (ClutterDeviceManager   *device_manager,
 | 
			
		||||
                                                   ClutterKbdA11ySettings *settings);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif /* __CLUTTER_DEVICE_MANAGER_H__ */
 | 
			
		||||
 
 | 
			
		||||
@@ -63,7 +63,9 @@
 | 
			
		||||
 * #ClutterDragAction is available since Clutter 1.4
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "clutter-drag-action.h"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -105,45 +105,45 @@ struct _ClutterDragActionClass
 | 
			
		||||
  void (* _clutter_drag_action4) (void);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType clutter_drag_action_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterAction * clutter_drag_action_new                   (void);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void            clutter_drag_action_set_drag_threshold (ClutterDragAction *action,
 | 
			
		||||
                                                        gint               x_threshold,
 | 
			
		||||
                                                        gint               y_threshold);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void            clutter_drag_action_get_drag_threshold (ClutterDragAction *action,
 | 
			
		||||
                                                        guint             *x_threshold,
 | 
			
		||||
                                                        guint             *y_threshold);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void            clutter_drag_action_set_drag_handle    (ClutterDragAction *action,
 | 
			
		||||
                                                        ClutterActor      *handle);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterActor *  clutter_drag_action_get_drag_handle    (ClutterDragAction *action);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void            clutter_drag_action_set_drag_axis      (ClutterDragAction *action,
 | 
			
		||||
                                                        ClutterDragAxis    axis);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterDragAxis clutter_drag_action_get_drag_axis      (ClutterDragAction *action);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void            clutter_drag_action_get_press_coords   (ClutterDragAction *action,
 | 
			
		||||
                                                        gfloat            *press_x,
 | 
			
		||||
                                                        gfloat            *press_y);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void            clutter_drag_action_get_motion_coords  (ClutterDragAction *action,
 | 
			
		||||
                                                        gfloat            *motion_x,
 | 
			
		||||
                                                        gfloat            *motion_y);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
gboolean        clutter_drag_action_get_drag_area      (ClutterDragAction *action,
 | 
			
		||||
                                                        ClutterRect       *drag_area);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_12
 | 
			
		||||
void            clutter_drag_action_set_drag_area      (ClutterDragAction *action,
 | 
			
		||||
                                                        const ClutterRect *drag_area);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -58,7 +58,9 @@
 | 
			
		||||
 * #ClutterDropAction is available since Clutter 1.8
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "clutter-drop-action.h"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -104,10 +104,10 @@ struct _ClutterDropActionClass
 | 
			
		||||
  void (*_clutter_drop_action8) (void);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_8
 | 
			
		||||
GType clutter_drop_action_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_8
 | 
			
		||||
ClutterAction *         clutter_drop_action_new         (void);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
 | 
			
		||||
#include "clutter-easing.h"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,6 @@ gboolean        _clutter_effect_pre_paint               (ClutterEffect
 | 
			
		||||
void            _clutter_effect_post_paint              (ClutterEffect           *effect);
 | 
			
		||||
gboolean        _clutter_effect_get_paint_volume        (ClutterEffect           *effect,
 | 
			
		||||
                                                         ClutterPaintVolume      *volume);
 | 
			
		||||
gboolean        _clutter_effect_has_custom_paint_volume (ClutterEffect           *effect);
 | 
			
		||||
void            _clutter_effect_paint                   (ClutterEffect           *effect,
 | 
			
		||||
                                                         ClutterEffectPaintFlags  flags);
 | 
			
		||||
void            _clutter_effect_pick                    (ClutterEffect           *effect,
 | 
			
		||||
 
 | 
			
		||||
@@ -160,7 +160,9 @@
 | 
			
		||||
 * #ClutterEffect is available since Clutter 1.4
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#ifdef HAVE_CONFIG_H
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "clutter-effect.h"
 | 
			
		||||
 | 
			
		||||
@@ -306,14 +308,6 @@ _clutter_effect_get_paint_volume (ClutterEffect      *effect,
 | 
			
		||||
  return CLUTTER_EFFECT_GET_CLASS (effect)->get_paint_volume (effect, volume);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
gboolean
 | 
			
		||||
_clutter_effect_has_custom_paint_volume (ClutterEffect *effect)
 | 
			
		||||
{
 | 
			
		||||
  g_return_val_if_fail (CLUTTER_IS_EFFECT (effect), FALSE);
 | 
			
		||||
 | 
			
		||||
  return CLUTTER_EFFECT_GET_CLASS (effect)->get_paint_volume != clutter_effect_real_get_paint_volume;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * clutter_effect_queue_repaint:
 | 
			
		||||
 * @effect: A #ClutterEffect which needs redrawing
 | 
			
		||||
 
 | 
			
		||||
@@ -91,38 +91,38 @@ struct _ClutterEffectClass
 | 
			
		||||
  void (* _clutter_effect6) (void);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GType clutter_effect_get_type (void) G_GNUC_CONST;
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_8
 | 
			
		||||
void    clutter_effect_queue_repaint    (ClutterEffect *effect);
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * ClutterActor API
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void           clutter_actor_add_effect            (ClutterActor  *self,
 | 
			
		||||
                                                    ClutterEffect *effect);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void           clutter_actor_add_effect_with_name  (ClutterActor  *self,
 | 
			
		||||
                                                    const gchar   *name,
 | 
			
		||||
                                                    ClutterEffect *effect);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void           clutter_actor_remove_effect         (ClutterActor  *self,
 | 
			
		||||
                                                    ClutterEffect *effect);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void           clutter_actor_remove_effect_by_name (ClutterActor  *self,
 | 
			
		||||
                                                    const gchar   *name);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
GList *        clutter_actor_get_effects           (ClutterActor  *self);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
ClutterEffect *clutter_actor_get_effect            (ClutterActor  *self,
 | 
			
		||||
                                                    const gchar   *name);
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_4
 | 
			
		||||
void           clutter_actor_clear_effects         (ClutterActor  *self);
 | 
			
		||||
 | 
			
		||||
CLUTTER_EXPORT
 | 
			
		||||
CLUTTER_AVAILABLE_IN_1_10
 | 
			
		||||
gboolean       clutter_actor_has_effects           (ClutterActor  *self);
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
/*** BEGIN file-header ***/
 | 
			
		||||
#include "clutter-build-config.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#include "clutter-enum-types.h"
 | 
			
		||||
/*** END file-header ***/
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@ G_BEGIN_DECLS
 | 
			
		||||
/*** END file-production ***/
 | 
			
		||||
 | 
			
		||||
/*** BEGIN value-header ***/
 | 
			
		||||
CLUTTER_EXPORT GType @enum_name@_get_type (void) G_GNUC_CONST;
 | 
			
		||||
CLUTTER_AVAILABLE_IN_ALL GType @enum_name@_get_type (void) G_GNUC_CONST;
 | 
			
		||||
#define CLUTTER_TYPE_@ENUMSHORT@ (@enum_name@_get_type())
 | 
			
		||||
 | 
			
		||||
/*** END value-header ***/
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user