diff options
Diffstat (limited to 'indra/media_plugins/webkit')
| -rw-r--r-- | indra/media_plugins/webkit/CMakeLists.txt | 10 | ||||
| -rw-r--r-- | indra/media_plugins/webkit/media_plugin_webkit.cpp | 15 | 
2 files changed, 20 insertions, 5 deletions
| diff --git a/indra/media_plugins/webkit/CMakeLists.txt b/indra/media_plugins/webkit/CMakeLists.txt index 1a559ed39c..d576638dd7 100644 --- a/indra/media_plugins/webkit/CMakeLists.txt +++ b/indra/media_plugins/webkit/CMakeLists.txt @@ -50,8 +50,10 @@ set(media_plugin_webkit_LINK_LIBRARIES  )  # Select which VolumeCatcher implementation to use -if (LINUX AND PULSEAUDIO) -  list(APPEND media_plugin_webkit_SOURCE_FILES linux_volume_catcher.cpp) +if (LINUX) +  if (PULSEAUDIO) +    list(APPEND media_plugin_webkit_SOURCE_FILES linux_volume_catcher.cpp) +  endif (PULSEAUDIO)    list(APPEND media_plugin_webkit_LINK_LIBRARIES         ${UI_LIBRARIES}     # for glib/GTK         ) @@ -65,10 +67,10 @@ elseif (DARWIN)         )  elseif (WINDOWS)    list(APPEND media_plugin_webkit_SOURCE_FILES windows_volume_catcher.cpp) -else (LINUX AND PULSEAUDIO) +else (LINUX)    # All other platforms use the dummy volume catcher for now.    list(APPEND media_plugin_webkit_SOURCE_FILES dummy_volume_catcher.cpp) -endif (LINUX AND PULSEAUDIO) +endif (LINUX)  set_source_files_properties(${media_plugin_webkit_HEADER_FILES}                              PROPERTIES HEADER_FILE_ONLY TRUE) diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp index 6990354486..a9ff7bf752 100644 --- a/indra/media_plugins/webkit/media_plugin_webkit.cpp +++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp @@ -46,6 +46,9 @@  // set to 1 if you're using the version of llqtwebkit that's QPixmap-ified  #if LL_LINUX  # define LL_QTWEBKIT_USES_PIXMAPS 0 +extern "C" { +# include <glib.h> +}  #else  # define LL_QTWEBKIT_USES_PIXMAPS 0  #endif // LL_LINUX @@ -60,7 +63,7 @@  #endif  #if LL_WINDOWS -	// *NOTE:Mani - This captures the module handle fo rthe dll. This is used below +	// *NOTE:Mani - This captures the module handle for the dll. This is used below  	// to get the path to this dll for webkit initialization.  	// I don't know how/if this can be done with apr...  	namespace {	HMODULE gModuleHandle;}; @@ -129,6 +132,16 @@ private:  	//  	void update(int milliseconds)  	{ +#if LL_LINUX +		// pump glib generously, as Linux browser plugins are on the +		// glib main loop, even if the browser itself isn't - ugh +		//*TODO: shouldn't this be transparent if Qt was compiled with +		// glib mainloop integration?  investigate. +		GMainContext *mainc = g_main_context_default(); +		while(g_main_context_iteration(mainc, FALSE)); +#endif // LL_LINUX + +		// pump qt  		LLQtWebKit::getInstance()->pump( milliseconds );  		mVolumeCatcher.pump(); | 
