<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/100520/">http://git.reviewboard.kde.org/r/100520/</a>
     </td>
    </tr>
   </table>
   <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On March 17th, 2011, 10:28 p.m., <b>Oswald Buddenhagen</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">the root problem is that the image does not cover the background entirely, and therefore *that* should be fixed instead of coming up with workarounds to disguise it. i made some pretty sophisticated cropping/scaling code in kdm/kfrontend/themer/kdmpixmap.cpp (findBestPixmap()). ideally, that code would be transplanted to plasma as well.</pre>
 </blockquote>




 <p>On March 17th, 2011, 11:19 p.m., <b>Christoph Feck</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Agreed. A full image.fill() only slows down the startup process, so ideally the graphics should be fixed. AT LEAST make sure that only the small uncovered region is cleared by one or two QPainter::fillRect().</pre>
 </blockquote>





 <p>On March 18th, 2011, 7:19 a.m., <b>Oswald Buddenhagen</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">nah, the performance impact of that is so small compared to loading the images that it will be hard to measure accurately. i'm more concerned about the correctness of the approach.</pre>
 </blockquote>








</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I agree that ksplashx should be corrected to have better scaling (plasma, kdm and ksplashx should all use the same scaling).
As I've said some ksplashx themes have this issue on dual monitors (one monitor shows the splash, other shows garbage). Changing the wallpaper is just a way of triggering this.

While ksplashx isn't changed to reject those older themes, or to scale the background to match the screen size, this patch is needed.

I've tested on 32 and 64bits, on two different computers, and even with a broken theme (I have a friend with a broken gentoo KDE theme and dual-monitors), and had no problems. I really really think this should be fixed, because when this bug appears, it makes KDE look *very* unpolished, and makes me personally cringe.

Finally, in terms of performance I agree with Oswald: this is almost a no-op. Any computer made in the last decades should be able to quickly paint the screen black.</pre>
<br />








<p>- Ivo</p>


<br />
<p>On March 17th, 2011, 10:08 a.m., Ivo Anjo wrote:</p>






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

<div>Review request for KDE Base Apps and KDE Runtime.</div>
<div>By Ivo Anjo.</div>


<p style="color: grey;"><i>Updated March 17, 2011, 10:08 a.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;">*Bump*: Can someone take a look at this? The patch is quite small, and I haven't seen any problems while using it on multiple computers...

The background pixmap/qimage is never initialized, so if for some reason the splashscreen doesn't cover the entire screen, you get garbage. 

That reason can be a ksplashx theme that does not use multiple monitors on a multi-monitor system, or if it picks a background that is smaller than the current resolution (for example the Horos splash 1280x1024 version appears to be 1278x1024).</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;">I tested this by both replacing the background that ksplashx was using with a smaller one, and on two multi-monitor systems (one of which uses a gentoo ksplash screen that only covered one of the monitors).

The splash_image.fill( 0 ) can be changed to another color for debugging purposes, clearly showing the region of the monitor that is not covered by the splashscreen (and where before would be garbage from graphics memory).

To test this:
# Get a ksplashx theme, for example
git clone git://anongit.kde.org/kde-workspace
# Create ksplashx theme directory
mkdir -p `kde4-config --localprefix`/share/apps/ksplash/Themes/
# Copy theme
mv kde-workspace/ksplash/ksplashx/themes/default/ `kde4-config --localprefix`/share/apps/ksplash/Themes/
# Change the wallpaper (copy a smaller wallpaper on top of your screen resolution)
cd `kde4-config --localprefix`/share/apps/ksplash/Themes/
mv default/1024x768/background.png default/1920x1080/background.png
# Run ksplashx
ksplashx default --test

You should see a corrupted screen, similar to the one below, probably with fragments of windows you recently had on your screen.</pre>
  </td>
 </tr>
</table>



<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="http://bugs.kde.org/show_bug.cgi?id=264444">264444</a>


</div>


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

 <li>ksplash/ksplashx/splash.cpp <span style="color: grey">(d6a992a)</span></li>

</ul>

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



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Screenshots </h1>

<div>

 <a href="http://git.reviewboard.kde.org/r/100520/s/70/"><img src="http://git.reviewboard.kde.org/media/uploaded/images/2011/02/04/image_400x100.png" style="border: 1px black solid;" alt="Example screenshot when background image does not fully cover the screen, on a dual 1280x1024 machine." /></a>

</div>


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








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