<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/110339/">http://git.reviewboard.kde.org/r/110339/</a>
</td>
</tr>
</table>
<br />
<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 kde-workspace and Fredrik Höglund.</div>
<div>By Eike Hein.</div>
<p style="color: grey;"><i>Updated May 6, 2013, 11:04 p.m.</i></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Changes</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;">This new version contains several fixes:
- The theme was regenerated to add some missing cursors and symlinks.
- The ms-delay property for the cursors was elided since all of them are static anyway.
- Those potential crashers Fredrik mentioned were fixed by returning defaults matching the CursorTheme apidox in the failure cases.</pre>
</td>
</tr>
</table>
<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;">The "KDE Classic" mouse cursor theme was implemented in code to source cursor images either from bundled XPMs or by rasterizing glyphs from the cursor font. This was used only when changing the cursor theme for already-running applications at runtime; for newly-started apps (and so including for new sessions) things relied on the special "#kde_legacy#" theme name triggering an equivalent fallback in Qt and libXcursor, by virtue of "#kde_legacy#" not actually existing.
This system-level fallback behavior is no longer evident on modern systems, instead the distro-supplied default cursor theme gets loaded. That meant the "KDE Classic" theme no longer actually worked for newly-started applications (and so also not after relogin).
As the new fallback behavior makes sense, pursueing an upstream "fix" is not economical. This patch instead takes the approach of deleting the legacy code and reimplementing the "KDE Classic" theme as a modern image-based cursor theme by dumping the results of the old rasterization code into files.
This means losing support for theoretically-changable cursor fonts, however:
- It's doubtful any systems around today rely on custom cursor fonts.
- A mix of a custom cursor font and the XPMs bundled with the KCM would be ugly anyway.
- This is all highly X-specific and likely of no use in future Wayland systems anyway.
This change was pre-approved by Fredrik Höglund, the author of the code in question (and of runtime cursor theme switching support in XFixes).
This patch is hard to do justice on ReviewBoard because it contains binary files (the cursors) and symlinks (also to cursors, due to specifics of the theme format). In order to test the actual commit, please use the "drop-cursor-font-support" branch on git://anongit.kde.org:clones/kde-workspace/hein/kde-workspace (it's a fresh branch so it might not have made it to the mirrors at the time you read this). This was branched from master minutes ago.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </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;">Runtime switching, relogin.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> (updated)</h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>cursors/CMakeLists.txt <span style="color: grey">(b1f9c7a)</span></li>
<li>cursors/KDE_Classic/cursors/00000000000000020006000e7e9ffc3f <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/00008160000006810000408080010102 <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/08e8e1c95fe2fc01f976f1e063a24ccd <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/3ecb610c1bf2410f44200f48c40d3599 <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/4498f0e0c1937ffe01fd06f973665830 <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/5c6cd98b3f3ebcb1f9c7f1c204630408 <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/9081237383d90e509aa00f00170e968f <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/9d800788f1b08800ae810202380a0822 <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/X_cursor <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/all-scroll <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/bottom_left_corner <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/bottom_right_corner <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/bottom_side <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/center_ptr <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/closedhand <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/col-resize <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/cross <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/crossed_circle <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/crosshair <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/d9ce0ab605698f320427677b458ad60b <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/dnd-move <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/dnd-no-drop <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/dnd-none <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/e-resize <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/e29285e634086352946a0e7090d73106 <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/fcf21c00b30f7e3f83fe0dfd12e71cff <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/fleur <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/forbidden <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/half-busy <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/hand1 <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/hand2 <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/help <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/ibeam <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/left_ptr <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/left_ptr_watch <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/left_side <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/move <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/n-resize <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/not-allowed <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/openhand <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/pirate <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/pointer <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/pointing_hand <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/progress <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/question_arrow <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/right_ptr <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/right_side <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/row-resize <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/s-resize <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/sb_h_double_arrow <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/sb_v_double_arrow <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/size_all <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/size_bdiag <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/size_fdiag <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/size_hor <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/size_ver <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/split_h <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/split_v <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/text <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/top_left_corner <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/top_right_corner <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/top_side <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/up_arrow <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/v_double_arrow <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/w-resize <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/wait <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/watch <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/whats_this <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/xcursorconfig <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/cursors/xterm <span style="color: grey">(PRE-CREATION)</span></li>
<li>cursors/KDE_Classic/index.theme <span style="color: grey">(PRE-CREATION)</span></li>
<li>kcontrol/input/CMakeLists.txt <span style="color: grey">(cb81718)</span></li>
<li>kcontrol/input/xcursor/bitmaps.h <span style="color: grey">(c208ee7)</span></li>
<li>kcontrol/input/xcursor/legacytheme.h <span style="color: grey">(bd3c33d)</span></li>
<li>kcontrol/input/xcursor/legacytheme.cpp <span style="color: grey">(28d7f2a)</span></li>
<li>kcontrol/input/xcursor/thememodel.cpp <span style="color: grey">(d69dde0)</span></li>
<li>kcontrol/input/xcursor/xcursortheme.h <span style="color: grey">(b4b6c53)</span></li>
<li>kcontrol/input/xcursor/xcursortheme.cpp <span style="color: grey">(2fc7504)</span></li>
</ul>
<p><a href="http://git.reviewboard.kde.org/r/110339/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>