Question - Mouse release?

edited 2009 Jun 18 in Technical Support
Hi,

is there an option to free the mouse out of the doomsday window?
I play almost windowed...i would like to place the window to
the right place on my desktop, and would like to leave the window
once in a while.
Maybe there is already an option that i dont see.
Thanks.

Comments

  • what operating system are you using?
  • KuriKai wrote:
    what operating system are you using?

    linux, slackware 12.2
  • It's problem with doomsdays use of sdl_window I believe.
  • It also affects keyboard input, which makes controlling external programs such as media players impossible. While running windowed, it would be nice to have it give up control, but I don't know how simple (or not) it would be to do. It'd definitely be nice to have.
  • It's a feature of SDL. Do you really want mouselook to fail because you moved out of the window ? The SDL programming docs would need to be consulted to see if that could be turned off - but in that case if it is possible, you need to give up mouse control. Is that something you want to do ?
  • Yagisan wrote:
    It's a feature of SDL. Do you really want mouselook to fail because you moved out of the window ? The SDL programming docs would need to be consulted to see if that could be turned off - but in that case if it is possible, you need to give up mouse control. Is that something you want to do ?

    of course i don't want to lose mouse control when i'm actually *playing* ;)
    No, lets say when i'm standing in a corner, or sitting in the menu, whatever.
    In the case i want to change to my irc window or mp3 player, whatever,
    i do want to lose control.
    In Dosbox, which is built with SDL afaik, you can "catch" and "release" the
    mouse with ctrl-F10 or setup to catch the mouse again automatically by directly
    clicking into the Dosbox window.
    Having no mouse release or tab-out possibility basically means you can do nothing
    else on your desktop except slaughtering maulotaurs. If you want to do anything
    else you have to quit doomsday, do whatever you want, start doomsday again.
  • Chocolate Doom switches grabbing on and off depending on specific variables. See i_video.c, specifically, functions MouseShouldBeGrabbed and UpdateGrab. Doomsday has its own checkable values, so those could be used in the same way.
  • I'm sure that DaniJ would appreciate a patch that implements that functionality, as 1) it doesn't affect the win32 port because that doesn't use sdl for input, 2) skyjake neither notices nor cares about this issue on osx, and 3) neither skyjake or danij work on, or test the the *nix port - and a blind fix by one of them may do more harm then good - as evidenced by all the linux bugs that crop up whenever skyjake makes osx fixes in common *nix code.

    As I mentioned before - consulting the SDL programming docs would be the place to start. And remember - quirks appear in fullscreen and windowed modes to take them both into account. Then you need to take into account that on windows it uses directinput and from the engine proper it doesn't actually know (nor should it really) where it gets it's input from, only that it is getting input, so you'll need to make sure the patch does the right thing on windows as well.
  • I've been planning on implementing this for the Windows platform for a while now but have held off doing so until the currently DirectX based input for mouse and keyboard is replaced (responding to Windows message queue ourselves). The plan is somewhat similar to what has been mentioned in this thread:

    Changes to windowed mode behaviour:
    • Whilst in the in-game menu/control panel/command console: mouse look is released, a mouse cursor is visible when inside the Doomsday window but can move freely outside that window. Upon leaving the Doomsday window client area, depending on the current configuration, the game might be paused automatically (obviously, this can't happen in a multiplayer game).
    • Whilst in-game: There will be a shortcut key combination (freely bindable) to "release" the mouse. At which point, depending upon the game configuration, the game might be paused automatically. In this mode, the mouse can move freely outside the Doomsday client-area. Click back in the Doomsday window, client area to deactivate this mode (and possibly unpause the game).

    With the mouse released, you will be free to resize the window directly (as you would any other window), move it, minimize, close etc, etc...

    Naturally, all of this will only apply to the Windows platform though. However, once this is all implmented it should be relatively straight forward for someone to do the same for the OSX and *nix platforms (via the SDL based window manager) and simply hook it into Doomsday's high-level window manager.

    It may be that I will be doing this as part of the work required for 1.9.0-beta7. I am currently waiting to see how the new libdeng and core stuff progresses but right now it is looking likely (the way it looks in svn currently appears to be unsuitable for use with our current method of input on the Windows platform).
Sign In or Register to comment.