[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [plasma] [Bug 314994] invalid taskbar icon for SDL applications
From:       Sam Protsenko <joe.skb7 () gmail ! com>
Date:       2013-06-18 23:26:24
Message-ID: bug-314994-17878-hzvi3Ho96B () http ! bugs ! kde ! org/
[Download RAW message or body]

https://bugs.kde.org/show_bug.cgi?id=314994

--- Comment #8 from Sam Protsenko <joe.skb7@gmail.com> ---
> Can you ensure the pixmap on the server is not the "X11" default but some "real" one?

I've checked next applications with your tool:
- scummvm
- wesnoth
- instead

And for all of them I see correct icon and mask pictures (not X11 default
icon).

> 64bit architecture? (the id is only 32bit - could be some wrong alignment?)

I've dig it for you. See:

1. In Xlib sources:
        in src/Xatomtype.h file:
              in struct xPropWMHints we see such a line:
                    RESOURCEID iconPixmap;

    where RECOURCEID is defined as unsigned long

2. In X11-utils sources, in xprop.c file:
   - bitmap id (to use for icon) -- we see it here:

      #define WM_HINTS_DFORMAT    ":\n"\
     "?m2(\t\tbitmap id # to use for icon: $3\n)"\

  - in windowPropTable[] we see next format for WM_HINTS_DFORMAT:

    {"WM_HINTS",    XA_WM_HINTS,     "32mbcxxiixx",    WM_HINTS_DFORMAT },

 - so this is 3rd param ($3), and have 'x' format character

  - from "man xprop" we see that

x      The field is a hex number (like 'c' but displayed in hex 
c      The field is an unsigned number, a cardinal.

   - but what is cardinal? let's see in xprop.c again:

    in Format_Thunk() function:
      case 'x': return Format_Hex(value);

    Format_Hex() function defined as follows:

static const char *Format_Hex (long wrd)
{
    snprintf(_formatting_buffer2, sizeof(_formatting_buffer2), "0x%lx", wrd);
    return _formatting_buffer2;
}

    - so format is "0x%lx", and variable is "long" (for bitmap id)

Conclusion: "bitmap id" is really 64-bit, and displays correctly via "xprop",
the only thing to understand is that this "bitmap id" little enough to be
displayed similarly to 32-bit value.

-- 
You are receiving this mail because:
You are watching all bug changes.
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic