Menu

#242 tvtime should support more explicit layer modes

closed-rejected
5
2005-01-27
2003-05-28
No

It would be nice if tvtime had a switch to select
between fullscreen modes. That kind of switch is in
mplayer (-fstype, formelly -icelayer) and you can find
it's code in main/libvo/x11_common.c. Look for the
function vo_x11_setlayer and vo_x11_get_fs_type in that
file.
From mplayer manual page:
−fstype <type1,type2,...>
Specify a priority list of fullscreen layer
setting modes to be
used.

The default order is
"layer,stays_on_top,above,fullscreen". It
will be used as a fallback in case of
specifying incorrect or
unsupported modes.
If you experience problems with fullscreen
window being covered
by other windows try using a different order.
And from -fstype help we get the list of types:
none don't set fullscreen window layer
layer use _WIN_LAYER hint with default layer
layer=<0..15> use _WIN_LAYER hint with a given
layer number
above use _NETWM_STATE_ABOVE hint if available
below use _NETWM_STATE_BELOW hint if vailable
fullscreen use _NETWM_STATE_FULLSCREEN hint if
availale
stays_on_top use _NETWM_STATE_STAYS_ON_TOP hint if
available

Note that I don't recomend any change at the defaults
for tvtime, I want just an option :)

Discussion

  • Billy Biggs

    Billy Biggs - 2003-05-29
    • labels: --> OSD/Interface
    • milestone: --> Open bugs in CVS tvtime
    • summary: fullscreen type (-fstype) command line option request --> tvtime should support more explicit layer modes
     
  • Billy Biggs

    Billy Biggs - 2003-05-29

    Logged In: YES
    user_id=153320

    Well, I think your description is a bit wrong. I mean,
    _NET_WM_STATE_FULLSCREEN, by definition, means that
    other windows will not obscure the fullscreen window.
    Otherwise, there is a bug in the window manager, not in
    tvtime. Regarding STATE_STAYS_ON_TOP. Why not have
    an explicit tvtime 'always on top' option? Sounds like that
    might be more appropriate.

    I don't understand the point of ABOVE and BELOW, what do
    they mean exactly?

    The LAYER hint sounds somewhat useful, but it's still
    unclear to me what. Is the intent that all X applications will
    have a -layer command line option, or are applications
    supposed to remember their layer across sessions? Maybe
    we should ask about this on the wm-spec-list before
    implementing.

     
  • Steve Stavropoulos

    Logged In: YES
    user_id=571330

    You can think BELOW as a class consisting of the windows
    that have that attribute and who are always below all the
    other windows which don't have that attribute set. Generally
    it is a useful option if you want to have tv in the
    background without it getting the root window. (ABOVE I'm
    not sure what it means)
    STAYS_ON_TOP is a nice option, but not so useful. I haven't
    ever used it for xawtv. Anyway, it's always nice to have an
    option :)

    The FULLSCREEN currently set by tvtime I think it's wrong.
    Most times someone doesn't want to completely consentrate in
    TV viewing, he wants to switch to an other app while
    watching tv and then get back to the TV, and so on. That is
    my use of the tv at least... Current default for xawtv is
    just a fullscreen window with no hints for layer placement
    and I believe that this is the best. (maybe add a button (t
    in xawtv) for on the fly switch on placement (t in xawtv
    cycles between: ON_TOP, BELOW and normal).

    Maybe I should note that I use my 19" monitor at 1600x1200
    so I want to do/fit many things at the same time in there...

     
  • Billy Biggs

    Billy Biggs - 2003-06-09

    Logged In: YES
    user_id=153320

    I don't understand your comment against fullscreen at all.
    tvtime is a high quality video processor first, and a tv
    viewing application second. The intention is that tvtime is
    fullscreen most of the time, but you can drop out of
    fullscreen mode if you need to go do something.

    Regarding states like below and always on top, aren't these
    things that belong in the window manager options for the
    window, like a right click on the title bar? I'm going to
    post a question about this to wm-spec because I'm really
    confused about what they intend applications to do here.
    Sorry I haven't given this thread enough attention.

     
  • Billy Biggs

    Billy Biggs - 2003-06-09

    Logged In: YES
    user_id=153320

    The layer command line option you proposed seems silly.
    When I first read it, I thought it meant that there were 15
    possible layers for windows in the window manager and we got
    to pick one. In the spec, things look a little different:

    http://developer.gnome.org/doc/standards/wm/c44.html

    The layers are actually names which have specific meanings,
    it seems: desktop, below, normal, ontop, dock, above_dock,
    and menu.

    Clearly some of these should not be allowed. We're not a
    dock, and we should not exist at the dock level. We're also
    not a menu, and if someone did a menu it should appear above
    tvtime, so we shouldn't use that layer. Furthermore, I do
    think we should handle tvtime-on-the-desktop and
    tvtime-fullscreen separately, like we do. We have a
    fullscreen mode, and that's the only mode that makes sense
    for using the above-dock layer. I also think our desktop
    mode should be special.

    So maybe this would be more correct:

    tvtime -layer [below, normal, ontop]

    And use that for how we should start up, but I think
    keys/commands inside tvtime to change the layer between
    those three might be silly, since it should be a window
    manager thing you set in a menu from the title bar, at
    least, that's how you set always_on_top in KDE and it makes
    sense to me.

     
  • Billy Biggs

    Billy Biggs - 2003-06-19
    • assigned_to: nobody --> vektor
     
  • Billy Biggs

    Billy Biggs - 2003-06-19

    Logged In: YES
    user_id=153320

    Ok, so here's what happened with this thread and with the
    bug report. WIN_LAYER is deprecated, there's no point in
    supporting that. ABOVE and BELOW aren't really intended for
    applications to just let people go to, they're really meant
    to be used when the app has good reason. We came up with
    some reasonable arguments about when it would be above and
    below, and you can see this in the thread.

    However, while all that was going on, Steve and I had this
    big discussion on IRC about what he actually wanted. He
    really doesn't want to change the stacking order of tvtime
    at all, he really wants to be able to keep tvtime at normal
    stacking order, but have it 'fill the screen', and then go
    from that to fullscreen. That is, the window should be able
    to be positioned and resized to 0,0 and width,height.
    Steve, please tell me if I am wrong here.

    I did some research into this, and thought well hell, tvtime
    right now supports predefined 'modes' (our small window
    mode), once we have support for window positioning, we'll be
    done. I have now added support for window positioning in
    tvtime. You can now do this in your tvtime.xml file:

    <mode name="FakeFullscreen">
    <option name="UseWindowPosition" value="1"/>
    <option name="WindowX" value="0"/>
    <option name="WindowY" value="0"/>
    <option name="OutputHeight" value="768"/>
    </mode>

    There's a catch: the decorations are still active. I can do
    something to send MWM hints to say 'no decorations', but
    AFAICT those hints are deprecated by EWMH. Besides, I think
    you should be able to tell your window manager not to
    decorate tvtime if that's what you want.

    So Steve, is this acceptable, or should we pursue the
    decorations route?

     
  • Steve Stavropoulos

    Logged In: YES
    user_id=571330

    > He really doesn't want to change the stacking order of tvtime
    > at all, he really wants to be able to keep tvtime at normal
    > stacking order, but have it 'fill the screen', and then go
    > from that to fullscreen.

    That's exactly what I want :)

    > So Steve, is this acceptable, or should we pursue the
    > decorations route?

    I can say to my window manager to never decorate tvtime,
    but that's not what I want. I would like to have wm
    decorations in the 'window' mode but not for the
    '(fake)fullscreen'. That doesn't mean I don't want them to
    exist, I just don't want them to be seen.
    I saw that mplayer just positions the window to (0,-24)
    when using fullscreen and it still has the decorations (but
    they are out of the viewable area and not seen). I don't
    know how it finds the value for the y offset (the -24)
    though... (same applies to xawtv also)
    Also, the 'OutputHeight' option doesn't seem right to me.
    Shouldn't that be dynamic? I for example run my desktop most
    of the times at 1600x1200.

     
  • Billy Biggs

    Billy Biggs - 2003-06-27

    Logged In: YES
    user_id=153320

    I'm not sure what you're talking about with the -24.
    mplayer just moves to 0,0 when it goes fullscreen from what
    I can see in the source code. What is this magic mode in
    mplayer that you're referring to?

    You refer to xawtv too and again I am confused. Does xawtv
    support this 'fake fullscreen' mode you want? It makes no
    sense to me.

    The OutputHeight + X,Y lets you build your own mode, I think
    I have given you sufficient tools. To do anything more
    (dynamically determining height) just seems too specific for
    this feature, since it's just for you and not for anyone else.

     
  • Billy Biggs

    Billy Biggs - 2003-06-27

    Logged In: YES
    user_id=153320

    Based on our conversations on IRC, and looking through the
    mplayer source, the trick to positioning a window so that
    the decorations are not visible is by using StaticGravity.
    After a lengthy debate, it became clear that this fullscreen
    mode should be treated as something special.

    So, here is my new proposal:
    tvtime --height=full
    Will start tvtime such that it resizes to fullscreen, but is
    still in windowed mode. Furthermore, you can define a mode
    (and use our mode switching code) which uses this too:

    <mode name="FullscreenWindow">
    <option name="OutputHeight" value="Full"/>
    </mode>

    That will let you switch to this mode by hitting '*'. We
    can debate whether this should exist in the default config,
    but I'm thinking it probably should.

    Does this sound reasonable?

     
  • Billy Biggs

    Billy Biggs - 2005-01-27

    Logged In: YES
    user_id=153320

    I'm going to close this bug. The height=full thing is
    really nasty, not discoverable, and not really useful. This
    is really a window manager feature request and outside the
    domain of applications.

     
  • Billy Biggs

    Billy Biggs - 2005-01-27
    • status: open --> closed-rejected
     

Log in to post a comment.

MongoDB Logo MongoDB