diff options
author | Jeremy Huddleston <jeremy@tifa.local> | 2008-03-21 18:07:38 -0700 |
---|---|---|
committer | Jeremy Huddleston <jeremy@tifa.local> | 2008-03-21 19:37:42 -0700 |
commit | c49e11268322712c211f29d51d664d3f8a59b00b (patch) | |
tree | 590be8c3166d73b6fc73843aabfe68ccce604c6d /hw/xquartz/xpr | |
parent | 4c76607b699431183ee7e88fa7818cb7644a5a02 (diff) |
XQuartz: Initial framework for dealing with spaces on OS-X
(cherry picked from commit 9831324998f9d1f05ff944c58c5bf60dcae17355)
Diffstat (limited to 'hw/xquartz/xpr')
-rw-r--r-- | hw/xquartz/xpr/xprScreen.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/hw/xquartz/xpr/xprScreen.c b/hw/xquartz/xpr/xprScreen.c index db36403df..4dc5846d5 100644 --- a/hw/xquartz/xpr/xprScreen.c +++ b/hw/xquartz/xpr/xprScreen.c @@ -63,6 +63,7 @@ static const char *xprOpenGLBundle = "glxCGL.bundle"; */ static void eventHandler(unsigned int type, const void *arg, unsigned int arg_size, void *data) { + switch (type) { case XP_EVENT_DISPLAY_CHANGED: DEBUG_LOG("XP_EVENT_DISPLAY_CHANGED\n"); @@ -105,6 +106,13 @@ static void eventHandler(unsigned int type, const void *arg, DRISurfaceNotify(*(xp_surface_id *) arg, kind); } break; + case XP_EVENT_SPACE_CHANGED: + ErrorF("XP_EVENT_SPACE_CHANGED\n"); + if(arg_size == sizeof(uint32_t)) { + uint32_t space_id = *(uint32_t *)arg; + QuartzMessageServerThread(kXDarwinSpaceChanged, 1, space_id); + } + break; default: ErrorF("Unknown XP_EVENT type (%d) in xprScreen:eventHandler\n", type); } @@ -233,7 +241,8 @@ xprDisplayInit(void) | XP_EVENT_WINDOW_STATE_CHANGED | XP_EVENT_WINDOW_MOVED | XP_EVENT_SURFACE_CHANGED - | XP_EVENT_SURFACE_DESTROYED, + | XP_EVENT_SURFACE_DESTROYED + | XP_EVENT_SPACE_CHANGED, eventHandler, NULL); AppleDRIExtensionInit(); |