[mutter/wayland] Move MetaLauncher to meta-backend
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wayland] Move MetaLauncher to meta-backend
- Date: Tue, 1 Apr 2014 03:49:55 +0000 (UTC)
commit 5bcc78498f4a31076672c1770c579bdd8effc37b
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Mon Mar 31 23:19:13 2014 -0400
Move MetaLauncher to meta-backend
src/backends/meta-backend.c | 46 ++++++++++++++++++++++++++++++++++++
src/backends/meta-backend.h | 4 +++
src/core/keybindings.c | 4 +-
src/core/main.c | 26 --------------------
src/meta/main.h | 2 +-
src/wayland/meta-wayland-private.h | 3 --
src/wayland/meta-wayland.c | 42 --------------------------------
src/wayland/meta-wayland.h | 6 ----
8 files changed, 53 insertions(+), 80 deletions(-)
---
diff --git a/src/backends/meta-backend.c b/src/backends/meta-backend.c
index b4de3f6..f464425 100644
--- a/src/backends/meta-backend.c
+++ b/src/backends/meta-backend.c
@@ -25,11 +25,14 @@
#include "config.h"
#include "meta-backend.h"
+#include <meta/main.h>
#include <gdk/gdkx.h>
#include <clutter/clutter.h>
#include <clutter/x11/clutter-x11.h>
+#include "meta-weston-launch.h"
+
/* Mutter is responsible for pulling events off the X queue, so Clutter
* doesn't need (and shouldn't) run its normal event source which polls
* the X fd, but we do have to deal with dispatching events that accumulate
@@ -78,6 +81,8 @@ static GSourceFuncs event_funcs = {
event_dispatch
};
+static MetaLauncher *launcher;
+
void
meta_clutter_init (void)
{
@@ -86,6 +91,13 @@ meta_clutter_init (void)
clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
clutter_x11_disable_event_retrieval ();
+ /* If we're running on bare metal, we're a display server,
+ * so start talking to weston-launch. */
+#if defined(CLUTTER_WINDOWING_EGL)
+ if (clutter_check_windowing_backend (CLUTTER_WINDOWING_EGL))
+ launcher = meta_launcher_new ();
+#endif
+
if (clutter_init (NULL, NULL) != CLUTTER_INIT_SUCCESS)
g_error ("Unable to initialize Clutter.\n");
@@ -93,3 +105,37 @@ meta_clutter_init (void)
g_source_attach (source, NULL);
g_source_unref (source);
}
+
+gboolean
+meta_activate_vt (int vt, GError **error)
+{
+ if (launcher)
+ return meta_launcher_activate_vt (launcher, vt, error);
+ else
+ {
+ g_debug ("Ignoring VT switch keybinding, not running as display server");
+ return TRUE;
+ }
+}
+
+/**
+ * meta_activate_session:
+ *
+ * Tells mutter to activate the session. When mutter is a
+ * Wayland compositor, this tells logind to switch over to
+ * the new session.
+ */
+gboolean
+meta_activate_session (void)
+{
+ GError *error = NULL;
+
+ if (!meta_launcher_activate_vt (launcher, -1, &error))
+ {
+ g_warning ("Could not activate session: %s\n", error->message);
+ g_error_free (error);
+ return FALSE;
+ }
+
+ return TRUE;
+}
diff --git a/src/backends/meta-backend.h b/src/backends/meta-backend.h
index 4c4ee1f..03d8a56 100644
--- a/src/backends/meta-backend.h
+++ b/src/backends/meta-backend.h
@@ -25,6 +25,10 @@
#ifndef META_BACKEND_H
#define META_BACKEND_H
+#include <glib-object.h>
+
void meta_clutter_init (void);
+gboolean meta_activate_vt (int vt, GError **error);
+
#endif /* META_BACKEND_H */
diff --git a/src/core/keybindings.c b/src/core/keybindings.c
index 8f787b7..e663311 100644
--- a/src/core/keybindings.c
+++ b/src/core/keybindings.c
@@ -52,6 +52,7 @@
#endif
#include "wayland/meta-wayland.h"
+#include "meta-backend.h"
#define SCHEMA_COMMON_KEYBINDINGS "org.gnome.desktop.wm.keybindings"
#define SCHEMA_MUTTER_KEYBINDINGS "org.gnome.mutter.keybindings"
@@ -3181,10 +3182,9 @@ handle_switch_vt (MetaDisplay *display,
gpointer dummy)
{
gint vt = binding->handler->data;
- MetaWaylandCompositor *compositor = meta_wayland_compositor_get_default ();
GError *error = NULL;
- if (!meta_wayland_compositor_activate_vt (compositor, vt, &error))
+ if (!meta_activate_vt (vt, &error))
{
g_warning ("Failed to switch VT: %s", error->message);
g_error_free (error);
diff --git a/src/core/main.c b/src/core/main.c
index c0aeeb6..a3d000e 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -438,32 +438,6 @@ meta_register_with_session (void)
}
/**
- * meta_activate_session:
- *
- * Tells mutter to activate the session. When mutter is a
- * Wayland compositor, this tells logind to switch over to
- * the new session.
- */
-gboolean
-meta_activate_session (void)
-{
- if (meta_is_wayland_compositor ())
- {
- MetaWaylandCompositor *compositor = meta_wayland_compositor_get_default ();
- GError *error = NULL;
-
- if (!meta_wayland_compositor_activate_session (compositor, &error))
- {
- g_warning ("Could not activate session: %s\n", error->message);
- g_error_free (error);
- return FALSE;
- }
- }
-
- return TRUE;
-}
-
-/**
* meta_run: (skip)
*
* Runs mutter. Call this after completing initialization that doesn't require
diff --git a/src/meta/main.h b/src/meta/main.h
index 9a74809..82f05a0 100644
--- a/src/meta/main.h
+++ b/src/meta/main.h
@@ -28,7 +28,7 @@ GOptionContext *meta_get_option_context (void);
void meta_init (void);
int meta_run (void);
void meta_register_with_session (void);
-gboolean meta_activate_session (void);
+gboolean meta_activate_session (void); /* Actually defined in meta-backend.c */
gboolean meta_get_replace_current_wm (void); /* Actually defined in util.c */
void meta_set_wm_name (const char *wm_name);
diff --git a/src/wayland/meta-wayland-private.h b/src/wayland/meta-wayland-private.h
index a2a2b90..d575e2f 100644
--- a/src/wayland/meta-wayland-private.h
+++ b/src/wayland/meta-wayland-private.h
@@ -27,7 +27,6 @@
#include <cairo.h>
#include "window-private.h"
-#include "meta-weston-launch.h"
#include <meta/meta-cursor-tracker.h>
#include "meta-wayland.h"
@@ -85,8 +84,6 @@ struct _MetaWaylandCompositor
MetaXWaylandManager xwayland_manager;
- MetaLauncher *launcher;
-
MetaWaylandSeat *seat;
};
diff --git a/src/wayland/meta-wayland.c b/src/wayland/meta-wayland.c
index 2e56353..1d9be56 100644
--- a/src/wayland/meta-wayland.c
+++ b/src/wayland/meta-wayland.c
@@ -53,7 +53,6 @@
#include <meta/types.h>
#include <meta/main.h>
#include "frame.h"
-#include "meta-weston-launch.h"
#include "meta-monitor-manager.h"
static MetaWaylandCompositor _meta_wayland_compositor;
@@ -629,13 +628,6 @@ meta_wayland_init (void)
clutter_wayland_set_compositor_display (compositor->wayland_display);
- /* If we're running on bare metal, we're a display server,
- * so start talking to weston-launch. */
-#if defined(CLUTTER_WINDOWING_EGL)
- if (clutter_check_windowing_backend (CLUTTER_WINDOWING_EGL))
- compositor->launcher = meta_launcher_new ();
-#endif
-
meta_clutter_init ();
meta_monitor_manager_initialize ();
@@ -688,38 +680,4 @@ meta_wayland_finalize (void)
compositor = meta_wayland_compositor_get_default ();
meta_xwayland_stop (&compositor->xwayland_manager);
-
- if (compositor->launcher)
- meta_launcher_free (compositor->launcher);
-}
-
-gboolean
-meta_wayland_compositor_activate_vt (MetaWaylandCompositor *compositor,
- int vt,
- GError **error)
-{
- if (compositor->launcher)
- {
- return meta_launcher_activate_vt (compositor->launcher, vt, error);
- }
- else
- {
- g_debug ("Ignoring VT switch keybinding, not running as display server");
- return TRUE;
- }
-}
-
-gboolean
-meta_wayland_compositor_activate_session (MetaWaylandCompositor *compositor,
- GError **error)
-{
- if (compositor->launcher)
- {
- return meta_launcher_activate_vt (compositor->launcher, -1, error);
- }
- else
- {
- g_debug ("Ignoring activate_session, not running as display server");
- return TRUE;
- }
}
diff --git a/src/wayland/meta-wayland.h b/src/wayland/meta-wayland.h
index 81bb2e5..4f12660 100644
--- a/src/wayland/meta-wayland.h
+++ b/src/wayland/meta-wayland.h
@@ -43,11 +43,5 @@ void meta_wayland_compositor_update (MetaWaylandComp
const ClutterEvent *event);
void meta_wayland_compositor_paint_finished (MetaWaylandCompositor *compositor);
-gboolean meta_wayland_compositor_activate_vt (MetaWaylandCompositor *compositor,
- int vt,
- GError **error);
-gboolean meta_wayland_compositor_activate_session (MetaWaylandCompositor *compositor,
- GError **error);
-
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]