touchpad_jumping_cursor.html 6.84 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
<!-- HTML header for doxygen 1.8.8-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- For Mobile Devices -->
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
        <meta name="generator" content="Doxygen 1.8.12"/>
        <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
        <title>libinput: Touchpad jumping cursor bugs</title>
        <!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
        <script type="text/javascript" src="dynsections.js"></script>
        <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
        <script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
        <link href="doxygen.css" rel="stylesheet" type="text/css" />
        <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
<link href="bootstrap.css" rel="stylesheet" type="text/css"/>
        <link href="bootstrap.css" rel="stylesheet" type="text/css" />
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
        <script type="text/javascript" src="doxy-boot.js"></script>
    </head>
    <body>
        <nav class="navbar navbar-default" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <a class="navbar-brand">libinput 1.5.4</a>
                </div>
            </div>
        </nav>
        <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
            <div class="content" id="content">
                <div class="container">
                    <div class="row">
                        <div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
                            <div style="margin-bottom: 15px;">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="touchpads.html">Touchpads</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">Touchpad jumping cursor bugs </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>A common bug encountered on touchpads is a cursor jump when alternating between fingers on a multi-touch-capable touchpad.</p>
<p>For example, after moving the cursor a user may use a second finger in the software button area to physically click the touchpad. Upon setting the finger down, the cursor exhibits a jump towards the bottom left or right, depending on the finger position.</p>
<p>When libinput detects a cursor jump it prints a bug warning to the log with the text <b>"Touch jump detected and discarded."</b> and a link to this page.</p>
<p>In most cases, this is a bug in the kernel driver and to libinput it appears that the touch point moves from its previous position. The pointer jump can usually be seen in the evemu-record output for the device:</p>
<pre>
 E: 249.206319 0000 0000 0000    # ------------ SYN_REPORT (0) ----------
 E: 249.218008 0003 0035 3764    # EV_ABS / ABS_MT_POSITION_X    3764
 E: 249.218008 0003 0036 2221    # EV_ABS / ABS_MT_POSITION_Y    2221
 E: 249.218008 0003 003a 0065    # EV_ABS / ABS_MT_PRESSURE      65
 E: 249.218008 0003 0000 3764    # EV_ABS / ABS_X                3764
 E: 249.218008 0003 0001 2216    # EV_ABS / ABS_Y                2216
 E: 249.218008 0003 0018 0065    # EV_ABS / ABS_PRESSURE         65
 E: 249.218008 0000 0000 0000    # ------------ SYN_REPORT (0) ----------
 E: 249.230881 0003 0035 3752    # EV_ABS / ABS_MT_POSITION_X    3752
 E: 249.230881 0003 003a 0046    # EV_ABS / ABS_MT_PRESSURE      46
 E: 249.230881 0003 0000 3758    # EV_ABS / ABS_X                3758
 E: 249.230881 0003 0018 0046    # EV_ABS / ABS_PRESSURE         46
 E: 249.230881 0000 0000 0000    # ------------ SYN_REPORT (0) ----------
 E: 249.242648 0003 0035 1640    # EV_ABS / ABS_MT_POSITION_X    1640
 E: 249.242648 0003 0036 4681    # EV_ABS / ABS_MT_POSITION_Y    4681
 E: 249.242648 0003 003a 0025    # EV_ABS / ABS_MT_PRESSURE      25
 E: 249.242648 0003 0000 1640    # EV_ABS / ABS_X                1640
 E: 249.242648 0003 0001 4681    # EV_ABS / ABS_Y                4681
 E: 249.242648 0003 0018 0025    # EV_ABS / ABS_PRESSURE         25
 E: 249.242648 0000 0000 0000    # ------------ SYN_REPORT (0) ----------
 E: 249.254568 0003 0035 1648    # EV_ABS / ABS_MT_POSITION_X    1648
 E: 249.254568 0003 003a 0027    # EV_ABS / ABS_MT_PRESSURE      27
 E: 249.254568 0003 0000 1644    # EV_ABS / ABS_X                1644
 E: 249.254568 0003 0018 0027    # EV_ABS / ABS_PRESSURE         27
</pre><p>In this recording, the pointer jumps from its position 3752/2216 to 1640/4681 within a single frame. On this particular touchpad, this would represent a physical move of almost 50mm. libinput detects some of these jumps and discards the movement but otherwise continues as usual. However, the bug should be fixed at the kernel level.</p>
<p>When you encounter the warning in the log, please generate an evemu recording of your touchpad and file a bug. See <a class="el" href="reporting_bugs.html">Reporting bugs</a> for more details. </p>
</div></div><!-- contents -->
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
</div>
</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.12
</small></address>
</body>
</html>