emacs-diffs
[Top][All Lists]
Advanced

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

master f7dcad9: Show hand cursor when dragging frame (Bug#49247)


From: Martin Rudalics
Subject: master f7dcad9: Show hand cursor when dragging frame (Bug#49247)
Date: Mon, 5 Jul 2021 04:55:26 -0400 (EDT)

branch: master
commit f7dcad927521279cf750cbf25988671f7198bc4c
Author: Martin Rudalics <rudalics@gmx.at>
Commit: Martin Rudalics <rudalics@gmx.at>

    Show hand cursor when dragging frame (Bug#49247)
    
    * src/xdisp.c (note_mode_line_or_margin_highlight): Show hand
    cursor when dragging frame with mode, tab or header line.
    (syms_of_xdisp): Define Qdrag_with_mode_line,
    Qdrag_with_header_line and Qdrag_with_tab_line.
---
 src/xdisp.c | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/xdisp.c b/src/xdisp.c
index c30084c..8f4dfa5 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -33236,7 +33236,8 @@ note_mode_line_or_margin_highlight (Lisp_Object window, 
int x, int y,
      of the mode line without any text (e.g. past the right edge of
      the mode line text), use that windows's mode line help echo if it
      has been set.  */
-  if (STRINGP (string) || area == ON_MODE_LINE)
+  if (STRINGP (string) || area == ON_MODE_LINE || area == ON_HEADER_LINE
+      || area == ON_TAB_LINE)
     {
       /* Arrange to display the help by setting the global variables
         help_echo_string, help_echo_object, and help_echo_pos.  */
@@ -33293,6 +33294,19 @@ note_mode_line_or_margin_highlight (Lisp_Object 
window, int x, int y,
            }
          else if (draggable && area == ON_MODE_LINE)
            cursor = FRAME_OUTPUT_DATA (f)->vertical_drag_cursor;
+         else if ((area == ON_MODE_LINE
+                   && WINDOW_BOTTOMMOST_P (w)
+                   && !FRAME_HAS_MINIBUF_P (f)
+                   && !NILP (Fframe_parameter
+                             (w->frame, Qdrag_with_mode_line)))
+                  || (((area == ON_HEADER_LINE
+                        && !NILP (Fframe_parameter
+                                  (w->frame, Qdrag_with_header_line)))
+                       || (area == ON_TAB_LINE
+                           && !NILP (Fframe_parameter
+                                     (w->frame, Qdrag_with_tab_line))))
+                      && WINDOW_TOPMOST_P (w)))
+           cursor = FRAME_OUTPUT_DATA (f)->hand_cursor;
          else
            cursor = FRAME_OUTPUT_DATA (f)->nontext_cursor;
        }
@@ -34882,6 +34896,10 @@ be let-bound around code that needs to disable 
messages temporarily. */);
   DEFSYM (Qdragging, "dragging");
   DEFSYM (Qdropping, "dropping");
 
+  DEFSYM (Qdrag_with_mode_line, "drag-with-mode-line");
+  DEFSYM (Qdrag_with_header_line, "drag-with-header-line");
+  DEFSYM (Qdrag_with_tab_line, "drag-with-tab-line");
+
   DEFSYM (Qinhibit_free_realized_faces, "inhibit-free-realized-faces");
 
   list_of_error = list1 (list2 (Qerror, Qvoid_variable));



reply via email to

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