diff --git a/uppsrc/Turtle/Event.cpp b/uppsrc/Turtle/Event.cpp index 885a7784e..e1ff4eb28 100644 --- a/uppsrc/Turtle/Event.cpp +++ b/uppsrc/Turtle/Event.cpp @@ -36,7 +36,7 @@ bool TurtleServer::ProcessEvent(bool *quit) try { - if(p.Id("I")) + if(p.Id("i")) { ResetImageCache(); } @@ -56,9 +56,15 @@ bool TurtleServer::ProcessEvent(bool *quit) MouseWheel(p); } else + if(p.Id("I")) + { + mousein = true; + } + else if(p.Id("O")) { mousebuttons = 0; + mousein = false; } else if(p.Id("D")) diff --git a/uppsrc/Turtle/Init.cpp b/uppsrc/Turtle/Init.cpp index f624e051a..b73e5bcb5 100644 --- a/uppsrc/Turtle/Init.cpp +++ b/uppsrc/Turtle/Init.cpp @@ -13,6 +13,7 @@ bool TurtleServer::debugmode; WebSocket TurtleServer::websocket; int TurtleServer::mainpid; bool TurtleServer::quit; +bool TurtleServer::mousein; dword TurtleServer::mousebuttons = 0; dword TurtleServer::modifierkeys = 0; Size TurtleServer::desktopsize = Size(1024, 1024); diff --git a/uppsrc/Turtle/Turtle.h b/uppsrc/Turtle/Turtle.h index f33b7800e..58f3d73ee 100644 --- a/uppsrc/Turtle/Turtle.h +++ b/uppsrc/Turtle/Turtle.h @@ -27,7 +27,7 @@ private: virtual Size GetSize() { return desktopsize; } virtual dword GetMouseButtons() { return mousebuttons; } virtual dword GetModKeys() { return modifierkeys; } - virtual bool IsMouseIn() { return true; } + virtual bool IsMouseIn() { return mousein; } virtual bool ProcessEvent(bool *quit); virtual void WaitEvent(int ms); virtual bool IsWaitingEvent(); @@ -145,6 +145,7 @@ private: static String ip; static int connection_limit; static bool debugmode; + static bool mousein; public: // Statistics. diff --git a/uppsrc/Turtle/Turtle.html b/uppsrc/Turtle/Turtle.html index 2e67e5a00..224a86fde 100644 --- a/uppsrc/Turtle/Turtle.html +++ b/uppsrc/Turtle/Turtle.html @@ -426,7 +426,7 @@ function SRect(p, sx, sy) window.img_cache = {}; -window.event_queue = "I\n"; +window.event_queue = "i\n"; window.cursor_cache = {}; window.update_serial_l = 0; window.update_serial_h = 0; @@ -464,6 +464,13 @@ canvas.onmouseout = function(event) event.preventDefault(); } +canvas.onmouseover = function(event) +{ + event_queue += "I\n"; + ScheduleSend(); + event.preventDefault(); +} + canvas.onmouseup = function(event) { event_queue += "U " + event.button + mouse_event(event);