[clutter/clutter-1.16] win32: Disable event retrieval in Cogl
- From: Neil Roberts <nroberts src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [clutter/clutter-1.16] win32: Disable event retrieval in Cogl
- Date: Fri, 12 Jul 2013 16:59:49 +0000 (UTC)
commit 0cef63b8374c86753ca20b5270b57c486d541ca1
Author: Neil Roberts <neil linux intel com>
Date: Fri May 31 14:18:01 2013 +0100
win32: Disable event retrieval in Cogl
Since commit 4543ed6ac3af in Cogl, Cogl will now try to consume
Windows message itself. This doesn't really cause any problems because
both message loops just call DispatchMessage which will cause the
message to be routed through Clutter's window procedure either way.
However, it's not great to have two sources listening for messages so
this patch disables Cogl's message retrieval.
https://bugzilla.gnome.org/show_bug.cgi?id=701356
clutter/gdk/clutter-backend-gdk.c | 1 +
clutter/win32/clutter-backend-win32.c | 19 +++++++++++++++++++
2 files changed, 20 insertions(+), 0 deletions(-)
---
diff --git a/clutter/gdk/clutter-backend-gdk.c b/clutter/gdk/clutter-backend-gdk.c
index 8f61821..7a719aa 100644
--- a/clutter/gdk/clutter-backend-gdk.c
+++ b/clutter/gdk/clutter-backend-gdk.c
@@ -279,6 +279,7 @@ clutter_backend_gdk_get_renderer (ClutterBackend *backend,
{
/* Force a WGL winsys on windows */
cogl_renderer_set_winsys_id (renderer, COGL_WINSYS_ID_WGL);
+ cogl_win32_renderer_set_event_retrieval_enabled (renderer, FALSE);
}
else
#endif
diff --git a/clutter/win32/clutter-backend-win32.c b/clutter/win32/clutter-backend-win32.c
index cb99079..fc7c604 100644
--- a/clutter/win32/clutter-backend-win32.c
+++ b/clutter/win32/clutter-backend-win32.c
@@ -178,6 +178,24 @@ clutter_win32_disable_event_retrieval (void)
_no_event_retrieval = TRUE;
}
+static CoglRenderer *
+clutter_backend_win32_get_renderer (ClutterBackend *backend,
+ GError **error)
+{
+ CoglRenderer *renderer;
+
+ CLUTTER_NOTE (BACKEND, "Creating a new WGL renderer");
+
+ renderer = cogl_renderer_new ();
+ cogl_renderer_set_winsys_id (renderer, COGL_WINSYS_ID_WGL);
+
+ /* We don't want Cogl to install its default event handler because
+ * we'll handle them manually */
+ cogl_win32_renderer_set_event_retrieval_enabled (renderer, FALSE);
+
+ return renderer;
+}
+
static void
clutter_backend_win32_class_init (ClutterBackendWin32Class *klass)
{
@@ -192,6 +210,7 @@ clutter_backend_win32_class_init (ClutterBackendWin32Class *klass)
backend_class->init_events = clutter_backend_win32_init_events;
backend_class->get_features = clutter_backend_win32_get_features;
+ backend_class->get_renderer = clutter_backend_win32_get_renderer;
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]