4fc1811c15
This piece of code hooks in both wl_data_device and the relevant X selection events, an X11 Window is set up so it can act as the clipboard owner when any wayland client owns the selection, reacting to SelectionRequest events, and returning the data from the wayland client FD to any X11 requestor through X properties. In the opposite direction, SelectionNotify messages are received, which results in the property contents being converted then written into the wayland requestor's FD. This code also takes care of the handling incremental transfers through the INCR property type, reading/writing data chunk by chunk. https://bugzilla.gnome.org/show_bug.cgi?id=738312
42 lines
1.3 KiB
C
42 lines
1.3 KiB
C
/*
|
|
* Copyright (C) 2013 Intel Corporation
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program 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
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
* 02111-1307, USA.
|
|
*/
|
|
|
|
#ifndef META_XWAYLAND_PRIVATE_H
|
|
#define META_XWAYLAND_PRIVATE_H
|
|
|
|
#include "meta-wayland-private.h"
|
|
|
|
#include <glib.h>
|
|
|
|
gboolean
|
|
meta_xwayland_start (MetaXWaylandManager *manager,
|
|
struct wl_display *display);
|
|
|
|
void
|
|
meta_xwayland_complete_init (void);
|
|
|
|
void
|
|
meta_xwayland_stop (MetaXWaylandManager *manager);
|
|
|
|
/* wl_data_device/X11 selection interoperation */
|
|
void meta_xwayland_init_selection (void);
|
|
void meta_xwayland_shutdown_selection (void);
|
|
gboolean meta_xwayland_selection_handle_event (XEvent *xevent);
|
|
|
|
#endif /* META_XWAYLAND_PRIVATE_H */
|