emacs-diffs
[Top][All Lists]
Advanced

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

master 976965eb5e 1/2: Reenable reporting of frame movement on NS


From: Po Lu
Subject: master 976965eb5e 1/2: Reenable reporting of frame movement on NS
Date: Tue, 6 Sep 2022 21:52:47 -0400 (EDT)

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

    Reenable reporting of frame movement on NS
    
    * src/nsterm.m ([EmacsView windowDidMove:]): Restore code to
    generate MOVE_FRAME_EVENTS, and use kbd_buffer_store_event
    instead.
---
 src/nsterm.m | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/nsterm.m b/src/nsterm.m
index 6c6151701b..d6290449b4 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -7912,22 +7912,28 @@ ns_create_font_panel_buttons (id target, SEL select, 
SEL cancel_action)
   NSRect r = [win frame];
   NSArray *screens = [NSScreen screens];
   NSScreen *screen = [screens objectAtIndex: 0];
+  struct input_event ie;
 
   NSTRACE ("[EmacsView windowDidMove:]");
 
   if (!emacsframe->output_data.ns)
     return;
+
   if (screen != nil)
     {
-      emacsframe->left_pos = NSMinX (r) - NS_PARENT_WINDOW_LEFT_POS 
(emacsframe);
-      emacsframe->top_pos = NS_PARENT_WINDOW_TOP_POS (emacsframe) - NSMaxY (r);
+      emacsframe->left_pos = (NSMinX (r)
+                             - NS_PARENT_WINDOW_LEFT_POS (emacsframe));
+      emacsframe->top_pos = (NS_PARENT_WINDOW_TOP_POS (emacsframe)
+                            - NSMaxY (r));
 
-      // FIXME: after event part below didExitFullScreen is not received
-      // if (emacs_event)
-      //   {
-      //     emacs_event->kind = MOVE_FRAME_EVENT;
-      //     EV_TRAILER ((id)nil);
-      //   }
+      if (emacs_event)
+       {
+         ie.kind = MOVE_FRAME_EVENT;
+         XSETFRAME (ie.frame_or_window, emacsframe);
+         XSETINT (ie.x, emacsframe->left_pos);
+         XSETINT (ie.y, emacsframe->top_pos);
+         kbd_buffer_store_event (&ie);
+       }
     }
 }
 



reply via email to

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