Created attachment 327742
move ws_info set up from nsObjectFrame::CallSetWindow()
nsPluginInstanceOwner::CreateWidget() is a good place to set up the display because that is where the plugin "becomes" windowless, and the display should not change.
The right place to set up the Colormap is in nsPluginInstanceOwner::Renderer::NativeDraw() where the Visual is known.
To avoid the need to hunt for the Visual on the Display to find the
Screen for selecting a Colormap, this changes the Display* argument of gfxXlibNativeRenderer::NativeDraw to a Screen*.
This also makes the treatment of CAIRO_XLIB_DRAWING_SUPPORTS_NONDEFAULT_VISUAL in _create_temp_xlib_surface consistent with that in _draw_with_xlib_direct.
i.e. when not set the visual must be the default visual of the screen used,
but need not be the default visual of the fallback dpy specified.
Created attachment 327742 :CallSetWindow( )
move ws_info set up from nsObjectFrame:
nsPluginInstanc eOwner: :CreateWidget( ) is a good place to set up the display because that is where the plugin "becomes" windowless, and the display should not change.
The right place to set up the Colormap is in nsPluginInstanc eOwner: :Renderer: :NativeDraw( ) where the Visual is known.
To avoid the need to hunt for the Visual on the Display to find the nderer: :NativeDraw to a Screen*.
Screen for selecting a Colormap, this changes the Display* argument of gfxXlibNativeRe
This also makes the treatment of CAIRO_XLIB_ DRAWING_ SUPPORTS_ NONDEFAULT_ VISUAL in _create_ temp_xlib_ surface consistent with that in _draw_with_ xlib_direct.
i.e. when not set the visual must be the default visual of the screen used,
but need not be the default visual of the fallback dpy specified.