]> git.eshelyaron.com Git - emacs.git/commitdiff
; Improve sectioning and documentation in xterm.c
authorPo Lu <luangruo@yahoo.com>
Thu, 10 Aug 2023 06:15:03 +0000 (14:15 +0800)
committerPo Lu <luangruo@yahoo.com>
Thu, 10 Aug 2023 06:15:03 +0000 (14:15 +0800)
* src/xterm.c (x_dnd_compute_toplevels, x_dnd_get_target_window_1)
(x_dnd_get_wm_state_and_proto, xi_frame_selected_for)
(xi_convert_event_state, x_free_xi_devices)
(xi_populate_device_from_info): Improve sectioning, fill some
lines to 80 columns.  Not all lines could be filled as a result
of XCB's heretically long identifier names.

src/xterm.c

index f454733c659dd417f2c74744b59be0c8376e7fdf..6a1642ff56e2ca6ad51713498a7fbf9faa5ca442 100644 (file)
@@ -1215,6 +1215,8 @@ static void x_set_input_focus (struct x_display_info *, Window, Time);
 static void x_scroll_bar_redraw (struct scroll_bar *);
 #endif
 
+\f
+
 /* Global state maintained during a drag-and-drop operation.  */
 
 /* Flag that indicates if a drag-and-drop operation is in progress.  */
@@ -1543,6 +1545,8 @@ static struct x_client_list_window *x_dnd_toplevels;
    for `x_dnd_toplevels' to work.  */
 static bool x_dnd_use_toplevels;
 
+\f
+
 /* Motif drag-and-drop protocol support.  */
 
 /* Pointer to a variable which stores whether or not an X error
@@ -2914,6 +2918,11 @@ x_dnd_send_xm_leave_for_drop (struct x_display_info *dpyinfo,
                                     wdesc, &lmsg);
 }
 
+\f
+
+/* Drag-and-drop and XDND protocol primitives employed by the event
+   loop.  */
+
 static void
 x_dnd_free_toplevels (bool display_alive)
 {
@@ -3259,9 +3268,10 @@ x_dnd_compute_toplevels (struct x_display_info *dpyinfo)
       if (!xm_property_reply)
        free (error);
 
-      extent_property_reply = xcb_get_property_reply (dpyinfo->xcb_connection,
-                                                     extent_property_cookies[i],
-                                                     &error);
+      extent_property_reply
+       = xcb_get_property_reply (dpyinfo->xcb_connection,
+                                 extent_property_cookies[i],
+                                 &error);
 
       if (!extent_property_reply)
        free (error);
@@ -3342,7 +3352,8 @@ x_dnd_compute_toplevels (struct x_display_info *dpyinfo)
 #else
          if (xm_property_reply
              && xm_property_reply->format == 8
-             && xm_property_reply->type == dpyinfo->Xatom_MOTIF_DRAG_RECEIVER_INFO
+             && (xm_property_reply->type
+                 == dpyinfo->Xatom_MOTIF_DRAG_RECEIVER_INFO)
              && xcb_get_property_value_length (xm_property_reply) >= 4)
            {
              xmdata = xcb_get_property_value (xm_property_reply);
@@ -3391,9 +3402,10 @@ x_dnd_compute_toplevels (struct x_display_info *dpyinfo)
                  XFree (rects);
                }
 #else
-             bounding_rect_reply = xcb_shape_get_rectangles_reply (dpyinfo->xcb_connection,
-                                                                   bounding_rect_cookies[i],
-                                                                   &error);
+             bounding_rect_reply
+               = xcb_shape_get_rectangles_reply (dpyinfo->xcb_connection,
+                                                 bounding_rect_cookies[i],
+                                                 &error);
 
              if (bounding_rect_reply)
                {
@@ -3404,7 +3416,8 @@ x_dnd_compute_toplevels (struct x_display_info *dpyinfo)
                                                 * sizeof *tem->bounding_rects);
                  tem->n_bounding_rects = 0;
 
-                 for (; bounding_rect_iterator.rem; xcb_rectangle_next (&bounding_rect_iterator))
+                 for (; bounding_rect_iterator.rem;
+                      xcb_rectangle_next (&bounding_rect_iterator))
                    {
                      tem->bounding_rects[tem->n_bounding_rects].x
                        = bounding_rect_iterator.data->x;
@@ -3429,9 +3442,10 @@ x_dnd_compute_toplevels (struct x_display_info *dpyinfo)
                  || (dpyinfo->xshape_major == 1
                      && dpyinfo->xshape_minor >= 1))
                {
-                 input_rect_reply = xcb_shape_get_rectangles_reply (dpyinfo->xcb_connection,
-                                                                    input_rect_cookies[i],
-                                                                    &error);
+                 input_rect_reply
+                   = xcb_shape_get_rectangles_reply (dpyinfo->xcb_connection,
+                                                     input_rect_cookies[i],
+                                                     &error);
 
                  if (input_rect_reply)
                    {
@@ -3442,7 +3456,8 @@ x_dnd_compute_toplevels (struct x_display_info *dpyinfo)
                                                  * sizeof *tem->input_rects);
                      tem->n_input_rects = 0;
 
-                     for (; input_rect_iterator.rem; xcb_rectangle_next (&input_rect_iterator))
+                     for (; input_rect_iterator.rem;
+                          xcb_rectangle_next (&input_rect_iterator))
                        {
                          tem->input_rects[tem->n_input_rects].x
                            = input_rect_iterator.data->x;
@@ -3509,17 +3524,25 @@ x_dnd_compute_toplevels (struct x_display_info *dpyinfo)
          if (tem->n_input_rects == -1
              && tem->n_bounding_rects == 1
 #ifdef USE_XCB
-             && tem->bounding_rects[0].width == (geometry_reply->width
-                                                 + geometry_reply->border_width)
-             && tem->bounding_rects[0].height == (geometry_reply->height
-                                                  + geometry_reply->border_width)
-             && tem->bounding_rects[0].x == -geometry_reply->border_width
-             && tem->bounding_rects[0].y == -geometry_reply->border_width
+             && (tem->bounding_rects[0].width
+                 == (geometry_reply->width
+                     + geometry_reply->border_width))
+             && (tem->bounding_rects[0].height
+                 == (geometry_reply->height
+                     + geometry_reply->border_width))
+             && (tem->bounding_rects[0].x
+                 == -geometry_reply->border_width)
+             && (tem->bounding_rects[0].y
+                 == -geometry_reply->border_width)
 #else
-             && tem->bounding_rects[0].width == attrs.width + attrs.border_width
-             && tem->bounding_rects[0].height == attrs.height + attrs.border_width
-             && tem->bounding_rects[0].x == -attrs.border_width
-             && tem->bounding_rects[0].y == -attrs.border_width
+             && (tem->bounding_rects[0].width
+                 == attrs.width + attrs.border_width)
+             && (tem->bounding_rects[0].height
+                 == attrs.height + attrs.border_width)
+             && (tem->bounding_rects[0].x
+                 == -attrs.border_width)
+             && (tem->bounding_rects[0].y
+                 == -attrs.border_width)
 #endif
              )
            {
@@ -3542,9 +3565,10 @@ x_dnd_compute_toplevels (struct x_display_info *dpyinfo)
 #ifdef HAVE_XCB_SHAPE
          if (dpyinfo->xshape_supported_p)
            {
-             bounding_rect_reply = xcb_shape_get_rectangles_reply (dpyinfo->xcb_connection,
-                                                                   bounding_rect_cookies[i],
-                                                                   &error);
+             bounding_rect_reply
+               = xcb_shape_get_rectangles_reply (dpyinfo->xcb_connection,
+                                                 bounding_rect_cookies[i],
+                                                 &error);
 
              if (bounding_rect_reply)
                free (bounding_rect_reply);
@@ -3559,9 +3583,10 @@ x_dnd_compute_toplevels (struct x_display_info *dpyinfo)
                  || (dpyinfo->xshape_major == 1
                      && dpyinfo->xshape_minor >= 1)))
            {
-             input_rect_reply = xcb_shape_get_rectangles_reply (dpyinfo->xcb_connection,
-                                                                input_rect_cookies[i],
-                                                                &error);
+             input_rect_reply
+               = xcb_shape_get_rectangles_reply (dpyinfo->xcb_connection,
+                                                 input_rect_cookies[i],
+                                                 &error);
 
              if (input_rect_reply)
                free (input_rect_reply);
@@ -3784,8 +3809,10 @@ x_dnd_get_target_window_1 (struct x_display_info *dpyinfo,
              if (tem->n_input_rects == -1
                  || x_dnd_get_target_window_2 (tem->input_rects,
                                                tem->n_input_rects,
-                                               tem->border_width + root_x - tem->x,
-                                               tem->border_width + root_y - tem->y))
+                                               (tem->border_width
+                                                + root_x - tem->x),
+                                               (tem->border_width
+                                                + root_y - tem->y)))
                {
                  chosen = tem;
                  break;
@@ -3872,11 +3899,12 @@ x_dnd_get_wm_state_and_proto (struct x_display_info *dpyinfo,
                                        (xcb_window_t) window,
                                        (xcb_atom_t) dpyinfo->Xatom_XdndProxy,
                                        XA_WINDOW, 0, 1);
-  xm_style_cookie = xcb_get_property (dpyinfo->xcb_connection, 0,
-                                     (xcb_window_t) window,
-                                     (xcb_atom_t) dpyinfo->Xatom_MOTIF_DRAG_RECEIVER_INFO,
-                                     (xcb_atom_t) dpyinfo->Xatom_MOTIF_DRAG_RECEIVER_INFO,
-                                     0, 4);
+  xm_style_cookie
+    = xcb_get_property (dpyinfo->xcb_connection, 0,
+                       (xcb_window_t) window,
+                       (xcb_atom_t) dpyinfo->Xatom_MOTIF_DRAG_RECEIVER_INFO,
+                       (xcb_atom_t) dpyinfo->Xatom_MOTIF_DRAG_RECEIVER_INFO,
+                       0, 4);
 
   reply = xcb_get_property_reply (dpyinfo->xcb_connection,
                                  wmstate_cookie, &error);
@@ -4920,6 +4948,11 @@ x_dnd_cleanup_drag_and_drop (void *frame)
   x_restore_events_after_dnd (f, &x_dnd_old_window_attrs);
 }
 
+\f
+
+/* Primitives for simplified drag-and-drop tracking when items are
+   being dragged between frames comprising the same Emacs session.  */
+
 static void
 x_dnd_note_self_position (struct x_display_info *dpyinfo, Window target,
                          unsigned short root_x, unsigned short root_y)
@@ -5050,6 +5083,10 @@ x_dnd_note_self_drop (struct x_display_info *dpyinfo, Window target,
   kbd_buffer_store_event (&ie);
 }
 
+\f
+
+/* Miscellaneous X event and graphics extension functions.  */
+
 /* Flush display of frame F.  */
 
 static void
@@ -5134,28 +5171,9 @@ record_event (char *locus, int type)
 
 #endif
 
-#ifdef HAVE_XINPUT2
-bool
-xi_frame_selected_for (struct frame *f, unsigned long event)
-{
-  XIEventMask *masks;
-  int i;
-
-  masks = FRAME_X_OUTPUT (f)->xi_masks;
-
-  if (!masks)
-    return false;
-
-  for (i = 0; i < FRAME_X_OUTPUT (f)->num_xi_masks; ++i)
-    {
-      if (masks[i].mask_len >= XIMaskLen (event)
-         && XIMaskIsSet (masks[i].mask, event))
-       return true;
-    }
+\f
 
-  return false;
-}
-#endif
+/* Miscelaneous event handling functions.  */
 
 static void
 x_toolkit_position (struct frame *f, int x, int y,
@@ -5300,10 +5318,36 @@ x_extension_initialize (struct x_display_info *dpyinfo)
 
 #endif /* HAVE_CAIRO */
 
+\f
+
+/* X input extension device and event mask management functions.  */
+
 #ifdef HAVE_XINPUT2
 
+bool
+xi_frame_selected_for (struct frame *f, unsigned long event)
+{
+  XIEventMask *masks;
+  int i;
+
+  masks = FRAME_X_OUTPUT (f)->xi_masks;
+
+  if (!masks)
+    return false;
+
+  for (i = 0; i < FRAME_X_OUTPUT (f)->num_xi_masks; ++i)
+    {
+      if (masks[i].mask_len >= XIMaskLen (event)
+         && XIMaskIsSet (masks[i].mask, event))
+       return true;
+    }
+
+  return false;
+}
+
 /* Convert XI2 button state IN to a standard X button modifier
    mask, and place it in OUT.  */
+
 static void
 xi_convert_button_state (XIButtonState *in, unsigned int *out)
 {
@@ -5325,7 +5369,7 @@ xi_convert_button_state (XIButtonState *in, unsigned int *out)
 
 #ifdef USE_GTK
 static
-#endif
+#endif /* USE_GTK */
 unsigned int
 xi_convert_event_state (XIDeviceEvent *xev)
 {
@@ -5351,12 +5395,13 @@ xi_convert_event_keyboard_state (XIDeviceEvent *xev)
 }
 
 /* Free all XI2 devices on DPYINFO.  */
+
 static void
 x_free_xi_devices (struct x_display_info *dpyinfo)
 {
 #ifdef HAVE_XINPUT2_2
   struct xi_touch_point_t *tem, *last;
-#endif
+#endif /* HAVE_XINPUT2_2 */
 
   block_input ();
 
@@ -5366,7 +5411,7 @@ x_free_xi_devices (struct x_display_info *dpyinfo)
        {
 #ifdef HAVE_XINPUT2_1
          xfree (dpyinfo->devices[i].valuators);
-#endif
+#endif /* HAVE_XINPUT2_1 */
 
 #ifdef HAVE_XINPUT2_2
          tem = dpyinfo->devices[i].touchpoints;
@@ -5376,7 +5421,7 @@ x_free_xi_devices (struct x_display_info *dpyinfo)
              tem = tem->next;
              xfree (last);
            }
-#endif
+#endif /* HAVE_XINPUT2_2 */
        }
 
       xfree (dpyinfo->devices);
@@ -5441,7 +5486,7 @@ xi_populate_scroll_valuator (struct xi_device_t *device,
   valuator->number = info->number;
 }
 
-#endif
+#endif /* HAVE_XINPUT2_1 */
 
 static void
 xi_populate_device_from_info (struct x_display_info *dpyinfo,
@@ -5453,14 +5498,14 @@ xi_populate_device_from_info (struct x_display_info *dpyinfo,
   int actual_valuator_count, c;
   XIScrollClassInfo *info;
   XIValuatorClassInfo *valuator_info;
-#endif
+#endif /* HAVE_XINPUT2_1 */
 #ifdef HAVE_XINPUT2_2
   XITouchClassInfo *touch_info;
-#endif
+#endif /* HAVE_XINPUT2_2 */
 
 #ifdef HAVE_XINPUT2_1
   USE_SAFE_ALLOCA;
-#endif
+#endif /* HAVE_XINPUT2_1 */
 
   /* Initialize generic information about the device: its ID, which
      buttons are currently pressed and thus presumably actively
@@ -5917,8 +5962,12 @@ xi_reset_scroll_valuators_for_device_id (struct x_display_info *dpyinfo,
 }
 
 #endif /* HAVE_XINPUT2_1 */
+#endif /* HAVE_XINPUT2 */
 
-#endif
+\f
+
+/* Cairo context, X rendering extension, and GC auxiliary data
+   management functions.  */
 
 #ifdef USE_CAIRO
 
@@ -6404,6 +6453,7 @@ x_cr_export_frames (Lisp_Object frames, cairo_surface_type_t surface_type)
 #endif /* USE_CAIRO */
 
 #if defined HAVE_XRENDER
+
 void
 x_xr_apply_ext_clip (struct frame *f, GC gc)
 {
@@ -6427,7 +6477,8 @@ x_xr_reset_ext_clip (struct frame *f)
                        FRAME_X_PICTURE (f),
                        CPClipMask, &attrs);
 }
-#endif
+
+#endif /* HAVE_XRENDER */
 
 static void
 x_set_clip_rectangles (struct frame *f, GC gc, XRectangle *rectangles, int n)
@@ -6631,6 +6682,9 @@ x_fill_rectangle (struct frame *f, GC gc, int x, int y, int width, int height,
 #endif
 }
 
+\f
+
+/* Graphics primitives.  */
 
 static void
 x_clear_rectangle (struct frame *f, GC gc, int x, int y, int width, int height,
@@ -6923,6 +6977,8 @@ x_set_frame_alpha (struct frame *f)
   x_stop_ignoring_errors (dpyinfo);
 }
 
+\f
+
 /***********************************************************************
                    Starting and ending an update
  ***********************************************************************/
@@ -7618,6 +7674,8 @@ XTbuffer_flipping_unblocked_hook (struct frame *f)
 }
 #endif
 
+\f
+
 /**
  * x_clear_under_internal_border:
  *