mutter/src/meta
Yotam Bar-On aca8be64c1 meta/selection-source-memory: Use memfd instead of GBytes
MetaSelectionSourceMemory currently uses GBytes for its underlying data.
This can cause memory overhead when large items, such as HD images, are
stored in the clipboard. This commit changes the underlying data
structure to a MetaAnonymousFile object, which writes to memfd instead
of heap. When reading, MetaSelectionSourceMemory will create a
Gio.UnixInputStream from the file descriptor generated by
MetaAnonymousFile. We subclass the UnixInputStream as
MetaUnixInputStream, to override the stream's close_fn function so
that it invokes meta_anonymous_file_close_fd when the stream terminates.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3551>
2024-03-08 18:34:52 +00:00
..
barrier.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
boxes.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
common.h cleanup: Remove not used X11 includes 2024-02-21 15:25:44 +01:00
compositor-mutter.h meta: Drop deprecated methods 2024-02-09 18:03:09 +01:00
compositor.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
display.h cleanup: Remove not used X11 includes 2024-02-21 15:25:44 +01:00
group.h group: Move various functions to MetaWindowX11 2024-02-08 16:55:06 +01:00
keybindings.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
main.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
meson.build x11: Drop error trap helpers 2024-01-10 13:58:18 +00:00
meta-backend.h keybindings: Move grab/freeze functions per backend 2024-02-14 19:10:21 +00:00
meta-background-actor.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-background-content.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-background-group.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
meta-background-image.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-background.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-close-dialog.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
meta-context.h Update license access method 2023-08-30 08:48:23 +02:00
meta-cursor-tracker.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-dnd.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
meta-enum-types.c.in build: Remove the config.h inclusion from all public headers 2024-02-17 11:58:55 +00:00
meta-enum-types.h.in cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
meta-enums.h cleanup: Drop unused MetaVirtualModifier 2024-02-09 18:03:09 +01:00
meta-idle-monitor.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
meta-inhibit-shortcuts-dialog.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
meta-later.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
meta-launch-context.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
meta-monitor-manager.h monitor-manager: Add 'reason' argument to 'power-save-changed' signal 2023-09-02 11:07:38 +00:00
meta-multi-texture-format.h docs: Remove remaining SECTIONs 2024-01-09 15:23:04 +00:00
meta-multi-texture.h cleanup: Make cogl includes consistent 2024-01-05 14:22:22 +01:00
meta-plugin.h plugin-manager: Drop MetaPluginClass.xevent_filter 2024-02-20 15:21:21 +00:00
meta-remote-access-controller.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
meta-selection-source-memory.h meta/selection-source-memory: Use memfd instead of GBytes 2024-03-08 18:34:52 +00:00
meta-selection-source.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
meta-selection.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
meta-settings.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
meta-shadow-factory.h Port to MtkRegion 2023-11-03 11:27:52 +00:00
meta-shaped-texture.h cleanup: Remove not used X11 includes 2024-02-21 15:25:44 +01:00
meta-sound-player.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
meta-stage.h Update license access method 2023-08-30 08:48:23 +02:00
meta-startup-notification.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
meta-wayland-client.h wayland/client: Add make_desktop() method 2024-02-26 11:19:03 +00:00
meta-wayland-compositor.h Update license access method 2023-08-30 08:48:23 +02:00
meta-wayland-surface.h wayland/surface: Make MetaWaylandSurface public 2023-11-04 01:12:11 +00:00
meta-window-actor.h mutter: Completely replace MetaRectangle with MtkRectangle 2023-08-30 16:46:14 +02:00
meta-window-group.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
meta-window-shape.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
meta-workspace-manager.h workspace-manager: Accessors for layout-{columns,rows} 2024-01-09 16:38:25 +00:00
meta-x11-display.h cleanup: Remove not used X11 includes 2024-02-21 15:25:44 +01:00
prefs.h clutter: Prefer using ClutterTextDirection 2024-01-22 15:02:33 +00:00
types.h cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00
util.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00
window.h core: Pass position hint to meta_window_begin_grab_op() 2024-02-27 00:19:22 +01:00
workspace.h cleanup: Make meta includes consistent 2024-01-05 14:22:22 +01:00