Page 1 of 1
Multi-Display Stack as Fullscreen
Posted: Tue Nov 26, 2013 10:42 pm
by ddsinteractive
Hello!
I have been struggling to get the fullscreen stack property to work with a multi-monitor display.
Here is what I have thus far:
Code: Select all
on preOpenStack
set the loc of this stack to the screenLoc
set the rect of this stack to 0,0,7680,1080
end preOpenStack
on openStack
set the fullscreen of this stack to true
end openStack
This will be playing fullscreen over four 1920x1080 monitors for a total resolution of 7680x1080.
What happens is that the stack only shows on one monitor and it's not even the first one "in line" (Mac).
Any help is immensely appreciated!
Thank you so much!
Kindest Regards,
Monica
Re: Multi-Display Stack as Fullscreen
Posted: Tue Nov 26, 2013 11:51 pm
by dunbarx
Hi.
What happens if you set the rect of the stack window to the total rect of those four monitors? I do not know if the loc is pertinent or not. It certainly may matter how they are arranged on your desk.
Craig Newman
Re: Multi-Display Stack as Fullscreen
Posted: Wed Nov 27, 2013 12:21 am
by ddsinteractive
Hi Craig,
Thanks for writing back! I thought that was what I was doing with the rect definition of:
Code: Select all
set the rect of this stack to 0,0,7680,1080
I've also tried setting the Stack Properties of WIDTH to 7680 and HEIGHT to 1080 and location to 3840 and 540. Also within the Stack Script by setting the width, height and location of "this stack".
It saves the settings until I try to publish as a Standalone App. Then it resizes everything back to an odd value and on one screen. It's truly bizarre!
So a follow up question would be how to "lock" the stack size so it doesn't keep resetting on me?
Re: Multi-Display Stack as Fullscreen
Posted: Wed Nov 27, 2013 1:10 am
by Simon
Hi Monica,
What do you get when you:
put the screenRects
In the messagebox?
Simon
Edit: I only have 2 monitors but:
Code: Select all
on mouseUp
put the screenRects into temp
put item 3 of the last line of temp into tRight
set the rect of this stack to 10,30, tRight,item 4 of line 1 of temp
end mouseUp
That 10,30 is just to show the titlebar.
You can also test how the physical layout of your screens appears to liveCode by setting the rect of the stack to each of the lines returned.
Edit 2: Tested as a standalone on Win 7 it's still working.
Re: Multi-Display Stack as Fullscreen
Posted: Wed Nov 27, 2013 6:40 pm
by ddsinteractive
Hello,
It's still moving the revBrowser one monitor to the left when opening. I think it has to do with the fullscreen and windowId. Here is the full code if you could test it out on your dual monitor setup. You should see a Black "Touchscreen" image in the left monitor (if set to primary) and a blue screen in the right monitor.
My account won't let me post the URL parameter so put in the normal http stuff along with okhccom # ddskiosk # com. The hashtags are dots.
Code: Select all
-- ########################
on preOpenStack
set the decorations of this stack to empty
set the width of this stack to 7680
set the height of this stack to 1080
--set the location of this stack to 3840,540
set the topLeft of this stack to 0,0
end preOpenStack
-- ########################
on openStack
--set the width of this stack to 7680
--set the height of this stack to 1080
--set the topLeft of this stack to 0,0
--set the location of this stack to 3840,540
--set the fullscreen of this stack to true
altBrowserOn
-- DEBUGGING THINGS
--local varScreenInfo
--put the screenRects into varScreenInfo
--answer varScreenInfo
end openStack
on resizeStack
--set the width of this stack to 7680
--set the height of this stack to 1080
--set the location of this stack to 3840,540
end resizeStack
-- ########################
-- Browser Window Opening
local sBrowserId
function browserId
return sBrowserId
end browserId
on altBrowserOn
-- Open the browser
get revBrowserOpen(the windowId of this stack, "")
-- Error Checking to see if the browser opened
if it is an integer then
put it into sBrowserId
-- Browser Properties
revBrowserSet sBrowserId, "showborder", false
revBrowserSet sBrowserId, "scrollbars", false
revBrowserSet sBrowserId, "rect", the rect of image "browserImage"
else
answer "Failed to open browser: " & sBrowserId
exit altBrowserOn
end if
end altBrowserOn
-- ########################
-- Close Browser with Stack Closing
on closeStack
closeAllAltBrowser
end closeStack
on closeAllAltBrowser
local tInstanceItems
put revBrowserInstances() into tInstanceItems
repeat for each item tInstance in tInstanceItems
revBrowserClose tInstance
end repeat
end closeAllAltBrowser
Let me know what happens on yours please.
Cheers,
Monica
Re: Multi-Display Stack as Fullscreen
Posted: Thu Nov 28, 2013 3:01 am
by Simon
Hi Monica,
Still working here using your script. I did make a few changes;
Used my sizing script above
Set the rect of img "browserimage" to the same size
It's still moving the revBrowser one monitor to the left when opening.
I'm not sure what that means. Is it supposed to be a full (4) screen browser?
Simon
Re: Multi-Display Stack as Fullscreen
Posted: Thu Nov 28, 2013 6:05 am
by ddsinteractive
Hi Simon,
Yes it is a four screen, fullscreen browser.
Cheers,
Monica
Re: Multi-Display Stack as Fullscreen
Posted: Thu Nov 28, 2013 1:52 pm
by Klaus
Hi Monica,
1. welcome topt he forum

,
2. I am not sure if "fullscreen" in Livecode does support more than one monitor at all!
Even Apple only uses 1 monitor to make an app fullscreen.
This line from the dictionry about "fullscreen" makes me think so:
When the screenRect is changed, any stack with fullscreen set to true will automatically resize to fit the new screen size.
They talk about SCREENRECT (SINGULAR!), which means the MAIN monitor (with the menu- resp. taskbar) and only that one.
3. I could imagine that the revBrwoser external also only supports one monitor!
On the other hand, make sure to also resize your "browserImage" and set the browser's rect again:
...
revBrowserSet sBrowserId, "rect", the rect of image "browserImage"
..
THAT is used as a reference for the browser objects size!
To be sure write to:
support@runrev.com
Best
Klaus
Re: Multi-Display Stack as Fullscreen
Posted: Thu Nov 28, 2013 3:51 pm
by ddsinteractive
Hello Klaus,
Thank you for the warm welcome! I'm a convert from Director (since v.6) and am relatively new to LiveCode. Many times it is more of a semantic conversion of code into a different language where I struggle the most. Am learning though!
So what I am understanding from these experiments and your reply is that LiveCode's fullscreen only makes one screen (primary monitor) fullscreen even if the stack and card are sized to fit over a multiple display. That seems a bit strange, because within Director we could make fullscreen apps that spanned over extended desktop configurations.
I am next exploring a different way to approach the problem and that is to use
It may do what I would like from a different method.
Any downside or known issues to using those two features?
Cheers,
Monica
Re: Multi-Display Stack as Fullscreen
Posted: Thu Nov 28, 2013 5:00 pm
by Klaus
Hi Monica,
I also came from Director, but already switched 2000, when MetaCard (the grandfather of Livecode)
published a Mac an Windows version after being UNIX only since 1990
But I only said that I THINK that Livecode may only support ONE monitor with "fullscreen"!
To be sure ask support, see above...
No problems with:
hide menubar
hide taskbar
they do what they are supposed to do.
And you can even fire BOTH on both platform without getting an error or whatever!
Very handy for crossplatform development!
Best
Klaus
Re: Multi-Display Stack as Fullscreen
Posted: Thu Nov 28, 2013 10:03 pm
by Simon
Hi Monica,
Make sure you note that Klaus is talking about the property "fullscreen", that is different then making a stack that covers 4 screens.
Just wanted to be sure.
Simon
Re: Multi-Display Stack as Fullscreen
Posted: Thu Nov 28, 2013 11:42 pm
by monte
Hey guys. Don't forget that in Mavericks the default setting for monitors is that they are different spaces. That means you can only display a stack on one. You can change this in system prefs and my guess is the use case here is specific enough to do that otherwise you need to create a stack for each screen.
Re: Multi-Display Stack as Fullscreen
Posted: Fri Nov 29, 2013 3:53 pm
by ddsinteractive
Hello!
Thank you all for your great advice and comments!
Make sure you note that Klaus is talking about the property "fullscreen", that is different then making a stack that covers 4 screens.
Simon: Yes, I was attempting to use the fullscreen property set to true for the stack to enable a four-monitor fullscreen standalone application for desktop. It apparently does not work as a true "take over all monitors" fullscreen as Adobe Director, Unity3D and other applications do. I would have used Director on this application but the maximum resolution width that Director supports is 4096px and I need 7680px.
Don't forget that in Mavericks the default setting for monitors is that they are different spaces.
Monte: Thanks for the heads up on the Mavericks fullscreen app settings! I hadn't considered that, but will think about it when I do make the jump to Mavericks. My Mac Pro is still on Snow Leopard.
I will continue testing today and we have discovered that it is critically important to have the O/S "remember" the monitor layout. The tricky bit will be determining how the Windows 7 machine this will live on addresses the dual video cards (DVI + DisplayPort each card). Hopefully it won't be too much trouble! I solved my 'jumping to the second monitor' bug by making sure that my primary "left" monitor was plugged into the first port on my video card and moving my dock and menubar to that monitor then rebooting. That seemed to solve that issue.
I'll post my final code when it's completed.
Cheers,
Monica