CorelDRAW panning?

Questions and answers about 3Dconnexion devices on Windows.

Moderator: Moderators

Post Reply
mhoopes
Posts: 137
Joined: Thu Dec 07, 2006 10:48 am
Location: Campbell, CA

CorelDRAW panning?

Post by mhoopes »

I'm trying to map horizontal and vertical screen panning in CorelDRAW to Ry and Rx, respectively, but there seems to be a small delay before the modifier is applied, so zoom is also initially invoked.

I've done this successfully in MS Visio (horizontal panning) with the following code:

Code: Select all

     <Axis>
          <Enabled>true</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_Ry</ActionID>
            <Min>-512</Min>
            <Max>511</Max>
          </Input>
          <Output>
            <ActionID>HIDMouse_Wheel</ActionID>
            <Modifiers>
              <Modifier>Shift</Modifier>
            </Modifiers>
          </Output>
        </Axis>
For panning in CorelDRAW, horizontal = Ctrl+Wheel, and vertical = Alt+Wheel. Zoom = Wheel.
I can accomplish the panning functions, but the screen will zoom at the beginning of the operation. If I also hold down the relevant modifier key while using Rx or Ry, I get the desired behavior.

Code: Select all

		  <Axis>
          <Enabled>true</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_Rx</ActionID>
            <Min>-512</Min>
            <Max>511</Max>
          </Input>
          <Output>
            <ActionID>HIDMouse_Wheel</ActionID>
            <Modifiers>
              <Modifier>Alt</Modifier>
            </Modifiers>
          </Output>
        </Axis>
        <Axis>
          <Enabled>true</Enabled>
          <Input>
            <ActionID>HIDMultiAxis_Ry</ActionID>
            <Min>-512</Min>
            <Max>511</Max>
          </Input>
          <Output>
            <ActionID>HIDMouse_Wheel</ActionID>
            <Modifiers>
              <Modifier>Control</Modifier>
            </Modifiers>
          </Output>
        </Axis>
Michael Hoopes
jwick
Moderator
Moderator
Posts: 3331
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: CorelDRAW panning?

Post by jwick »

The log file shows what is being sent.

Maybe a small dead region on the Zoom axis will help isolate it from the other two axes.

And there's always the Dominant AxisFilter (only one axis at a time). I can see a problem with it trying to deal with two simultaneous axes, one of which has one Modifier, and the other has a different Modifier. I don't recall how well it handles that.
mhoopes
Posts: 137
Joined: Thu Dec 07, 2006 10:48 am
Location: Campbell, CA

Re: CorelDRAW panning?

Post by mhoopes »

Dominant mode didn't seem to help with this. I haven't tried the deadband tweak yet.

Here are the initial I/O log events for CorelDRAW, ending with the first SendKeyRelease. I see that the first SendKeyPress is occurring 0.113s after the first KMJTrans:UdTransSendEvent. I'm not sure how to interpret this; let me know if you need the whole log file.

Code: Select all

00000020 18/1/2022 11:36:23.991: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-8
00000020 18/1/2022 11:36:23.991: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.008000, pressLevel=0.507331
00000020 18/1/2022 11:36:24.007: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-29
00000020 18/1/2022 11:36:24.007: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.029000, pressLevel=0.527859
00000020 18/1/2022 11:36:24.023: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-74
00000020 18/1/2022 11:36:24.023: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.074000, pressLevel=0.571848
00000020 18/1/2022 11:36:24.038: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-120
00000020 18/1/2022 11:36:24.039: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.120000, pressLevel=0.616813
00000020 18/1/2022 11:36:24.055: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-168
00000020 18/1/2022 11:36:24.055: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.168000, pressLevel=0.663734
00000020 18/1/2022 11:36:24.071: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-208
00000020 18/1/2022 11:36:24.071: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.208000, pressLevel=0.702835
00000020 18/1/2022 11:36:24.086: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-238
00000020 18/1/2022 11:36:24.087: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.238000, pressLevel=0.732160
00000020 18/1/2022 11:36:24.103: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-258
00000020 18/1/2022 11:36:24.103: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.258000, pressLevel=0.751711
00000080 18/1/2022 11:36:24.104: SendKeyPress: pressing usageID 0xe2 (Left Alt)
00000080 18/1/2022 11:36:24.104: SendMouseAxisOrWheelEvent: MouseX=0, MouseY=0, VScroll=-1, HScroll=0, Buttons Mask Change=0x0, Buttons Status=0x0 
00000020 18/1/2022 11:36:24.119: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-278
00000020 18/1/2022 11:36:24.119: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.278000, pressLevel=0.771261
00000020 18/1/2022 11:36:24.134: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-294
00000020 18/1/2022 11:36:24.134: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.294000, pressLevel=0.786901
00000020 18/1/2022 11:36:24.150: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-311
00000020 18/1/2022 11:36:24.150: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.311000, pressLevel=0.803519
00000020 18/1/2022 11:36:24.166: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-325
00000020 18/1/2022 11:36:24.166: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.325000, pressLevel=0.817204
00000080 18/1/2022 11:36:24.167: SendMouseAxisOrWheelEvent: MouseX=0, MouseY=0, VScroll=-1, HScroll=0, Buttons Mask Change=0x0, Buttons Status=0x0 
00000020 18/1/2022 11:36:24.182: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-330
00000020 18/1/2022 11:36:24.182: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.330000, pressLevel=0.822092
00000020 18/1/2022 11:36:24.199: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-334
00000020 18/1/2022 11:36:24.199: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.334000, pressLevel=0.826002
00000020 18/1/2022 11:36:24.215: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-336
00000020 18/1/2022 11:36:24.215: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.336000, pressLevel=0.827957
00000080 18/1/2022 11:36:24.216: SendMouseAxisOrWheelEvent: MouseX=0, MouseY=0, VScroll=-1, HScroll=0, Buttons Mask Change=0x0, Buttons Status=0x0 
00000020 18/1/2022 11:36:24.231: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-342
00000020 18/1/2022 11:36:24.231: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.342000, pressLevel=0.833822
00000020 18/1/2022 11:36:24.247: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-353
00000020 18/1/2022 11:36:24.247: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.353000, pressLevel=0.844575
00000080 18/1/2022 11:36:24.248: SendMouseAxisOrWheelEvent: MouseX=0, MouseY=0, VScroll=-1, HScroll=0, Buttons Mask Change=0x0, Buttons Status=0x0 
00000020 18/1/2022 11:36:24.263: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-359
00000020 18/1/2022 11:36:24.263: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.359000, pressLevel=0.850440
00000020 18/1/2022 11:36:24.279: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-365
00000020 18/1/2022 11:36:24.279: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.365000, pressLevel=0.856305
00000020 18/1/2022 11:36:24.295: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-369
00000020 18/1/2022 11:36:24.295: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.369000, pressLevel=0.860215
00000080 18/1/2022 11:36:24.296: SendMouseAxisOrWheelEvent: MouseX=0, MouseY=0, VScroll=-1, HScroll=0, Buttons Mask Change=0x0, Buttons Status=0x0 
00000020 18/1/2022 11:36:24.311: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-371
00000020 18/1/2022 11:36:24.311: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.371000, pressLevel=0.862170
00000020 18/1/2022 11:36:24.327: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-372
00000020 18/1/2022 11:36:24.327: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.372000, pressLevel=0.863148
00000020 18/1/2022 11:36:24.343: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-378
00000020 18/1/2022 11:36:24.343: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.378000, pressLevel=0.869013
00000080 18/1/2022 11:36:24.344: SendMouseAxisOrWheelEvent: MouseX=0, MouseY=0, VScroll=-1, HScroll=0, Buttons Mask Change=0x0, Buttons Status=0x0 
00000020 18/1/2022 11:36:24.358: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-385
00000020 18/1/2022 11:36:24.358: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.385000, pressLevel=0.875855
00000020 18/1/2022 11:36:24.375: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-389
00000020 18/1/2022 11:36:24.375: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.389000, pressLevel=0.879765
00000020 18/1/2022 11:36:24.391: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-391
00000020 18/1/2022 11:36:24.391: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.391000, pressLevel=0.881720
00000080 18/1/2022 11:36:24.392: SendMouseAxisOrWheelEvent: MouseX=0, MouseY=0, VScroll=-1, HScroll=0, Buttons Mask Change=0x0, Buttons Status=0x0 
00000020 18/1/2022 11:36:24.407: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-393
00000020 18/1/2022 11:36:24.407: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.393000, pressLevel=0.883675
00000020 18/1/2022 11:36:24.423: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-390
00000020 18/1/2022 11:36:24.423: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.390000, pressLevel=0.880743
00000080 18/1/2022 11:36:24.424: SendMouseAxisOrWheelEvent: MouseX=0, MouseY=0, VScroll=-1, HScroll=0, Buttons Mask Change=0x0, Buttons Status=0x0 
00000020 18/1/2022 11:36:24.439: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-385
00000020 18/1/2022 11:36:24.439: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.385000, pressLevel=0.875855
00000020 18/1/2022 11:36:24.455: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-375
00000020 18/1/2022 11:36:24.455: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.375000, pressLevel=0.866080
00000020 18/1/2022 11:36:24.471: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-353
00000020 18/1/2022 11:36:24.471: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.353000, pressLevel=0.844575
00000080 18/1/2022 11:36:24.471: SendMouseAxisOrWheelEvent: MouseX=0, MouseY=0, VScroll=-1, HScroll=0, Buttons Mask Change=0x0, Buttons Status=0x0 
00000020 18/1/2022 11:36:24.486: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-298
00000020 18/1/2022 11:36:24.487: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.298000, pressLevel=0.790811
00000020 18/1/2022 11:36:24.503: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-174
00000020 18/1/2022 11:36:24.503: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.174000, pressLevel=0.669599
00000020 18/1/2022 11:36:24.518: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-84
00000020 18/1/2022 11:36:24.519: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.084000, pressLevel=0.581623
00000020 18/1/2022 11:36:24.535: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=-18
00000020 18/1/2022 11:36:24.535: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=-0.018000, pressLevel=0.517107
00000004 18/1/2022 11:36:24.551: Device: \\?\HID#VID_046D&PID_C626#7&2149FD23&0&0000#{4D1E55B2-F16F-11CF-88CB-001111000030}: EPS mean=62.500406, standardDeviation=0.070916
00000020 18/1/2022 11:36:24.551: KMJTrans:UdTransSendEvent: KMJEvent.type=CFG_KMJ_MOUSE_AXIS_WHEEL, origActionID=HIDMultiAxis_Rx, origValue=0
00000020 18/1/2022 11:36:24.551: KMJTrans:UdTransSendEvent: HIDMouse_Wheel event, modifiers=0x4, delta=0.000000, pressLevel=0.499511
00000020 18/1/2022 11:36:24.552: KMJTrans:UdTransSendEvent: mouseWheelVertical: releasing modifiers = 0x4
00000080 18/1/2022 11:36:24.552: SendKeyRelease: releasing usageID 0xe2 (Left Alt)
Michael Hoopes
jwick
Moderator
Moderator
Posts: 3331
Joined: Wed Dec 20, 2006 2:25 pm
Location: USA
Contact:

Re: CorelDRAW panning?

Post by jwick »

The 00000080 messages are the ones to look at. These appear to be operating correctly. The Left Alt press gets sent, then a stream of VScroll events, then the Left Alt release.

I suspect it is the timing of the Left Alt press and the first VScroll event. They are right on top of each other. A delay might help the system handle them. Unfortunately, I don't have a way of letting you insert a delay between them.

It may also be the application. If it isn't reading the alt press event before it reads the mousewheel event, it won't switch to its alternate control. Sending the key press/release separately may also be exacerbating the problem.

You can try a different way of sending the events to see if it changes the behavior.
Open your %appdata%/3Dconnexion/3DxWare/Cfg/Global.xml file.
Inside the <Settings> group, add:
<KMJMechanism>SendInput</KMJMechanism>

This uses a different mechanism to tell the OS to forward the events. It may work better.

If a delay needs to be added, the driver's extension mechanism can be used to do that.
Post Reply