diff options
| author | Po Lu | 2022-09-07 09:07:59 +0800 |
|---|---|---|
| committer | Po Lu | 2022-09-07 09:52:35 +0800 |
| commit | 976965eb5ed00ddc8806b2adcbd5761189823f2c (patch) | |
| tree | d92eee273106350f182c55b70cfaf7b3e4054ada /src | |
| parent | 5308a4e11e72804d6cae56b8ea13c51b3f523c51 (diff) | |
| download | emacs-976965eb5ed00ddc8806b2adcbd5761189823f2c.tar.gz emacs-976965eb5ed00ddc8806b2adcbd5761189823f2c.zip | |
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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/nsterm.m | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/nsterm.m b/src/nsterm.m index 6c6151701b8..d6290449b43 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) | |||
| 7912 | NSRect r = [win frame]; | 7912 | NSRect r = [win frame]; |
| 7913 | NSArray *screens = [NSScreen screens]; | 7913 | NSArray *screens = [NSScreen screens]; |
| 7914 | NSScreen *screen = [screens objectAtIndex: 0]; | 7914 | NSScreen *screen = [screens objectAtIndex: 0]; |
| 7915 | struct input_event ie; | ||
| 7915 | 7916 | ||
| 7916 | NSTRACE ("[EmacsView windowDidMove:]"); | 7917 | NSTRACE ("[EmacsView windowDidMove:]"); |
| 7917 | 7918 | ||
| 7918 | if (!emacsframe->output_data.ns) | 7919 | if (!emacsframe->output_data.ns) |
| 7919 | return; | 7920 | return; |
| 7921 | |||
| 7920 | if (screen != nil) | 7922 | if (screen != nil) |
| 7921 | { | 7923 | { |
| 7922 | emacsframe->left_pos = NSMinX (r) - NS_PARENT_WINDOW_LEFT_POS (emacsframe); | 7924 | emacsframe->left_pos = (NSMinX (r) |
| 7923 | emacsframe->top_pos = NS_PARENT_WINDOW_TOP_POS (emacsframe) - NSMaxY (r); | 7925 | - NS_PARENT_WINDOW_LEFT_POS (emacsframe)); |
| 7926 | emacsframe->top_pos = (NS_PARENT_WINDOW_TOP_POS (emacsframe) | ||
| 7927 | - NSMaxY (r)); | ||
| 7924 | 7928 | ||
| 7925 | // FIXME: after event part below didExitFullScreen is not received | 7929 | if (emacs_event) |
| 7926 | // if (emacs_event) | 7930 | { |
| 7927 | // { | 7931 | ie.kind = MOVE_FRAME_EVENT; |
| 7928 | // emacs_event->kind = MOVE_FRAME_EVENT; | 7932 | XSETFRAME (ie.frame_or_window, emacsframe); |
| 7929 | // EV_TRAILER ((id)nil); | 7933 | XSETINT (ie.x, emacsframe->left_pos); |
| 7930 | // } | 7934 | XSETINT (ie.y, emacsframe->top_pos); |
| 7935 | kbd_buffer_store_event (&ie); | ||
| 7936 | } | ||
| 7931 | } | 7937 | } |
| 7932 | } | 7938 | } |
| 7933 | 7939 | ||