[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Enigma-devel] Enigma 1.10 Milestone 5 Revision 1877

From: Ronald Lamprecht
Subject: Re: [Enigma-devel] Enigma 1.10 Milestone 5 Revision 1877
Date: Fri, 04 Dec 2009 21:20:24 +0100
User-agent: Thunderbird (Windows/20090812)


Lukas Schüller wrote:
- If you want to visit the website or similiar things in the "Help menu", your 
(or at least my) mouse is still stuck in the top-left corner as Enigma is still running. 
I don't know if I'm the only one experiencing this problem; if it helps you, my OS is 
Windows XP.
I guess you have been running Enigma in fullscreen mode. For me it is even working in fullscreen mode on XP. But I am testing on a multiscreen environment ... The Enigma window gets minimized and the browser ends up being the active application. Just on the reactivation of the minimized Enigma I have to click twice the first time.

Please verify that in windowed mode the buttons work without problems. I will check if it possible to switch Enigma temporarily into windowed mode in case the buttons are selected while Enigma runs in fullscreen mode.

First, you're right, it works without a problem when in windowed mode.
Second, I just noticed that my description is not completely clear. Enigma gets minimized and the 
browser becomes the active application for me, too; the "still running" was only 
referring to the application in the background. However, my mouse is still stuck in the top-left 
corner, which is pretty annoying, since I can't even open up Enigma via mouse again. Would it be 
possible to simply "release" the mouse while Enigma is inactive?
(By the way, the same thing happens to me when I'm alt-tabbing, but I don't 
think that's too much of a problem)

I tried to investigate the problem. Unfortunately none of the Windows systems that I checked today, even those with just one screen, did show the annoying behaviour.

SDL supports two video drivers for Windows. The standard GDI based "windib", and the "directx" based alternative one. You can enforce all SDL apps to use the alternative one if you set the environment variable "SDL_VIDEODRIVER" two the above driver strings. Please check the directx driver, too. I do not expect another behaviour, as the grabbing should be independent of the driver. BTW the directx driver showed unreliable results in deminiturizing the app. Do not forget to delete the environment variable after testing.

A SDL source code review showed that it is impossible for an application like Enigma to release the mouse itself while being in fullscreen mode. Sam did post reasons, mainly multiscreen support, for this feature. So the problem can just be fixed in SDL.

The responsible SDL code is basically o.k. concerning MSDN documentation. I detected just one tiny glitch at the most critical part. Just on the grab release the error code returned by Windows is not checked and no error handling is available. It looks like your graphic driver does not support the most basic grab feature in this special situation and returns an error code not caught by SDL.

I patched SDL by a simple 3 lines modification, that should anyway be more usefull than the current code. My first test looks fine, everything seems to run perfectly and even the cursor does no longer jump to the left upper corner. I'll send you the patched SDL.dll for test purposes in a sepearted mail. If anyone else noticed the same problem and is willing to test the patched SDL.dll please drop me a personal note.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]