]> source.dussan.org Git - tigervnc.git/commitdiff
Better type for pointer button mask
authorPierre Ossman <ossman@cendio.se>
Sat, 25 Feb 2023 14:16:18 +0000 (15:16 +0100)
committerPierre Ossman <ossman@cendio.se>
Mon, 12 Aug 2024 14:46:15 +0000 (16:46 +0200)
This is a very limited bit field, so use an 8 bit type to clearly show
how many bits are available.

22 files changed:
common/rfb/CMsgWriter.cxx
common/rfb/CMsgWriter.h
common/rfb/SDesktop.h
common/rfb/SMsgHandler.cxx
common/rfb/SMsgHandler.h
common/rfb/VNCSConnectionST.cxx
common/rfb/VNCSConnectionST.h
common/rfb/VNCServerST.cxx
common/rfb/VNCServerST.h
tests/unit/emulatemb.cxx
unix/x0vncserver/XDesktop.cxx
unix/x0vncserver/XDesktop.h
unix/xserver/hw/vnc/XserverDesktop.cc
unix/xserver/hw/vnc/XserverDesktop.h
vncviewer/EmulateMB.cxx
vncviewer/EmulateMB.h
vncviewer/Viewport.cxx
vncviewer/Viewport.h
win/rfb_win32/SDisplay.cxx
win/rfb_win32/SDisplay.h
win/rfb_win32/SInput.cxx
win/rfb_win32/SInput.h

index 7d757968012ec96fcb2948fdf56c93795de84e10..1bd8040f7ab478a1d4eef2155e939df0b27db760 100644 (file)
@@ -173,7 +173,7 @@ void CMsgWriter::writeKeyEvent(uint32_t keysym, uint32_t keycode, bool down)
 }
 
 
-void CMsgWriter::writePointerEvent(const Point& pos, int buttonMask)
+void CMsgWriter::writePointerEvent(const Point& pos, uint8_t buttonMask)
 {
   Point p(pos);
   if (p.x < 0) p.x = 0;
index 1b70a1d011de6a696d7de71a4edb56d32846e136..61df567f1bc668daa15bcf9bdcf77c9a32fc8941 100644 (file)
@@ -54,7 +54,7 @@ namespace rfb {
     void writeFence(uint32_t flags, unsigned len, const uint8_t data[]);
 
     void writeKeyEvent(uint32_t keysym, uint32_t keycode, bool down);
-    void writePointerEvent(const Point& pos, int buttonMask);
+    void writePointerEvent(const Point& pos, uint8_t buttonMask);
 
     void writeClientCutText(const char* str);
 
index bcdee93c935001a372b897e24643adac2cacf272..1d3c325fd3f6d1e741528a58bf552a6accdd6da7 100644 (file)
@@ -98,7 +98,7 @@ namespace rfb {
     // pointerEvent() is called whenever a client sends an event that
     // the pointer moved, or a button was pressed or released.
     virtual void pointerEvent(const Point& /*pos*/,
-                              int /*buttonMask*/) {};
+                              uint8_t /*buttonMask*/) {};
 
     // handleClipboardRequest() is called whenever a client requests
     // the server to send over its clipboard data. It will only be
index a5f1b7cff51bca7a1dea9f27c43ef34152ddb801..03917926e1bf2a2e07662acf0a08a8bdc0ebc487 100644 (file)
@@ -80,7 +80,7 @@ void SMsgHandler::keyEvent(uint32_t /*keysym*/, uint32_t /*keycode*/,
 }
 
 void SMsgHandler::pointerEvent(const Point& /*pos*/,
-                               int /*buttonMask*/)
+                               uint8_t /*buttonMask*/)
 {
 }
 
index de14d626325edf438aa3325e6c1c0fe97aae4fe2..cff8b1bdeb163a83c8d1b001ddf7332492e226ca 100644 (file)
@@ -57,7 +57,7 @@ namespace rfb {
     virtual void keyEvent(uint32_t keysym, uint32_t keycode,
                           bool down);
     virtual void pointerEvent(const Point& pos,
-                              int buttonMask);
+                              uint8_t buttonMask);
 
     virtual void clientCutText(const char* str);
 
index d20da8cb61cd1676127e4d59b22800bebeb1743a..bc036004bef2b45733f8eae7bfeeae97e7f56d10 100644 (file)
@@ -477,7 +477,7 @@ void VNCSConnectionST::setPixelFormat(const PixelFormat& pf)
   setCursor();
 }
 
-void VNCSConnectionST::pointerEvent(const Point& pos, int buttonMask)
+void VNCSConnectionST::pointerEvent(const Point& pos, uint8_t buttonMask)
 {
   if (rfb::Server::idleTimeout)
     idleTimer.start(secsToMillis(rfb::Server::idleTimeout));
index e9badd72c5f9be578c40c311bcefcde67d09d383..d857ef323a85d07565da5ec85b1618ed2d6b157f 100644 (file)
@@ -123,7 +123,7 @@ namespace rfb {
     void queryConnection(const char* userName) override;
     void clientInit(bool shared) override;
     void setPixelFormat(const PixelFormat& pf) override;
-    void pointerEvent(const Point& pos, int buttonMask) override;
+    void pointerEvent(const Point& pos, uint8_t buttonMask) override;
     void keyEvent(uint32_t keysym, uint32_t keycode,
                   bool down) override;
     void framebufferUpdateRequest(const Rect& r,
index 705f7df25470c7152761b9324711aebc36d3b22d..114ff347752548cad9cf97d2ed484055c8f48dec 100644 (file)
@@ -482,7 +482,7 @@ void VNCServerST::keyEvent(uint32_t keysym, uint32_t keycode, bool down)
 }
 
 void VNCServerST::pointerEvent(VNCSConnectionST* client,
-                               const Point& pos, int buttonMask)
+                               const Point& pos, uint8_t buttonMask)
 {
   time_t now = time(nullptr);
   if (rfb::Server::maxIdleTime)
index 501882aad6299020001a3db2d8e8a5789c98f330..6cc75a68fb0ea15898f2a1cede8d8c025b151cdc 100644 (file)
@@ -117,7 +117,7 @@ namespace rfb {
 
     // Event handlers
     void keyEvent(uint32_t keysym, uint32_t keycode, bool down);
-    void pointerEvent(VNCSConnectionST* client, const Point& pos, int buttonMask);
+    void pointerEvent(VNCSConnectionST* client, const Point& pos, uint8_t buttonMask);
 
     void handleClipboardRequest(VNCSConnectionST* client);
     void handleClipboardAnnounce(VNCSConnectionST* client, bool available);
index 662eedef5e8e8d611823f71a5d2a64cce534a8f5..ae022c066ce4a16ede2d376ac6bcfce7ca6e1f7d 100644 (file)
@@ -42,14 +42,14 @@ rfb::BoolParameter emulateMiddleButton("dummy_name", "dummy_desc", true);
 class TestClass : public EmulateMB
 {
 public:
-  void sendPointerEvent(const rfb::Point& pos, int buttonMask) override;
+  void sendPointerEvent(const rfb::Point& pos, uint8_t buttonMask) override;
 
-  struct PointerEventParams {rfb::Point pos; int mask; };
+  struct PointerEventParams {rfb::Point pos; uint8_t mask; };
 
   std::vector<PointerEventParams> results;
 };
 
-void TestClass::sendPointerEvent(const rfb::Point& pos, int buttonMask)
+void TestClass::sendPointerEvent(const rfb::Point& pos, uint8_t buttonMask)
 {
   PointerEventParams params;
   params.pos = pos;
index 24cba0dfdea08bbec4495ebe7f7b09fa24937228..29af059f16152f510578c9039cb53b0eefcdf510 100644 (file)
@@ -342,7 +342,7 @@ void XDesktop::queryConnection(network::Socket* sock,
   queryConnectDialog->map();
 }
 
-void XDesktop::pointerEvent(const Point& pos, int buttonMask) {
+void XDesktop::pointerEvent(const Point& pos, uint8_t buttonMask) {
 #ifdef HAVE_XTEST
   if (!haveXtest) return;
   XTestFakeMotionEvent(dpy, DefaultScreen(dpy),
index e952fba960aa8fdbfe4ceaac66aad683a684d39e..cf374fb9ba7c845a7e8e0f1b7bc4a96d5764b7be 100644 (file)
@@ -60,7 +60,7 @@ public:
   bool isRunning();
   void queryConnection(network::Socket* sock,
                        const char* userName) override;
-  void pointerEvent(const rfb::Point& pos, int buttonMask) override;
+  void pointerEvent(const rfb::Point& pos, uint8_t buttonMask) override;
   void keyEvent(uint32_t keysym, uint32_t xtcode, bool down) override;
   unsigned int setScreenLayout(int fb_width, int fb_height,
                                const rfb::ScreenSet& layout) override;
@@ -79,7 +79,7 @@ protected:
   rfb::VNCServer* server;
   QueryConnectDialog* queryConnectDialog;
   network::Socket* queryConnectSock;
-  int oldButtonMask;
+  uint8_t oldButtonMask;
   bool haveXtest;
   bool haveDamage;
   int maxButtons;
index 0c2b5bf99c0d0cc742121985c6c69770d0f72d11..e3bc57d870b4c82da616e7f194e6a8772fcce76f 100644 (file)
@@ -463,7 +463,7 @@ void XserverDesktop::terminate()
   kill(getpid(), SIGTERM);
 }
 
-void XserverDesktop::pointerEvent(const Point& pos, int buttonMask)
+void XserverDesktop::pointerEvent(const Point& pos, uint8_t buttonMask)
 {
   vncPointerMove(pos.x + vncGetScreenX(screenIndex),
                  pos.y + vncGetScreenY(screenIndex));
index 3b0f869fb2c7f0d97f3a45d5b45e19839eecb42f..d287b72f2d35e88b012c7012c373f41346f35c60 100644 (file)
@@ -95,7 +95,7 @@ public:
   void terminate() override;
   void queryConnection(network::Socket* sock,
                        const char* userName) override;
-  void pointerEvent(const rfb::Point& pos, int buttonMask) override;
+  void pointerEvent(const rfb::Point& pos, uint8_t buttonMask) override;
   void keyEvent(uint32_t keysym, uint32_t keycode, bool down) override;
   unsigned int setScreenLayout(int fb_width, int fb_height,
                                const rfb::ScreenSet& layout) override;
index cc680df43e3b371ab898935296ad7e5a6e97e725..fef8b3d90ea9f3d5164f74bb0953bd9eb44fff56 100644 (file)
@@ -199,7 +199,7 @@ EmulateMB::EmulateMB()
 {
 }
 
-void EmulateMB::filterPointerEvent(const rfb::Point& pos, int buttonMask)
+void EmulateMB::filterPointerEvent(const rfb::Point& pos, uint8_t buttonMask)
 {
   int btstate;
   int action1, action2;
@@ -280,7 +280,7 @@ void EmulateMB::filterPointerEvent(const rfb::Point& pos, int buttonMask)
 void EmulateMB::handleTimeout(rfb::Timer *t)
 {
   int action1, action2;
-  int buttonMask;
+  uint8_t buttonMask;
 
   if (&timer != t)
     return;
@@ -312,7 +312,7 @@ void EmulateMB::handleTimeout(rfb::Timer *t)
   state = stateTab[state][4][2];
 }
 
-void EmulateMB::sendAction(const rfb::Point& pos, int buttonMask, int action)
+void EmulateMB::sendAction(const rfb::Point& pos, uint8_t buttonMask, int action)
 {
   assert(action != 0);
 
@@ -325,7 +325,7 @@ void EmulateMB::sendAction(const rfb::Point& pos, int buttonMask, int action)
   sendPointerEvent(pos, buttonMask);
 }
 
-int EmulateMB::createButtonMask(int buttonMask)
+int EmulateMB::createButtonMask(uint8_t buttonMask)
 {
   // Unset left and right buttons in the mask
   buttonMask &= ~0x5;
index caf3c32a22a5c831dd7b2602462510f6bf145a27..1afa4881d31848baee90d6f2fc03ac444a67e4db 100644 (file)
@@ -26,22 +26,22 @@ class EmulateMB : public rfb::Timer::Callback {
 public:
   EmulateMB();
 
-  void filterPointerEvent(const rfb::Point& pos, int buttonMask);
+  void filterPointerEvent(const rfb::Point& pos, uint8_t buttonMask);
 
 protected:
-  virtual void sendPointerEvent(const rfb::Point& pos, int buttonMask)=0;
+  virtual void sendPointerEvent(const rfb::Point& pos, uint8_t buttonMask)=0;
 
   void handleTimeout(rfb::Timer *t) override;
 
 private:
-  void sendAction(const rfb::Point& pos, int buttonMask, int action);
+  void sendAction(const rfb::Point& pos, uint8_t buttonMask, int action);
 
-  int createButtonMask(int buttonMask);
+  int createButtonMask(uint8_t buttonMask);
 
 private:
   int state;
-  int emulatedButtonMask;
-  int lastButtonMask;
+  uint8_t emulatedButtonMask;
+  uint8_t lastButtonMask;
   rfb::Point lastPos, origPos;
   rfb::Timer timer;
 };
index 032fd32217f69f02ea69d4e3bac0a06ce401fce2..b0778505c381b6ba5684c7d9380bba74caa4335e 100644 (file)
@@ -660,7 +660,7 @@ int Viewport::handle(int event)
   return Fl_Widget::handle(event);
 }
 
-void Viewport::sendPointerEvent(const rfb::Point& pos, int buttonMask)
+void Viewport::sendPointerEvent(const rfb::Point& pos, uint8_t buttonMask)
 {
   if (viewOnly)
       return;
@@ -790,7 +790,7 @@ void Viewport::flushPendingClipboard()
 }
 
 
-void Viewport::handlePointerEvent(const rfb::Point& pos, int buttonMask)
+void Viewport::handlePointerEvent(const rfb::Point& pos, uint8_t buttonMask)
 {
   filterPointerEvent(pos, buttonMask);
 }
index d936c7089842bb3e6d43232023fec4668191784e..5f4c1ca7f169fc78da3274bcb242e61b1be2cfe7 100644 (file)
@@ -70,7 +70,7 @@ public:
   int handle(int event) override;
 
 protected:
-  void sendPointerEvent(const rfb::Point& pos, int buttonMask) override;
+  void sendPointerEvent(const rfb::Point& pos, uint8_t buttonMask) override;
 
 private:
   bool hasFocus();
@@ -81,7 +81,7 @@ private:
 
   void flushPendingClipboard();
 
-  void handlePointerEvent(const rfb::Point& pos, int buttonMask);
+  void handlePointerEvent(const rfb::Point& pos, uint8_t buttonMask);
   static void handlePointerTimeout(void *data);
 
   void resetKeyboard();
@@ -111,7 +111,7 @@ private:
   PlatformPixelBuffer* frameBuffer;
 
   rfb::Point lastPointerPos;
-  int lastButtonMask;
+  uint8_t lastButtonMask;
 
   typedef std::map<int, uint32_t> DownMap;
   DownMap downKeySym;
index b1abf849f2267086231e4debde614d9ffd8c080a..0ec5e231f473c97781551362ffae6b5b5cfb61fb 100644 (file)
@@ -312,7 +312,7 @@ void SDisplay::handleClipboardData(const char* data) {
 }
 
 
-void SDisplay::pointerEvent(const Point& pos, int buttonmask) {
+void SDisplay::pointerEvent(const Point& pos, uint8_t buttonmask) {
   if (pb->getRect().contains(pos)) {
     Point screenPos = pos.translate(screenRect.tl);
     // - Check that the SDesktop doesn't need restarting
index 76780d9e03efaf54bb0da48a876b120b85f1f219..d4cf23e46f4a5ab65c473e78f8942c83a93a43a0 100644 (file)
@@ -80,7 +80,7 @@ namespace rfb {
       void handleClipboardRequest() override;
       void handleClipboardAnnounce(bool available) override;
       void handleClipboardData(const char* data) override;
-      void pointerEvent(const Point& pos, int buttonmask) override;
+      void pointerEvent(const Point& pos, uint8_t buttonmask) override;
       void keyEvent(uint32_t keysym, uint32_t keycode, bool down) override;
 
       // -=- Clipboard events
index 94df6e98ba760ce1255aab70bf1a8fd58e8189de..65d4a703c51845bec749098f36f38c3effc376cf 100644 (file)
@@ -65,7 +65,7 @@ win32::SPointer::SPointer()
 }
 
 void
-win32::SPointer::pointerEvent(const Point& pos, int buttonmask)
+win32::SPointer::pointerEvent(const Point& pos, uint8_t buttonmask)
 {
   // - We are specifying absolute coordinates
   DWORD flags = MOUSEEVENTF_ABSOLUTE;
index 9013a37e3aeac2a84ef6fe8cea9e118144c64e25..29e1df41c8aa4e99be5e2e4e34960613b803bb92 100644 (file)
@@ -44,7 +44,7 @@ namespace rfb {
       // - Create a pointer event at a the given coordinates, with the
       //   specified button state.  The event must be specified using
       //   Screen coordinates.
-      void pointerEvent(const Point& pos, int buttonmask);
+      void pointerEvent(const Point& pos, uint8_t buttonmask);
     protected:
       Point last_position;
       uint8_t last_buttonmask;