@@ -22,6 +22,7 @@ CWebView::CWebView ( unsigned int uiWidth, unsigned int uiHeight, bool bIsLocal,
2222 m_pEventsInterface = nullptr ;
2323 m_bBeingDestroyed = false ;
2424 m_fVolume = 1 .0f ;
25+ memset ( m_mouseButtonStates, 0 , sizeof (m_mouseButtonStates) );
2526
2627 // Initialise properties
2728 m_Properties[" mobile" ] = " 0" ;
@@ -222,7 +223,17 @@ void CWebView::InjectMouseMove ( int iPosX, int iPosY )
222223 CefMouseEvent mouseEvent;
223224 mouseEvent.x = iPosX;
224225 mouseEvent.y = iPosY;
226+
227+ // Set modifiers from mouse states (yeah, using enum values as indices isn't best practise, but it's the easiest solution here)
228+ if ( m_mouseButtonStates[BROWSER_MOUSEBUTTON_LEFT] )
229+ mouseEvent.modifiers |= EVENTFLAG_LEFT_MOUSE_BUTTON;
230+ if ( m_mouseButtonStates[BROWSER_MOUSEBUTTON_MIDDLE] )
231+ mouseEvent.modifiers |= EVENTFLAG_MIDDLE_MOUSE_BUTTON;
232+ if ( m_mouseButtonStates[BROWSER_MOUSEBUTTON_RIGHT] )
233+ mouseEvent.modifiers |= EVENTFLAG_RIGHT_MOUSE_BUTTON;
234+
225235 m_pWebView->GetHost ()->SendMouseMoveEvent ( mouseEvent, false );
236+
226237 m_vecMousePosition.x = iPosX;
227238 m_vecMousePosition.y = iPosY;
228239}
@@ -236,6 +247,9 @@ void CWebView::InjectMouseDown ( eWebBrowserMouseButton mouseButton )
236247 mouseEvent.x = m_vecMousePosition.x ;
237248 mouseEvent.y = m_vecMousePosition.y ;
238249
250+ // Save mouse button states
251+ m_mouseButtonStates[static_cast <int >(mouseButton)] = true ;
252+
239253 m_pWebView->GetHost ()->SendMouseClickEvent ( mouseEvent, static_cast < CefBrowserHost::MouseButtonType > ( mouseButton ), false , 1 );
240254}
241255
@@ -248,6 +262,9 @@ void CWebView::InjectMouseUp ( eWebBrowserMouseButton mouseButton )
248262 mouseEvent.x = m_vecMousePosition.x ;
249263 mouseEvent.y = m_vecMousePosition.y ;
250264
265+ // Save mouse button states
266+ m_mouseButtonStates[static_cast <int >(mouseButton)] = false ;
267+
251268 m_pWebView->GetHost ()->SendMouseClickEvent ( mouseEvent, static_cast < CefBrowserHost::MouseButtonType > ( mouseButton ), true , 1 );
252269}
253270
0 commit comments