@@ -329,14 +329,14 @@ struct LVGLWidget<BaseWidget>::PrivateData {
329329 PrivateData* const evthis = static_cast <PrivateData*>(lv_indev_get_driver_data (indev));
330330
331331 data->point = evthis->mousePos ;
332- data->state = evthis->mouseButtons [kMouseButtonLeft ] ? LV_INDEV_STATE_PRESSED : LV_INDEV_STATE_RELEASED;
332+ data->state = evthis->mouseButtons [kMouseButtonLeft - 1 ] ? LV_INDEV_STATE_PRESSED : LV_INDEV_STATE_RELEASED;
333333 }
334334
335335 static void indev_mousewheel_read_cb (lv_indev_t * const indev, lv_indev_data_t * const data)
336336 {
337337 PrivateData* const evthis = static_cast <PrivateData*>(lv_indev_get_driver_data (indev));
338338
339- data->state = evthis->mouseButtons [kMouseButtonMiddle ] ? LV_INDEV_STATE_PRESSED : LV_INDEV_STATE_RELEASED;
339+ data->state = evthis->mouseButtons [kMouseButtonMiddle - 1 ] ? LV_INDEV_STATE_PRESSED : LV_INDEV_STATE_RELEASED;
340340 data->enc_diff = evthis->mouseWheelDelta ;
341341 evthis->mouseWheelDelta = 0.0 ;
342342 }
@@ -606,10 +606,10 @@ bool LVGLWidget<BaseWidget>::onMouse(const Widget::MouseEvent& event)
606606 if (BaseWidget::onMouse (event))
607607 return true ;
608608
609- if (event.button > ARRAY_SIZE (lvglData->mouseButtons ))
609+ if (event.button == 0 || event. button > ARRAY_SIZE (lvglData->mouseButtons ))
610610 return false ;
611611
612- lvglData->mouseButtons [event.button ] = event.press ;
612+ lvglData->mouseButtons [event.button - 1 ] = event.press ;
613613 return true ;
614614}
615615
@@ -622,10 +622,10 @@ bool LVGLWidget<SubWidget>::onMouse(const Widget::MouseEvent& event)
622622 if (!getAbsoluteArea ().contains (event.absolutePos ))
623623 return false ;
624624
625- if (event.button > ARRAY_SIZE (lvglData->mouseButtons ))
625+ if (event.button == 0 || event. button > ARRAY_SIZE (lvglData->mouseButtons ))
626626 return false ;
627627
628- lvglData->mouseButtons [event.button ] = event.press ;
628+ lvglData->mouseButtons [event.button - 1 ] = event.press ;
629629 return true ;
630630}
631631
0 commit comments