Backdrop is currently useless

Deploying to Linux? Get penguinated here.

Moderators: Klaus, FourthWorld, heatherlaine, kevinmiller, robinmiller

Post Reply
tetsuo29
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 37
Joined: Thu Jun 07, 2007 1:30 am

Backdrop is currently useless

Post by tetsuo29 » Wed Dec 06, 2017 5:37 pm

I like the idea of the Backdrop but, so far, I've not found a Desktop Environment (DE) that it works in. I know that I've tried it in XFCE and Gnome 3. Trying to think if I've tried it in any others.

I always have to disable it and find that a better strategy is to move Livecode to it's own desktop.

I like the idea of the Backdrop but, until it works with Linux DEs, maybe it shouldn't be turned on by default in the Linux version? I think it would be really cool if you could figure out how to get it to work with Gnome 3 as that seems to be the DE that I'm using the most these days.

LCMark
Livecode Staff Member
Livecode Staff Member
Posts: 949
Joined: Thu Apr 11, 2013 11:27 am

Re: Backdrop is currently useless

Post by LCMark » Wed Dec 06, 2017 8:05 pm

@tetsuo29: You are right - we should turn it off by default on Linux. The main problem is that desktop environments tend to use the 'backdrop' layer (defined by the X11 windowing interop specs) as their desktop window - meaning that no other app can use it. I've personally tried numerous times to get it to work by fudging various window properties / hints but to no avail :(

P.S. If you know of any open-source apps which successfully manage to create a backdrop behind normal windows then please let me know - hopefully we can find the approach they use in the source!

bogs
Posts: 744
Joined: Sat Feb 25, 2017 10:45 pm

Re: Backdrop is currently useless

Post by bogs » Wed Dec 06, 2017 8:58 pm

Actually, I was wondering how hard it would be to just set the backdrop to a resizeable background that is only the size of the palettes being used? Something like this...
Image
IF it were easy enough, it would sure make it OS agnostic, I just don't have enough knowledge at this point to help with implementation.

The general idea would be that the rect of the backdrop would be settable, it would always be only the size of the palette group, any stacks you create (along with all of Lc's tools of course) would be above it in the view. And of course, other windows would have the ability to be above it, just as they currently are above Lc without it.

I hope that didn't come off as incomprehensible heh.
ImageImage

FourthWorld
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 5464
Joined: Sat Apr 08, 2006 7:05 am
Location: Los Angeles
Contact:

Re: Backdrop is currently useless

Post by FourthWorld » Wed Dec 06, 2017 9:07 pm

LCMark wrote:
Wed Dec 06, 2017 8:05 pm
P.S. If you know of any open-source apps which successfully manage to create a backdrop behind normal windows then please let me know - hopefully we can find the approach they use in the source!
I wonder if wmctrl may help:
http://tripie.sweb.cz/utils/wmctrl/

I experimented with it a while back, and found I could easily set the layer of any window, even LC windows, however I wanted, including an option to put a window behind all others (immediately above the desktop).
Richard Gaskin
Community volunteer LiveCode Community Liaison

LiveCode development, training, and consulting services: Fourth World Systems: http://FourthWorld.com
LiveCode User Group on Facebook : http://FaceBook.com/groups/LiveCodeUsers/

LCMark
Livecode Staff Member
Livecode Staff Member
Posts: 949
Joined: Thu Apr 11, 2013 11:27 am

Re: Backdrop is currently useless

Post by LCMark » Sat Dec 09, 2017 9:28 am

@bogs : The issue isn't the size of the backdrop window - its ensuring that window managers on Linux stack the backdrop window correctly.

@FourthWorld: Interesting! There's a reference to a 'window group' hint there which might be the key - in particular with regard the 'transient_for' property. It sounds like we might be able to do the following:

if raiseWindows is false and backdrop is set - set the backdrop to be 'BELOW' (although the order of multiple BELOW windows is not specified - so that is potentially an issue). This would mean the backdrop would be below all windows.

if raiseWindows is true and backdrop is set - set the backdrop as the window group leader, and all LiveCode windows to be in the same window group with TRANSIENT_FOR = None. According to the spec referenced in wmctrl, that should mean that all LiveCode windows will sit above the backdrop.

bogs
Posts: 744
Joined: Sat Feb 25, 2017 10:45 pm

Re: Backdrop is currently useless

Post by bogs » Sat Dec 09, 2017 2:05 pm

LCMark wrote:
Sat Dec 09, 2017 9:28 am
@bogs : The issue isn't the size of the backdrop window - its ensuring that window managers on Linux stack the backdrop window correctly.
I understand the issue, what I was trying to point out (probably poorly) was that it a.) might be easier to implement it the way I laid out, which provides a 'backdrop' for the IDE only, not something that covers the entire desktop (no other program I can think of exhibits this kind of behavior on any platform, but if there is one besides Lc, it would put them in a distinct minority), b.) doesn't require anything outside of Lc to implement, and c.) would work across platforms without regard to os specific issues.

In this case, it specifically avoids concerns such as
LCMark wrote:
Sat Dec 09, 2017 9:28 am
if raiseWindows is false and backdrop is set - set the backdrop to be 'BELOW' (although the order of multiple BELOW windows is not specified - so that is potentially an issue).
Doing it that way also allows desktop icons to be seen in the places where the IDE is not covering them up itself.

I don't use the BD at all currently, since it blocks the view of other programs I have to monitor, and none of this will be of benefit to me in any case since I rarely use any Lc past 6.x for programming, and at some point will be tackling it in this way for my own benefit if I feel the need.

Carry on, and good luck :D
ImageImage

Post Reply

Return to “Linux”