2009-08-30 20:21:02 -04:00
|
|
|
# Flag build for parallelism; see https://savannah.gnu.org/patch/?6905
|
|
|
|
.AUTOPARALLEL:
|
|
|
|
|
2014-04-09 18:12:50 -04:00
|
|
|
lib_LTLIBRARIES = libmutter.la
|
2001-06-02 00:14:18 -04:00
|
|
|
|
2013-07-17 23:15:02 -04:00
|
|
|
SUBDIRS=compositor/plugins
|
2008-09-18 11:09:11 -04:00
|
|
|
|
2014-09-11 13:43:32 -04:00
|
|
|
EXTRA_DIST =
|
2014-11-04 22:06:55 -05:00
|
|
|
NULL =
|
2014-09-11 13:43:32 -04:00
|
|
|
|
2014-06-04 13:31:37 -04:00
|
|
|
AM_CPPFLAGS = \
|
2014-02-24 08:35:06 -05:00
|
|
|
-DCLUTTER_ENABLE_COMPOSITOR_API \
|
2012-11-12 13:32:30 -05:00
|
|
|
-DCLUTTER_ENABLE_EXPERIMENTAL_API \
|
|
|
|
-DCOGL_ENABLE_EXPERIMENTAL_API \
|
2013-01-23 15:54:41 -05:00
|
|
|
-DCOGL_ENABLE_EXPERIMENTAL_2_0_API \
|
2014-07-13 11:46:13 -04:00
|
|
|
-DCLUTTER_DISABLE_DEPRECATION_WARNINGS \
|
|
|
|
-DCOGL_DISABLE_DEPRECATION_WARNINGS \
|
2011-03-05 16:16:26 -05:00
|
|
|
$(MUTTER_CFLAGS) \
|
2014-05-29 12:11:26 -04:00
|
|
|
$(MUTTER_NATIVE_BACKEND_CFLAGS) \
|
2014-06-05 08:05:16 -04:00
|
|
|
-I$(builddir) \
|
2011-03-05 19:29:12 -05:00
|
|
|
-I$(srcdir) \
|
2014-03-31 22:07:49 -04:00
|
|
|
-I$(srcdir)/backends \
|
2011-03-05 19:29:12 -05:00
|
|
|
-I$(srcdir)/core \
|
|
|
|
-I$(srcdir)/ui \
|
2011-03-05 16:16:26 -05:00
|
|
|
-I$(srcdir)/compositor \
|
|
|
|
-DMUTTER_LIBEXECDIR=\"$(libexecdir)\" \
|
2014-06-04 13:31:37 -04:00
|
|
|
-DMUTTER_LOCALEDIR=\"$(localedir)\" \
|
2011-03-05 16:16:26 -05:00
|
|
|
-DMUTTER_PKGDATADIR=\"$(pkgdatadir)\" \
|
|
|
|
-DMUTTER_DATADIR=\"$(datadir)\" \
|
|
|
|
-DG_LOG_DOMAIN=\"mutter\" \
|
|
|
|
-DSN_API_NOT_YET_FROZEN=1 \
|
|
|
|
-DMUTTER_PKGLIBDIR=\"$(pkglibdir)\" \
|
2014-06-04 13:31:37 -04:00
|
|
|
-DMUTTER_PLUGIN_DIR=\"$(MUTTER_PLUGIN_DIR)\" \
|
2014-03-18 22:01:31 -04:00
|
|
|
-DGETTEXT_PACKAGE=\"$(GETTEXT_PACKAGE)\" \
|
2014-11-04 22:06:55 -05:00
|
|
|
-DXWAYLAND_PATH=\"$(XWAYLAND_PATH)\" \
|
|
|
|
$(NULL)
|
2012-01-10 13:28:15 -05:00
|
|
|
|
2009-07-02 11:19:02 -04:00
|
|
|
mutter_built_sources = \
|
2013-08-16 07:49:03 -04:00
|
|
|
$(dbus_idle_built_sources) \
|
2014-03-31 23:33:01 -04:00
|
|
|
$(dbus_display_config_built_sources) \
|
2013-12-31 17:44:45 -05:00
|
|
|
$(dbus_login1_built_sources) \
|
2015-07-06 00:58:45 -04:00
|
|
|
meta/meta-enum-types.h \
|
|
|
|
meta-enum-types.c \
|
2014-11-04 22:06:55 -05:00
|
|
|
$(NULL)
|
2014-08-27 12:05:51 -04:00
|
|
|
|
|
|
|
if HAVE_WAYLAND
|
|
|
|
mutter_built_sources += \
|
2015-11-09 02:28:14 -05:00
|
|
|
pointer-gestures-unstable-v1-protocol.c \
|
|
|
|
pointer-gestures-unstable-v1-server-protocol.h \
|
2014-03-18 22:06:20 -04:00
|
|
|
gtk-shell-protocol.c \
|
|
|
|
gtk-shell-server-protocol.h \
|
2015-11-17 22:23:45 -05:00
|
|
|
xdg-shell-unstable-v5-protocol.c \
|
|
|
|
xdg-shell-unstable-v5-server-protocol.h \
|
2015-06-02 04:26:34 -04:00
|
|
|
relative-pointer-unstable-v1-protocol.c \
|
|
|
|
relative-pointer-unstable-v1-server-protocol.h \
|
2014-11-04 22:06:55 -05:00
|
|
|
$(NULL)
|
2014-08-27 12:05:51 -04:00
|
|
|
endif
|
2012-01-07 17:21:32 -05:00
|
|
|
|
2014-11-04 22:06:55 -05:00
|
|
|
wayland_protocols = \
|
2014-03-18 20:32:02 -04:00
|
|
|
wayland/protocol/gtk-shell.xml \
|
2014-11-04 22:06:55 -05:00
|
|
|
$(NULL)
|
2014-03-18 20:32:02 -04:00
|
|
|
|
2014-04-09 18:12:50 -04:00
|
|
|
libmutter_la_SOURCES = \
|
2014-03-31 23:00:07 -04:00
|
|
|
backends/meta-backend.c \
|
2014-08-05 08:11:59 -04:00
|
|
|
meta/meta-backend.h \
|
2014-04-21 19:03:22 -04:00
|
|
|
backends/meta-backend-private.h \
|
2015-01-15 21:30:04 -05:00
|
|
|
backends/meta-barrier.c \
|
|
|
|
backends/meta-barrier-private.h \
|
2014-03-31 22:07:49 -04:00
|
|
|
backends/meta-cursor.c \
|
|
|
|
backends/meta-cursor.h \
|
|
|
|
backends/meta-cursor-tracker.c \
|
|
|
|
backends/meta-cursor-tracker-private.h \
|
2014-04-21 18:05:59 -04:00
|
|
|
backends/meta-cursor-renderer.c \
|
|
|
|
backends/meta-cursor-renderer.h \
|
2014-04-15 16:21:12 -04:00
|
|
|
backends/meta-display-config-shared.h \
|
2014-03-31 22:07:49 -04:00
|
|
|
backends/meta-idle-monitor.c \
|
|
|
|
backends/meta-idle-monitor-private.h \
|
|
|
|
backends/meta-idle-monitor-dbus.c \
|
|
|
|
backends/meta-idle-monitor-dbus.h \
|
2014-10-29 10:30:52 -04:00
|
|
|
backends/meta-input-settings.c \
|
|
|
|
backends/meta-input-settings-private.h \
|
2014-03-31 22:07:49 -04:00
|
|
|
backends/meta-monitor-config.c \
|
|
|
|
backends/meta-monitor-config.h \
|
|
|
|
backends/meta-monitor-manager.c \
|
2015-01-30 08:51:18 -05:00
|
|
|
meta/meta-monitor-manager.h \
|
|
|
|
backends/meta-monitor-manager-private.h \
|
2014-03-31 22:07:49 -04:00
|
|
|
backends/meta-monitor-manager-dummy.c \
|
|
|
|
backends/meta-monitor-manager-dummy.h \
|
2014-08-13 19:46:32 -04:00
|
|
|
backends/meta-stage.h \
|
|
|
|
backends/meta-stage.c \
|
2014-04-01 14:34:52 -04:00
|
|
|
backends/edid-parse.c \
|
|
|
|
backends/edid.h \
|
2014-04-21 19:13:04 -04:00
|
|
|
backends/x11/meta-backend-x11.c \
|
|
|
|
backends/x11/meta-backend-x11.h \
|
2015-01-15 21:30:04 -05:00
|
|
|
backends/x11/meta-barrier-x11.c \
|
|
|
|
backends/x11/meta-barrier-x11.h \
|
2014-04-27 10:49:29 -04:00
|
|
|
backends/x11/meta-cursor-renderer-x11.c \
|
|
|
|
backends/x11/meta-cursor-renderer-x11.h \
|
2015-07-16 22:40:51 -04:00
|
|
|
backends/x11/nested/meta-cursor-renderer-x11-nested.c \
|
|
|
|
backends/x11/nested/meta-cursor-renderer-x11-nested.h \
|
2014-03-31 23:25:37 -04:00
|
|
|
backends/x11/meta-idle-monitor-xsync.c \
|
|
|
|
backends/x11/meta-idle-monitor-xsync.h \
|
2014-10-29 10:37:29 -04:00
|
|
|
backends/x11/meta-input-settings-x11.c \
|
|
|
|
backends/x11/meta-input-settings-x11.h \
|
2014-03-31 23:25:37 -04:00
|
|
|
backends/x11/meta-monitor-manager-xrandr.c \
|
|
|
|
backends/x11/meta-monitor-manager-xrandr.h \
|
2014-04-07 10:48:16 -04:00
|
|
|
core/meta-accel-parse.c \
|
|
|
|
core/meta-accel-parse.h \
|
2012-07-30 14:54:03 -04:00
|
|
|
meta/barrier.h \
|
2007-12-19 16:17:50 -05:00
|
|
|
core/bell.c \
|
|
|
|
core/bell.h \
|
|
|
|
core/boxes.c \
|
2010-10-18 14:34:14 -04:00
|
|
|
core/boxes-private.h \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/boxes.h \
|
2015-07-03 03:01:58 -04:00
|
|
|
core/meta-border.c \
|
|
|
|
core/meta-border.h \
|
2013-02-18 17:55:26 -05:00
|
|
|
compositor/clutter-utils.c \
|
|
|
|
compositor/clutter-utils.h \
|
2010-11-14 12:22:05 -05:00
|
|
|
compositor/cogl-utils.c \
|
|
|
|
compositor/cogl-utils.h \
|
2009-06-25 16:29:20 -04:00
|
|
|
compositor/compositor.c \
|
2009-06-25 18:56:15 -04:00
|
|
|
compositor/compositor-private.h \
|
2013-01-23 15:54:41 -05:00
|
|
|
compositor/meta-background.c \
|
2014-08-10 11:26:14 -04:00
|
|
|
compositor/meta-background-private.h \
|
2010-11-14 12:37:17 -05:00
|
|
|
compositor/meta-background-actor.c \
|
2011-08-28 21:20:29 -04:00
|
|
|
compositor/meta-background-actor-private.h \
|
2014-08-10 11:26:14 -04:00
|
|
|
compositor/meta-background-image.c \
|
2013-01-23 15:54:41 -05:00
|
|
|
compositor/meta-background-group.c \
|
2013-11-21 15:25:08 -05:00
|
|
|
compositor/meta-cullable.c \
|
|
|
|
compositor/meta-cullable.h \
|
2014-10-06 10:53:04 -04:00
|
|
|
compositor/meta-dnd-actor.c \
|
|
|
|
compositor/meta-dnd-actor-private.h \
|
2014-10-06 10:50:15 -04:00
|
|
|
compositor/meta-feedback-actor.c \
|
|
|
|
compositor/meta-feedback-actor-private.h \
|
2010-10-18 13:27:14 -04:00
|
|
|
compositor/meta-module.c \
|
|
|
|
compositor/meta-module.h \
|
|
|
|
compositor/meta-plugin.c \
|
|
|
|
compositor/meta-plugin-manager.c \
|
|
|
|
compositor/meta-plugin-manager.h \
|
2010-10-18 15:34:08 -04:00
|
|
|
compositor/meta-shadow-factory.c \
|
2010-10-18 13:27:14 -04:00
|
|
|
compositor/meta-shaped-texture.c \
|
2013-08-16 08:23:40 -04:00
|
|
|
compositor/meta-shaped-texture-private.h \
|
2013-10-13 07:47:53 -04:00
|
|
|
compositor/meta-surface-actor.c \
|
|
|
|
compositor/meta-surface-actor.h \
|
window-actor: Split into two subclasses of MetaSurfaceActor
The rendering logic before was somewhat complex. We had three independent
cases to take into account when doing rendering:
* X11 compositor. In this case, we're a traditional X11 compositor,
not a Wayland compositor. We use XCompositeNameWindowPixmap to get
the backing pixmap for the window, and deal with the COMPOSITE
extension messiness.
In this case, meta_is_wayland_compositor() is FALSE.
* Wayland clients. In this case, we're a Wayland compositor managing
Wayland surfaces. The rendering for this is fairly straightforward,
as Cogl handles most of the complexity with EGL and SHM buffers...
Wayland clients give us the input and opaque regions through
wl_surface.
In this case, meta_is_wayland_compositor() is TRUE and
priv->window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND.
* XWayland clients. In this case, we're a Wayland compositor, like
above, and XWayland hands us Wayland surfaces. XWayland handles
the COMPOSITE extension messiness for us, and hands us a buffer
like any other Wayland client. We have to fetch the input and
opaque regions from the X11 window ourselves.
In this case, meta_is_wayland_compositor() is TRUE and
priv->window->client_type == META_WINDOW_CLIENT_TYPE_X11.
We now split the rendering logic into two subclasses, which are:
* MetaSurfaceActorX11, which handles the X11 compositor case, in that
it uses XCompositeNameWindowPixmap to get the backing pixmap, and
deal with all the COMPOSITE extension messiness.
* MetaSurfaceActorWayland, which handles the Wayland compositor case
for both native Wayland clients and XWayland clients. XWayland handles
COMPOSITE for us, and handles pushing a surface over through the
xf86-video-wayland DDX.
Frame sync is still in MetaWindowActor, as it needs to work for both the
X11 compositor and XWayland client cases. When Wayland's video display
protocol lands, this will need to be significantly overhauled, as it would
have to work for any wl_surface, including subsurfaces, so we would need
surface-level discretion.
https://bugzilla.gnome.org/show_bug.cgi?id=720631
2014-02-01 17:21:11 -05:00
|
|
|
compositor/meta-surface-actor-x11.c \
|
|
|
|
compositor/meta-surface-actor-x11.h \
|
2014-04-18 14:21:20 -04:00
|
|
|
compositor/meta-sync-ring.c \
|
|
|
|
compositor/meta-sync-ring.h \
|
2011-07-13 10:47:10 -04:00
|
|
|
compositor/meta-texture-rectangle.c \
|
|
|
|
compositor/meta-texture-rectangle.h \
|
2010-10-18 13:27:14 -04:00
|
|
|
compositor/meta-texture-tower.c \
|
|
|
|
compositor/meta-texture-tower.h \
|
|
|
|
compositor/meta-window-actor.c \
|
|
|
|
compositor/meta-window-actor-private.h \
|
|
|
|
compositor/meta-window-group.c \
|
|
|
|
compositor/meta-window-group.h \
|
2010-10-18 15:34:08 -04:00
|
|
|
compositor/meta-window-shape.c \
|
|
|
|
compositor/region-utils.c \
|
|
|
|
compositor/region-utils.h \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/compositor.h \
|
2013-01-23 15:54:41 -05:00
|
|
|
meta/meta-background.h \
|
2011-08-28 21:20:29 -04:00
|
|
|
meta/meta-background-actor.h \
|
2014-08-10 11:26:14 -04:00
|
|
|
meta/meta-background-image.h \
|
2013-01-23 15:54:41 -05:00
|
|
|
meta/meta-background-group.h \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/meta-plugin.h \
|
|
|
|
meta/meta-shadow-factory.h \
|
|
|
|
meta/meta-window-actor.h \
|
2015-07-06 03:02:13 -04:00
|
|
|
meta/meta-window-shape.h \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/compositor-mutter.h \
|
2007-12-19 16:17:50 -05:00
|
|
|
core/constraints.c \
|
|
|
|
core/constraints.h \
|
|
|
|
core/core.c \
|
|
|
|
core/delete.c \
|
|
|
|
core/display.c \
|
2008-05-18 20:00:09 -04:00
|
|
|
core/display-private.h \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/display.h \
|
2007-12-19 16:17:50 -05:00
|
|
|
core/edge-resistance.c \
|
|
|
|
core/edge-resistance.h \
|
2014-03-20 15:29:30 -04:00
|
|
|
core/events.c \
|
|
|
|
core/events.h \
|
2007-12-19 16:17:50 -05:00
|
|
|
core/errors.c \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/errors.h \
|
2007-12-19 16:17:50 -05:00
|
|
|
core/frame.c \
|
2011-03-05 19:29:12 -05:00
|
|
|
core/frame.h \
|
2014-07-08 13:29:22 -04:00
|
|
|
core/meta-gesture-tracker.c \
|
|
|
|
core/meta-gesture-tracker-private.h \
|
2007-12-19 16:17:50 -05:00
|
|
|
core/keybindings.c \
|
2009-01-29 10:14:25 -05:00
|
|
|
core/keybindings-private.h \
|
2007-12-19 16:17:50 -05:00
|
|
|
core/main.c \
|
|
|
|
core/place.c \
|
|
|
|
core/place.h \
|
|
|
|
core/prefs.c \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/prefs.h \
|
2007-12-19 16:17:50 -05:00
|
|
|
core/screen.c \
|
2008-05-18 20:00:09 -04:00
|
|
|
core/screen-private.h \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/screen.h \
|
|
|
|
meta/types.h \
|
2014-05-08 18:35:49 -04:00
|
|
|
core/restart.c \
|
2007-12-19 16:17:50 -05:00
|
|
|
core/stack.c \
|
|
|
|
core/stack.h \
|
2009-06-13 16:45:32 -04:00
|
|
|
core/stack-tracker.c \
|
|
|
|
core/stack-tracker.h \
|
2007-12-19 16:17:50 -05:00
|
|
|
core/util.c \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/util.h \
|
2013-09-11 04:18:53 -04:00
|
|
|
core/util-private.h \
|
2007-12-19 16:17:50 -05:00
|
|
|
core/window.c \
|
2008-05-18 20:00:09 -04:00
|
|
|
core/window-private.h \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/window.h \
|
2007-12-19 16:17:50 -05:00
|
|
|
core/workspace.c \
|
2009-02-12 05:48:59 -05:00
|
|
|
core/workspace-private.h \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/common.h \
|
|
|
|
core/core.h \
|
|
|
|
ui/ui.h \
|
2007-12-19 16:17:50 -05:00
|
|
|
ui/frames.c \
|
|
|
|
ui/frames.h \
|
|
|
|
ui/theme.c \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/theme.h \
|
2010-10-18 14:34:14 -04:00
|
|
|
ui/theme-private.h \
|
2014-02-17 21:28:41 -05:00
|
|
|
ui/ui.c \
|
2015-04-27 19:36:46 -04:00
|
|
|
x11/atomnames.h \
|
2014-06-11 16:08:33 -04:00
|
|
|
x11/events.c \
|
|
|
|
x11/events.h \
|
2014-03-19 09:11:23 -04:00
|
|
|
x11/group-private.h \
|
2014-03-18 12:57:08 -04:00
|
|
|
x11/group-props.c \
|
|
|
|
x11/group-props.h \
|
|
|
|
x11/group.c \
|
2014-03-19 09:11:23 -04:00
|
|
|
meta/group.h \
|
2015-04-27 19:36:46 -04:00
|
|
|
x11/iconcache.c \
|
|
|
|
x11/iconcache.h \
|
2014-03-18 22:02:47 -04:00
|
|
|
x11/session.c \
|
|
|
|
x11/session.h \
|
2014-03-18 12:57:08 -04:00
|
|
|
x11/window-props.c \
|
|
|
|
x11/window-props.h \
|
|
|
|
x11/window-x11.c \
|
|
|
|
x11/window-x11.h \
|
|
|
|
x11/window-x11-private.h \
|
|
|
|
x11/xprops.c \
|
|
|
|
x11/xprops.h \
|
2014-11-04 22:06:55 -05:00
|
|
|
x11/mutter-Xatomtype.h \
|
|
|
|
$(NULL)
|
2014-08-13 20:19:35 -04:00
|
|
|
|
|
|
|
if HAVE_WAYLAND
|
|
|
|
libmutter_la_SOURCES += \
|
|
|
|
compositor/meta-surface-actor-wayland.c \
|
|
|
|
compositor/meta-surface-actor-wayland.h \
|
2012-01-07 17:21:32 -05:00
|
|
|
wayland/meta-wayland.c \
|
2014-02-28 10:24:06 -05:00
|
|
|
wayland/meta-wayland.h \
|
2012-01-07 17:21:32 -05:00
|
|
|
wayland/meta-wayland-private.h \
|
2013-05-03 13:51:22 -04:00
|
|
|
wayland/meta-xwayland.c \
|
2014-03-20 13:12:43 -04:00
|
|
|
wayland/meta-xwayland.h \
|
2014-10-10 12:55:00 -04:00
|
|
|
wayland/meta-xwayland-selection.c \
|
wayland: Make MetaWaylandDataSource ownership protocol specific
Firstly, this patch makes MetawaylandDataSource a GObject. This is in
order to easier track its lifetime without adding destroy signals etc. It
also makes the vfunc table GObject class functions instead while at it,
as well as moves protocol specific part of the source into their own
implementations.
An important part of this patch is the change of ownership. Prior to this
patch, MetaWaylandDataDevice would kind of own the source, but for
Wayland sources it would remove it if the corresponding wl_resource was
destroyed. For XWayland clients it would own it completely, and only
remove it if the source was replaced.
This patch changes so that the protocol implementation owns the source.
For Wayland sources, the wl_resource owns the source, and the
MetaWaylandDataDevice sets a weak reference (so in other words, no
semantical changes really). For XWayland sources, the source is owned by
the selection bridge, and not removed until replaced or if the client
goes away.
Given the changes in ownership, data offers may now properly track the
lifetime of a source it represents. Prior to this patch, if an offer with
an XWayland source would loose its source, it wouldn't get notified and
have an invalid pointer it would potentally crash on. For Wayland
sources, an offer would have a weak reference and clean itself up if the
source went away. This patch changes so the behavior is consistent,
meaning a weak reference is added to the source GObject so that the offer
can behave correctly both for Wayland sources and XWayland sources.
https://bugzilla.gnome.org/show_bug.cgi?id=750680
2015-06-17 22:25:11 -04:00
|
|
|
wayland/meta-xwayland-selection-private.h \
|
2014-03-20 13:12:43 -04:00
|
|
|
wayland/meta-xwayland-private.h \
|
2014-10-07 22:39:00 -04:00
|
|
|
wayland/meta-wayland-buffer.c \
|
|
|
|
wayland/meta-wayland-buffer.h \
|
2014-10-07 23:12:36 -04:00
|
|
|
wayland/meta-wayland-region.c \
|
|
|
|
wayland/meta-wayland-region.h \
|
2013-05-03 13:51:22 -04:00
|
|
|
wayland/meta-wayland-data-device.c \
|
|
|
|
wayland/meta-wayland-data-device.h \
|
wayland: Make MetaWaylandDataSource ownership protocol specific
Firstly, this patch makes MetawaylandDataSource a GObject. This is in
order to easier track its lifetime without adding destroy signals etc. It
also makes the vfunc table GObject class functions instead while at it,
as well as moves protocol specific part of the source into their own
implementations.
An important part of this patch is the change of ownership. Prior to this
patch, MetaWaylandDataDevice would kind of own the source, but for
Wayland sources it would remove it if the corresponding wl_resource was
destroyed. For XWayland clients it would own it completely, and only
remove it if the source was replaced.
This patch changes so that the protocol implementation owns the source.
For Wayland sources, the wl_resource owns the source, and the
MetaWaylandDataDevice sets a weak reference (so in other words, no
semantical changes really). For XWayland sources, the source is owned by
the selection bridge, and not removed until replaced or if the client
goes away.
Given the changes in ownership, data offers may now properly track the
lifetime of a source it represents. Prior to this patch, if an offer with
an XWayland source would loose its source, it wouldn't get notified and
have an invalid pointer it would potentally crash on. For Wayland
sources, an offer would have a weak reference and clean itself up if the
source went away. This patch changes so the behavior is consistent,
meaning a weak reference is added to the source GObject so that the offer
can behave correctly both for Wayland sources and XWayland sources.
https://bugzilla.gnome.org/show_bug.cgi?id=750680
2015-06-17 22:25:11 -04:00
|
|
|
wayland/meta-wayland-data-device-private.h \
|
2015-07-22 10:50:20 -04:00
|
|
|
wayland/meta-wayland-pointer-gestures.c \
|
|
|
|
wayland/meta-wayland-pointer-gestures.h \
|
2015-07-22 10:43:25 -04:00
|
|
|
wayland/meta-wayland-pointer-gesture-swipe.c \
|
|
|
|
wayland/meta-wayland-pointer-gesture-swipe.h \
|
2015-07-22 10:46:55 -04:00
|
|
|
wayland/meta-wayland-pointer-gesture-pinch.c \
|
|
|
|
wayland/meta-wayland-pointer-gesture-pinch.h \
|
2013-05-03 13:51:22 -04:00
|
|
|
wayland/meta-wayland-keyboard.c \
|
|
|
|
wayland/meta-wayland-keyboard.h \
|
|
|
|
wayland/meta-wayland-pointer.c \
|
|
|
|
wayland/meta-wayland-pointer.h \
|
2015-02-11 04:34:15 -05:00
|
|
|
wayland/meta-wayland-popup.c \
|
|
|
|
wayland/meta-wayland-popup.h \
|
2013-05-03 13:51:22 -04:00
|
|
|
wayland/meta-wayland-seat.c \
|
2012-01-18 18:03:23 -05:00
|
|
|
wayland/meta-wayland-seat.h \
|
2014-04-24 08:50:47 -04:00
|
|
|
wayland/meta-wayland-touch.c \
|
|
|
|
wayland/meta-wayland-touch.h \
|
2013-08-30 12:26:18 -04:00
|
|
|
wayland/meta-wayland-surface.c \
|
2013-08-30 12:03:30 -04:00
|
|
|
wayland/meta-wayland-surface.h \
|
|
|
|
wayland/meta-wayland-types.h \
|
2013-09-10 07:45:27 -04:00
|
|
|
wayland/meta-wayland-versions.h \
|
2014-04-22 18:03:40 -04:00
|
|
|
wayland/meta-wayland-outputs.c \
|
|
|
|
wayland/meta-wayland-outputs.h \
|
2015-04-27 21:09:16 -04:00
|
|
|
wayland/meta-window-wayland.c \
|
|
|
|
wayland/meta-window-wayland.h \
|
2014-11-04 22:06:55 -05:00
|
|
|
$(NULL)
|
2014-08-13 20:19:35 -04:00
|
|
|
endif
|
2012-01-07 17:21:32 -05:00
|
|
|
|
2014-05-29 12:11:26 -04:00
|
|
|
if HAVE_NATIVE_BACKEND
|
|
|
|
libmutter_la_SOURCES += \
|
|
|
|
backends/native/meta-backend-native.c \
|
|
|
|
backends/native/meta-backend-native.h \
|
2015-01-16 03:50:51 -05:00
|
|
|
backends/native/meta-backend-native-private.h \
|
|
|
|
backends/native/meta-barrier-native.c \
|
|
|
|
backends/native/meta-barrier-native.h \
|
2014-05-29 12:11:26 -04:00
|
|
|
backends/native/meta-cursor-renderer-native.c \
|
|
|
|
backends/native/meta-cursor-renderer-native.h \
|
|
|
|
backends/native/meta-idle-monitor-native.c \
|
|
|
|
backends/native/meta-idle-monitor-native.h \
|
2014-10-29 10:42:32 -04:00
|
|
|
backends/native/meta-input-settings-native.c \
|
|
|
|
backends/native/meta-input-settings-native.h \
|
2014-05-29 12:11:26 -04:00
|
|
|
backends/native/meta-monitor-manager-kms.c \
|
|
|
|
backends/native/meta-monitor-manager-kms.h \
|
|
|
|
backends/native/meta-launcher.c \
|
|
|
|
backends/native/meta-launcher.h \
|
|
|
|
backends/native/dbus-utils.c \
|
2014-11-04 22:06:55 -05:00
|
|
|
backends/native/dbus-utils.h \
|
|
|
|
$(NULL)
|
2014-05-29 12:11:26 -04:00
|
|
|
endif
|
|
|
|
|
2014-11-04 22:06:55 -05:00
|
|
|
nodist_libmutter_la_SOURCES = $(mutter_built_sources)
|
2014-02-17 21:28:41 -05:00
|
|
|
|
2014-12-29 20:59:16 -05:00
|
|
|
libmutter_la_LDFLAGS = -no-undefined -export-symbols-regex "^(meta|ag)_.*"
|
2014-05-29 12:11:26 -04:00
|
|
|
libmutter_la_LIBADD = $(MUTTER_LIBS) $(MUTTER_NATIVE_BACKEND_LIBS)
|
2003-04-19 03:19:04 -04:00
|
|
|
|
2009-07-17 07:51:21 -04:00
|
|
|
# Headers installed for plugins; introspected information will
|
|
|
|
# be extracted into Mutter-<version>.gir
|
2014-06-05 08:05:16 -04:00
|
|
|
libmutterinclude_headers = \
|
2012-07-30 14:54:03 -04:00
|
|
|
meta/barrier.h \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/boxes.h \
|
|
|
|
meta/common.h \
|
|
|
|
meta/compositor-mutter.h \
|
|
|
|
meta/compositor.h \
|
|
|
|
meta/display.h \
|
|
|
|
meta/errors.h \
|
2014-03-19 09:11:23 -04:00
|
|
|
meta/group.h \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/keybindings.h \
|
|
|
|
meta/main.h \
|
2014-08-05 08:11:59 -04:00
|
|
|
meta/meta-backend.h \
|
2014-08-10 11:26:14 -04:00
|
|
|
meta/meta-background.h \
|
2011-08-28 21:20:29 -04:00
|
|
|
meta/meta-background-actor.h \
|
2014-08-10 11:26:14 -04:00
|
|
|
meta/meta-background-image.h \
|
2013-01-23 15:54:41 -05:00
|
|
|
meta/meta-background-group.h \
|
2013-08-13 06:57:41 -04:00
|
|
|
meta/meta-cursor-tracker.h \
|
2013-08-14 06:50:48 -04:00
|
|
|
meta/meta-idle-monitor.h \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/meta-plugin.h \
|
2015-01-30 08:51:18 -05:00
|
|
|
meta/meta-monitor-manager.h \
|
2011-10-04 17:35:11 -04:00
|
|
|
meta/meta-shaped-texture.h \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/meta-shadow-factory.h \
|
|
|
|
meta/meta-window-actor.h \
|
2015-07-06 03:27:03 -04:00
|
|
|
meta/meta-window-shape.h \
|
2011-03-05 19:29:12 -05:00
|
|
|
meta/prefs.h \
|
|
|
|
meta/screen.h \
|
|
|
|
meta/theme.h \
|
|
|
|
meta/types.h \
|
|
|
|
meta/util.h \
|
|
|
|
meta/window.h \
|
2014-11-04 22:06:55 -05:00
|
|
|
meta/workspace.h \
|
|
|
|
$(NULL)
|
2002-11-07 17:09:59 -05:00
|
|
|
|
2014-06-05 08:05:16 -04:00
|
|
|
libmutterinclude_built_headers = \
|
2015-07-06 00:58:45 -04:00
|
|
|
meta/meta-version.h \
|
|
|
|
meta/meta-enum-types.h \
|
|
|
|
$(NULL)
|
2014-06-05 08:05:16 -04:00
|
|
|
|
|
|
|
libmutterinclude_base_headers = \
|
|
|
|
$(libmutterinclude_headers) \
|
|
|
|
$(libmutterinclude_built_headers)
|
|
|
|
|
2014-04-09 18:12:50 -04:00
|
|
|
libmutterincludedir = $(includedir)/mutter/meta
|
2010-09-23 08:32:48 -04:00
|
|
|
|
Comprehensively rename to Mutter
Code:
All references in the code not related to themes, keybindings, or
GConf were changed from 'metacity' to 'mutter'. This includes, among other
things, strings, comments, the atoms used in the message protocol, and
the envvars used for debugging. The GConf schema file was reduced to
the 3 settings new to mutter.
The overall version was brought up to 2.27 to match current gnome.
Structure:
All files named '*metacity*' were renamed '*mutter*' with appropriate
changes in the automake system. Files removed are
doc/creating_themes, src/themes, doc/metacity-theme.dtd,
metacity.doap. These files will eventually end up in an external
gnome-wm-data module.
Installation location:
On the filesystem the mutter-plugindir was change from
$(libdir)/metacity/plugins/clutter to just $(libdir)/mutter/plugins.
The mutter-plugins.pc.in reflects these changes.
Note:
mutter.desktop.in and mutter-wm.desktop both continue to have
X-GNOME-WMSettingsModule=metacity set. This allows
gnome-control-center to continue using libmetacity.so for
configuration. This is fine since most the general keybindings and wm
settings are being read from /apps/metacity/* in gconf.
2009-06-10 06:29:20 -04:00
|
|
|
libmutterinclude_HEADERS = \
|
2015-04-27 19:36:46 -04:00
|
|
|
$(libmutterinclude_headers)
|
2008-11-01 13:40:29 -04:00
|
|
|
|
2014-06-05 08:05:16 -04:00
|
|
|
nodist_libmutterinclude_HEADERS = \
|
|
|
|
$(libmutterinclude_built_headers)
|
|
|
|
|
2014-04-09 18:12:50 -04:00
|
|
|
bin_PROGRAMS=mutter
|
2014-09-11 13:43:32 -04:00
|
|
|
noinst_PROGRAMS=
|
2008-10-12 19:29:09 -04:00
|
|
|
|
2014-04-09 18:12:50 -04:00
|
|
|
mutter_SOURCES = core/mutter.c
|
|
|
|
mutter_LDADD = $(MUTTER_LIBS) libmutter.la
|
2011-03-05 16:16:26 -05:00
|
|
|
|
2014-05-08 18:35:49 -04:00
|
|
|
libexec_PROGRAMS = mutter-restart-helper
|
|
|
|
mutter_restart_helper_SOURCES = core/restart-helper.c
|
|
|
|
mutter_restart_helper_LDADD = $(MUTTER_LIBS)
|
|
|
|
|
2014-09-11 13:43:32 -04:00
|
|
|
include Makefile-tests.am
|
|
|
|
|
2011-03-05 15:01:33 -05:00
|
|
|
if HAVE_INTROSPECTION
|
|
|
|
include $(INTROSPECTION_MAKEFILE)
|
|
|
|
|
2011-07-01 19:19:11 -04:00
|
|
|
# Since we don't make any guarantees about stability and we don't support
|
|
|
|
# parallel install, there's no real reason to change directories, filenames,
|
|
|
|
# etc. as we change the Mutter tarball version.
|
|
|
|
#api_version = $(MUTTER_MAJOR_VERSION).$(MUTTER_MINOR_VERSION)
|
|
|
|
api_version = 3.0
|
2008-11-01 13:40:29 -04:00
|
|
|
|
|
|
|
# These files are in package-private directories, even though they may be used
|
|
|
|
# by plugins. If you're writing a plugin, use g-ir-compiler --add-include-path
|
|
|
|
# and g-ir-compiler --includedir.
|
|
|
|
girdir = $(pkglibdir)
|
|
|
|
gir_DATA = Meta-$(api_version).gir
|
|
|
|
|
|
|
|
typelibdir = $(pkglibdir)
|
|
|
|
typelib_DATA = Meta-$(api_version).typelib
|
|
|
|
|
2011-03-05 15:01:33 -05:00
|
|
|
INTROSPECTION_GIRS = Meta-$(api_version).gir
|
|
|
|
|
2014-04-09 18:12:50 -04:00
|
|
|
Meta-$(api_version).gir: libmutter.la
|
2012-08-29 19:45:17 -04:00
|
|
|
@META_GIR@_INCLUDES = GObject-2.0 GDesktopEnums-3.0 Gdk-3.0 Gtk-3.0 Clutter-1.0 xlib-2.0 xfixes-4.0 Cogl-1.0
|
2014-04-09 18:12:50 -04:00
|
|
|
@META_GIR@_EXPORT_PACKAGES = libmutter
|
2014-06-04 13:31:37 -04:00
|
|
|
@META_GIR@_CFLAGS = $(AM_CPPFLAGS)
|
2014-04-09 18:12:50 -04:00
|
|
|
@META_GIR@_LIBS = libmutter.la
|
2011-03-05 15:01:33 -05:00
|
|
|
@META_GIR@_FILES = \
|
|
|
|
$(libmutterinclude_base_headers) \
|
2014-04-09 18:12:50 -04:00
|
|
|
$(filter %.c,$(libmutter_la_SOURCES) $(nodist_libmutter_la_SOURCES))
|
2011-03-05 15:01:33 -05:00
|
|
|
@META_GIR@_SCANNERFLAGS = --warn-all --warn-error
|
2008-11-01 13:40:29 -04:00
|
|
|
|
|
|
|
endif
|
|
|
|
|
2013-08-14 07:51:05 -04:00
|
|
|
dbus_idle_built_sources = meta-dbus-idle-monitor.c meta-dbus-idle-monitor.h
|
|
|
|
|
2009-07-16 17:54:56 -04:00
|
|
|
CLEANFILES = \
|
|
|
|
$(mutter_built_sources) \
|
|
|
|
$(typelib_DATA) \
|
|
|
|
$(gir_DATA)
|
2001-09-17 00:42:37 -04:00
|
|
|
|
2014-08-17 14:03:09 -04:00
|
|
|
DISTCLEANFILES = \
|
|
|
|
$(libmutterinclude_built_headers)
|
|
|
|
|
2002-11-07 17:09:59 -05:00
|
|
|
pkgconfigdir = $(libdir)/pkgconfig
|
2014-04-09 18:12:50 -04:00
|
|
|
pkgconfig_DATA = libmutter.pc
|
2002-11-07 17:09:59 -05:00
|
|
|
|
2014-11-04 22:06:55 -05:00
|
|
|
EXTRA_DIST += \
|
|
|
|
$(wayland_protocols) \
|
|
|
|
libmutter.pc.in \
|
2015-07-06 00:58:45 -04:00
|
|
|
meta-enum-types.h.in \
|
|
|
|
meta-enum-types.c.in \
|
2014-11-04 22:06:55 -05:00
|
|
|
org.freedesktop.login1.xml \
|
2014-03-31 23:31:42 -04:00
|
|
|
org.gnome.Mutter.DisplayConfig.xml \
|
2014-11-04 22:06:55 -05:00
|
|
|
org.gnome.Mutter.IdleMonitor.xml \
|
|
|
|
$(NULL)
|
2009-07-02 11:19:02 -04:00
|
|
|
|
2014-08-17 14:03:09 -04:00
|
|
|
BUILT_SOURCES = \
|
|
|
|
$(mutter_built_sources) \
|
|
|
|
$(libmutterinclude_built_headers)
|
|
|
|
|
2015-07-06 00:58:45 -04:00
|
|
|
MUTTER_STAMP_FILES = stamp-meta-enum-types.h
|
2009-07-02 11:19:02 -04:00
|
|
|
CLEANFILES += $(MUTTER_STAMP_FILES)
|
|
|
|
|
2015-07-06 00:58:45 -04:00
|
|
|
meta/meta-enum-types.h: stamp-meta-enum-types.h Makefile
|
2009-07-02 11:19:02 -04:00
|
|
|
@true
|
2015-07-06 00:58:45 -04:00
|
|
|
stamp-meta-enum-types.h: $(libmutterinclude_headers) meta-enum-types.h.in
|
2009-08-06 17:41:52 -04:00
|
|
|
$(AM_V_GEN) ( cd $(srcdir) && \
|
2009-07-02 11:19:02 -04:00
|
|
|
$(GLIB_MKENUMS) \
|
2015-07-06 00:58:45 -04:00
|
|
|
--template meta-enum-types.h.in \
|
2009-07-02 11:19:02 -04:00
|
|
|
$(libmutterinclude_base_headers) ) >> xgen-teth && \
|
2015-07-06 00:58:45 -04:00
|
|
|
(cmp -s xgen-teth meta/meta-enum-types.h || cp xgen-teth meta/meta-enum-types.h) && \
|
2009-07-02 11:19:02 -04:00
|
|
|
rm -f xgen-teth && \
|
|
|
|
echo timestamp > $(@F)
|
|
|
|
|
2015-07-06 00:58:45 -04:00
|
|
|
meta-enum-types.c: stamp-meta-enum-types.h meta-enum-types.c.in
|
2009-08-06 17:41:52 -04:00
|
|
|
$(AM_V_GEN) ( cd $(srcdir) && \
|
2009-07-02 11:19:02 -04:00
|
|
|
$(GLIB_MKENUMS) \
|
2015-07-06 00:58:45 -04:00
|
|
|
--template meta-enum-types.c.in \
|
2009-07-02 11:19:02 -04:00
|
|
|
$(libmutterinclude_base_headers) ) >> xgen-tetc && \
|
2015-07-06 00:58:45 -04:00
|
|
|
cp xgen-tetc meta-enum-types.c && \
|
2009-07-02 11:19:02 -04:00
|
|
|
rm -f xgen-tetc
|
2012-01-05 07:19:58 -05:00
|
|
|
|
2014-03-31 23:33:01 -04:00
|
|
|
dbus_display_config_built_sources = meta-dbus-display-config.c meta-dbus-display-config.h
|
2013-07-19 08:39:28 -04:00
|
|
|
|
2014-03-31 23:33:01 -04:00
|
|
|
$(dbus_display_config_built_sources) : Makefile.am org.gnome.Mutter.DisplayConfig.xml
|
2013-08-27 04:07:39 -04:00
|
|
|
$(AM_V_GEN)gdbus-codegen \
|
2013-07-19 08:39:28 -04:00
|
|
|
--interface-prefix org.gnome.Mutter \
|
|
|
|
--c-namespace MetaDBus \
|
2014-03-31 23:33:01 -04:00
|
|
|
--generate-c-code meta-dbus-display-config \
|
2014-03-31 23:31:42 -04:00
|
|
|
$(srcdir)/org.gnome.Mutter.DisplayConfig.xml
|
2013-08-27 04:07:39 -04:00
|
|
|
|
2014-03-31 23:31:42 -04:00
|
|
|
$(dbus_idle_built_sources) : Makefile.am org.gnome.Mutter.IdleMonitor.xml
|
2013-08-14 07:51:05 -04:00
|
|
|
$(AM_V_GEN)gdbus-codegen \
|
|
|
|
--interface-prefix org.gnome.Mutter \
|
|
|
|
--c-namespace MetaDBus \
|
|
|
|
--generate-c-code meta-dbus-idle-monitor \
|
|
|
|
--c-generate-object-manager \
|
2014-03-31 23:31:42 -04:00
|
|
|
$(srcdir)/org.gnome.Mutter.IdleMonitor.xml
|
2013-08-14 07:51:05 -04:00
|
|
|
|
2013-12-31 17:44:45 -05:00
|
|
|
dbus_login1_built_sources = meta-dbus-login1.c meta-dbus-login1.h
|
|
|
|
|
|
|
|
$(dbus_login1_built_sources) : Makefile.am org.freedesktop.login1.xml
|
|
|
|
$(AM_V_GEN)gdbus-codegen \
|
|
|
|
--interface-prefix org.freedesktop.login1 \
|
|
|
|
--c-namespace Login1 \
|
|
|
|
--generate-c-code meta-dbus-login1 \
|
|
|
|
$(srcdir)/org.freedesktop.login1.xml
|
|
|
|
|
2015-11-09 02:28:14 -05:00
|
|
|
.SECONDEXPANSION:
|
|
|
|
|
|
|
|
define protostability
|
|
|
|
$(shell echo $1 | sed 's/.*\(\<unstable\>\|\<stable\>\).*/\1/')
|
|
|
|
endef
|
|
|
|
|
|
|
|
define protoname
|
|
|
|
$(shell echo $1 | sed 's/\([a-z\-]\+\)-[a-z]\+-v[0-9]\+/\1/')
|
|
|
|
endef
|
|
|
|
|
|
|
|
%-protocol.c : $(WAYLAND_PROTOCOLS_DATADIR)/$$(call protostability,$$*)/$$(call protoname,$$*)/$$*.xml
|
|
|
|
$(AM_V_GEN)$(WAYLAND_SCANNER) code < $< > $@
|
|
|
|
%-server-protocol.h : $(WAYLAND_PROTOCOLS_DATADIR)/$$(call protostability,$$*)/$$(call protoname,$$*)/$$*.xml
|
|
|
|
$(AM_V_GEN)$(WAYLAND_SCANNER) server-header < $< > $@
|
2014-03-18 22:06:20 -04:00
|
|
|
%-protocol.c : $(srcdir)/wayland/protocol/%.xml
|
2012-01-05 07:19:58 -05:00
|
|
|
$(AM_V_GEN)$(WAYLAND_SCANNER) code < $< > $@
|
2014-03-18 22:06:20 -04:00
|
|
|
%-server-protocol.h : $(srcdir)/wayland/protocol/%.xml
|
2012-01-05 07:19:58 -05:00
|
|
|
$(AM_V_GEN)$(WAYLAND_SCANNER) server-header < $< > $@
|