Conditionalize Wayland support again
This commit is contained in:
parent
467465c99c
commit
5f0fab2156
@ -79,12 +79,9 @@ MUTTER_PC_MODULES="
|
|||||||
xcomposite >= 0.2 xfixes xext xdamage xi >= 1.6.0
|
xcomposite >= 0.2 xfixes xext xdamage xi >= 1.6.0
|
||||||
xcursor
|
xcursor
|
||||||
$CLUTTER_PACKAGE >= 1.19.5
|
$CLUTTER_PACKAGE >= 1.19.5
|
||||||
clutter-wayland-1.0
|
|
||||||
clutter-wayland-compositor-1.0
|
|
||||||
clutter-egl-1.0
|
clutter-egl-1.0
|
||||||
cogl-1.0 >= 1.17.1
|
cogl-1.0 >= 1.17.1
|
||||||
libinput
|
libinput
|
||||||
wayland-server >= 1.5.90
|
|
||||||
upower-glib >= 0.99.0
|
upower-glib >= 0.99.0
|
||||||
gnome-desktop-3.0
|
gnome-desktop-3.0
|
||||||
xkbfile
|
xkbfile
|
||||||
@ -202,6 +199,12 @@ if test $have_native_backend = yes; then
|
|||||||
fi
|
fi
|
||||||
AM_CONDITIONAL([HAVE_NATIVE_BACKEND],[test $have_native_backend = yes])
|
AM_CONDITIONAL([HAVE_NATIVE_BACKEND],[test $have_native_backend = yes])
|
||||||
|
|
||||||
|
PKG_CHECK_MODULES(MUTTER_WAYLAND, [clutter-wayland-1.0 clutter-wayland-compositor-1.0 wayland-server >= 1.5.90], [have_wayland=yes], [have_wayland=no])
|
||||||
|
if test $have_wayland = yes; then
|
||||||
|
AC_DEFINE([HAVE_WAYLAND],[1],[Define if you want to enable Wayland support])
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL([HAVE_WAYLAND],[test $have_wayland = yes])
|
||||||
|
|
||||||
PKG_CHECK_EXISTS([xi >= 1.6.99.1],
|
PKG_CHECK_EXISTS([xi >= 1.6.99.1],
|
||||||
AC_DEFINE([HAVE_XI23],[1],[Define if you have support for XInput 2.3 or greater]))
|
AC_DEFINE([HAVE_XI23],[1],[Define if you have support for XInput 2.3 or greater]))
|
||||||
|
|
||||||
|
@ -115,8 +115,6 @@ libmutter_la_SOURCES = \
|
|||||||
compositor/meta-surface-actor.h \
|
compositor/meta-surface-actor.h \
|
||||||
compositor/meta-surface-actor-x11.c \
|
compositor/meta-surface-actor-x11.c \
|
||||||
compositor/meta-surface-actor-x11.h \
|
compositor/meta-surface-actor-x11.h \
|
||||||
compositor/meta-surface-actor-wayland.c \
|
|
||||||
compositor/meta-surface-actor-wayland.h \
|
|
||||||
compositor/meta-texture-rectangle.c \
|
compositor/meta-texture-rectangle.c \
|
||||||
compositor/meta-texture-rectangle.h \
|
compositor/meta-texture-rectangle.h \
|
||||||
compositor/meta-texture-tower.c \
|
compositor/meta-texture-tower.c \
|
||||||
@ -212,7 +210,12 @@ libmutter_la_SOURCES = \
|
|||||||
x11/window-x11-private.h \
|
x11/window-x11-private.h \
|
||||||
x11/xprops.c \
|
x11/xprops.c \
|
||||||
x11/xprops.h \
|
x11/xprops.h \
|
||||||
x11/mutter-Xatomtype.h \
|
x11/mutter-Xatomtype.h
|
||||||
|
|
||||||
|
if HAVE_WAYLAND
|
||||||
|
libmutter_la_SOURCES += \
|
||||||
|
compositor/meta-surface-actor-wayland.c \
|
||||||
|
compositor/meta-surface-actor-wayland.h \
|
||||||
wayland/meta-wayland.c \
|
wayland/meta-wayland.c \
|
||||||
wayland/meta-wayland.h \
|
wayland/meta-wayland.h \
|
||||||
wayland/meta-wayland-private.h \
|
wayland/meta-wayland-private.h \
|
||||||
@ -237,6 +240,7 @@ libmutter_la_SOURCES = \
|
|||||||
wayland/meta-wayland-outputs.h \
|
wayland/meta-wayland-outputs.h \
|
||||||
wayland/window-wayland.c \
|
wayland/window-wayland.c \
|
||||||
wayland/window-wayland.h
|
wayland/window-wayland.h
|
||||||
|
endif
|
||||||
|
|
||||||
if HAVE_NATIVE_BACKEND
|
if HAVE_NATIVE_BACKEND
|
||||||
libmutter_la_SOURCES += \
|
libmutter_la_SOURCES += \
|
||||||
|
@ -31,7 +31,6 @@
|
|||||||
#include <meta/util.h>
|
#include <meta/util.h>
|
||||||
|
|
||||||
#include <cogl/cogl.h>
|
#include <cogl/cogl.h>
|
||||||
#include <cogl/cogl-wayland-server.h>
|
|
||||||
#include <clutter/clutter.h>
|
#include <clutter/clutter.h>
|
||||||
|
|
||||||
#include "meta-stage.h"
|
#include "meta-stage.h"
|
||||||
|
@ -34,7 +34,6 @@
|
|||||||
#include <meta/errors.h>
|
#include <meta/errors.h>
|
||||||
|
|
||||||
#include <cogl/cogl.h>
|
#include <cogl/cogl.h>
|
||||||
#include <cogl/cogl-wayland-server.h>
|
|
||||||
#include <clutter/clutter.h>
|
#include <clutter/clutter.h>
|
||||||
|
|
||||||
#include <gdk/gdk.h>
|
#include <gdk/gdk.h>
|
||||||
|
@ -39,7 +39,9 @@
|
|||||||
#include <X11/extensions/Xfixes.h>
|
#include <X11/extensions/Xfixes.h>
|
||||||
#include <X11/Xcursor/Xcursor.h>
|
#include <X11/Xcursor/Xcursor.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
#include <cogl/cogl-wayland-server.h>
|
#include <cogl/cogl-wayland-server.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
MetaCursorReference *
|
MetaCursorReference *
|
||||||
meta_cursor_reference_ref (MetaCursorReference *self)
|
meta_cursor_reference_ref (MetaCursorReference *self)
|
||||||
@ -247,6 +249,7 @@ meta_cursor_reference_from_theme (MetaCursor cursor)
|
|||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
static void
|
static void
|
||||||
meta_cursor_image_load_from_buffer (MetaCursorImage *image,
|
meta_cursor_image_load_from_buffer (MetaCursorImage *image,
|
||||||
struct wl_resource *buffer,
|
struct wl_resource *buffer,
|
||||||
@ -345,6 +348,7 @@ meta_cursor_reference_from_buffer (struct wl_resource *buffer,
|
|||||||
|
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
CoglTexture *
|
CoglTexture *
|
||||||
meta_cursor_reference_get_cogl_texture (MetaCursorReference *cursor,
|
meta_cursor_reference_get_cogl_texture (MetaCursorReference *cursor,
|
||||||
|
@ -28,13 +28,15 @@ MetaCursorReference * meta_cursor_reference_ref (MetaCursorReference *cursor);
|
|||||||
void meta_cursor_reference_unref (MetaCursorReference *cursor);
|
void meta_cursor_reference_unref (MetaCursorReference *cursor);
|
||||||
|
|
||||||
#include <meta/common.h>
|
#include <meta/common.h>
|
||||||
#include <wayland-server.h>
|
|
||||||
|
|
||||||
MetaCursorReference * meta_cursor_reference_from_theme (MetaCursor cursor);
|
MetaCursorReference * meta_cursor_reference_from_theme (MetaCursor cursor);
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
|
#include <wayland-server.h>
|
||||||
MetaCursorReference * meta_cursor_reference_from_buffer (struct wl_resource *buffer,
|
MetaCursorReference * meta_cursor_reference_from_buffer (struct wl_resource *buffer,
|
||||||
int hot_x,
|
int hot_x,
|
||||||
int hot_y);
|
int hot_y);
|
||||||
|
#endif
|
||||||
|
|
||||||
MetaCursor meta_cursor_reference_get_meta_cursor (MetaCursorReference *cursor);
|
MetaCursor meta_cursor_reference_get_meta_cursor (MetaCursorReference *cursor);
|
||||||
|
|
||||||
|
@ -41,7 +41,6 @@
|
|||||||
#include "dbus-utils.h"
|
#include "dbus-utils.h"
|
||||||
#include "meta-dbus-login1.h"
|
#include "meta-dbus-login1.h"
|
||||||
|
|
||||||
#include "wayland/meta-wayland-private.h"
|
|
||||||
#include "backends/meta-backend-private.h"
|
#include "backends/meta-backend-private.h"
|
||||||
#include "meta-cursor-renderer-native.h"
|
#include "meta-cursor-renderer-native.h"
|
||||||
|
|
||||||
|
@ -396,8 +396,10 @@ after_stage_paint (ClutterStage *stage,
|
|||||||
for (l = compositor->windows; l; l = l->next)
|
for (l = compositor->windows; l; l = l->next)
|
||||||
meta_window_actor_post_paint (l->data);
|
meta_window_actor_post_paint (l->data);
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
if (meta_is_wayland_compositor ())
|
if (meta_is_wayland_compositor ())
|
||||||
meta_wayland_compositor_paint_finished (meta_wayland_compositor_get_default ());
|
meta_wayland_compositor_paint_finished (meta_wayland_compositor_get_default ());
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -32,7 +32,10 @@
|
|||||||
|
|
||||||
#include "meta-surface-actor.h"
|
#include "meta-surface-actor.h"
|
||||||
#include "meta-surface-actor-x11.h"
|
#include "meta-surface-actor-x11.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
#include "meta-surface-actor-wayland.h"
|
#include "meta-surface-actor-wayland.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "wayland/meta-wayland-surface.h"
|
#include "wayland/meta-wayland-surface.h"
|
||||||
|
|
||||||
@ -596,6 +599,7 @@ meta_window_actor_get_shape_bounds (MetaWindowActor *self,
|
|||||||
|
|
||||||
cairo_region_get_extents (priv->shape_region, bounds);
|
cairo_region_get_extents (priv->shape_region, bounds);
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
if (META_IS_SURFACE_ACTOR_WAYLAND (priv->surface))
|
if (META_IS_SURFACE_ACTOR_WAYLAND (priv->surface))
|
||||||
{
|
{
|
||||||
double scale = priv->surface ?
|
double scale = priv->surface ?
|
||||||
@ -605,6 +609,7 @@ meta_window_actor_get_shape_bounds (MetaWindowActor *self,
|
|||||||
bounds->width *= scale;
|
bounds->width *= scale;
|
||||||
bounds->height *= scale;
|
bounds->height *= scale;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -70,7 +70,9 @@
|
|||||||
#include "x11/group-props.h"
|
#include "x11/group-props.h"
|
||||||
#include "x11/xprops.h"
|
#include "x11/xprops.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
#include "wayland/meta-xwayland-private.h"
|
#include "wayland/meta-xwayland-private.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* SECTION:pings
|
* SECTION:pings
|
||||||
@ -468,6 +470,7 @@ meta_set_gnome_wm_keybindings (const char *wm_keybindings)
|
|||||||
void
|
void
|
||||||
meta_display_cancel_touch (MetaDisplay *display)
|
meta_display_cancel_touch (MetaDisplay *display)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
MetaWaylandCompositor *compositor;
|
MetaWaylandCompositor *compositor;
|
||||||
|
|
||||||
if (!meta_is_wayland_compositor ())
|
if (!meta_is_wayland_compositor ())
|
||||||
@ -475,6 +478,7 @@ meta_display_cancel_touch (MetaDisplay *display)
|
|||||||
|
|
||||||
compositor = meta_wayland_compositor_get_default ();
|
compositor = meta_wayland_compositor_get_default ();
|
||||||
meta_wayland_touch_cancel (&compositor->seat->touch);
|
meta_wayland_touch_cancel (&compositor->seat->touch);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -545,8 +549,10 @@ meta_display_open (void)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
if (meta_is_wayland_compositor ())
|
if (meta_is_wayland_compositor ())
|
||||||
meta_xwayland_complete_init ();
|
meta_xwayland_complete_init ();
|
||||||
|
#endif
|
||||||
|
|
||||||
if (meta_is_syncing ())
|
if (meta_is_syncing ())
|
||||||
XSynchronize (xdisplay, True);
|
XSynchronize (xdisplay, True);
|
||||||
@ -1436,6 +1442,7 @@ meta_display_queue_autoraise_callback (MetaDisplay *display,
|
|||||||
void
|
void
|
||||||
meta_display_sync_wayland_input_focus (MetaDisplay *display)
|
meta_display_sync_wayland_input_focus (MetaDisplay *display)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
MetaWaylandCompositor *compositor = meta_wayland_compositor_get_default ();
|
MetaWaylandCompositor *compositor = meta_wayland_compositor_get_default ();
|
||||||
MetaWindow *focus_window = NULL;
|
MetaWindow *focus_window = NULL;
|
||||||
|
|
||||||
@ -1451,6 +1458,7 @@ meta_display_sync_wayland_input_focus (MetaDisplay *display)
|
|||||||
meta_wayland_compositor_set_input_focus (compositor, focus_window);
|
meta_wayland_compositor_set_input_focus (compositor, focus_window);
|
||||||
|
|
||||||
meta_wayland_seat_repick (compositor->seat);
|
meta_wayland_seat_repick (compositor->seat);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -35,7 +35,9 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "x11/events.h"
|
#include "x11/events.h"
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
#include "wayland/meta-wayland-private.h"
|
#include "wayland/meta-wayland-private.h"
|
||||||
|
#endif
|
||||||
#include "meta-surface-actor.h"
|
#include "meta-surface-actor.h"
|
||||||
|
|
||||||
static MetaWindow *
|
static MetaWindow *
|
||||||
@ -162,17 +164,20 @@ meta_display_handle_event (MetaDisplay *display,
|
|||||||
const ClutterEvent *event)
|
const ClutterEvent *event)
|
||||||
{
|
{
|
||||||
MetaWindow *window;
|
MetaWindow *window;
|
||||||
gboolean bypass_clutter = FALSE, bypass_wayland = FALSE;
|
gboolean bypass_clutter = FALSE;
|
||||||
MetaWaylandCompositor *compositor = NULL;
|
G_GNUC_UNUSED gboolean bypass_wayland = FALSE;
|
||||||
MetaGestureTracker *tracker;
|
MetaGestureTracker *tracker;
|
||||||
|
|
||||||
meta_display_update_pointer_emulating_sequence (display, event);
|
meta_display_update_pointer_emulating_sequence (display, event);
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
|
MetaWaylandCompositor *compositor = NULL;
|
||||||
if (meta_is_wayland_compositor ())
|
if (meta_is_wayland_compositor ())
|
||||||
{
|
{
|
||||||
compositor = meta_wayland_compositor_get_default ();
|
compositor = meta_wayland_compositor_get_default ();
|
||||||
meta_wayland_compositor_update (compositor, event);
|
meta_wayland_compositor_update (compositor, event);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
handle_idletime_for_event (event);
|
handle_idletime_for_event (event);
|
||||||
|
|
||||||
@ -281,11 +286,13 @@ meta_display_handle_event (MetaDisplay *display,
|
|||||||
if (display->grab_op == META_GRAB_OP_WAYLAND_POPUP)
|
if (display->grab_op == META_GRAB_OP_WAYLAND_POPUP)
|
||||||
bypass_clutter = TRUE;
|
bypass_clutter = TRUE;
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
if (compositor && !bypass_wayland)
|
if (compositor && !bypass_wayland)
|
||||||
{
|
{
|
||||||
if (meta_wayland_compositor_handle_event (compositor, event))
|
if (meta_wayland_compositor_handle_event (compositor, event))
|
||||||
bypass_clutter = TRUE;
|
bypass_clutter = TRUE;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
display->current_time = CurrentTime;
|
display->current_time = CurrentTime;
|
||||||
return bypass_clutter;
|
return bypass_clutter;
|
||||||
|
@ -78,7 +78,9 @@
|
|||||||
|
|
||||||
#include "x11/session.h"
|
#include "x11/session.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
#include "wayland/meta-wayland.h"
|
#include "wayland/meta-wayland.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The exit code we'll return to our parent process when we eventually die.
|
* The exit code we'll return to our parent process when we eventually die.
|
||||||
@ -160,7 +162,9 @@ static gchar *opt_client_id;
|
|||||||
static gboolean opt_replace_wm;
|
static gboolean opt_replace_wm;
|
||||||
static gboolean opt_disable_sm;
|
static gboolean opt_disable_sm;
|
||||||
static gboolean opt_sync;
|
static gboolean opt_sync;
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
static gboolean opt_wayland;
|
static gboolean opt_wayland;
|
||||||
|
#endif
|
||||||
#ifdef HAVE_NATIVE_BACKEND
|
#ifdef HAVE_NATIVE_BACKEND
|
||||||
static gboolean opt_display_server;
|
static gboolean opt_display_server;
|
||||||
#endif
|
#endif
|
||||||
@ -201,12 +205,14 @@ static GOptionEntry meta_options[] = {
|
|||||||
N_("Make X calls synchronous"),
|
N_("Make X calls synchronous"),
|
||||||
NULL
|
NULL
|
||||||
},
|
},
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
{
|
{
|
||||||
"wayland", 0, 0, G_OPTION_ARG_NONE,
|
"wayland", 0, 0, G_OPTION_ARG_NONE,
|
||||||
&opt_wayland,
|
&opt_wayland,
|
||||||
N_("Run as a wayland compositor"),
|
N_("Run as a wayland compositor"),
|
||||||
NULL
|
NULL
|
||||||
},
|
},
|
||||||
|
#endif
|
||||||
#ifdef HAVE_NATIVE_BACKEND
|
#ifdef HAVE_NATIVE_BACKEND
|
||||||
{
|
{
|
||||||
"display-server", 0, 0, G_OPTION_ARG_NONE,
|
"display-server", 0, 0, G_OPTION_ARG_NONE,
|
||||||
@ -271,8 +277,10 @@ meta_finalize (void)
|
|||||||
meta_display_close (display,
|
meta_display_close (display,
|
||||||
CurrentTime); /* I doubt correct timestamps matter here */
|
CurrentTime); /* I doubt correct timestamps matter here */
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
if (meta_is_wayland_compositor ())
|
if (meta_is_wayland_compositor ())
|
||||||
meta_wayland_finalize ();
|
meta_wayland_finalize ();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
@ -323,7 +331,9 @@ meta_init (void)
|
|||||||
#endif
|
#endif
|
||||||
clutter_set_windowing_backend (CLUTTER_WINDOWING_X11);
|
clutter_set_windowing_backend (CLUTTER_WINDOWING_X11);
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
meta_set_is_wayland_compositor (opt_wayland);
|
meta_set_is_wayland_compositor (opt_wayland);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (g_get_home_dir ())
|
if (g_get_home_dir ())
|
||||||
if (chdir (g_get_home_dir ()) < 0)
|
if (chdir (g_get_home_dir ()) < 0)
|
||||||
@ -336,6 +346,7 @@ meta_init (void)
|
|||||||
g_irepository_prepend_search_path (MUTTER_PKGLIBDIR);
|
g_irepository_prepend_search_path (MUTTER_PKGLIBDIR);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
if (meta_is_wayland_compositor ())
|
if (meta_is_wayland_compositor ())
|
||||||
{
|
{
|
||||||
/* NB: When running as a hybrid wayland compositor we run our own headless X
|
/* NB: When running as a hybrid wayland compositor we run our own headless X
|
||||||
@ -343,6 +354,7 @@ meta_init (void)
|
|||||||
meta_wayland_init ();
|
meta_wayland_init ();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
meta_select_display (opt_display_name);
|
meta_select_display (opt_display_name);
|
||||||
|
|
||||||
meta_set_syncing (opt_sync || (g_getenv ("MUTTER_SYNC") != NULL));
|
meta_set_syncing (opt_sync || (g_getenv ("MUTTER_SYNC") != NULL));
|
||||||
|
@ -49,14 +49,17 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
|
#include <meta/meta-cursor-tracker.h>
|
||||||
#include "meta/compositor-mutter.h"
|
#include "meta/compositor-mutter.h"
|
||||||
|
|
||||||
#include "x11/window-x11.h"
|
#include "x11/window-x11.h"
|
||||||
#include "x11/window-props.h"
|
#include "x11/window-props.h"
|
||||||
#include "x11/xprops.h"
|
#include "x11/xprops.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
#include "wayland/window-wayland.h"
|
#include "wayland/window-wayland.h"
|
||||||
#include "wayland/meta-wayland-private.h"
|
#include "wayland/meta-wayland-private.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "backends/meta-backend-private.h"
|
#include "backends/meta-backend-private.h"
|
||||||
|
|
||||||
@ -779,8 +782,12 @@ _meta_window_shared_new (MetaDisplay *display,
|
|||||||
|
|
||||||
if (client_type == META_WINDOW_CLIENT_TYPE_X11)
|
if (client_type == META_WINDOW_CLIENT_TYPE_X11)
|
||||||
window = g_object_new (META_TYPE_WINDOW_X11, NULL);
|
window = g_object_new (META_TYPE_WINDOW_X11, NULL);
|
||||||
else
|
#ifdef HAVE_WAYLAND
|
||||||
|
else if (client_type == META_WINDOW_CLIENT_TYPE_WAYLAND)
|
||||||
window = g_object_new (META_TYPE_WINDOW_WAYLAND, NULL);
|
window = g_object_new (META_TYPE_WINDOW_WAYLAND, NULL);
|
||||||
|
#endif
|
||||||
|
else
|
||||||
|
g_assert_not_reached ();
|
||||||
|
|
||||||
window->constructing = TRUE;
|
window->constructing = TRUE;
|
||||||
|
|
||||||
@ -1221,6 +1228,7 @@ meta_window_unmanage (MetaWindow *window,
|
|||||||
|
|
||||||
meta_verbose ("Unmanaging %s\n", window->desc);
|
meta_verbose ("Unmanaging %s\n", window->desc);
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
/* This needs to happen for both Wayland and XWayland clients,
|
/* This needs to happen for both Wayland and XWayland clients,
|
||||||
* so it can't be in MetaWindowWayland. */
|
* so it can't be in MetaWindowWayland. */
|
||||||
if (window->surface)
|
if (window->surface)
|
||||||
@ -1228,6 +1236,7 @@ meta_window_unmanage (MetaWindow *window,
|
|||||||
meta_wayland_surface_set_window (window->surface, NULL);
|
meta_wayland_surface_set_window (window->surface, NULL);
|
||||||
window->surface = NULL;
|
window->surface = NULL;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (window->visible_to_compositor)
|
if (window->visible_to_compositor)
|
||||||
{
|
{
|
||||||
@ -2434,8 +2443,10 @@ meta_window_show (MetaWindow *window)
|
|||||||
if (did_show)
|
if (did_show)
|
||||||
meta_screen_queue_check_fullscreen (window->screen);
|
meta_screen_queue_check_fullscreen (window->screen);
|
||||||
|
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
if (did_show && window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND)
|
if (did_show && window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND)
|
||||||
meta_wayland_compositor_repick (meta_wayland_compositor_get_default ());
|
meta_wayland_compositor_repick (meta_wayland_compositor_get_default ());
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now that we have shown the window, we no longer want to consider the
|
* Now that we have shown the window, we no longer want to consider the
|
||||||
|
@ -1448,12 +1448,15 @@ handle_other_xevent (MetaDisplay *display,
|
|||||||
case ClientMessage:
|
case ClientMessage:
|
||||||
if (window)
|
if (window)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_WAYLAND
|
||||||
if (event->xclient.message_type == display->atom_WL_SURFACE_ID)
|
if (event->xclient.message_type == display->atom_WL_SURFACE_ID)
|
||||||
{
|
{
|
||||||
guint32 surface_id = event->xclient.data.l[0];
|
guint32 surface_id = event->xclient.data.l[0];
|
||||||
meta_xwayland_handle_wl_surface_id (window, surface_id);
|
meta_xwayland_handle_wl_surface_id (window, surface_id);
|
||||||
}
|
}
|
||||||
else if (!frame_was_receiver)
|
else
|
||||||
|
#endif
|
||||||
|
if (!frame_was_receiver)
|
||||||
meta_window_x11_client_message (window, event);
|
meta_window_x11_client_message (window, event);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user