Menu

#844 Playlist & equalizer and showing in taskbar

Done
nobody
None
Medium
Task
2016-06-08
2016-02-12
Palo Kisa
No

Hi, we've got following problem reported https://github.com/lxde/lxqt/issues/937

Please, have a look in there and say your opinion...

Should the playlist & equalizer window appear in taskbar if the main window is minimized?
If not, will you try make suggested changes on your side?

thanks

palo

Discussion

  • trialuser02

    trialuser02 - 2016-02-15

    I've tested cinnamon, lxde (gtk-based), kde and xfce. Most panels use _NET_WM_STATE_SKIP_TASKBAR atom and do not show playlist and equalizer.

    Qt sends event type QEvent::WinIdChange when window id is changed. I added extra event type (QEvent::WindowActivate, etc) due to Qt5 bug. Sometimes windows id changes without QEvent::WinIdChange event.

    Also I tried to set Qt::WA_X11NetWmWindowTypeToolBar without any success. Most panels ignore this attribute.

     
  • Palo Kisa

    Palo Kisa - 2016-02-15

    Most panels use _NET_WM_STATE_SKIP_TASKBAR atom and do not show playlist and equalizer.

    We use/check that atom too, but that atom is not set when the main window si minimized. Have a look on this:

    $ xwininfo | egrep 'Window id:'
    xwininfo: Window id: 0x440000b "Playlist"
    

    ...now if qmmp isn't minimised (the *SKIP* atoms are set):

    $ xprop -id 0x440000b | egrep -i skip
    _NET_WM_STATE(ATOM) = _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_SKIP_PAGER
    

    , but when minized (no *SKIP* atoms):

    $ xprop -id 0x440000b | egrep -i skip
    $
    

    Also the default openbox window switcher (alt+tab) shows all three windows no matter if minimized or not.

     
  • Palo Kisa

    Palo Kisa - 2016-02-15

    ... or even better "greps", so you believe that the window id isn't changed:

    • normal:
    $ xprop -id 0x440000b | egrep '^(WM_NAME|_NET_WM_STATE)'
    _NET_WM_STATE(ATOM) = _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_SKIP_PAGER
    WM_NAME(STRING) = "Playlist"
    
    • minimized:
    $ xprop -id 0x440000b | egrep '^(WM_NAME|_NET_WM_STATE)'
    _NET_WM_STATE(ATOM) = _NET_WM_STATE_HIDDEN
    WM_NAME(STRING) = "Playlist"
    
     

    Last edit: Palo Kisa 2016-02-15
  • trialuser02

    trialuser02 - 2016-02-15

    I have Qt4 version:

    normal:
    user@testhost:~$ xprop -id 0x2a00029 | egrep '^(WM_NAME|_NET_WM_STATE)'
    _NET_WM_STATE(ATOM) = _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_SKIP_PAGER
    WM_NAME(COMPOUND_TEXT) = "Список"

    minimized:
    xprop -id 0x2a00029 | egrep '^(WM_NAME|_NET_WM_STATE)'
    _NET_WM_STATE(ATOM) = _NET_WM_STATE_HIDDEN, _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_SKIP_PAGER
    WM_NAME(COMPOUND_TEXT) = "Список"

    So, try to check Qt4-based version. May be Qt5 clears all atoms on minimaze.

     
  • Palo Kisa

    Palo Kisa - 2016-02-15

    So, try to check Qt4-based version. May be Qt5 clears all atoms on minimaze.

    Indeed. With the Qt4 build (debian's qmmp v0.9.1), the _NET_WM_STATE_SKIP_* atoms are preserved also in minimized state.

    So now as I see it, you can:

    • add the QEvent::Hide to your workarounds in bool *::event (QEvent *event)
    • report this "atom clearing" to Qt and wait for the fix on their side
    • add the Qt::WA_X11NetWmWindowTypeToolBar flag to playlist&equalizer windows, which will fix "not showing" in LXQt's taskbar
    • use other technique for "not showing" playlist&equalizer windows (check if there is any other (better) way of doing it)
    • do nothing and ignore this :)
     

    Last edit: Palo Kisa 2016-02-15
  • trialuser02

    trialuser02 - 2016-02-15

    This patch works for me: https://codereview.qt-project.org/#/c/149013/1
    Please, test.

     
  • Palo Kisa

    Palo Kisa - 2016-02-15

    This patch works for me: https://codereview.qt-project.org/#/c/149013/1
    Please, test.

    This realy seems to be it, but I can't test it -> compiling the whole Qt from source is out of my scope.

    I will post a notice into our tracker.

    Thanks for your time.

     
  • trialuser02

    trialuser02 - 2016-06-08
    • status: New --> Done
    • Priority: Low --> Medium
    • Type: Review --> Task
     

Log in to post a comment.

MongoDB Logo MongoDB