--- kdecore/netwm.cpp.sav 2006-04-13 14:00:48.000000000 +0200 +++ kdecore/netwm.cpp 2006-06-01 13:22:37.000000000 +0200 @@ -138,6 +138,9 @@ static Atom net_wm_state_stays_on_top = // used to determine whether application window is managed or not static Atom xa_wm_state = 0; +// ability flags +static Atom net_wm_full_placement = 0; + static Bool netwm_atoms_created = False; const unsigned long netwm_sendevent_mask = (SubstructureRedirectMask| SubstructureNotifyMask); @@ -229,7 +232,7 @@ static int wcmp(const void *a, const voi } -static const int netAtomCount = 77; +static const int netAtomCount = 78; static void create_atoms(Display *d) { static const char * const names[netAtomCount] = { @@ -316,7 +319,9 @@ static void create_atoms(Display *d) { "_KDE_NET_WM_TEMPORARY_RULES", "WM_STATE", - "WM_PROTOCOLS" + "WM_PROTOCOLS", + + "_NET_WM_FULL_PLACEMENT" }; Atom atoms[netAtomCount], *atomsp[netAtomCount] = @@ -404,7 +409,9 @@ static void create_atoms(Display *d) { &kde_net_wm_temporary_rules, &xa_wm_state, - &wm_protocols + &wm_protocols, + + &net_wm_full_placement }; assert( !netwm_atoms_created ); @@ -1309,6 +1316,8 @@ void NETRootInfo::setSupported() { if (p->properties[ PROTOCOLS2 ] & WM2KDETemporaryRules) atoms[pnum++] = kde_net_wm_temporary_rules; + if (p->properties[ PROTOCOLS2 ] & WM2FullPlacement) + atoms[pnum++] = net_wm_full_placement; XChangeProperty(p->display, p->root, net_supported, XA_ATOM, 32, PropModeReplace, (unsigned char *) atoms, pnum); @@ -1526,6 +1535,8 @@ void NETRootInfo::updateSupportedPropert else if( atom == kde_net_wm_temporary_rules ) p->properties[ PROTOCOLS2 ] |= WM2KDETemporaryRules; + else if( atom == net_wm_full_placement ) + p->properties[ PROTOCOLS2 ] |= WM2FullPlacement; } extern Time qt_x_user_time; --- kdecore/netwm_def.h.sav 2006-04-13 14:00:48.000000000 +0200 +++ kdecore/netwm_def.h 2006-06-01 13:16:39.000000000 +0200 @@ -584,7 +584,8 @@ public: WM2WindowClass = 1<<10, ///< @since 3.3 WM2WindowRole = 1<<11, ///< @since 3.3 WM2ClientMachine = 1<<12, ///< @since 3.3 - WM2ShowingDesktop = 1<<13 ///< @since 3.5 + WM2ShowingDesktop = 1<<13, ///< @since 3.5 + WM2FullPlacement = 1<<14 }; /**