hairy merge of glib restoration

master
Tofu Linden 2010-06-22 11:11:58 +01:00
commit 81597463be
2 changed files with 20 additions and 5 deletions

View File

@ -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)

View File

@ -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();