diff options
| author | Po Lu | 2021-12-08 14:18:09 +0800 |
|---|---|---|
| committer | Po Lu | 2021-12-08 14:18:09 +0800 |
| commit | 41b1d223c6ab7bca1b626a4c07a4f2dda2855feb (patch) | |
| tree | c353ea66d42402e91da18fb78a55c4e455c4cba0 /src | |
| parent | bdeb189cf202f9661f783aebd4852b401858958b (diff) | |
| parent | bf79dad3f20345ddf095325ce22c0f2a3408d3ba (diff) | |
| download | emacs-41b1d223c6ab7bca1b626a4c07a4f2dda2855feb.tar.gz emacs-41b1d223c6ab7bca1b626a4c07a4f2dda2855feb.zip | |
Merge remote-tracking branch 'origin/master' into feature/pgtk
Diffstat (limited to 'src')
| -rw-r--r-- | src/xterm.c | 9 | ||||
| -rw-r--r-- | src/xwidget.c | 7 | ||||
| -rw-r--r-- | src/xwidget.h | 2 |
3 files changed, 11 insertions, 7 deletions
diff --git a/src/xterm.c b/src/xterm.c index 3f7b9560345..ae0daa79f31 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -9851,6 +9851,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, | |||
| 9851 | XIValuatorState *states; | 9851 | XIValuatorState *states; |
| 9852 | double *values; | 9852 | double *values; |
| 9853 | bool found_valuator = false; | 9853 | bool found_valuator = false; |
| 9854 | bool any_stop_p = false; | ||
| 9854 | 9855 | ||
| 9855 | /* A fake XMotionEvent for x_note_mouse_movement. */ | 9856 | /* A fake XMotionEvent for x_note_mouse_movement. */ |
| 9856 | XMotionEvent ev; | 9857 | XMotionEvent ev; |
| @@ -10003,9 +10004,13 @@ handle_one_xevent (struct x_display_info *dpyinfo, | |||
| 10003 | if (val->horizontal) | 10004 | if (val->horizontal) |
| 10004 | xv_total_x += delta; | 10005 | xv_total_x += delta; |
| 10005 | else | 10006 | else |
| 10006 | xv_total_y += -delta; | 10007 | xv_total_y += delta; |
| 10007 | 10008 | ||
| 10008 | found_valuator = true; | 10009 | found_valuator = true; |
| 10010 | |||
| 10011 | if (delta == 0.0) | ||
| 10012 | any_stop_p = true; | ||
| 10013 | |||
| 10009 | continue; | 10014 | continue; |
| 10010 | } | 10015 | } |
| 10011 | #endif | 10016 | #endif |
| @@ -10092,7 +10097,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, | |||
| 10092 | if (found_valuator) | 10097 | if (found_valuator) |
| 10093 | xwidget_scroll (xv, xev->event_x, xev->event_y, | 10098 | xwidget_scroll (xv, xev->event_x, xev->event_y, |
| 10094 | xv_total_x, xv_total_y, xev->mods.effective, | 10099 | xv_total_x, xv_total_y, xev->mods.effective, |
| 10095 | xev->time); | 10100 | xev->time, any_stop_p); |
| 10096 | else | 10101 | else |
| 10097 | xwidget_motion_notify (xv, xev->event_x, xev->event_y, | 10102 | xwidget_motion_notify (xv, xev->event_x, xev->event_y, |
| 10098 | xev->mods.effective, xev->time); | 10103 | xev->mods.effective, xev->time); |
diff --git a/src/xwidget.c b/src/xwidget.c index 749a3220a38..bd64f483377 100644 --- a/src/xwidget.c +++ b/src/xwidget.c | |||
| @@ -1066,7 +1066,8 @@ xwidget_motion_notify (struct xwidget_view *view, | |||
| 1066 | 1066 | ||
| 1067 | void | 1067 | void |
| 1068 | xwidget_scroll (struct xwidget_view *view, double x, double y, | 1068 | xwidget_scroll (struct xwidget_view *view, double x, double y, |
| 1069 | double dx, double dy, uint state, Time time) | 1069 | double dx, double dy, uint state, Time time, |
| 1070 | bool stop_p) | ||
| 1070 | { | 1071 | { |
| 1071 | GdkEvent *xg_event; | 1072 | GdkEvent *xg_event; |
| 1072 | GtkWidget *target; | 1073 | GtkWidget *target; |
| @@ -1101,9 +1102,7 @@ xwidget_scroll (struct xwidget_view *view, double x, double y, | |||
| 1101 | xg_event->scroll.delta_x = dx; | 1102 | xg_event->scroll.delta_x = dx; |
| 1102 | xg_event->scroll.delta_y = dy; | 1103 | xg_event->scroll.delta_y = dy; |
| 1103 | xg_event->scroll.device = find_suitable_pointer (view->frame); | 1104 | xg_event->scroll.device = find_suitable_pointer (view->frame); |
| 1104 | 1105 | xg_event->scroll.is_stop = stop_p; | |
| 1105 | if (!(fabs (dx) > 0) || !(fabs (dy) > 0)) | ||
| 1106 | xg_event->scroll.is_stop = TRUE; | ||
| 1107 | 1106 | ||
| 1108 | g_object_ref (xg_event->any.window); | 1107 | g_object_ref (xg_event->any.window); |
| 1109 | 1108 | ||
diff --git a/src/xwidget.h b/src/xwidget.h index f2d497c0920..a03006fde9a 100644 --- a/src/xwidget.h +++ b/src/xwidget.h | |||
| @@ -199,7 +199,7 @@ extern void xwidget_motion_or_crossing (struct xwidget_view *, | |||
| 199 | extern void xwidget_motion_notify (struct xwidget_view *, double, | 199 | extern void xwidget_motion_notify (struct xwidget_view *, double, |
| 200 | double, uint, Time); | 200 | double, uint, Time); |
| 201 | extern void xwidget_scroll (struct xwidget_view *, double, double, | 201 | extern void xwidget_scroll (struct xwidget_view *, double, double, |
| 202 | double, double, uint, Time); | 202 | double, double, uint, Time, bool); |
| 203 | #endif | 203 | #endif |
| 204 | #endif | 204 | #endif |
| 205 | #else | 205 | #else |