Multi-Display Stack as Fullscreen

Got a LiveCode personal license? Are you a beginner, hobbyist or educator that's new to LiveCode? This forum is the place to go for help getting started. Welcome!

Moderators: FourthWorld, heatherlaine, Klaus, kevinmiller

Post Reply
ddsinteractive
Posts: 11
Joined: Tue Nov 26, 2013 10:36 pm

Multi-Display Stack as Fullscreen

Post by ddsinteractive » Tue Nov 26, 2013 10:42 pm

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

dunbarx
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 10305
Joined: Wed May 06, 2009 2:28 pm

Re: Multi-Display Stack as Fullscreen

Post by dunbarx » Tue Nov 26, 2013 11:51 pm

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

ddsinteractive
Posts: 11
Joined: Tue Nov 26, 2013 10:36 pm

Re: Multi-Display Stack as Fullscreen

Post by ddsinteractive » Wed Nov 27, 2013 12:21 am

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?

Simon
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 3901
Joined: Sat Mar 24, 2007 2:54 am

Re: Multi-Display Stack as Fullscreen

Post by Simon » Wed Nov 27, 2013 1:10 am

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.
I used to be a newbie but then I learned how to spell teh correctly and now I'm a noob!

ddsinteractive
Posts: 11
Joined: Tue Nov 26, 2013 10:36 pm

Re: Multi-Display Stack as Fullscreen

Post by ddsinteractive » Wed Nov 27, 2013 6:40 pm

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

Simon
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 3901
Joined: Sat Mar 24, 2007 2:54 am

Re: Multi-Display Stack as Fullscreen

Post by Simon » Thu Nov 28, 2013 3:01 am

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
I used to be a newbie but then I learned how to spell teh correctly and now I'm a noob!

ddsinteractive
Posts: 11
Joined: Tue Nov 26, 2013 10:36 pm

Re: Multi-Display Stack as Fullscreen

Post by ddsinteractive » Thu Nov 28, 2013 6:05 am

Hi Simon,

Yes it is a four screen, fullscreen browser. :)

Cheers,
Monica

Klaus
Posts: 14177
Joined: Sat Apr 08, 2006 8:41 am
Contact:

Re: Multi-Display Stack as Fullscreen

Post by Klaus » Thu Nov 28, 2013 1:52 pm

Hi Monica,

1. welcome topt he forum :D ,

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! 8)


To be sure write to: support@runrev.com


Best

Klaus

ddsinteractive
Posts: 11
Joined: Tue Nov 26, 2013 10:36 pm

Re: Multi-Display Stack as Fullscreen

Post by ddsinteractive » Thu Nov 28, 2013 3:51 pm

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

Code: Select all

hide menubar
hide taskbar
It may do what I would like from a different method.
Any downside or known issues to using those two features?

Cheers,
Monica

Klaus
Posts: 14177
Joined: Sat Apr 08, 2006 8:41 am
Contact:

Re: Multi-Display Stack as Fullscreen

Post by Klaus » Thu Nov 28, 2013 5:00 pm

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 :D

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

Simon
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 3901
Joined: Sat Mar 24, 2007 2:54 am

Re: Multi-Display Stack as Fullscreen

Post by Simon » Thu Nov 28, 2013 10:03 pm

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
I used to be a newbie but then I learned how to spell teh correctly and now I'm a noob!

monte
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 1564
Joined: Fri Jan 13, 2012 1:47 am
Contact:

Re: Multi-Display Stack as Fullscreen

Post by monte » Thu Nov 28, 2013 11:42 pm

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.
LiveCode User Group on Facebook : http://FaceBook.com/groups/LiveCodeUsers/

ddsinteractive
Posts: 11
Joined: Tue Nov 26, 2013 10:36 pm

Re: Multi-Display Stack as Fullscreen

Post by ddsinteractive » Fri Nov 29, 2013 3:53 pm

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. :shock:

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

Post Reply