diff options
| author | Po Lu | 2022-02-08 19:57:01 +0800 |
|---|---|---|
| committer | Po Lu | 2022-02-08 19:57:22 +0800 |
| commit | 855928082b31e7cf7872d389905972bce4c3d82c (patch) | |
| tree | 567958177c3babf9c8b07bf2991777af26f93e4e /src/pgtkterm.c | |
| parent | 996daa00ae3cab514a0f9fca0ee8b108f220677e (diff) | |
| download | emacs-855928082b31e7cf7872d389905972bce4c3d82c.tar.gz emacs-855928082b31e7cf7872d389905972bce4c3d82c.zip | |
Fix frame offset reporting on PGTK
* src/pgtkterm.c (configure_event): Handle changes in window
position. (bug#52697)
Diffstat (limited to 'src/pgtkterm.c')
| -rw-r--r-- | src/pgtkterm.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/pgtkterm.c b/src/pgtkterm.c index 9d15b671dd2..e9fd5f83b72 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c | |||
| @@ -5536,6 +5536,7 @@ configure_event (GtkWidget *widget, | |||
| 5536 | gpointer *user_data) | 5536 | gpointer *user_data) |
| 5537 | { | 5537 | { |
| 5538 | struct frame *f = pgtk_any_window_to_frame (event->configure.window); | 5538 | struct frame *f = pgtk_any_window_to_frame (event->configure.window); |
| 5539 | |||
| 5539 | if (f && widget == FRAME_GTK_OUTER_WIDGET (f)) | 5540 | if (f && widget == FRAME_GTK_OUTER_WIDGET (f)) |
| 5540 | { | 5541 | { |
| 5541 | if (any_help_event_p) | 5542 | if (any_help_event_p) |
| @@ -5548,6 +5549,15 @@ configure_event (GtkWidget *widget, | |||
| 5548 | help_echo_string = Qnil; | 5549 | help_echo_string = Qnil; |
| 5549 | gen_help_event (Qnil, frame, Qnil, Qnil, 0); | 5550 | gen_help_event (Qnil, frame, Qnil, Qnil, 0); |
| 5550 | } | 5551 | } |
| 5552 | |||
| 5553 | if (f->win_gravity == NorthWestGravity) | ||
| 5554 | gtk_window_get_position (GTK_WINDOW (widget), | ||
| 5555 | &f->top_pos, &f->left_pos); | ||
| 5556 | else | ||
| 5557 | { | ||
| 5558 | f->top_pos = event->configure.y; | ||
| 5559 | f->left_pos = event->configure.x; | ||
| 5560 | } | ||
| 5551 | } | 5561 | } |
| 5552 | return FALSE; | 5562 | return FALSE; |
| 5553 | } | 5563 | } |