Web lists-archives.com

Re: Aw: Re: setWindowIcon for QDialog




Hi,

allow me to chime in with my AFAIK, which though is confirmed by my quick look 
at the code:

Am Dienstag, 5. März 2019, 18:21:00 CET schrieb Martin Flöser:
> Hi Alexander,
> 
> according to the xprop output the _NET_WM_ICON property is not set. The
> method inside Qt responsible for this is:
> https://code.woboq.org/qt5/qtbase/src/plugins/platforms/xcb/qxcbwindow.cpp.h
> tml#_ZN10QXcbWindow13setWindowIconERK5QIcon
> 
> This method is called indirectly from QWidget::setWindowIcon. I am
> pretty sure that it works as you can easily check by xprop any other Qt
> window. So the problem must be the icon. If I search for
> labplot-worksheet I find only an icon in size 22x22. Looking at the
> linked code, I notice that it's not one of the sizes Qt expects and also
> none of the sizes KWin expects, see
> https://cgit.kde.org/kwin.git/tree/client.cpp#n1583

Isn't the more relevant code here the one at the start of that method?

    // First read icons from the window itself
    const QString themedIconName = iconFromDesktopFile();
    if (!themedIconName.isEmpty()) {
        setIcon(QIcon::fromTheme(themedIconName));
        return;
    }

From what I remember, one of the issues with Wayland (and then also with KWin 
& its custom X-equivalent "_KDE_NET_WM_DESKTOP_FILE") is that while title 
properties for windows are supported, icons are not (something about graphics 
resources and different metadata design *insert proper knowledge*). So the 
window managers and running-app-instance managers take the icon name only from 
the desktop file, no longer enabling to overwrite the icon for certain 
windows.
Isn't this the issue still? At least I remember this vaguely from some time 
ago.

> Am 2019-03-04 17:39, schrieb Alexander Semke:
> > not shown in the window bar, left to the window title. Please check
> > the attached screenshots. On windows the proper icon is shown, on
> > linux/kwin the applicaion icon is used.
> > 
> > It's X. The output of xprop:
> > 
> > _NET_WM_ICON_NAME(UTF8_STRING) =
> > _KDE_NET_WM_DESKTOP_FILE(UTF8_STRING) = "org.kde.labplot2"
> > _KDE_NET_WM_COLOR_SCHEME(STRING) =
> > "/usr/share/color-schemes/BreezeHighContrast.colors"
> > XdndAware(ATOM) = BITMAP
> > _KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 2840133529
> > WM_NAME(STRING) = "Import Data to Spreadsheet or Matrix"
> > _NET_WM_NAME(UTF8_STRING) = "Import Data to Spreadsheet or Matrix --
> > labplot2"
> > _MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x7, 0x26, 0x1e, 0x3, 0x0
> > _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DIALOG,
> > _NET_WM_WINDOW_TYPE_NORMAL
> > _XEMBED_INFO(_XEMBED_INFO) = 0x0, 0x1
> > WM_CLIENT_LEADER(WINDOW): window id # 0x5000008
> > 
> > WM_HINTS(WM_HINTS):
> >                 Client accepts input or input focus: True
> >                 Initial state is Normal State.
> > 
> > _NET_WM_PID(CARDINAL) = 29202
> > _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 83886351
> > WM_CLASS(STRING) = "labplot2", "labplot2"
> > WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS,
> > _NET_WM_PING, _NET_WM_SYNC_REQUEST, _NET_WM_CONTEXT_HELP
> > 
> > WM_NORMAL_HINTS(WM_SIZE_HINTS):
> >                 user specified location: 819, 262
> >                 user specified size: 536 by 711
> >                 program specified minimum size: 522 by 711
> >                 window gravity: Static
> > 
> > P.S.: sorry for html and for the full-quote, writing from the
> > web-frontend...
> > 
> > GESENDET: Montag, 04. März 2019 um 15:08 Uhr
> > VON: "David Edmundson" <david@xxxxxxxxxxxxxxxxxxxx>
> > AN: kde-devel <kde-devel@xxxxxxx>, "Kwin, NET API, kwin styles API,
> > kwin modules API" <kwin@xxxxxxx>
> > BETREFF: Re: setWindowIcon for QDialog
> > 
> > On Mon, Mar 4, 2019 at 1:49 PM Aleix Pol <aleixpol@xxxxxxx> wrote:
> >> On Sun, Mar 3, 2019 at 11:00 AM Alexander Semke
> > 
> > <alexander.semke@xxxxxx> wrote:
> >> > With kwin, the specified icons are not shown

This quote sadly misses the possibly relevant initial " and I always get the 
default application's icon shown."

Cheers
Friedrich