So when I simply set the property on the window and flushed the display, I didn't
manage to get the desired effect.
Then I found this 'gxtuner' project that sends an event, which is correctly
picked up by Gnome and hopefully others.
Differential Revision: https://phabricator.services.mozilla.com/D65650
--HG--
extra : moz-landing-system : lando
This should be less confusing. This is not supported outside of chrome:// or
user-agent stylesheets so we can name this however we want.
Differential Revision: https://phabricator.services.mozilla.com/D65605
--HG--
extra : moz-landing-system : lando
This is based on a patch by robert.mader
This is supposed to be a minimal patchset to make Firefox work on
Mutter 3.36 in a similar fassion as on 3.34. The changes should
be compatible with any Wayland compositor, especially those that
do similar agressive culling and frame callback reduction.
While technically non-optimal, they should work as a short time
solution.
1.: Do not commit the toplevel surface in moz_container_move. Instead
use gdk_window_invalidate_rect, which (hopefully) triggers a surface
commit as well while not interfering in the order of commands. The is
necessary as the previous commit would commit invalid state in certain
scenarios (like fullscreening).
This fixes broken fullscreening.
2.: Do not set an opaque region on containers if that would cover the
whole toplevel surface. This works around problems concerning mouse
input responsiveness, as a completely covered toplevel surface might
not get frame callbacks any more, but we currently rely on it to process
input events like mouse movements.
3.: Only set an opaque region on the toplevel surface when maximized.
While the toplevel opaque region is actually redundant as long as the
content surface has an opaque region set, we need it for workaround 2.
But we want to unset it when not needed as occasianally it is not in
sync, creating glitches when e.g. unmaximizing.
Differential Revision: https://phabricator.services.mozilla.com/D65476
--HG--
extra : moz-landing-system : lando
This is supposed to be a minimal patchset to make Firefox work on
Mutter 3.36 in a similar fassion as on 3.34. The changes should
be compatible with any Wayland compositor, especially those that
do similar agressive culling and frame callback reduction.
While technically non-optimal, they should work as a short time
solution.
1.: Do not commit the toplevel surface in `moz_container_move`. Instead
use `gdk_window_invalidate_rect`, which (hopefully) triggers a surface
commit as well while not interfering in the order of commands. The is
necessary as the previous commit would commit invalid state in certain
scenarios (like fullscreening).
This fixes broken fullscreening.
2.: Do not set an opaque region on containers if that would cover the
whole toplevel surface. This works around problems concerning mouse
input responsiveness, as a completely covered toplevel surface might
not get frame callbacks any more, but we currently rely on it to process
input events like mouse movements.
3.: Only set an opaque region on the toplevel surface when maximized.
While the toplevel opaque region is actually redundant as long as the
content surface has an opaque region set, we need it for workaround 2.
But we want to unset it when not needed as occasianally it is not in
sync, creating glitches when e.g. unmaximizing.
Differential Revision: https://phabricator.services.mozilla.com/D64966
--HG--
extra : moz-landing-system : lando
Since bug 440895, we've got support in sessionstore to support restoring a window
to their respective virtual desktops.
This patch using a deprecated GDK API. It builds and works fine, but not without
compilation warnings.
Differential Revision: https://phabricator.services.mozilla.com/D65105
--HG--
extra : moz-landing-system : lando
1. Use GBM map/unmap API correctly
The documentation of gbm_bo_unmap describes the second argument as
"map_data opaque ptr returned from prior gbm_bo_map",
which refers to the pointer written to the map_data location by gbm_bo_map,
not the pointer *returned* by gbm_bo_map.
This fixes crashes with widget.wayland-dmabuf-textures.enabled
on the Mesa RadeonSI driver.
2. Set modifier to invalid on the fallback code path
This fixes fCreateImage failure, allowing actual rendering
to happen.
(mBufferModifier was not set to DRM_FORMAT_MOD_INVALID,
so unsupported attributes were added to the CreateImage call)
Differential Revision: https://phabricator.services.mozilla.com/D65239
--HG--
extra : moz-landing-system : lando
This allows testing much more easily.
There are some edge cases with native theme changes and such (ThemeChanged and
co assume there's only one theme per process). But I don't think they matter
much for our use cases.
Differential Revision: https://phabricator.services.mozilla.com/D65162
--HG--
extra : moz-landing-system : lando
Some users may want to disable 4th and 5th button of mouse.
This feature has already been implemented on Windows, and
our GTK widget can support this with this simple patch.
Differential Revision: https://phabricator.services.mozilla.com/D64721
--HG--
extra : moz-landing-system : lando
- Increment MAX_DISPLAY_CONNECTIONS to 5 (main, compositor, renderer, and two media threads).
- Stop posting events to message loop when it's deleted. Use message loop shutdown observer for it.
- Shutdown nsWaylandDisplay event queue on both chrome and content processes.
- Use static preference variables which means dmabuf prefs are renamed to: widget.wayland-dmabuf-textures.enabled widget.wayland-dmabuf-webgl.enabled widget.wayland-dmabuf-vaapi.enabled
Differential Revision: https://phabricator.services.mozilla.com/D64474
--HG--
extra : moz-landing-system : lando
It is useful to use ToString.h to log text and selection change instead of
adding it each source code. Actually, there is same code in
IMEContentObserver and widget.
Also, mozilla namespace is required since this conflicts with
WinModifierKeyState.h.
Differential Revision: https://phabricator.services.mozilla.com/D64021
--HG--
extra : moz-landing-system : lando
Recently opaque region is set when wl_surface is obtained by renderer/compositor.
It does not work as GL/WebRender get wl_surface only once and creates egl_window
on top of it so the opaque region is never updated.
Differential Revision: https://phabricator.services.mozilla.com/D64583
--HG--
extra : moz-landing-system : lando
NS_Convert* has small string optimizations and doesn't require an extra strlen()
call from Adopt().
Differential Revision: https://phabricator.services.mozilla.com/D64191
--HG--
extra : moz-landing-system : lando
With Bug 1613130 fixed we may not need a fallback widget so let's remove this workaround.
Differential Revision: https://phabricator.services.mozilla.com/D64052
--HG--
extra : moz-landing-system : lando
Use ANDROID_native_fence_sync to synchronize WebGL renderin. It's similar to KHR_fence_sync
but it the fence can be exported to file descriptor and shared among processes so we can create
the fence by WebGL producer and then wait in renderer.
Use glFinish() as a fallback when ANDROID_native_fence_sync is not available.
Differential Revision: https://phabricator.services.mozilla.com/D62712
--HG--
extra : moz-landing-system : lando
I don't think we want to keep the ugly widget hacks forever. Let me know if
you'd rather keep the property behind a pref but I don't think there's a point
in doing that.
Differential Revision: https://phabricator.services.mozilla.com/D62649
--HG--
extra : moz-landing-system : lando
I don't think we want to keep the ugly widget hacks forever. Let me know if
you'd rather keep the property behind a pref but I don't think there's a point
in doing that.
Differential Revision: https://phabricator.services.mozilla.com/D62649
--HG--
extra : moz-landing-system : lando
At bug 1614208, the line style value mapping was changed, but
`GeckoEditable.IME_RANGE_LINE_*` are not updated.
This patch makes the style in `TextRangeStyle` an enum class for making it
type safer, and updates `GeckoEditable.IME_RANGE_LINE_*`, and finally, adds
`FYI` comments in `TextRangeStyle` to make developers realize it requires
manual update.
Differential Revision: https://phabricator.services.mozilla.com/D62883
--HG--
extra : moz-landing-system : lando
- Include va_drmcommon.h file to build without libva headers
- Clean up WaylandDMABufSurface/WaylandDMABufSurfaceRGBA/WaylandDMABufSurfaceNV12 classes
Differential Revision: https://phabricator.services.mozilla.com/D62415
--HG--
extra : moz-landing-system : lando
WaylandDMABufSurfaceNV12 holds HW decoded video frames from VA-API in NV12 format and it's implemented
as specialization of WaylandDMABufSurface base class.
Differential Revision: https://phabricator.services.mozilla.com/D62002
--HG--
extra : moz-landing-system : lando
We need WaylandDMABufSurface to hold both RGBA and YUV surfaces co create WaylandDMABufSurface as a base
class and derive WaylandDMABufSurfaceRGBA from it.
Differential Revision: https://phabricator.services.mozilla.com/D62001
--HG--
extra : moz-landing-system : lando
Window aspect ratio is known to work correctly on Gnome only so apply it only there.
Differential Revision: https://phabricator.services.mozilla.com/D62548
--HG--
extra : moz-landing-system : lando