weixin_39779739
weixin_39779739
2021-01-07 13:33

touch scrolling broken on Win10: moves scrollbar but not window content

In the current preview builds of Windows 10, if I touch the top of the console text area and drag downwards with my finger, the scrollbar position updates as if the window content should be scrolling, but the content doesn't actually change. Moreover, after doing some touch scrolling to move the scrollbar, if I force a refresh by using the scroll-up key combination, then the scrollbar jumps back down to where it was originally; i.e., touch scrolling appears to have no internal effect, it just moves the scrollbar.

BTW, Console2 has the same issue, but the native console does not. I'm pretty sure this worked with Console2 on Win8/8.1, but can't easily test that any more.

Diagnostic report:


ConsoleZ aero amd64 1, 14, 0, 15129
is elevated? no
UAC prefix "Administrator: "
Tab (active): zsh
  View (active): 1. zsh - ~
  is elevated? no
font index: 8
face name: Consolas
font familly: 54 MODERN vector true type
font weight: 400
font size: width=7 height=14
max window size: cols=80 rows=59
Monitors 1
  Flags 1  primary
  DeviceID \\?\DISPLAY#LEN40A2#4&bbab55d&0&UID67568640#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}
  DeviceKey \Registry\Machine\System\CurrentControlSet\Control\Class\{4d36e96e-e325-11ce-bfc1-08002be10318}\0001
  DeviceName \\.\DISPLAY1\Monitor0
  DeviceString MaxBright Display 1600x900
  StateFlags 3
  Rect (0,0)x(1600,900)
  Work (0,0)x(1600,860)
Settings file C:\Users\baumann\AppData\Roaming\Console\console.xml
<?xml version="1.0"?>
<settings>
    <console change_refresh="10" refresh="100" rows="40" columns="80" buffer_rows="9999" buffer_columns="0" shell="" init_dir="" start_hidden="0" save_size="0">
        <colors background_text_opacity="255">
            <color id="0" r="0" g="0" b="0"></color>
            <color id="1" r="0" g="0" b="128"></color>
            <color id="2" r="0" g="150" b="0"></color>
            <color id="3" r="0" g="150" b="150"></color>
            <color id="4" r="170" g="25" b="25"></color>
            <color id="5" r="128" g="0" b="128"></color>
            <color id="6" r="128" g="128" b="0"></color>
            <color id="7" r="192" g="192" b="192"></color>
            <color id="8" r="128" g="128" b="128"></color>
            <color id="9" r="0" g="100" b="255"></color>
            <color id="10" r="0" g="255" b="0"></color>
            <color id="11" r="0" g="255" b="255"></color>
            <color id="12" r="255" g="50" b="50"></color>
            <color id="13" r="255" g="0" b="255"></color>
            <color id="14" r="255" g="255" b="0"></color>
            <color id="15" r="255" g="255" b="255"></color>
        </colors>
        <cursor style="0" r="255" g="255" b="255"></cursor><background type="0" r="0" g="0" b="0"><image file="" relative="0" extend="0" position="0"><tint opacity="0" r="0" g="0" b="0"></tint></image></background></console>
    <appearance>
        <font name="Consolas" size="9" bold="0" italic="0" smoothing="0" extra_width="0" bold_intensified="0" italic_intensified="0">
            <color use="0" r="0" g="0" b="0"></color>
        </font>
        <window title="Console" icon="" use_tab_icon="1" use_console_title="0" show_cmd="1" show_cmd_tabs="1" use_tab_title="1" trim_tab_titles="20" trim_tab_titles_right="0" main_title_format="?U([%u] )?N({%u} )%m?s( - %s)" tab_title_format="%n. ?U([%u] )?N({%u} )%t?s( - %s)"></window>
        <controls show_menu="0" show_toolbar="0" show_statusbar="0" show_tabs="1" hide_single_tab="1" show_scrollbars="1" flat_scrollbars="0" tabs_on_bottom="1" show_searchbar="0" hide_tab_icons="0"></controls>
        <styles caption="1" resizable="1" taskbar_button="1" border="0" inside_border="2" tray_icon="0" quake_like="0" quake_animation_time="300" jumplist="1" integrated_ime="0">
            <selection_color r="255" g="255" b="255"></selection_color>
        </styles>
        <position x="-1" y="-1" dock="-1" snap="0" z_order="0" save_position="0" w="-1" h="-1" save_size="0"></position>
        <transparency type="1" active_alpha="255" inactive_alpha="235" r="0" g="0" b="0"></transparency>
        <fullscreen start_in_fullscreen="0" fullscreen_monitor="0"></fullscreen></appearance>
    <behavior>
        <copy_paste copy_on_select="1" clear_on_copy="1" no_wrap="1" trim_spaces="1" copy_newline_char="0" sensitive_copy="1" eol_spaces="1" rtf="1" include_left_delimiter="0" include_right_delimiter="0" left_delimiters=" ([" right_delimiters=" )]"></copy_paste>
        <scroll page_scroll_rows="0"></scroll>
        <tab_highlight flashes="3" stay_highligted="1"></tab_highlight>
        <close allow_closing_last_view="0" confirm_closing_multiple_views="1"></close><focus follow_mouse="0"></focus><instance allow_multi="1"></instance><clone use_current_dir="1"></clone><search match_case="0" match_whole_word="0"></search><runas use_credprov="1"></runas></behavior>
    <hotkeys use_scroll_lock="1">
        <hotkey ctrl="1" shift="1" alt="0" extended="0" code="83" command="settings"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="help"></hotkey>
        <hotkey ctrl="0" shift="0" alt="1" extended="0" code="115" command="exit"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="112" command="newtab1"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="113" command="newtab2"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="114" command="newtab3"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="115" command="newtab4"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="116" command="newtab5"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="117" command="newtab6"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="118" command="newtab7"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="119" command="newtab8"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="120" command="newtab9"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="121" command="newtab10"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="newtab11"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="newtab12"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="49" command="switchtab1"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="50" command="switchtab2"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="51" command="switchtab3"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="52" command="switchtab4"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="53" command="switchtab5"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="54" command="switchtab6"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="55" command="switchtab7"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="56" command="switchtab8"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="57" command="switchtab9"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="0" code="48" command="switchtab10"></hotkey>
        <hotkey ctrl="0" shift="1" alt="0" extended="1" code="39" command="nexttab"></hotkey>
        <hotkey ctrl="0" shift="1" alt="0" extended="1" code="37" command="prevtab"></hotkey>
        <hotkey ctrl="1" shift="1" alt="0" extended="0" code="87" command="closetab"></hotkey>
        <hotkey ctrl="1" shift="1" alt="0" extended="0" code="82" command="renametab"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="nextview"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="prevview"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="leftview"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="rightview"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="topview"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="bottomview"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="dechsize"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="inchsize"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="decvsize"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="incvsize"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="closeview"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="detachview"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="attach"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="splithoriz"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="splitvert"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="clone"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="fullscreen"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="zoom100"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="zoominc"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="zoomdec"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="groupall"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="ungroupall"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="grouptab"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="ungrouptab"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="clear"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="1" code="45" command="copy"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="selectall"></hotkey>
        <hotkey ctrl="1" shift="0" alt="0" extended="1" code="46" command="clear_selection"></hotkey>
        <hotkey ctrl="0" shift="1" alt="0" extended="1" code="45" command="paste"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="stopscroll"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="scrollrowup"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="scrollrowdown"></hotkey>
        <hotkey ctrl="0" shift="1" alt="0" extended="1" code="33" command="scrollpageup"></hotkey>
        <hotkey ctrl="0" shift="1" alt="0" extended="1" code="34" command="scrollpagedown"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="scrollcolleft"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="scrollcolright"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="scrollpageleft"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="scrollpageright"></hotkey>
        <hotkey ctrl="1" shift="1" alt="0" extended="0" code="70" command="find"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="findnext"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="findprev"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="switchtransparency"></hotkey>
        <hotkey ctrl="1" shift="1" alt="0" extended="0" code="112" command="dumpbuffer"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="cmdMenu1"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="cmdMenu2"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="cmdMenu3"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="ctrlC"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="externalcmd1"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="externalcmd2"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="externalcmd3"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="externalcmd4"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="externalcmd5"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="externalcmd6"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="externalcmd7"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="externalcmd8"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="externalcmd9"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="externalcmd10"></hotkey>
        <hotkey ctrl="0" shift="0" alt="0" extended="0" code="0" command="activate" win="0"></hotkey>
    </hotkeys>
    <mouse>
        <actions>
            <action ctrl="0" shift="0" alt="0" button="0" name="copy"></action>
            <action ctrl="0" shift="0" alt="0" button="1" name="select"></action>
            <action ctrl="0" shift="0" alt="0" button="0" name="select_column"></action>
            <action ctrl="0" shift="0" alt="0" button="3" name="paste"></action>
            <action ctrl="1" shift="0" alt="0" button="1" name="drag"></action>
            <action ctrl="0" shift="0" alt="0" button="0" name="link"></action>
            <action ctrl="0" shift="0" alt="0" button="2" name="menu"></action>
            <action ctrl="0" shift="0" alt="0" button="0" name="menu2"></action>
            <action ctrl="0" shift="0" alt="0" button="0" name="menu3"></action>
        </actions>
    </mouse>
    <tabs>
        <tab title="zsh" icon="C:\cygwin64\Cygwin.ico" use_default_icon="0">
            <console shell="C:\cygwin64\bin\zsh.exe --login -i" init_dir="C:\Users\baumann" priority="2" run_as_user="0" user="" net_only="0" run_as_admin="0"></console>
            <cursor style="0" r="255" g="255" b="255"></cursor>
            <background type="0" r="0" g="0" b="0">
                <image file="" relative="0" extend="0" position="0">
                    <tint opacity="0" r="0" g="0" b="0"></tint>
                </image>
            </background>
        </tab>
        <tab title="cmd" use_default_icon="0">
            <console shell="%SystemRoot%\system32\cmd.exe" init_dir="C:\Users\baumann" priority="2" run_as_user="0" user="" net_only="0" run_as_admin="0"></console>
            <cursor style="0" r="255" g="255" b="255"></cursor>
            <background type="0" r="0" g="0" b="0">
                <image file="" relative="0" extend="0" position="0">
                    <tint opacity="0" r="0" g="0" b="0"></tint>
                </image>
            </background>
        </tab>
    </tabs>
    <external_commands>
</external_commands></settings>

该提问来源于开源项目:cbucher/console

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

18条回答

  • weixin_39978749 weixin_39978749 4月前

    Can you try to modify the "change refresh interval": image What if you set zero or a bigger value?

    点赞 评论 复制链接分享
  • weixin_39779739 weixin_39779739 4月前

    Bingo! Setting it to zero fixes the problem. When set to 1, the problem is still evident. Setting it higher (I tried 20) it triggers really easily.

    What is that setting doing anyway?

    点赞 评论 复制链接分享
  • weixin_39978749 weixin_39978749 4月前

    defines minimal waiting time between two readings of the console buffer.

    点赞 评论 复制链接分享
  • weixin_39779739 weixin_39779739 4月前

    Ah, ok. So it's good enough for me, but not a free/easy fix by default then :( With the timeout set to zero, I see non-trivial CPU usage while scrolling (as high as 10% of a 2GHz Core i7), compared to negligible otherwise.

    点赞 评论 复制链接分享
  • weixin_39978749 weixin_39978749 4月前

    I don't have touch device nor Windows 10. Can you analyze the problem?

    点赞 评论 复制链接分享
  • weixin_39779739 weixin_39779739 4月前

    That’s ok, I figured this was a niche problem, but wanted to record it anyway. I will try to have a look, but hardly know where to start -- I’m a kernel hacker; GUI programming generally mystifies me :)

    点赞 评论 复制链接分享
  • weixin_39779739 weixin_39779739 4月前

    I took traces of UI events using Spy++. Sorry for the verbosity; I don't seem to be able to attach the full trace to the bug, so I'm copying liberally. Here's what happens when scrolling using the mouse to click and drag on the scrollbar (I only included the initial part of the scrolling, not the final release):

    
    <000112> 0000000000060758 S WM_NCHITTEST xPos:1470 yPos:781
    <000113> 0000000000060758 R WM_NCHITTEST nHittest:HTVSCROLL
    <000114> 0000000000050760 S WM_PARENTNOTIFY fwEvent:WM_LBUTTONDOWN xPos:576 yPos:533
    <000115> 0000000000050760 R WM_PARENTNOTIFY
    <000116> 0000000000060758 S WM_MOUSEACTIVATE hwndTopLevel:00030774 nHittest:HTVSCROLL uMsg:WM_LBUTTONDOWN
    <000117> 0000000000050760 S WM_MOUSEACTIVATE hwndTopLevel:00030774 nHittest:HTVSCROLL uMsg:WM_LBUTTONDOWN
    <000118> 0000000000050760 S WM_IME_SETCONTEXT fSet:1 iShow:C000000F
    <000119> 0000000000050760 R WM_IME_SETCONTEXT
    <000120> 0000000000050760 S WM_SETFOCUS hwndLoseFocus:00030774
    <000121> 0000000000050760 S WM_KILLFOCUS hwndGetFocus:00060758
    <000122> 0000000000050760 R WM_KILLFOCUS
    <000123> 0000000000050760 S WM_IME_SETCONTEXT fSet:0 iShow:C000000F
    <000124> 0000000000050760 R WM_IME_SETCONTEXT
    <000125> 0000000000060758 S WM_IME_SETCONTEXT fSet:1 iShow:C000000F
    <000126> 0000000000060758 R WM_IME_SETCONTEXT
    <000127> 0000000000060758 S WM_SETFOCUS hwndLoseFocus:00050760
    <000128> 0000000000060758 R WM_SETFOCUS
    <000129> 0000000000050760 R WM_SETFOCUS
    <000130> 0000000000060758 S WM_KILLFOCUS hwndGetFocus:00060758
    <000131> 0000000000060758 R WM_KILLFOCUS
    <000132> 0000000000060758 S WM_IME_SETCONTEXT fSet:0 iShow:C000000F
    <000133> 0000000000060758 R WM_IME_SETCONTEXT
    <000134> 0000000000060758 S WM_IME_SETCONTEXT fSet:1 iShow:C000000F
    <000135> 0000000000060758 R WM_IME_SETCONTEXT
    <000136> 0000000000060758 S WM_SETFOCUS hwndLoseFocus:00060758
    <000137> 0000000000060758 R WM_SETFOCUS
    <000138> 0000000000050760 R WM_MOUSEACTIVATE fuActivate:MA_ACTIVATE
    <000139> 0000000000060758 R WM_MOUSEACTIVATE fuActivate:MA_ACTIVATE
    <000140> 0000000000060758 S WM_SETCURSOR hwnd:00060758 nHittest:HTVSCROLL wMouseMsg:WM_LBUTTONDOWN
    <000141> 0000000000050760 S WM_SETCURSOR hwnd:00060758 nHittest:HTVSCROLL wMouseMsg:WM_LBUTTONDOWN
    <000142> 0000000000050760 R WM_SETCURSOR fHaltProcessing:False
    <000143> 0000000000060758 R WM_SETCURSOR fHaltProcessing:False
    <000144> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000145> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000146> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000147> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000148> 0000000000060758 P WM_NCLBUTTONDOWN nHittest:HTVSCROLL xPos:1470 yPos:781
    <000149> 0000000000060758 S WM_SYSCOMMAND uCmdType:SC_HSCROLL xPos:1470 yPos:781
    <000150> 0000000000060758 S WM_VSCROLL nScrollCode:SB_THUMBTRACK nPos:241 hwndScrollBar:(null)
    <000151> 0000000000060758 R WM_VSCROLL
    <000152> 0000000000060758 S WM_CAPTURECHANGED hwndNewCapture:00060758
    <000153> 0000000000060758 R WM_CAPTURECHANGED
    <000154> 0000000000060758 S WM_GETOBJECT dwFlags:00000000 dwObjId:FFFFFFE7
    <000155> 0000000000060758 R WM_GETOBJECT dwRet:00000000
    <000156> 0000000000060758 S WM_GETOBJECT dwFlags:FFFFFFFF dwObjId:FFFFFFFC
    <000157> 0000000000060758 R WM_GETOBJECT dwRet:FFFFFFFF
    <000158> 0000000000060758 S WM_GETOBJECT dwFlags:00000000 dwObjId:FFFFFFF4
    <000159> 0000000000060758 R WM_GETOBJECT dwRet:00000000
    <000160> 0000000000050760 S WM_GETOBJECT dwFlags:00000000 dwObjId:FFFFFFE7
    <000161> 0000000000050760 R WM_GETOBJECT dwRet:00000000
    <000162> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000163> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000164> 0000000000050760 P message:0xC0F7 [Registered:"ImmersiveFocusNotification"] wParam:FFFFFFFFFFFFFFFC lParam:00000000
    <000165> 0000000000050760 S WM_GETOBJECT dwFlags:00000000 dwObjId:FFFFFFE7
    <000166> 0000000000050760 R WM_GETOBJECT dwRet:00000000
    <000167> 0000000000060758 S WM_GETOBJECT dwFlags:00000000 dwObjId:FFFFFFE7
    <000168> 0000000000060758 R WM_GETOBJECT dwRet:00000000
    <000169> 0000000000060758 S WM_GETOBJECT dwFlags:FFFFFFFF dwObjId:FFFFFFFC
    <000170> 0000000000060758 R WM_GETOBJECT dwRet:FFFFFFFF
    <000171> 0000000000060758 S WM_GETOBJECT dwFlags:00000000 dwObjId:FFFFFFF4
    <000172> 0000000000060758 R WM_GETOBJECT dwRet:00000000
    <000173> 0000000000050760 S WM_GETOBJECT dwFlags:00000000 dwObjId:FFFFFFE7
    <000174> 0000000000050760 R WM_GETOBJECT dwRet:00000000
    <000175> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000176> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000177> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000178> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000179> 0000000000060758 P message:0xC0F7 [Registered:"ImmersiveFocusNotification"] wParam:FFFFFFFFFFFFFFFC lParam:00000000
    <000180> 0000000000060758 S WM_GETOBJECT dwFlags:00000000 dwObjId:FFFFFFE7
    <000181> 0000000000060758 R WM_GETOBJECT dwRet:00000000
    <000182> 0000000000060758 S WM_GETOBJECT dwFlags:00000000 dwObjId:FFFFFFE7
    <000183> 0000000000060758 R WM_GETOBJECT dwRet:00000000
    <000184> 0000000000060758 S WM_GETOBJECT dwFlags:FFFFFFFF dwObjId:FFFFFFFC
    <000185> 0000000000060758 R WM_GETOBJECT dwRet:FFFFFFFF
    <000186> 0000000000060758 S WM_GETOBJECT dwFlags:00000000 dwObjId:FFFFFFF4
    <000187> 0000000000060758 R WM_GETOBJECT dwRet:00000000
    <000188> 0000000000050760 S WM_GETOBJECT dwFlags:00000000 dwObjId:FFFFFFE7
    <000189> 0000000000050760 R WM_GETOBJECT dwRet:00000000
    <000190> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000191> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000192> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000193> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000194> 0000000000060758 P message:0xC0F7 [Registered:"ImmersiveFocusNotification"] wParam:FFFFFFFFFFFFFFFC lParam:00000000
    <000195> 0000000000060758 S WM_GETOBJECT dwFlags:00000000 dwObjId:FFFFFFE7
    <000196> 0000000000060758 R WM_GETOBJECT dwRet:00000000
    <000197> 0000000000060758 S WM_GETOBJECT dwFlags:FFFFFFFF dwObjId:FFFFFFFC
    <000198> 0000000000060758 R WM_GETOBJECT dwRet:FFFFFFFF
    <000199> 0000000000060758 S WM_GETOBJECT dwFlags:00000000 dwObjId:FFFFFFF4
    <000200> 0000000000060758 R WM_GETOBJECT dwRet:00000000
    <000201> 0000000000050760 S WM_GETOBJECT dwFlags:00000000 dwObjId:FFFFFFE7
    <000202> 0000000000050760 R WM_GETOBJECT dwRet:00000000
    <000203> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000204> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000205> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000206> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000207> 0000000000060758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:575 yPos:530
    <000208> 0000000000060758 S WM_VSCROLL nScrollCode:SB_THUMBTRACK nPos:239 hwndScrollBar:(null)
    <000209> 0000000000060758 R WM_VSCROLL
    <000210> 0000000000060758 S message:0x1400 [User-defined:WM_USER+4096] wParam:0000000A lParam:00000000
    <000211> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000212> 0000000000060758 R WM_STYLECHANGING
    <000213> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000214> 0000000000060758 R WM_STYLECHANGED
    <000215> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000216> 0000000000060758 R WM_STYLECHANGING
    <000217> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000218> 0000000000060758 R WM_STYLECHANGED
    <000219> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000220> 0000000000060758 R WM_STYLECHANGING
    <000221> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000222> 0000000000060758 R WM_STYLECHANGED
    <000223> 0000000000060758 R message:0x1400 [User-defined:WM_USER+4096] lResult:00000000
    <000224> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000225> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000226> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000227> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000228> 0000000000060758 P WM_NCMOUSELEAVE
    <000229> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000230> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000231> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000232> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000233> 0000000000060758 P WM_PAINT hdc:00000000
    <000234> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000235> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000236> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000237> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000238> 0000000000060758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:575 yPos:527
    <000239> 0000000000060758 S WM_VSCROLL nScrollCode:SB_THUMBTRACK nPos:238 hwndScrollBar:(null)
    <000240> 0000000000060758 R WM_VSCROLL
    <000241> 0000000000060758 S message:0x1400 [User-defined:WM_USER+4096] wParam:0000000A lParam:00000000
    <000242> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000243> 0000000000060758 R WM_STYLECHANGING
    <000244> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000245> 0000000000060758 R WM_STYLECHANGED
    <000246> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000247> 0000000000060758 R WM_STYLECHANGING
    <000248> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000249> 0000000000060758 R WM_STYLECHANGED
    <000250> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000251> 0000000000060758 R WM_STYLECHANGING
    <000252> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000253> 0000000000060758 R WM_STYLECHANGED
    <000254> 0000000000060758 R message:0x1400 [User-defined:WM_USER+4096] lResult:00000000
    <000255> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000256> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000257> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000258> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000259> 0000000000060758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:574 yPos:523
    <000260> 0000000000060758 S WM_VSCROLL nScrollCode:SB_THUMBTRACK nPos:236 hwndScrollBar:(null)
    <000261> 0000000000060758 R WM_VSCROLL
    <000262> 0000000000060758 S message:0x1400 [User-defined:WM_USER+4096] wParam:0000000A lParam:00000000
    <000263> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000264> 0000000000060758 R WM_STYLECHANGING
    <000265> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000266> 0000000000060758 R WM_STYLECHANGED
    <000267> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000268> 0000000000060758 R WM_STYLECHANGING
    <000269> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000270> 0000000000060758 R WM_STYLECHANGED
    <000271> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000272> 0000000000060758 R WM_STYLECHANGING
    <000273> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000274> 0000000000060758 R WM_STYLECHANGED
    <000275> 0000000000060758 R message:0x1400 [User-defined:WM_USER+4096] lResult:00000000
    <000276> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000277> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000278> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000279> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000280> 0000000000060758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:574 yPos:521
    <000281> 0000000000060758 S WM_VSCROLL nScrollCode:SB_THUMBTRACK nPos:235 hwndScrollBar:(null)
    <000282> 0000000000060758 R WM_VSCROLL
    <000283> 0000000000060758 S message:0x1400 [User-defined:WM_USER+4096] wParam:0000000A lParam:00000000
    <000284> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000285> 0000000000060758 R WM_STYLECHANGING
    <000286> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000287> 0000000000060758 R WM_STYLECHANGED
    <000288> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000289> 0000000000060758 R WM_STYLECHANGING
    <000290> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000291> 0000000000060758 R WM_STYLECHANGED
    <000292> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000293> 0000000000060758 R WM_STYLECHANGING
    <000294> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014D720
    <000295> 0000000000060758 R WM_STYLECHANGED
    <000296> 0000000000060758 R message:0x1400 [User-defined:WM_USER+4096] lResult:00000000
    <000297> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000298> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000299> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014DBF0 lParam:00000000
    <000300> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000301> 0000000000060758 P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:574 yPos:520
    <000302> 0000000000060758 S WM_VSCROLL nScrollCode:SB_THUMBTRACK nPos:234 hwndScrollBar:(null)
    <000303> 0000000000060758 R WM_VSCROLL
    <000304> 0000000000060758 S message:0x1400 [User-defined:WM_USER+4096] wParam:0000000A lParam:00000000
    

    Now, here's what happens when I use touch:

    
    <000383> 0000000000060758 P WM_POINTERUPDATE wPointerID:0069 wFlags:6016 ptX:1227 ptY:390
    <000384> 0000000000060758 S WM_GESTURE wGestureID:GID_BEGIN hGestureHandle:36AA0000
    <000385> 0000000000050760 S WM_GESTURE wGestureID:GID_BEGIN hGestureHandle:36AD0000
    <000386> 0000000000050760 R WM_GESTURE fProcessed:False
    <000387> 0000000000060758 R WM_GESTURE fProcessed:False
    <000388> 0000000000060758 S WM_GESTURE wGestureID:GID_PAN hGestureHandle:36B70000
    <000389> 0000000000050760 S WM_GESTURE wGestureID:GID_PAN hGestureHandle:36BA0000
    <000390> 0000000000060758 S WM_NCHITTEST xPos:1230 yPos:372
    <000391> 0000000000060758 R WM_NCHITTEST nHittest:HTCLIENT
    <000392> 0000000000050760 R WM_GESTURE fProcessed:False
    <000393> 0000000000060758 R WM_GESTURE fProcessed:False
    <000394> 0000000000060758 S WM_GESTURE wGestureID:GID_PAN hGestureHandle:36C40000
    <000395> 0000000000050760 S WM_GESTURE wGestureID:GID_PAN hGestureHandle:36C70000
    <000396> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000397> 0000000000060758 R WM_STYLECHANGING
    <000398> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000399> 0000000000060758 R WM_STYLECHANGED
    <000400> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000401> 0000000000060758 R WM_STYLECHANGING
    <000402> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000403> 0000000000060758 R WM_STYLECHANGED
    <000404> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000405> 0000000000060758 R WM_STYLECHANGING
    <000406> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000407> 0000000000060758 R WM_STYLECHANGED
    <000408> 0000000000050760 R WM_GESTURE fProcessed:False
    <000409> 0000000000060758 R WM_GESTURE fProcessed:False
    <000410> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000411> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000412> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000413> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000414> 0000000000060758 P WM_VSCROLL nScrollCode:SB_THUMBTRACK nPos:238 hwndScrollBar:(null)
    <000415> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000416> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000417> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000418> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000419> 0000000000060758 P WM_VSCROLL nScrollCode:SB_THUMBPOSITION nPos:238 hwndScrollBar:(null)
    <000420> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000421> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000422> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000423> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000424> 0000000000060758 P WM_POINTERUPDATE wPointerID:0069 wFlags:6016 ptX:1223 ptY:407
    <000425> 0000000000060758 S WM_GESTURE wGestureID:GID_PAN hGestureHandle:36D10000
    <000426> 0000000000050760 S WM_GESTURE wGestureID:GID_PAN hGestureHandle:36D40000
    <000427> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000428> 0000000000060758 R WM_STYLECHANGING
    <000429> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000430> 0000000000060758 R WM_STYLECHANGED
    <000431> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000432> 0000000000060758 R WM_STYLECHANGING
    <000433> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000434> 0000000000060758 R WM_STYLECHANGED
    <000435> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000436> 0000000000060758 R WM_STYLECHANGING
    <000437> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000438> 0000000000060758 R WM_STYLECHANGED
    <000439> 0000000000050760 R WM_GESTURE fProcessed:False
    <000440> 0000000000060758 R WM_GESTURE fProcessed:False
    <000441> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000442> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000443> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000444> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000445> 0000000000060758 P WM_VSCROLL nScrollCode:SB_THUMBTRACK nPos:237 hwndScrollBar:(null)
    <000446> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000447> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000448> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000449> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000450> 0000000000060758 P WM_VSCROLL nScrollCode:SB_THUMBPOSITION nPos:237 hwndScrollBar:(null)
    <000451> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000452> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000453> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000454> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000455> 0000000000060758 P WM_POINTERUPDATE wPointerID:0069 wFlags:6016 ptX:1220 ptY:430
    <000456> 0000000000060758 S WM_GESTURE wGestureID:GID_PAN hGestureHandle:36DE0000
    <000457> 0000000000050760 S WM_GESTURE wGestureID:GID_PAN hGestureHandle:36E10000
    <000458> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000459> 0000000000060758 R WM_STYLECHANGING
    <000460> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000461> 0000000000060758 R WM_STYLECHANGED
    <000462> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000463> 0000000000060758 R WM_STYLECHANGING
    <000464> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000465> 0000000000060758 R WM_STYLECHANGED
    <000466> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000467> 0000000000060758 R WM_STYLECHANGING
    <000468> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000469> 0000000000060758 R WM_STYLECHANGED
    <000470> 0000000000050760 R WM_GESTURE fProcessed:False
    <000471> 0000000000060758 R WM_GESTURE fProcessed:False
    <000472> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000473> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000474> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000475> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000476> 0000000000060758 P WM_VSCROLL nScrollCode:SB_THUMBTRACK nPos:235 hwndScrollBar:(null)
    <000477> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000478> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000479> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000480> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000481> 0000000000060758 P WM_VSCROLL nScrollCode:SB_THUMBPOSITION nPos:235 hwndScrollBar:(null)
    <000482> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000483> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000484> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000485> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000486> 0000000000060758 P WM_POINTERUPDATE wPointerID:0069 wFlags:6016 ptX:1214 ptY:474
    <000487> 0000000000060758 S WM_GESTURE wGestureID:GID_PAN hGestureHandle:36EB0000
    <000488> 0000000000050760 S WM_GESTURE wGestureID:GID_PAN hGestureHandle:36EE0000
    <000489> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000490> 0000000000060758 R WM_STYLECHANGING
    <000491> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000492> 0000000000060758 R WM_STYLECHANGED
    <000493> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000494> 0000000000060758 R WM_STYLECHANGING
    <000495> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000496> 0000000000060758 R WM_STYLECHANGED
    <000497> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000498> 0000000000060758 R WM_STYLECHANGING
    <000499> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000500> 0000000000060758 R WM_STYLECHANGED
    <000501> 0000000000050760 R WM_GESTURE fProcessed:False
    <000502> 0000000000060758 R WM_GESTURE fProcessed:False
    <000503> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000504> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000505> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000506> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000507> 0000000000060758 P WM_VSCROLL nScrollCode:SB_THUMBTRACK nPos:233 hwndScrollBar:(null)
    <000508> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000509> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000510> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000511> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000512> 0000000000060758 P WM_VSCROLL nScrollCode:SB_THUMBPOSITION nPos:233 hwndScrollBar:(null)
    <000513> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000514> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000515> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000516> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000517> 0000000000060758 P WM_POINTERUPDATE wPointerID:0069 wFlags:6016 ptX:1207 ptY:529
    <000518> 0000000000060758 S WM_GESTURE wGestureID:GID_PAN hGestureHandle:36F80000
    <000519> 0000000000050760 S WM_GESTURE wGestureID:GID_PAN hGestureHandle:36FB0000
    <000520> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000521> 0000000000060758 R WM_STYLECHANGING
    <000522> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000523> 0000000000060758 R WM_STYLECHANGED
    <000524> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000525> 0000000000060758 R WM_STYLECHANGING
    <000526> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000527> 0000000000060758 R WM_STYLECHANGED
    <000528> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000529> 0000000000060758 R WM_STYLECHANGING
    <000530> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000531> 0000000000060758 R WM_STYLECHANGED
    <000532> 0000000000050760 R WM_GESTURE fProcessed:False
    <000533> 0000000000060758 R WM_GESTURE fProcessed:False
    <000534> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000535> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000536> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000537> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000538> 0000000000060758 P WM_VSCROLL nScrollCode:SB_THUMBTRACK nPos:229 hwndScrollBar:(null)
    <000539> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000540> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000541> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000542> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000543> 0000000000060758 P WM_VSCROLL nScrollCode:SB_THUMBPOSITION nPos:229 hwndScrollBar:(null)
    <000544> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000545> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000546> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000547> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000548> 0000000000060758 P WM_POINTERUPDATE wPointerID:0069 wFlags:6016 ptX:1205 ptY:564
    <000549> 0000000000060758 S WM_GESTURE wGestureID:GID_PAN hGestureHandle:37050000
    <000550> 0000000000050760 S WM_GESTURE wGestureID:GID_PAN hGestureHandle:37080000
    <000551> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000552> 0000000000060758 R WM_STYLECHANGING
    <000553> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000554> 0000000000060758 R WM_STYLECHANGED
    <000555> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000556> 0000000000060758 R WM_STYLECHANGING
    <000557> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000558> 0000000000060758 R WM_STYLECHANGED
    <000559> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000560> 0000000000060758 R WM_STYLECHANGING
    <000561> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000562> 0000000000060758 R WM_STYLECHANGED
    <000563> 0000000000050760 R WM_GESTURE fProcessed:False
    <000564> 0000000000060758 R WM_GESTURE fProcessed:False
    <000565> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000566> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000567> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000568> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000569> 0000000000060758 P WM_VSCROLL nScrollCode:SB_THUMBTRACK nPos:227 hwndScrollBar:(null)
    <000570> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000571> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000572> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000573> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000574> 0000000000060758 P WM_VSCROLL nScrollCode:SB_THUMBPOSITION nPos:227 hwndScrollBar:(null)
    <000575> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000576> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000577> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000578> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000579> 0000000000060758 P WM_POINTERUPDATE wPointerID:0069 wFlags:6016 ptX:1204 ptY:596
    <000580> 0000000000060758 S WM_GESTURE wGestureID:GID_PAN hGestureHandle:37120000
    <000581> 0000000000050760 S WM_GESTURE wGestureID:GID_PAN hGestureHandle:37150000
    <000582> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000583> 0000000000060758 R WM_STYLECHANGING
    <000584> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000585> 0000000000060758 R WM_STYLECHANGED
    <000586> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000587> 0000000000060758 R WM_STYLECHANGING
    <000588> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000589> 0000000000060758 R WM_STYLECHANGED
    <000590> 0000000000060758 S WM_STYLECHANGING wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000591> 0000000000060758 R WM_STYLECHANGING
    <000592> 0000000000060758 S WM_STYLECHANGED wStyleType:GWL_EXSTYLE | GWL_STYLE lpss:0014C0D0
    <000593> 0000000000060758 R WM_STYLECHANGED
    <000594> 0000000000050760 R WM_GESTURE fProcessed:False
    <000595> 0000000000060758 R WM_GESTURE fProcessed:False
    <000596> 0000000000060758 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000597> 0000000000060758 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    <000598> 0000000000050760 S message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] wParam:0014EB60 lParam:00000000
    <000599> 0000000000050760 R message:0xC2BF [Registered:"WTL_CmdBar_InternalGetBarMsg"] lResult:00000000
    

    Things I noticed: - for the mouse, the WM_VSCROLL messages show both the sent message (S) followed by a return (R); for touch, they only show as posted (P); does this mean they're ignored somewhere? - for the mouse, the WM_VSCROLL is followed immediately by a user-defined message 0x1400; this doesn't appear in the touch log - for touch, you get scroll events with both SB_THUMBTRACK and SB_THUMBPOSITION; for mouse, you only get SB_THUMBTRACK

    点赞 评论 复制链接分享
  • weixin_39779739 weixin_39779739 4月前

    One last observation after poking at it in the debugger; hopefully this gives you some useful clues: for touch scrolling, the call to user32!GetScrollPos always returns the same position as the parameter included with the scroll messages. For mouse scrolling, it is usually off by a bit (i.e. it appears to be the previous scollbar position, rather than the current updated position).

    点赞 评论 复制链接分享
  • weixin_39978749 weixin_39978749 4月前

    I suspect that the root cause is the creation of two messages WM_VSCROLL for the same position: <000569> 0000000000060758 P WM_VSCROLL nScrollCode:SB_THUMBTRACK nPos:227 hwndScrollBar:(null) <000574> 0000000000060758 P WM_VSCROLL nScrollCode:SB_THUMBPOSITION nPos:227 hwndScrollBar:(null)

    ConsoleView(2042)

     C++
            case SB_THUMBTRACK:
            case SB_THUMBPOSITION:
                nDelta = nThumbPos - ::FlatSB_GetScrollPos(m_hWnd, nType);
                break;
    
            case SB_ENDSCROLL:
                return;
    
            default:
                return;
        }
    
        if( nType == SB_VERT )
        {
            int nCurrentPos = m_consoleHandler.GetConsoleInfo()->csbi.srWindow.Top;
            int nVScrollMaxTop = static_cast<int>(m_dwVScrollMax - m_consoleHandler.GetConsoleParams()->dwRows + 1);
            if( (nCurrentPos + nDelta) > nVScrollMaxTop )
                nDelta = nVScrollMaxTop - nCurrentPos;
        }
    
        if (nDelta != 0)
        {
            SharedMemory<size>& newScrollPos = m_consoleHandler.GetNewScrollPos();
    
            if (nType == SB_VERT)
            {
                newScrollPos->cx = 0;
                newScrollPos->cy = nDelta;
            }
            else
            {
                newScrollPos->cx = nDelta;
                newScrollPos->cy = 0;
            }
    
            newScrollPos.SetReqEvent();
        }
    </size></int>

    The return of FlatSB_GetScrollPos should be verified.

    点赞 评论 复制链接分享
  • weixin_39978749 weixin_39978749 4月前

    please, try the last experimental version

    点赞 评论 复制链接分享
  • weixin_39779739 weixin_39779739 4月前

    Thanks. This version is much improved -- if I scroll slowly enough, it works fine. If I scroll too quickly, however, the scroll bar (and the corresponding window content) seems to alternate between the desired scroll position and the starting position of the scroll, jumping up and down more and more the further I scroll. I wonder if this happens because you're handling both SB_THUMBTRACK and SB_THUMBPOSITION, and whether you should just be ignoring one of them?

    点赞 评论 复制链接分享
  • weixin_39779739 weixin_39779739 4月前

    Correction: fast scrolls alternate between the desired position and the end of the buffer.

    I tried to capture a trace of the positions passed with the two messages, using spy++ to log the window messages or using a debugger breakpoint, but both of these methods were enough to slow it down to produce buttery smooth scrolling :(

    点赞 评论 复制链接分享
  • weixin_39978749 weixin_39978749 4月前

    Can you verify that Microsoft has fixed your issue in Windows 10 updates?

    点赞 评论 复制链接分享
  • weixin_39779739 weixin_39779739 4月前

    No, it behaves the same way on the latest version. I tried 15183.

    点赞 评论 复制链接分享
  • weixin_39978749 weixin_39978749 4月前

    I tested with a slow nettop PC. I can see a little stuttering with very fast scroll but really far away your description...

    点赞 评论 复制链接分享
  • weixin_39779739 weixin_39779739 4月前

    Here's what I see with deliberately fast/excessive scrolling. Notice that it jumps to the very top of the buffer at one point.

    点赞 评论 复制链接分享
  • weixin_39978749 weixin_39978749 4月前

    Sorry, but are you a super saiyan? 10 000 rows per second is inhuman :wink:

    There is two concurrent sources of scroll position change: - first: the system which translate the gesture in multiple position's changes to provide a smooth animation - second: the new position of the window in the buffer modify the track bar position (*)

    Windows 10 has a new logic: - scroll bar position is modified before sending the message - messages are posted (PostMessage instead of SendMessage), so the system won't wait the message is processed and flood the application

    So the position is always in advance on the current reading. And when the reading is done, the position is re-synchronized. That's why you have a position's stuttering.

    There are two choices: - synchronize the scrolling by waiting that the shell process has finished to scroll and finished to read new window In this case the application will become slow and less responsive during scrolling! - if the scrolling is not finished then don't modify the scrolling position when window position has changed (*) But I don't no how to detect if the scroll has finished... Normally when you drag the scroll bar, you receive SB_THUMBTRACK until you release and the a final SB_ENDTRACK. But here this is not the case.

    Can you send Spy++ traces taken with slow/medium and fast scrolling? Select only WM_VSCROLL and WM_GESTURE messages. Scrolling can be stopped by another gesture?

    点赞 评论 复制链接分享
  • weixin_39779739 weixin_39779739 4月前

    Hmm, I have to admit I don't fully understand what you're proposing. I'm also surprised they changed the semantics that much in Win10 (did you find a doc ref for that?).

    Isn't the core problem that the scroll logic is always trying to calculate a delta and scroll by that amount? I would think that that the asynchronous messages shouldn't matter, as long as the logic for handling the message is 1. figure out where the scrollbar thinks it is now (i.e. ignore the message payload, just query the scroll bar control to get its position), and 2. update the buffer scroll position to that absolute location. If you need to, stop 2 could be done in terms of a delta (by tracking the last position we scrolled to and then calculating the diff from our new desired position), but I think the key point would be that the handler always queries the current desired scroll pos and ignores the message parameter.

    Edit: I forgot to add that when I tried to use Spy++, the added overhead from tracing made the problem disappear :( I think we'd need to add some lightweight logging code to the app to get a reliable trace.

    点赞 评论 复制链接分享

相关推荐