3737/* FUNCTION RELEASE */
3838/* */
3939/* _gx_horizontal_list_event_process PORTABLE C */
40- /* 6.1 */
40+ /* 6.1.12 */
4141/* AUTHOR */
4242/* */
4343/* Kenneth Maxwell, Microsoft Corporation */
9090/* 05-19-2020 Kenneth Maxwell Initial Version 6.0 */
9191/* 09-30-2020 Kenneth Maxwell Modified comment(s), */
9292/* resulting in version 6.1 */
93+ /* 07-29-2022 Kenneth Maxwell Modified comment(s), */
94+ /* fixed bug in EVENT_PEN_DRAG */
95+ /* handler, */
96+ /* resulting in version 6.1.12 */
9397/* */
9498/**************************************************************************/
9599UINT _gx_horizontal_list_event_process (GX_HORIZONTAL_LIST * list , GX_EVENT * event_ptr )
@@ -104,6 +108,8 @@ INT list_width;
104108INT widget_width ;
105109INT new_pen_index ;
106110GX_WIDGET * * stackptr ;
111+ GX_WIDGET * * stacktop ;
112+
107113GX_EVENT input_release_event ;
108114
109115 switch (event_ptr -> gx_event_type )
@@ -222,19 +228,21 @@ GX_EVENT input_release_event;
222228 {
223229 /* Start sliding, remove other widgets from input capture stack. */
224230 stackptr = _gx_system_input_capture_stack ;
231+ stacktop = _gx_system_input_capture_stack + _gx_system_capture_count ;
232+
225233 memset (& input_release_event , 0 , sizeof (GX_EVENT ));
226234 input_release_event .gx_event_type = GX_EVENT_INPUT_RELEASE ;
227235
228- while (* stackptr )
236+ while (stackptr < stacktop )
229237 {
230- if (* stackptr != widget )
238+ if (* stackptr != GX_NULL && * stackptr != widget )
231239 {
232240 input_release_event .gx_event_target = * stackptr ;
233241 _gx_system_event_send (& input_release_event );
234242 }
235243 stackptr ++ ;
236244 }
237-
245+
238246 _gx_horizontal_list_scroll (list ,
239247 event_ptr -> gx_event_payload .gx_event_pointdata .gx_point_x -
240248 list -> gx_window_move_start .gx_point_x );
0 commit comments