From f14cbf5bdb4f763925f53451dd94d56f756c93ea Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 29 Sep 2011 18:10:48 +0100 Subject: [PATCH] gdk: Allow disabling event retrieval MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Just like the other backends can disable the internal event handling, and use clutter__handle_event() to do the native → Clutter event translation. --- clutter/gdk/clutter-backend-gdk.c | 18 +++++++++++++++++- clutter/gdk/clutter-gdk.h | 2 ++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/clutter/gdk/clutter-backend-gdk.c b/clutter/gdk/clutter-backend-gdk.c index d732dc739..e89e01749 100644 --- a/clutter/gdk/clutter-backend-gdk.c +++ b/clutter/gdk/clutter-backend-gdk.c @@ -65,6 +65,8 @@ G_DEFINE_TYPE (ClutterBackendGdk, clutter_backend_gdk, CLUTTER_TYPE_BACKEND_COGL /* global for pre init setup calls */ static GdkDisplay *_foreign_dpy = NULL; +static gboolean disable_event_retrieval = FALSE; + static void clutter_backend_gdk_init_settings (ClutterBackendGdk *backend_gdk) { @@ -186,7 +188,8 @@ clutter_backend_gdk_init_events (ClutterBackend *backend) { CLUTTER_NOTE (EVENT, "initialising the event loop"); - _clutter_backend_gdk_events_init (backend); + if (!disable_event_retrieval) + _clutter_backend_gdk_events_init (backend); } static void @@ -452,3 +455,16 @@ clutter_gdk_set_display (GdkDisplay *display) _foreign_dpy = g_object_ref (display); } + +void +clutter_gdk_disable_event_retrieval (void) +{ + if (_clutter_context_is_initialized ()) + { + g_warning ("%s() can only be used before calling clutter_init()", + G_STRFUNC); + return; + } + + disable_event_retrieval = TRUE; +} diff --git a/clutter/gdk/clutter-gdk.h b/clutter/gdk/clutter-gdk.h index dc95bdb0f..36724bd72 100644 --- a/clutter/gdk/clutter-gdk.h +++ b/clutter/gdk/clutter-gdk.h @@ -51,6 +51,8 @@ GdkFilterReturn clutter_gdk_handle_event (GdkEvent *event); ClutterStage * clutter_gdk_get_stage_from_window (GdkWindow *window); +void clutter_gdk_disable_event_retrieval (void); + G_END_DECLS #endif /* __CLUTTER_GDK_H__ */