ID:117153
 
BYOND Version:489
Operating System:Windows 7 Ultimate 64-bit
Web Browser:Chrome 14.0.835.35
Applies to:Dream Seeker
Status: Deferred

This issue may be low priority or very difficult to fix, and has been put on the back burner for the time being.
Descriptive Problem Summary:
To start, I have 3 monitors. My main monitor is the rightmost one, and I often do development on the middle monitor. In my recent game, people are reporting that the game is popping up offscreen (which I understand after looking at the interface file).

Now, this brings me to my interface file. Since, by default, it's on my second monitor (to the left, so it has a negative position), the interface file says everyone should load it there.

Numbered Steps to Reproduce Problem:
Create an interface for something, and either position it on a separate monitor, or manually modify the interface file to contain a pos (for the main window) that is out of bounds for the current resolution.

Code Snippet (if applicable) to Reproduce Problem:
window "default"
elem "default"
type = MAIN
pos = -595,192


Expected Results:
Dream Seeker would load it on to a position the user can see the window.

Actual Results:
It loads offscreen, leaving users puzzled.

Does the problem occur:
Every time? Or how often? Every time
In other games? Yep
In other user accounts? Yep
On other computers? Yep

When does the problem NOT occur?
In this case, it always occurs.

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)

Workarounds:
Have a winset call when the world starts to reposition the window to 0,0, or some place every user has.
I've seen this as well myself.

I think probably the easiest way to solve this is: at compile time, any negative values for x or y position, on window objects only, defaults to 0.

That isn't an ideal solution, though, because I have a negative position for two of my monitors. It should reset at runtime, only if the position/resolution isn't supported by the user.