gecko-dev/widget/gtk
Martin Stransky 89132239ea Bug 1574036 - [Wayland] Fix flickering during window resize, r=jhorak
Recently window resize on Wayland produces flickering/rendering artifacts because
window background is randomly cleared due to actual window size changes.
We recently query widget size and do clear/fullscreen update when the size changes.

To avoid that, get widget size once at WindowSurfaceWayland::Lock() and use it
until next WindowSurfaceWayland::Lock(). Also don't to switch wayland back buffers
until there's really fullscreen update from compositor.

This patch:

- Use mLockedScreenRect to store window size at WindowSurfaceWayland::Lock(). It's used
  to detect widget resize, when it happens throw away all cached painting and wait for
  full screen update.

- Use mBufferScreenRect to store size of wayland back buffer and pass it
  instead of actual widget size we used before this patch. This ensures all our
  drawing matches the buffer size.

- Rename aFullScreenUpdate to aCanSwitchBuffer at LockWaylandBuffer() to stress
  actual meaning - we can/can't switch back buffers for partial drawing and we need to
  wait until recent back buffer is released by compositor.

Differential Revision: https://phabricator.services.mozilla.com/D43263

--HG--
extra : moz-landing-system : lando
2019-08-27 12:33:25 +00:00
..
compat Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
compat-gtk3 Bug 1562642 - Part 2 - Add missing MPL2 headers r=Gijs 2019-07-08 09:27:47 +00:00
crashtests
mozgtk Bug 1562642 - Part 2 - Add missing MPL2 headers r=Gijs 2019-07-08 09:27:47 +00:00
mozwayland Bug 1554520 - [Wayland] Load DMABuf setup in WaylandDisplay class, r=jhorak 2019-06-04 08:46:59 +00:00
wayland Bug 1519636 - Ride along: remove trailing whitespaces r=Ehsan 2019-07-16 07:34:03 +00:00
components.conf Bug 1575415 - Always register the nsApplicationChooser component in Gtk builds. r=froydnj 2019-08-21 12:25:21 +00:00
CompositorWidgetChild.cpp Bug 1514156 - Add RenderCompositorEGL for wayland r=nical 2019-02-12 16:33:31 +09:00
CompositorWidgetChild.h Bug 1514156 - Add RenderCompositorEGL for wayland r=nical 2019-02-12 16:33:31 +09:00
CompositorWidgetParent.cpp Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan 2019-02-15 08:15:57 +00:00
CompositorWidgetParent.h Bug 1514156 - Add RenderCompositorEGL for wayland r=nical 2019-02-12 16:33:31 +09:00
gtk3drawing.cpp Bug 1553825 - Fix blurry radio and checkbox indicators in menus; r=stransky 2019-05-28 06:54:44 +00:00
GtkCompositorWidget.cpp Bug 1573343 - Make the aInvalidRegion parameter of EndRemoteDrawing a const reference rather than a regular reference. r=mattwoodrow 2019-08-19 22:40:39 +00:00
GtkCompositorWidget.h Bug 1573343 - Make the aInvalidRegion parameter of EndRemoteDrawing a const reference rather than a regular reference. r=mattwoodrow 2019-08-19 22:40:39 +00:00
gtkdrawing.h Bug 1553825 - Fix blurry radio and checkbox indicators in menus; r=stransky 2019-05-28 06:54:44 +00:00
IMContextWrapper.cpp Bug 1554433 - Move system colors to values::specified::color. r=xidorn 2019-05-26 13:10:00 +00:00
IMContextWrapper.h Bug 1498823 - Make KeymapWrapper::FilterEvents() ignore synthesized KeyPress events r=m_kato 2018-12-28 07:02:05 +00:00
InProcessGtkCompositorWidget.cpp Bug 1523969 part 26 - Move method definition inline comments to new line in 'widget/'. r=mstange 2019-02-25 16:13:48 -06:00
InProcessGtkCompositorWidget.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
maiRedundantObjectFactory.c Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
maiRedundantObjectFactory.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
moz.build Bug 1575420 - Replace MOZ_WIDGET_TOOLKIT value of "gtk3" with "gtk". r=froydnj 2019-08-21 12:25:42 +00:00
mozcontainer.cpp Bug 1555899 - [Wayland] Added more wayland logging, r=jhorak 2019-06-11 20:38:44 +00:00
mozcontainer.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
NativeKeyBindings.cpp Bug 1546839 - part 1: Change enum Command to enum class Command and drop "Command" prefix from each item r=smaug 2019-04-30 04:23:24 +00:00
NativeKeyBindings.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
nsApplicationChooser.cpp Bug 1523969 part 26 - Move method definition inline comments to new line in 'widget/'. r=mstange 2019-02-25 16:13:48 -06:00
nsApplicationChooser.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
nsAppShell.cpp Bug 1467127 - Post wl_display_dispatch_queue_pending tasks from ProcessNextNativeEvent. r=stransky 2019-04-30 09:37:37 +00:00
nsAppShell.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsBidiKeyboard.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsBidiKeyboard.h Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
nsClipboard.cpp Bug 1557847. Stop using [array] in nsIClipboard. r=NeilDeakin 2019-06-09 01:06:39 +00:00
nsClipboard.h Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
nsClipboardWayland.cpp Bug 1576268 - [Wayland] Use MOVE as a default Drag and Drop action to match X11 behavior, r=jhorak 2019-08-27 12:12:14 +00:00
nsClipboardWayland.h Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
nsClipboardX11.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsClipboardX11.h Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
nsColorPicker.cpp Bug 1523969 part 26 - Move method definition inline comments to new line in 'widget/'. r=mstange 2019-02-25 16:13:48 -06:00
nsColorPicker.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
nsCUPSShim.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsCUPSShim.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsDeviceContextSpecG.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
nsDeviceContextSpecG.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
nsDragService.cpp Bug 1561056 - Pass CSP on Link-drop r=ckerschb,Gijs,farre 2019-08-20 12:43:02 +00:00
nsDragService.h Bug 1561056 - Pass CSP on Link-drop r=ckerschb,Gijs,farre 2019-08-20 12:43:02 +00:00
nsFilePicker.cpp Bug 1537586 - Address build failure with --disable-printing r=bobowen,froydnj 2019-06-05 01:25:36 +00:00
nsFilePicker.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsGtkCursors.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsGtkKeyUtils.cpp Bug 1561883 - [Wayland] Provide WaylandDisplayGetWLDisplay() to directly get wl_display, r=jhorak 2019-07-01 06:38:32 +00:00
nsGtkKeyUtils.h Bug 1519940 - Use keyboard_handle_keymap instead of keys-changed on wayland. r=stransky 2019-05-28 07:00:33 +00:00
nsGTKToolkit.h Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
nsGtkUtils.h Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
nsIdleServiceGTK.cpp Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
nsIdleServiceGTK.h Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
nsIImageToPixbuf.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
nsImageToPixbuf.cpp Bug 1511383: Update vim modelines after clang-format; r=sylvestre 2018-11-30 16:39:55 +01:00
nsImageToPixbuf.h Bug 1511383: Update vim modelines after clang-format; r=sylvestre 2018-11-30 16:39:55 +01:00
nsLookAndFeel.cpp Bug 1573992 - Convert layout.css.devPixelsPerPx to static pref. r=njn 2019-08-26 21:02:43 +00:00
nsLookAndFeel.h Bug 1555565 - Export correct user's preference for dark theme by prefers-color-scheme media query, r=mats 2019-06-10 09:43:27 +00:00
nsNativeThemeGTK.cpp Bug 1573992 - Convert layout.css.devPixelsPerPx to static pref. r=njn 2019-08-26 21:02:43 +00:00
nsNativeThemeGTK.h Bug 1441308 - Split out document pieces of WebRenderLayerManager r=jrmuizel 2019-01-07 21:33:10 +00:00
nsPrintDialogGTK.cpp Bug 1552785. Remove Linux print dialog UI for selecting frameset behavior. r=karlt 2019-05-15 20:13:46 +01:00
nsPrintDialogGTK.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsPrintSettingsGTK.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
nsPrintSettingsGTK.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsPrintSettingsServiceGTK.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
nsPrintSettingsServiceGTK.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
nsPSPrinters.cpp Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsPSPrinters.h Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
nsSound.cpp Bug 1558915 - Use infallible nsIURI::SchemeIs in various places r=Ehsan 2019-08-07 19:49:40 +00:00
nsSound.h Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
nsToolkit.cpp Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
nsWaylandDisplay.cpp Bug 1564797 - Initialise mDmabuf in nsWaylandDisplay constructor. r=stransky 2019-07-25 21:33:41 +00:00
nsWaylandDisplay.h Bug 1562023 - [Wayland] Factorize out DMABUF setup, r=ashie 2019-07-01 08:55:03 +00:00
nsWidgetFactory.cpp Bug 1524687: Part 9 - Convert gtk widget module to static registration. r=erahm 2019-01-24 17:27:24 -08:00
nsWidgetFactory.h Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
nsWindow.cpp Bug 1573992 - Convert ui.context_menus.after_mouseup to static pref. r=njn 2019-08-27 00:07:49 +00:00
nsWindow.h Bug 1573343 - Make the aInvalidRegion parameter of EndRemoteDrawing a const reference rather than a regular reference. r=mattwoodrow 2019-08-19 22:40:39 +00:00
PCompositorWidget.ipdl Bug 1514156 - Add RenderCompositorEGL for wayland r=nical 2019-02-12 16:33:31 +09:00
PlatformWidgetTypes.ipdlh
ProcInfo.cpp Bug 1529022 - Add a GeckoChildProcessHosts iterator r=jld 2019-06-21 01:33:47 +00:00
ScreenHelperGTK.cpp Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan 2019-03-31 15:12:55 +00:00
ScreenHelperGTK.h Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
TaskbarProgress.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
TaskbarProgress.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
WakeLockListener.cpp Bug 1523969 part 26 - Move method definition inline comments to new line in 'widget/'. r=mstange 2019-02-25 16:13:48 -06:00
WakeLockListener.h Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
WaylandDMABufSurface.cpp Bug 1562023 - [Wayland] Factorize out DMABUF setup, r=ashie 2019-07-01 08:55:03 +00:00
WaylandDMABufSurface.h Bug 1562023 - [Wayland] Factorize out DMABUF setup, r=ashie 2019-07-01 08:55:03 +00:00
WidgetStyleCache.cpp Bug 1546658 - Clean up MOZ_GTK_DROPDOWN_ENTRY at widget style cache, r=dao 2019-04-30 08:25:24 +00:00
WidgetStyleCache.h Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan 2019-04-28 09:30:05 +00:00
WidgetTraceEvent.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
WidgetUtilsGtk.cpp Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
WidgetUtilsGtk.h Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format 2018-11-30 11:46:48 +01:00
WindowSurfaceProvider.cpp Bug 1573343 - Make the aInvalidRegion parameter of EndRemoteDrawing a const reference rather than a regular reference. r=mattwoodrow 2019-08-19 22:40:39 +00:00
WindowSurfaceProvider.h Bug 1573343 - Make the aInvalidRegion parameter of EndRemoteDrawing a const reference rather than a regular reference. r=mattwoodrow 2019-08-19 22:40:39 +00:00
WindowSurfaceWayland.cpp Bug 1574036 - [Wayland] Fix flickering during window resize, r=jhorak 2019-08-27 12:33:25 +00:00
WindowSurfaceWayland.h Bug 1574036 - [Wayland] Fix flickering during window resize, r=jhorak 2019-08-27 12:33:25 +00:00
WindowSurfaceX11.cpp Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
WindowSurfaceX11.h Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
WindowSurfaceX11Image.cpp Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
WindowSurfaceX11Image.h Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
WindowSurfaceXRender.cpp Bug 1435586 - Use static gfxPlatform methods directly instead of requiring initialization. r=kats 2019-06-05 12:40:26 -04:00
WindowSurfaceXRender.h Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00