Make MetaSelection, MetaSelectionSource and MetaMemorySelectionSource public
This exposes the base so that we can reimplement StClipboard on top. Some gtk-docs have been added for documentation and introspection purposes. https://gitlab.gnome.org/GNOME/mutter/merge_requests/320
This commit is contained in:
parent
17d00d49d4
commit
02c99524bf
@ -38,12 +38,12 @@
|
||||
#include "clutter/clutter.h"
|
||||
#include "core/keybindings-private.h"
|
||||
#include "core/meta-gesture-tracker-private.h"
|
||||
#include "core/meta-selection.h"
|
||||
#include "core/stack-tracker.h"
|
||||
#include "core/startup-notification-private.h"
|
||||
#include "meta/barrier.h"
|
||||
#include "meta/boxes.h"
|
||||
#include "meta/common.h"
|
||||
#include "meta/meta-selection.h"
|
||||
#include "meta/prefs.h"
|
||||
|
||||
typedef struct _MetaBell MetaBell;
|
||||
@ -446,6 +446,4 @@ MetaWindow *meta_display_get_window_from_id (MetaDisplay *display,
|
||||
uint64_t window_id);
|
||||
uint64_t meta_display_generate_window_id (MetaDisplay *display);
|
||||
|
||||
MetaSelection * meta_display_get_selection (MetaDisplay *display);
|
||||
|
||||
#endif
|
||||
|
@ -3689,6 +3689,12 @@ meta_display_get_sound_player (MetaDisplay *display)
|
||||
return display->sound_player;
|
||||
}
|
||||
|
||||
/**
|
||||
* meta_display_get_selection:
|
||||
* @display: a #MetaDisplay
|
||||
*
|
||||
* Returns: (transfer none): The selection manager of the display
|
||||
*/
|
||||
MetaSelection *
|
||||
meta_display_get_selection (MetaDisplay *display)
|
||||
{
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include "config.h"
|
||||
|
||||
#include "core/meta-clipboard-manager.h"
|
||||
#include "core/meta-selection-source-memory.h"
|
||||
#include "meta/meta-selection-source-memory.h"
|
||||
|
||||
#define MAX_TEXT_SIZE (4 * 1024 * 1024) /* 4MB */
|
||||
#define MAX_IMAGE_SIZE (200 * 1024 * 1024) /* 200MB */
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "core/meta-selection-source-memory.h"
|
||||
#include "meta/meta-selection-source-memory.h"
|
||||
|
||||
struct _MetaSelectionSourceMemory
|
||||
{
|
||||
|
@ -21,8 +21,8 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "core/meta-selection.h"
|
||||
#include "core/meta-selection-source.h"
|
||||
#include "meta/meta-selection.h"
|
||||
#include "meta/meta-selection-source.h"
|
||||
|
||||
typedef struct MetaSelectionSourcePrivate MetaSelectionSourcePrivate;
|
||||
|
||||
@ -107,6 +107,16 @@ meta_selection_source_read_async (MetaSelectionSource *source,
|
||||
user_data);
|
||||
}
|
||||
|
||||
/**
|
||||
* meta_selection_source_read_finish:
|
||||
* @source: The selection source
|
||||
* @result: The async result
|
||||
* @error: Location for returned error
|
||||
*
|
||||
* Finishes a read from the selection source.
|
||||
*
|
||||
* Returns: (transfer full): The resulting #GInputStream
|
||||
*/
|
||||
GInputStream *
|
||||
meta_selection_source_read_finish (MetaSelectionSource *source,
|
||||
GAsyncResult *result,
|
||||
@ -120,6 +130,14 @@ meta_selection_source_read_finish (MetaSelectionSource *source,
|
||||
error);
|
||||
}
|
||||
|
||||
/**
|
||||
* meta_selection_source_get_mimetypes:
|
||||
* @source: The selection source
|
||||
*
|
||||
* Returns the list of supported mimetypes.
|
||||
*
|
||||
* Returns: (element-type utf8) (transfer full): The supported mimetypes
|
||||
*/
|
||||
GList *
|
||||
meta_selection_source_get_mimetypes (MetaSelectionSource *source)
|
||||
{
|
||||
@ -128,6 +146,14 @@ meta_selection_source_get_mimetypes (MetaSelectionSource *source)
|
||||
return META_SELECTION_SOURCE_GET_CLASS (source)->get_mimetypes (source);
|
||||
}
|
||||
|
||||
/**
|
||||
* meta_selection_source_is_active:
|
||||
* @source: the selection source
|
||||
*
|
||||
* Returns #TRUE if the source is active on a selection.
|
||||
*
|
||||
* Returns: #TRUE if the source owns a selection.
|
||||
**/
|
||||
gboolean
|
||||
meta_selection_source_is_active (MetaSelectionSource *source)
|
||||
{
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "core/meta-selection.h"
|
||||
#include "meta/meta-selection.h"
|
||||
|
||||
typedef struct TransferRequest TransferRequest;
|
||||
|
||||
@ -76,6 +76,15 @@ meta_selection_new (MetaDisplay *display)
|
||||
NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* meta_selection_set_owner:
|
||||
* @selection: The selection manager
|
||||
* @selection_type: Selection type
|
||||
* @owner: New selection owner
|
||||
*
|
||||
* Sets @owner as the owner of the selection given by @selection_type,
|
||||
* unsets any previous owner there was.
|
||||
**/
|
||||
void
|
||||
meta_selection_set_owner (MetaSelection *selection,
|
||||
MetaSelectionType selection_type,
|
||||
@ -95,6 +104,15 @@ meta_selection_set_owner (MetaSelection *selection,
|
||||
g_signal_emit (selection, signals[OWNER_CHANGED], 0, selection_type, owner);
|
||||
}
|
||||
|
||||
/**
|
||||
* meta_selection_unset_owner:
|
||||
* @selection: The selection manager
|
||||
* @selection_type: Selection type
|
||||
* @owner: Owner to unset
|
||||
*
|
||||
* Unsets @owner as the owner the selection given by @selection_type. If
|
||||
* @owner does not own the selection, nothing is done.
|
||||
**/
|
||||
void
|
||||
meta_selection_unset_owner (MetaSelection *selection,
|
||||
MetaSelectionType selection_type,
|
||||
@ -112,6 +130,15 @@ meta_selection_unset_owner (MetaSelection *selection,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* meta_selection_get_mimetypes:
|
||||
* @selection: The selection manager
|
||||
* @selection_type: Selection to query
|
||||
*
|
||||
* Returns the list of supported mimetypes for the given selection type.
|
||||
*
|
||||
* Returns: (element-type utf8) (transfer full): The supported mimetypes
|
||||
*/
|
||||
GList *
|
||||
meta_selection_get_mimetypes (MetaSelection *selection,
|
||||
MetaSelectionType selection_type)
|
||||
@ -253,6 +280,20 @@ source_read_cb (MetaSelectionSource *source,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* meta_selection_transfer_async:
|
||||
* @selection: The selection manager
|
||||
* @selection_type: Selection type
|
||||
* @mimetype: Mimetype to transfer
|
||||
* @size: Maximum size to transfer, -1 for unlimited
|
||||
* @output: Output stream to write contents to
|
||||
* @cancellable: Cancellable
|
||||
* @callback: User callback
|
||||
* @user_data: User data
|
||||
*
|
||||
* Requests a transfer of @mimetype on the selection given by
|
||||
* @selection_type.
|
||||
**/
|
||||
void
|
||||
meta_selection_transfer_async (MetaSelection *selection,
|
||||
MetaSelectionType selection_type,
|
||||
@ -283,6 +324,16 @@ meta_selection_transfer_async (MetaSelection *selection,
|
||||
task);
|
||||
}
|
||||
|
||||
/**
|
||||
* meta_selection_transfer_finish:
|
||||
* @selection: The selection manager
|
||||
* @result: The async result
|
||||
* @error: Location for returned error, or %NULL
|
||||
*
|
||||
* Finishes the transfer of a queried mimetype.
|
||||
*
|
||||
* Returns: #TRUE if the transfer was successful.
|
||||
**/
|
||||
gboolean
|
||||
meta_selection_transfer_finish (MetaSelection *selection,
|
||||
GAsyncResult *result,
|
||||
|
@ -343,11 +343,8 @@ mutter_sources = [
|
||||
'core/meta-inhibit-shortcuts-dialog-default-private.h',
|
||||
'core/meta-launch-context.c',
|
||||
'core/meta-selection.c',
|
||||
'core/meta-selection.h',
|
||||
'core/meta-selection-source.c',
|
||||
'core/meta-selection-source.h',
|
||||
'core/meta-selection-source-memory.c',
|
||||
'core/meta-selection-source-memory.h',
|
||||
'core/meta-sound-player.c',
|
||||
'core/meta-workspace-manager.c',
|
||||
'core/meta-workspace-manager-private.h',
|
||||
|
@ -294,4 +294,7 @@ MetaStartupNotification * meta_display_get_startup_notification (MetaDisplay *di
|
||||
META_EXPORT
|
||||
MetaSoundPlayer * meta_display_get_sound_player (MetaDisplay *display);
|
||||
|
||||
META_EXPORT
|
||||
MetaSelection * meta_display_get_selection (MetaDisplay *display);
|
||||
|
||||
#endif
|
||||
|
@ -22,6 +22,9 @@ mutter_public_headers = [
|
||||
'meta-monitor-manager.h',
|
||||
'meta-plugin.h',
|
||||
'meta-remote-access-controller.h',
|
||||
'meta-selection.h',
|
||||
'meta-selection-source.h',
|
||||
'meta-selection-source-memory.h',
|
||||
'meta-settings.h',
|
||||
'meta-shadow-factory.h',
|
||||
'meta-shaped-texture.h',
|
||||
|
@ -22,14 +22,17 @@
|
||||
#ifndef META_MEMORY_SELECTION_SOURCE_H
|
||||
#define META_MEMORY_SELECTION_SOURCE_H
|
||||
|
||||
#include "core/meta-selection-source.h"
|
||||
#include "meta/meta-selection-source.h"
|
||||
|
||||
#define META_TYPE_SELECTION_SOURCE_MEMORY (meta_selection_source_memory_get_type ())
|
||||
|
||||
META_EXPORT
|
||||
G_DECLARE_FINAL_TYPE (MetaSelectionSourceMemory,
|
||||
meta_selection_source_memory,
|
||||
META, SELECTION_SOURCE_MEMORY,
|
||||
MetaSelectionSource)
|
||||
|
||||
META_EXPORT
|
||||
MetaSelectionSource * meta_selection_source_memory_new (const char *mimetype,
|
||||
GBytes *content);
|
||||
|
@ -24,6 +24,8 @@
|
||||
|
||||
#include <gio/gio.h>
|
||||
|
||||
#include <meta/common.h>
|
||||
|
||||
typedef enum
|
||||
{
|
||||
META_SELECTION_PRIMARY,
|
||||
@ -37,6 +39,7 @@ typedef struct _MetaSelectionSource MetaSelectionSource;
|
||||
|
||||
#define META_TYPE_SELECTION_SOURCE (meta_selection_source_get_type ())
|
||||
|
||||
META_EXPORT
|
||||
G_DECLARE_DERIVABLE_TYPE (MetaSelectionSource,
|
||||
meta_selection_source,
|
||||
META, SELECTION_SOURCE,
|
||||
@ -61,18 +64,22 @@ struct _MetaSelectionSourceClass
|
||||
GError **error);
|
||||
};
|
||||
|
||||
META_EXPORT
|
||||
void meta_selection_source_read_async (MetaSelectionSource *source,
|
||||
const gchar *mimetype,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
|
||||
META_EXPORT
|
||||
GInputStream * meta_selection_source_read_finish (MetaSelectionSource *source,
|
||||
GAsyncResult *result,
|
||||
GError **error);
|
||||
|
||||
META_EXPORT
|
||||
GList * meta_selection_source_get_mimetypes (MetaSelectionSource *source);
|
||||
|
||||
META_EXPORT
|
||||
gboolean meta_selection_source_is_active (MetaSelectionSource *source);
|
||||
|
||||
#endif /* META_SELECTION_SOURCE_H */
|
@ -24,29 +24,36 @@
|
||||
|
||||
#include <gio/gio.h>
|
||||
|
||||
#include "core/meta-selection-source.h"
|
||||
#include "meta/display.h"
|
||||
#include <meta/common.h>
|
||||
#include <meta/display.h>
|
||||
#include <meta/meta-selection-source.h>
|
||||
|
||||
#define META_TYPE_SELECTION (meta_selection_get_type ())
|
||||
|
||||
META_EXPORT
|
||||
G_DECLARE_FINAL_TYPE (MetaSelection,
|
||||
meta_selection,
|
||||
META, SELECTION,
|
||||
GObject)
|
||||
|
||||
META_EXPORT
|
||||
MetaSelection *
|
||||
meta_selection_new (MetaDisplay *display);
|
||||
|
||||
META_EXPORT
|
||||
void meta_selection_set_owner (MetaSelection *selection,
|
||||
MetaSelectionType selection_type,
|
||||
MetaSelectionSource *owner);
|
||||
META_EXPORT
|
||||
void meta_selection_unset_owner (MetaSelection *selection,
|
||||
MetaSelectionType selection_type,
|
||||
MetaSelectionSource *owner);
|
||||
|
||||
META_EXPORT
|
||||
GList * meta_selection_get_mimetypes (MetaSelection *selection,
|
||||
MetaSelectionType selection_type);
|
||||
|
||||
META_EXPORT
|
||||
void meta_selection_transfer_async (MetaSelection *selection,
|
||||
MetaSelectionType selection_type,
|
||||
const gchar *mimetype,
|
||||
@ -55,6 +62,7 @@ void meta_selection_transfer_async (MetaSelection *selection,
|
||||
GCancellable *cancellable,
|
||||
GAsyncReadyCallback callback,
|
||||
gpointer user_data);
|
||||
META_EXPORT
|
||||
gboolean meta_selection_transfer_finish (MetaSelection *selection,
|
||||
GAsyncResult *result,
|
||||
GError **error);
|
@ -43,5 +43,6 @@ typedef struct _MetaDnd MetaDnd;
|
||||
typedef struct _MetaSettings MetaSettings;
|
||||
|
||||
typedef struct _MetaWorkspaceManager MetaWorkspaceManager;
|
||||
typedef struct _MetaSelection MetaSelection;
|
||||
|
||||
#endif
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
#include <wayland-server.h>
|
||||
|
||||
#include "core/meta-selection-source.h"
|
||||
#include "meta/meta-selection-source.h"
|
||||
|
||||
#define META_TYPE_SELECTION_SOURCE_WAYLAND (meta_selection_source_wayland_get_type ())
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include <wayland-server.h>
|
||||
|
||||
#include "clutter/clutter.h"
|
||||
#include "core/meta-selection-source.h"
|
||||
#include "meta/meta-selection-source.h"
|
||||
#include "wayland/meta-wayland-types.h"
|
||||
|
||||
typedef struct _MetaWaylandDragGrab MetaWaylandDragGrab;
|
||||
|
@ -22,7 +22,7 @@
|
||||
#ifndef META_SELECTION_SOURCE_X11_H
|
||||
#define META_SELECTION_SOURCE_X11_H
|
||||
|
||||
#include "core/meta-selection-source.h"
|
||||
#include "meta/meta-selection-source.h"
|
||||
#include "x11/meta-x11-display-private.h"
|
||||
|
||||
#define META_TYPE_SELECTION_SOURCE_X11 (meta_selection_source_x11_get_type ())
|
||||
|
@ -30,8 +30,8 @@
|
||||
|
||||
#include "backends/meta-monitor-manager-private.h"
|
||||
#include "core/display-private.h"
|
||||
#include "core/meta-selection-source.h"
|
||||
#include "meta/common.h"
|
||||
#include "meta/meta-selection-source.h"
|
||||
#include "meta/types.h"
|
||||
#include "meta/meta-x11-display.h"
|
||||
#include "meta-startup-notification-x11.h"
|
||||
|
@ -22,7 +22,7 @@
|
||||
#ifndef META_X11_SELECTION_H
|
||||
#define META_X11_SELECTION_H
|
||||
|
||||
#include "core/meta-selection.h"
|
||||
#include "meta/meta-selection.h"
|
||||
#include "x11/meta-x11-display-private.h"
|
||||
|
||||
gboolean meta_x11_selection_handle_event (MetaX11Display *display,
|
||||
|
Loading…
Reference in New Issue
Block a user