LOGIN / SIGN UP

#85 pekwm does not properly handle _NET_WM_STRUT

Reported by: dmoerner Assigned to: pekdon
Phase: release-0.1.10 Component: windowmanager
Type: enhancement Status: closed
Priority: 4: Low
Watchers:

Description

Hi,

pekwm currently does not handle _NET_WM_STRUT very well (it only supports _NET_WM_STRUT_PARTIAL I believe).

From http://standards.freedesktop.org/wm-spec/1.3/ar01s05.html

This property is equivalent to a _NET_WM_STRUT_PARTIAL property where all start values are 0 and all end values are the height or width of the logical screen. _NET_WM_STRUT_PARTIAL was introduced later than _NET_WM_STRUT, however, so clients MAY set this property in addition to _NET_WM_STRUT_PARTIAL to ensure backward compatibility with Window Managers supporting older versions of the Specification.

Although it's not necessary, some WMs (like Fluxbox) still only support _NET_WM_STRUT. This means that programs that want to maintain backward compatibility must use _NET_WM_STRUT.

This is a follow-up to http://code.google.com/p/tint2/issues/detail?id=28#c7. The problem is that if _NET_WM_STRUT is sent to pekwm before _NET_WM_STRUT_PARTIAL is sent, the application doesn't appear. If only _NET_WM_STRUT_PARTIAL is sent, the application works.

So pekwm doesn't have to support _NET_WM_STRUT necessarily, but it would be nice if it properly ignores it so it can receive _NET_WM_STRUT_PARTIAL.

Cheers, Daniel

2009-01-29

08:16:46 to release-0.1.10
08:16:46 changed from new to closed
08:16:38

Ok, closing as the issue magically resolved itself.

02:04:54

Hi, this can safely be closed. Somewhere between tint2 svn revision 28 and pekwm-0.1.10 release this bug was resolved.

2008-11-23

21:42:31

I wonder, I just tried this together with Tint2 and the strut seemed to work just fine in GIT head. Which version did you try this with and can you try with GIT head again?

2008-11-03

00:04:41

Well I just looked at the pekwm code and it seems that _NET_WM_STRUT_PARTIAL isn't mentioned at all in src/Atoms.cc. So I'm unsure why _NET_WM_STRUT isn't working right now.

The call that is breaking the program is:

XChangeProperty (server.dsp, win, server.atom._NET_WM_STRUT, XA_CARDINAL, 32, PropModeReplace, (unsigned char *) &struts, 4);