<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/108957/">http://git.reviewboard.kde.org/r/108957/</a>
     </td>
    </tr>
   </table>
   <br />





 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">* better filtering on whether two Clients belong to the same application
The WM is supposed to have better information about that than the desktop service (group leader, class and eventually PID hint, which is mandatory for bamf anyway) -> rl usecase?

* Using the application name as caption in case the window title is bad
The title is handed by the application and while i admit to believe they add far too much stuff there: what's the actual usecase of a "bad window title" (even scummvm lost it's stupidity ;-)
 -> rl usecase?
Aside this we can now script-a-fix particular titles.

* Getting better icons for window switcher/decorations, mostly important
  for high resolution displays as icons provided through X property do
  not include the large icons (e.g. 128x128)
This is probably the most relevant aspect, but i'd frankly consider _NET_WM_LOCAL_ICON_NAME more straightforward and less heuristic (did you look into the bamf sources? - special case strings all over the place. that's a hack-a-round, not a protocol)

* Using application name for application menu button
Since the client is supposed to know this information very precisely: why does it not export it alongsise appmenu?
For clients unaware of their name, see below on how to add window data information from the launcher.

Looking at bamf, it seems to double ksycoca but using dbus instead of shm, and then does some (cached) reverse lookup on the exec property.

Information should be hinted by the client, not guessed by the DE, but to take profit from the service launcher, passing additional process information onto windows could be done (by the service launcher, ie. KRun) by watching the PID of the launched exe and place it on either root (immediately) or client leader (watching for new windows) window and some info should be NETWM extensions (rasterizing the various icon sizes as theme-un-aware properties onto the window always seemed stupid enough, wastes space and bandwidth and does not integrate with the local environment in esp. the network case - or all others unless the applications notices the theme changed and updates the property. yeah.)

I frankly have no concept for the above ready (esp: "who'd forgets information in the root case") but am not convinced about the bamf approach.
It looks like some of my hack solutions in this regard, not anything like a proper solution.</pre>
 <br />









<p>- Thomas</p>


<br />
<p>On February 14th, 2013, 12:02 p.m. UTC, Martin Gräßlin wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for kwin and Plasma.</div>
<div>By Martin Gräßlin.</div>


<p style="color: grey;"><i>Updated Feb. 14, 2013, 12:02 p.m.</i></p>






<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Adding BAMF support to KWin

BAMF is a library used by Unity to match windows to their applications.
This is also pretty useful for KWin, possible uses are:
* better filtering on whether two Clients belong to the same application
* Using the application name as caption in case the window title is bad
* Getting better icons for window switcher/decorations, mostly important
  for high resolution displays as icons provided through X property do
  not include the large icons (e.g. 128x128)
* Using application name for application menu button

So far support is added to get the KDesktopFile for a Client and this is
exported to KWinEffects.

BAMF is probably also useful in other areas of the workspaces, e.g. for
libtaskmanager.</pre>
  </td>
 </tr>
</table>





<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>CMakeLists.txt <span style="color: grey">(6084d7dd7655372506e02abe9f141b73155c5857)</span></li>

 <li>cmake/modules/CMakeLists.txt <span style="color: grey">(8d3d58189dbcb9e89d4d9c9aa4f3c1c93abad5e4)</span></li>

 <li>cmake/modules/FindQtBAMF.cmake <span style="color: grey">(PRE-CREATION)</span></li>

 <li>config-workspace.h.cmake <span style="color: grey">(4a2dcbf481bff35c3b05366a3d1a79bb1f400b88)</span></li>

 <li>kwin/CMakeLists.txt <span style="color: grey">(2f44c57066913e05062bc1a3c3d8a03e924906dc)</span></li>

 <li>kwin/client.h <span style="color: grey">(4cbc20f8e2b3aa31c1c33d63ae90f1f0c9eeefbf)</span></li>

 <li>kwin/client.cpp <span style="color: grey">(2ce68fb4a0f108442b3476d39a90895bb1d12ffb)</span></li>

 <li>kwin/libkwineffects/kwineffects.h <span style="color: grey">(464d7f2c3261c389dcf2349168b8d67cb691563a)</span></li>

 <li>kwin/libkwineffects/kwineffects.cpp <span style="color: grey">(7d522d11e1cc71598e646c972c37f1af2275c3fc)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/108957/diff/" style="margin-left: 3em;">View Diff</a></p>







  </td>
 </tr>
</table>








  </div>
 </body>
</html>