@@ -22,6 +22,7 @@ CWebView::CWebView ( unsigned int uiWidth, unsigned int uiHeight, bool bIsLocal,
22
22
m_pEventsInterface = nullptr ;
23
23
m_bBeingDestroyed = false ;
24
24
m_fVolume = 1 .0f ;
25
+ memset ( m_mouseButtonStates, 0 , sizeof (m_mouseButtonStates) );
25
26
26
27
// Initialise properties
27
28
m_Properties[" mobile" ] = " 0" ;
@@ -222,7 +223,17 @@ void CWebView::InjectMouseMove ( int iPosX, int iPosY )
222
223
CefMouseEvent mouseEvent;
223
224
mouseEvent.x = iPosX;
224
225
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
+
225
235
m_pWebView->GetHost ()->SendMouseMoveEvent ( mouseEvent, false );
236
+
226
237
m_vecMousePosition.x = iPosX;
227
238
m_vecMousePosition.y = iPosY;
228
239
}
@@ -236,6 +247,9 @@ void CWebView::InjectMouseDown ( eWebBrowserMouseButton mouseButton )
236
247
mouseEvent.x = m_vecMousePosition.x ;
237
248
mouseEvent.y = m_vecMousePosition.y ;
238
249
250
+ // Save mouse button states
251
+ m_mouseButtonStates[static_cast <int >(mouseButton)] = true ;
252
+
239
253
m_pWebView->GetHost ()->SendMouseClickEvent ( mouseEvent, static_cast < CefBrowserHost::MouseButtonType > ( mouseButton ), false , 1 );
240
254
}
241
255
@@ -248,6 +262,9 @@ void CWebView::InjectMouseUp ( eWebBrowserMouseButton mouseButton )
248
262
mouseEvent.x = m_vecMousePosition.x ;
249
263
mouseEvent.y = m_vecMousePosition.y ;
250
264
265
+ // Save mouse button states
266
+ m_mouseButtonStates[static_cast <int >(mouseButton)] = false ;
267
+
251
268
m_pWebView->GetHost ()->SendMouseClickEvent ( mouseEvent, static_cast < CefBrowserHost::MouseButtonType > ( mouseButton ), true , 1 );
252
269
}
253
270
0 commit comments