Skip to content
Snippets Groups Projects
Commit 8122b5f1 authored by Bertrand Bellenot's avatar Bertrand Bellenot
Browse files

Use better QueryPointer (the one which is working on Linux...)

parent 1770b0bd
No related branches found
No related tags found
No related merge requests found
......@@ -1754,31 +1754,33 @@ Bool_t TRootCanvas::HandleContainerKey(Event_t *event)
// handle arrow keys
if (keysym > 0x1011 && keysym < 0x1016) {
Int_t ix, iy;
Window_t dum1, dum2, wid;
UInt_t mask = 0;
Int_t mx, my;
EEventType etype = kNoEvent;
Handle_t wid = gClient->GetDefaultRoot()->GetId();
gVirtualX->QueryPointer(ix, iy);
wid = gVirtualX->GetDefaultRootWindow();
gVirtualX->QueryPointer(wid, dum1, dum2, mx, my, mx, my, mask);
switch (keysym) {
case 0x1012: // left
etype = kKeyArrowLeft;
gVirtualX->Warp(--ix, iy, wid);
gVirtualX->Warp(--mx, my, wid);
break;
case 0x1013: // up
etype = kKeyArrowLeft;
gVirtualX->Warp(ix, --iy, wid);
gVirtualX->Warp(mx, --my, wid);
break;
case 0x1014: // right
etype = kKeyArrowLeft;
gVirtualX->Warp(++ix, iy, wid);
gVirtualX->Warp(++mx, my, wid);
break;
case 0x1015: // down
etype = kKeyArrowLeft;
gVirtualX->Warp(ix, ++iy, wid);
gVirtualX->Warp(mx, ++my, wid);
break;
default:
break;
}
fCanvas->HandleInput(etype, ix, iy);
fCanvas->HandleInput(etype, mx, my);
}
else {
fCanvas->HandleInput(kKeyPress, str[0], keysym);
......
......@@ -290,31 +290,33 @@ Bool_t TRootEmbeddedCanvas::HandleContainerKey(Event_t *event)
// handle arrow keys
if (keysym > 0x1011 && keysym < 0x1016) {
Int_t ix, iy;
Window_t dum1, dum2, wid;
UInt_t mask = 0;
Int_t mx, my;
EEventType etype = kNoEvent;
Handle_t wid = gClient->GetDefaultRoot()->GetId();
gVirtualX->QueryPointer(ix, iy);
wid = gVirtualX->GetDefaultRootWindow();
gVirtualX->QueryPointer(wid, dum1, dum2, mx, my, mx, my, mask);
switch (keysym) {
case 0x1012: // left
etype = kKeyArrowLeft;
gVirtualX->Warp(--ix, iy, wid);
gVirtualX->Warp(--mx, my, wid);
break;
case 0x1013: // up
etype = kKeyArrowLeft;
gVirtualX->Warp(ix, --iy, wid);
gVirtualX->Warp(mx, --my, wid);
break;
case 0x1014: // right
etype = kKeyArrowLeft;
gVirtualX->Warp(++ix, iy, wid);
gVirtualX->Warp(++mx, my, wid);
break;
case 0x1015: // down
etype = kKeyArrowLeft;
gVirtualX->Warp(ix, ++iy, wid);
gVirtualX->Warp(mx, ++my, wid);
break;
default:
break;
}
fCanvas->HandleInput(etype, ix, iy);
fCanvas->HandleInput(etype, mx, my);
}
else {
fCanvas->HandleInput(kKeyPress, str[0], keysym);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment