diff options
author | Sven Gothel <sgothel@jausoft.com> | 2012-09-28 09:56:46 +0200 |
---|---|---|
committer | Sven Gothel <sgothel@jausoft.com> | 2012-09-28 09:56:46 +0200 |
commit | 54f79e402ddb87de9caa3297228cbd16c452cfb4 (patch) | |
tree | 9a85be0b1adc948c37b4f1be59de63674d8b15c8 /src/newt | |
parent | 4c24011e3cb0aa12a9d5200075e87eda84a18bcf (diff) |
NEWT X11 ScreenMode: Ignore invalid rotation event
Diffstat (limited to 'src/newt')
-rw-r--r-- | src/newt/native/X11Screen.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/newt/native/X11Screen.c b/src/newt/native/X11Screen.c index 334c39727..e8a3ca656 100644 --- a/src/newt/native/X11Screen.c +++ b/src/newt/native/X11Screen.c @@ -469,15 +469,22 @@ JNIEXPORT jboolean JNICALL Java_jogamp_newt_driver_x11_ScreenDriver_setCurrentSc switch (evt.type - randr_event_base) { case RRScreenChangeNotify: - rot = NewtScreen_XRotation2Degree(env, (int)scn_event->rotation); - DBG_PRINT( "XRANDR: event . RRScreenChangeNotify call %p (root %p) resIdx %d rot %d %dx%d\n", - (void*)scn_event->window, (void*)scn_event->root, - (int)scn_event->size_index, rot, - scn_event->width, scn_event->height); - // done = scn_event->size_index == resMode_idx; // not reliable .. - done = rot == rotation && - scn_event->width == xrrs[resMode_idx].width && - scn_event->height == xrrs[resMode_idx].height; + if(0 < scn_event->rotation ) { + rot = NewtScreen_XRotation2Degree(env, (int)scn_event->rotation); + DBG_PRINT( "XRANDR: event . RRScreenChangeNotify call(1) %p (root %p) resIdx %d rot %d %dx%d\n", + (void*)scn_event->window, (void*)scn_event->root, + (int)scn_event->size_index, rot, + scn_event->width, scn_event->height); + // done = scn_event->size_index == resMode_idx; // not reliable .. + done = rot == rotation && + scn_event->width == xrrs[resMode_idx].width && + scn_event->height == xrrs[resMode_idx].height; + } else { + DBG_PRINT( "XRANDR: event . RRScreenChangeNotify call(0) %p (root %p) resIdx %d %dx%d\n", + (void*)scn_event->window, (void*)scn_event->root, + (int)scn_event->size_index, + scn_event->width, scn_event->height); + } break; default: DBG_PRINT("RANDR: event . unhandled %d 0x%X call %p\n", (int)evt.type, (int)evt.type, (void*)evt.xany.window); |