emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master d9e106c72e: Clean up Motif drag-and-drop code


From: Po Lu
Subject: master d9e106c72e: Clean up Motif drag-and-drop code
Date: Wed, 1 Jun 2022 21:03:07 -0400 (EDT)

branch: master
commit d9e106c72ee0cf7110beb6749790231b6dcca304
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Clean up Motif drag-and-drop code
    
    * src/xterm.c (enum xm_drag_operation, enum xm_drag_action)
    (enum xm_drag_reason, enum xm_drag_originator, enum xm_drag_style)
    (enum xm_drop_site_status): Turn macros into enums.
    (x_next_event_from_any_display): Fix initial value of rc.
---
 src/xterm.c | 67 +++++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 43 insertions(+), 24 deletions(-)

diff --git a/src/xterm.c b/src/xterm.c
index 33b61ba02a..f6b99e7f40 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -1367,34 +1367,50 @@ typedef struct xm_top_level_leave_message
 /* #define XM_DRAG_SIDE_EFFECT_OPERATIONS(effect)      (((effect) & 0xf00) >> 
8) */
 #define XM_DRAG_SIDE_EFFECT_DROP_ACTION(effect)        (((effect) & 0xf000) >> 
12)
 
-#define XM_DRAG_NOOP 0
-#define XM_DRAG_MOVE (1L << 0)
-#define XM_DRAG_COPY (1L << 1)
-#define XM_DRAG_LINK (1L << 2)
+enum xm_drag_operation
+  {
+    XM_DRAG_NOOP = 0,
+    XM_DRAG_MOVE = (1L << 0),
+    XM_DRAG_COPY = (1L << 1),
+    XM_DRAG_LINK = (1L << 2),
+  };
 
-#define XM_DROP_ACTION_DROP            0
-#define XM_DROP_ACTION_DROP_HELP       1
-#define XM_DROP_ACTION_DROP_CANCEL     2
+enum xm_drag_action
+  {
+    XM_DROP_ACTION_DROP               = 0,
+    XM_DROP_ACTION_DROP_HELP   = 1,
+    XM_DROP_ACTION_DROP_CANCEL = 2,
+  };
 
 #define XM_DRAG_REASON(originator, code)       ((code) | ((originator) << 7))
 #define XM_DRAG_REASON_ORIGINATOR(reason)      (((reason) & 0x80) ? 1 : 0)
 #define XM_DRAG_REASON_CODE(reason)            ((reason) & 0x7f)
 
-#define XM_DRAG_REASON_DROP_START      5
-#define XM_DRAG_REASON_TOP_LEVEL_ENTER 0
-#define XM_DRAG_REASON_TOP_LEVEL_LEAVE 1
-#define XM_DRAG_REASON_DRAG_MOTION     2
-#define XM_DRAG_ORIGINATOR_INITIATOR   0
-#define XM_DRAG_ORIGINATOR_RECEIVER    1
-
-#define XM_DRAG_STYLE_NONE             0
+enum xm_drag_reason
+  {
+    XM_DRAG_REASON_DROP_START     = 5,
+    XM_DRAG_REASON_TOP_LEVEL_ENTER = 0,
+    XM_DRAG_REASON_TOP_LEVEL_LEAVE = 1,
+    XM_DRAG_REASON_DRAG_MOTION    = 2,
+  };
 
-#define XM_DRAG_STYLE_DROP_ONLY                1
-#define XM_DRAG_STYLE_DROP_ONLY_REC    3
+enum xm_drag_originator
+  {
+    XM_DRAG_ORIGINATOR_INITIATOR = 0,
+    XM_DRAG_ORIGINATOR_RECEIVER         = 1,
+  };
 
-#define XM_DRAG_STYLE_DYNAMIC          5
-#define XM_DRAG_STYLE_DYNAMIC_REC      2
-#define XM_DRAG_STYLE_DYNAMIC_REC1     4
+enum xm_drag_style
+  {
+    /* The values ending with _REC should be treated as equivalent to
+       the ones without in messages from the receiver.  */
+    XM_DRAG_STYLE_NONE         = 0,
+    XM_DRAG_STYLE_DROP_ONLY    = 1,
+    XM_DRAG_STYLE_DROP_ONLY_REC = 3,
+    XM_DRAG_STYLE_DYNAMIC      = 5,
+    XM_DRAG_STYLE_DYNAMIC_REC  = 2,
+    XM_DRAG_STYLE_DYNAMIC_REC1 = 4,
+  };
 
 #define XM_DRAG_STYLE_IS_DROP_ONLY(n)  ((n) == XM_DRAG_STYLE_DROP_ONLY \
                                         || (n) == XM_DRAG_STYLE_DROP_ONLY_REC)
@@ -1402,9 +1418,12 @@ typedef struct xm_top_level_leave_message
                                         || (n) == XM_DRAG_STYLE_DYNAMIC_REC \
                                         || (n) == XM_DRAG_STYLE_DYNAMIC_REC1)
 
-#define XM_DROP_SITE_VALID     3
-/* #define XM_DROP_SITE_INVALID        2 */
-#define XM_DROP_SITE_NONE      1
+enum xm_drop_site_status
+  {
+    XM_DROP_SITE_VALID  = 3,
+    XM_DROP_SITE_INVALID = 2,
+    XM_DROP_SITE_NONE   = 1,
+  };
 
 /* The version of the Motif drag-and-drop protocols that Emacs
    supports.  */
@@ -10295,7 +10314,7 @@ x_next_event_from_any_display (XEvent *event)
   fd_set fds, rfds;
   int fd, maxfd, rc;
 
-  rc = 0;
+  rc = -1;
   FD_ZERO (&rfds);
 
   while (true)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]