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





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On October 2nd, 2016, 12:33 p.m. UTC, <b>Martin Tobias Holmedahl Sandsmark</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">maybe try with installEventFilter(qApp) in the presentation widget, override eventFilter() and check for the tablet events in PresentationWidget and call setCursor(Qt::BlankCursor) and unsetCursor().</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">you could also call setOverrideCursor() and unsetOverrideCursor() in your custom QApplication, but then it's tricky to track when the presentation widget is used and I'd prefer not having a new application class just for this.</p></pre>
 </blockquote>




 <p>On October 2nd, 2016, 9:44 p.m. UTC, <b>Albert Astals Cid</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">What sandsmark says try installing an event filter, the syntax of what he suggested is wrong, what you want is not installEventFilter(qApp) but qApp->installEventFilter(this), with this being the presentationwidget.</p></pre>
 </blockquote>





 <p>On October 4th, 2016, 2:19 p.m. UTC, <b>Oliver Sander</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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Thanks guys.  I rewrote the patch, and it now uses eventFilter.  That's indeed much nicer!</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">In principle, the new patch does what it is supposed to do.  However, two problems remain:</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">a) I had to add code to the mouseMoveEvent class, to make the arrow cursor appear when the mouse is moved.
   Otherwise, after a TabletLeaveProximity event causes the cursor to disappear, moving the mouse will
   not make it reappear.  I don't think my solution is very elegant.  Do you guys know a better way?</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">b) When in drawing mode, upon removing the stylus from the screen, the cursor will briefly switch to an
   arrow cursor before disappearing.  That is because mouseReleaseEvent calls routeMouseDrawingEvent
   which calls slotChangeDrawingToolEngine which sets the arrow cursor.  Any ideas how to avoid this?</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Thanks again for your help!</p></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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I fixed b) by manually inlining the calls to slotChangeDrawingToolEngine, without the calls to setCursor.  I do not think that setCursor is actually needed here, and inlining replaced two lines of by only three new ones.</p></pre>
<br />










<p>- Oliver</p>


<br />
<p>On October 4th, 2016, 8:13 p.m. UTC, Oliver Sander wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
 <tr>
  <td>

<div>Review request for Okular.</div>
<div>By Oliver Sander.</div>


<p style="color: grey;"><i>Updated Oct. 4, 2016, 8:13 p.m.</i></p>









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


<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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I am trying to fix the following papercut:  I regularly write on pdf files in presentation mode, using the pen that comes with my Lenovo ThinkPad Yoga.  When I approach the screen with the pen, the cursor appears, and it follows the pen tip during writing.  When I lift off the pen, the cursor stays on, and auto-hides only a few seconds later (because of Okular::Settings::EnumSlidesCursor::HiddenDelay).  As a consequence, the cursor frequently hides the last bits of what I have just written.  This is a nuisance, because I do this in front of an audience, and a lot of it is math (where every detail matters).</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Ideally, the cursor would auto-hide when I lift the pen off the screen.  Luckily, Qt has an event for this: QEvent::TabletLeaveProximity.  Unluckily, the documentation says (http://doc.qt.io/qt-5/qtabletevent.html):</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"TabletEnterProximity and TabletLeaveProximity events [...] are only sent to QApplication"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Therefore, this patch introduces a new class TabletApplication, which inherits from QApplication, and is used in main.cpp instead of QApplication.  The proximity events are really caught, and each time a short note is printed on the console.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Unfortunately, at this point I am stuck and need some help.  Apparently, I cannot control the cursor from a QApplication.  How do I get the information that a TabletProximity has been caught to the presentation widget? Maybe the answer is trivial, but I have very little Qt programming experience.  Thanks for your help!</p></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>ui/presentationwidget.h <span style="color: grey">(69574d2)</span></li>

 <li>ui/presentationwidget.cpp <span style="color: grey">(c16d616)</span></li>

</ul>

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






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







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