diff options
| author | Po Lu | 2022-05-23 13:30:33 +0800 |
|---|---|---|
| committer | Po Lu | 2022-05-23 13:30:33 +0800 |
| commit | b629cb3f547b5acd6d4ee3574d31b3530f93ff1f (patch) | |
| tree | 4e79b0c67a52d3da1f6f8c4607495c39c62e5a0f /src/pgtkterm.c | |
| parent | 5346b67fc27f50abeec3c4f72252a8d9a36f2e6b (diff) | |
| download | emacs-b629cb3f547b5acd6d4ee3574d31b3530f93ff1f.tar.gz emacs-b629cb3f547b5acd6d4ee3574d31b3530f93ff1f.zip | |
Minor fixes to PGTK child frames
* src/gtkutil.c (xg_check_special_colors): Handle child frames
correctly.
* src/pgtkfns.c (pgtk_set_child_frame_border_width): Synchronize
code from X. (bug#55588)
* src/pgtkmenu.c (pgtk_menu_show, pgtk_dialog_show): Allow in
child frames. There are no problems here.
* src/pgtkterm.c (pgtk_mouse_position): Clean up coding style.
Diffstat (limited to 'src/pgtkterm.c')
| -rw-r--r-- | src/pgtkterm.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/pgtkterm.c b/src/pgtkterm.c index 71b5f23283c..da958a6664a 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c | |||
| @@ -3351,15 +3351,10 @@ pgtk_mouse_position (struct frame **fp, int insist, Lisp_Object * bar_window, | |||
| 3351 | if (gui_mouse_grabbed (dpyinfo) | 3351 | if (gui_mouse_grabbed (dpyinfo) |
| 3352 | && (!EQ (track_mouse, Qdropping) | 3352 | && (!EQ (track_mouse, Qdropping) |
| 3353 | && !EQ (track_mouse, Qdrag_source))) | 3353 | && !EQ (track_mouse, Qdrag_source))) |
| 3354 | { | 3354 | f1 = dpyinfo->last_mouse_frame; |
| 3355 | /* 1.1. use last_mouse_frame as frame where the pointer is | ||
| 3356 | on. */ | ||
| 3357 | f1 = dpyinfo->last_mouse_frame; | ||
| 3358 | } | ||
| 3359 | else | 3355 | else |
| 3360 | { | 3356 | { |
| 3361 | f1 = *fp; | 3357 | f1 = *fp; |
| 3362 | /* 1.2. get frame where the pointer is on. */ | ||
| 3363 | win = gtk_widget_get_window (FRAME_GTK_WIDGET (*fp)); | 3358 | win = gtk_widget_get_window (FRAME_GTK_WIDGET (*fp)); |
| 3364 | seat = gdk_display_get_default_seat (dpyinfo->gdpy); | 3359 | seat = gdk_display_get_default_seat (dpyinfo->gdpy); |
| 3365 | device = gdk_seat_get_pointer (seat); | 3360 | device = gdk_seat_get_pointer (seat); |
| @@ -3385,19 +3380,17 @@ pgtk_mouse_position (struct frame **fp, int insist, Lisp_Object * bar_window, | |||
| 3385 | return; | 3380 | return; |
| 3386 | } | 3381 | } |
| 3387 | 3382 | ||
| 3388 | /* 2. get the display and the device. */ | ||
| 3389 | win = gtk_widget_get_window (FRAME_GTK_WIDGET (f1)); | 3383 | win = gtk_widget_get_window (FRAME_GTK_WIDGET (f1)); |
| 3390 | GdkDisplay *gdpy = gdk_window_get_display (win); | 3384 | seat = gdk_display_get_default_seat (dpyinfo->gdpy); |
| 3391 | seat = gdk_display_get_default_seat (gdpy); | ||
| 3392 | device = gdk_seat_get_pointer (seat); | 3385 | device = gdk_seat_get_pointer (seat); |
| 3393 | 3386 | ||
| 3394 | /* 3. get x, y relative to edit window of the frame. */ | 3387 | win = gdk_window_get_device_position (win, device, |
| 3395 | win = gdk_window_get_device_position (win, device, &win_x, &win_y, &mask); | 3388 | &win_x, &win_y, &mask); |
| 3396 | 3389 | ||
| 3397 | if (f1 != NULL) | 3390 | if (f1 != NULL) |
| 3398 | { | 3391 | { |
| 3399 | dpyinfo = FRAME_DISPLAY_INFO (f1); | 3392 | remember_mouse_glyph (f1, win_x, win_y, |
| 3400 | remember_mouse_glyph (f1, win_x, win_y, &dpyinfo->last_mouse_glyph); | 3393 | &dpyinfo->last_mouse_glyph); |
| 3401 | dpyinfo->last_mouse_glyph_frame = f1; | 3394 | dpyinfo->last_mouse_glyph_frame = f1; |
| 3402 | 3395 | ||
| 3403 | *bar_window = Qnil; | 3396 | *bar_window = Qnil; |