summaryrefslogtreecommitdiff
path: root/mozilla-1609732-pause-renderer.patch
diff options
context:
space:
mode:
authorJan Horak <jhorak@redhat.com>2020-02-11 10:45:39 +0100
committerJan Horak <jhorak@redhat.com>2020-02-11 10:45:39 +0100
commit422073de22187f5dcf4324fd22334e686d6104ba (patch)
treec09f13f5165b3ff28856dcb93fe25b5c298c02a7 /mozilla-1609732-pause-renderer.patch
parentUpdate to 73.0 build3 (diff)
downloadlibrewolf-fedora-ff-422073de22187f5dcf4324fd22334e686d6104ba.tar.gz
librewolf-fedora-ff-422073de22187f5dcf4324fd22334e686d6104ba.tar.bz2
librewolf-fedora-ff-422073de22187f5dcf4324fd22334e686d6104ba.zip
Added popup-fixing patches, fixed api key paths
Diffstat (limited to 'mozilla-1609732-pause-renderer.patch')
-rw-r--r--mozilla-1609732-pause-renderer.patch73
1 files changed, 73 insertions, 0 deletions
diff --git a/mozilla-1609732-pause-renderer.patch b/mozilla-1609732-pause-renderer.patch
new file mode 100644
index 0000000..6f159e1
--- /dev/null
+++ b/mozilla-1609732-pause-renderer.patch
@@ -0,0 +1,73 @@
+diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h
+--- a/widget/gtk/nsWindow.h
++++ b/widget/gtk/nsWindow.h
+@@ -681,6 +681,7 @@
+
+ bool IsMainMenuWindow();
+ GtkWidget* ConfigureWaylandPopupWindows();
++ void PauseRemoteRenderer();
+ void HideWaylandWindow();
+ void HideWaylandTooltips();
+ void HideWaylandPopupAndAllChildren();
+diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
+--- a/widget/gtk/nsWindow.cpp
++++ b/widget/gtk/nsWindow.cpp
+@@ -1386,10 +1386,10 @@
+ }
+
+ if (needsPositionUpdate && needsSizeUpdate) {
+- Resize(newBounds.x, newBounds.y, newBounds.width, newBounds.height, true);
++ mBounds = newBounds;
+ NotifyWindowMoved(newBounds.x, newBounds.y);
+ } else if (needsPositionUpdate) {
+- Move(newBounds.x, newBounds.y);
++ mBounds = newBounds;
+ NotifyWindowMoved(newBounds.x, newBounds.y);
+ } else {
+ Resize(newBounds.width, newBounds.height, true);
+@@ -1476,6 +1476,7 @@
+ bool isWidgetVisible =
+ (sGtkWidgetIsVisible != nullptr) && sGtkWidgetIsVisible(mShell);
+ if (isWidgetVisible) {
++ PauseRemoteRenderer();
+ gtk_widget_hide(mShell);
+ }
+
+@@ -4497,16 +4498,8 @@
+ }
+ }
+
+-void nsWindow::HideWaylandWindow() {
++void nsWindow::PauseRemoteRenderer() {
+ #ifdef MOZ_WAYLAND
+- if (mWindowType == eWindowType_popup) {
+- LOG(("nsWindow::HideWaylandWindow: popup [%p]\n", this));
+- GList* foundWindow = g_list_find(gVisibleWaylandPopupWindows, this);
+- if (foundWindow) {
+- gVisibleWaylandPopupWindows =
+- g_list_delete_link(gVisibleWaylandPopupWindows, foundWindow);
+- }
+- }
+ if (!mIsDestroyed) {
+ if (mContainer && moz_container_has_wl_egl_window(mContainer)) {
+ // Because wl_egl_window is destroyed on moz_container_unmap(),
+@@ -4529,6 +4522,18 @@
+ }
+ }
+ #endif
++}
++
++void nsWindow::HideWaylandWindow() {
++ if (mWindowType == eWindowType_popup) {
++ LOG(("nsWindow::HideWaylandWindow: popup [%p]\n", this));
++ GList* foundWindow = g_list_find(gVisibleWaylandPopupWindows, this);
++ if (foundWindow) {
++ gVisibleWaylandPopupWindows =
++ g_list_delete_link(gVisibleWaylandPopupWindows, foundWindow);
++ }
++ }
++ PauseRemoteRenderer();
+ gtk_widget_hide(mShell);
+ }
+
+
bgstack15