aboutsummaryrefslogtreecommitdiffstats
path: root/src/pgtkterm.c
diff options
context:
space:
mode:
authorPo Lu2022-05-23 13:30:33 +0800
committerPo Lu2022-05-23 13:30:33 +0800
commitb629cb3f547b5acd6d4ee3574d31b3530f93ff1f (patch)
tree4e79b0c67a52d3da1f6f8c4607495c39c62e5a0f /src/pgtkterm.c
parent5346b67fc27f50abeec3c4f72252a8d9a36f2e6b (diff)
downloademacs-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.c19
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;