diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llplugin/llpluginclassmedia.cpp | 4 | ||||
| -rw-r--r-- | indra/llplugin/llpluginclassmedia.h | 2 | ||||
| -rw-r--r-- | indra/media_plugins/cef/media_plugin_cef.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/llmediactrl.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llpanelprimmediacontrols.cpp | 16 | ||||
| -rw-r--r-- | indra/newview/llviewermedia.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llviewermedia.h | 2 | ||||
| -rw-r--r-- | indra/newview/llviewermediafocus.cpp | 7 | 
8 files changed, 25 insertions, 22 deletions
| diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp index 9d447b0f37..cdf2ddde6c 100644 --- a/indra/llplugin/llpluginclassmedia.cpp +++ b/indra/llplugin/llpluginclassmedia.cpp @@ -656,12 +656,14 @@ bool LLPluginClassMedia::keyEvent(EKeyEventType type, int key_code, MASK modifie  	return result;  } -void LLPluginClassMedia::scrollEvent(int x, int y, MASK modifiers) +void LLPluginClassMedia::scrollEvent(int x, int y, int clicks_x, int clicks_y, MASK modifiers)  {  	LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "scroll_event");  	message.setValueS32("x", x);  	message.setValueS32("y", y); +	message.setValueS32("clicks_x", clicks_x); +	message.setValueS32("clicks_y", clicks_y);  	message.setValue("modifiers", translateModifiers(modifiers));  	sendMessage(message); diff --git a/indra/llplugin/llpluginclassmedia.h b/indra/llplugin/llpluginclassmedia.h index 4f52afb317..9d11ee0421 100644 --- a/indra/llplugin/llpluginclassmedia.h +++ b/indra/llplugin/llpluginclassmedia.h @@ -118,7 +118,7 @@ public:  	bool keyEvent(EKeyEventType type, int key_code, MASK modifiers, LLSD native_key_data); -	void scrollEvent(int x, int y, MASK modifiers); +	void scrollEvent(int x, int y, int clicks_x, int clicks_y, MASK modifiers);  	// enable/disable media plugin debugging messages and info spam  	void enableMediaPluginDebugging( bool enable ); diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index 66b316df90..40b480a84e 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -652,10 +652,13 @@ void MediaPluginCEF::receiveMessage(const char* message_string)  			{  				S32 x = message_in.getValueS32("x");  				S32 y = message_in.getValueS32("y"); +				S32 delta_x = message_in.getValueS32("clicks_x"); +				S32 delta_y = message_in.getValueS32("clicks_y");  				const int scaling_factor = 40; -				y *= -scaling_factor; +				delta_x *= -scaling_factor; +				delta_y *= -scaling_factor; -				mCEFLib->mouseWheel(x, y); +				mCEFLib->mouseWheel(x, y, delta_x, delta_y);  			}  			else if (message_name == "text_event")  			{ diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 7f6955d08c..1d3a026049 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -202,7 +202,10 @@ BOOL LLMediaCtrl::handleScrollWheel( S32 x, S32 y, S32 clicks )  {  	if (LLPanel::handleScrollWheel(x, y, clicks)) return TRUE;  	if (mMediaSource && mMediaSource->hasMedia()) -		mMediaSource->getMediaPlugin()->scrollEvent(0, clicks, gKeyboard->currentMask(TRUE)); +	{ +		convertInputCoords(x, y); +		mMediaSource->scrollWheel(x, y, 0, clicks, gKeyboard->currentMask(TRUE)); +	}  	return TRUE;  } diff --git a/indra/newview/llpanelprimmediacontrols.cpp b/indra/newview/llpanelprimmediacontrols.cpp index 5f413fc3c0..c74c2e0fd8 100644 --- a/indra/newview/llpanelprimmediacontrols.cpp +++ b/indra/newview/llpanelprimmediacontrols.cpp @@ -547,17 +547,17 @@ void LLPanelPrimMediaControls::updateShape()  			switch (mScrollState)   			{  				case SCROLL_UP: -					media_impl->scrollWheel(0, -1, MASK_NONE); +					media_impl->scrollWheel(0, 0, 0, -1, MASK_NONE);  					break;  				case SCROLL_DOWN: -					media_impl->scrollWheel(0, 1, MASK_NONE); +					media_impl->scrollWheel(0, 0, 0, 1, MASK_NONE);  					break;  				case SCROLL_LEFT: -					media_impl->scrollWheel(1, 0, MASK_NONE); +					media_impl->scrollWheel(0, 0, 1, 0, MASK_NONE);  					//				media_impl->handleKeyHere(KEY_LEFT, MASK_NONE);  					break;  				case SCROLL_RIGHT: -					media_impl->scrollWheel(-1, 0, MASK_NONE); +					media_impl->scrollWheel(0, 0, -1, 0, MASK_NONE);  					//				media_impl->handleKeyHere(KEY_RIGHT, MASK_NONE);  					break;  				case SCROLL_NONE: @@ -1134,7 +1134,7 @@ void LLPanelPrimMediaControls::onScrollUp(void* user_data)  	if(impl)  	{ -		impl->scrollWheel(0, -1, MASK_NONE); +		impl->scrollWheel(0, 0, 0, -1, MASK_NONE);  	}  }  void LLPanelPrimMediaControls::onScrollUpHeld(void* user_data) @@ -1151,7 +1151,7 @@ void LLPanelPrimMediaControls::onScrollRight(void* user_data)  	if(impl)  	{ -		impl->scrollWheel(-1, 0, MASK_NONE); +		impl->scrollWheel(0, 0, -1, 0, MASK_NONE);  //		impl->handleKeyHere(KEY_RIGHT, MASK_NONE);  	}  } @@ -1170,7 +1170,7 @@ void LLPanelPrimMediaControls::onScrollLeft(void* user_data)  	if(impl)  	{ -		impl->scrollWheel(1, 0, MASK_NONE); +		impl->scrollWheel(0, 0, 1, 0, MASK_NONE);  //		impl->handleKeyHere(KEY_LEFT, MASK_NONE);  	}  } @@ -1189,7 +1189,7 @@ void LLPanelPrimMediaControls::onScrollDown(void* user_data)  	if(impl)  	{ -		impl->scrollWheel(0, 1, MASK_NONE); +		impl->scrollWheel(0, 0, 0, 1, MASK_NONE);  	}  }  void LLPanelPrimMediaControls::onScrollDownHeld(void* user_data) diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index d8745b1eca..faad6bdb82 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -2322,14 +2322,14 @@ void LLViewerMediaImpl::mouseDoubleClick(S32 x, S32 y, MASK mask, S32 button)  }  ////////////////////////////////////////////////////////////////////////////////////////// -void LLViewerMediaImpl::scrollWheel(S32 x, S32 y, MASK mask) +void LLViewerMediaImpl::scrollWheel(S32 x, S32 y, S32 scroll_x, S32 scroll_y, MASK mask)  {  	scaleMouse(&x, &y);  	mLastMouseX = x;  	mLastMouseY = y;  	if (mMediaSource)  	{ -		mMediaSource->scrollEvent(x, y, mask); +		mMediaSource->scrollEvent(x, y, scroll_x, scroll_y, mask);  	}  } diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index e2e758befb..bea024e952 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -230,7 +230,7 @@ public:  	void mouseMove(const LLVector2& texture_coords, MASK mask);      void mouseDoubleClick(const LLVector2& texture_coords, MASK mask);      void mouseDoubleClick(S32 x, S32 y, MASK mask, S32 button = 0); -	void scrollWheel(S32 x, S32 y, MASK mask); +	void scrollWheel(S32 x, S32 y, S32 scroll_x, S32 scroll_y, MASK mask);  	void mouseCapture();  	void navigateBack(); diff --git a/indra/newview/llviewermediafocus.cpp b/indra/newview/llviewermediafocus.cpp index 59165c1d71..b86d678196 100644 --- a/indra/newview/llviewermediafocus.cpp +++ b/indra/newview/llviewermediafocus.cpp @@ -377,12 +377,7 @@ BOOL LLViewerMediaFocus::handleScrollWheel(S32 x, S32 y, S32 clicks)  	LLViewerMediaImpl* media_impl = getFocusedMediaImpl();  	if(media_impl && media_impl->hasMedia())  	{ -        // the scrollEvent() API's x and y are not the same as handleScrollWheel's x and y. -        // The latter is the position of the mouse at the time of the event -        // The former is the 'scroll amount' in x and y, respectively. -        // All we have for 'scroll amount' here is 'clicks'. -		// We're also not passed the keyboard modifier mask, but we can get that from gKeyboard. -		media_impl->getMediaPlugin()->scrollEvent(0, clicks, gKeyboard->currentMask(TRUE)); +		media_impl->scrollWheel(x, y, 0, clicks, gKeyboard->currentMask(TRUE));  		retval = TRUE;  	}  	return retval; | 
