summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firefox.spec12
-rw-r--r--mozilla-1431052.patch21
-rw-r--r--mozilla-1432414.patch58
-rw-r--r--mozilla-1434202.patch25
4 files changed, 116 insertions, 0 deletions
diff --git a/firefox.spec b/firefox.spec
index f521986..133be50 100644
--- a/firefox.spec
+++ b/firefox.spec
@@ -152,6 +152,11 @@ Patch411: mozilla-1321521-2.patch
Patch412: mozilla-1337988.patch
Patch413: mozilla-1353817.patch
+# Wayland patches
+Patch450: mozilla-1431052.patch
+Patch451: mozilla-1432414.patch
+Patch452: mozilla-1434202.patch
+
# Debian patches
Patch500: mozilla-440908.patch
@@ -314,6 +319,11 @@ This package contains results of tests executed during build.
%patch406 -p1 -b .256180
%patch413 -p1 -b .1353817
+# Wayland patches
+%patch450 -p1 -b .1431052
+%patch451 -p1 -b .1432414
+%patch452 -p1 -b .1434202
+
# Patch for big endian platforms only
%if 0%{?big_endian}
%patch26 -p1 -b .icu
@@ -844,6 +854,8 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%changelog
* Tue Jan 30 2018 Martin Stransky <stransky@redhat.com> - 59.0-0.2
- Fixed typo at startup script.
+- Added Wayland specific patches mozbz#1431052 mozbz#1432414
+ mozbz#1434202
* Mon Jan 29 2018 Martin Stransky <stransky@redhat.com> - 59.0-0.1
- Update to Firefox 59.0 Beta 4
diff --git a/mozilla-1431052.patch b/mozilla-1431052.patch
new file mode 100644
index 0000000..59376bd
--- /dev/null
+++ b/mozilla-1431052.patch
@@ -0,0 +1,21 @@
+diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
+--- a/widget/gtk/nsWindow.cpp
++++ b/widget/gtk/nsWindow.cpp
+@@ -6948,11 +6948,15 @@ nsWindow::GetWaylandDisplay()
+ GdkDisplay* gdkDisplay = gdk_display_get_default();
+ return mIsX11Display ? nullptr :
+ sGdkWaylandDisplayGetWlDisplay(gdkDisplay);
+ }
+
+ wl_surface*
+ nsWindow::GetWaylandSurface()
+ {
+- return moz_container_get_wl_surface(MOZ_CONTAINER(mContainer));
++ if (mContainer)
++ return moz_container_get_wl_surface(MOZ_CONTAINER(mContainer));
++
++ NS_WARNING("nsWindow::GetWaylandSurfaces(): We don't have any mContainer for drawing!");
++ return nullptr;
+ }
+ #endif
+
diff --git a/mozilla-1432414.patch b/mozilla-1432414.patch
new file mode 100644
index 0000000..818dbbd
--- /dev/null
+++ b/mozilla-1432414.patch
@@ -0,0 +1,58 @@
+diff --git a/widget/gtk/mozgtk/mozgtk.c b/widget/gtk/mozgtk/mozgtk.c
+--- a/widget/gtk/mozgtk/mozgtk.c
++++ b/widget/gtk/mozgtk/mozgtk.c
+@@ -224,16 +224,17 @@ STUB(gtk_file_chooser_set_preview_widget
+ STUB(gtk_file_chooser_set_preview_widget_active)
+ STUB(gtk_file_chooser_set_select_multiple)
+ STUB(gtk_file_chooser_widget_get_type)
+ STUB(gtk_file_filter_add_pattern)
+ STUB(gtk_file_filter_new)
+ STUB(gtk_file_filter_set_name)
+ STUB(gtk_fixed_new)
+ STUB(gtk_frame_new)
++STUB(gtk_get_current_event_time)
+ STUB(gtk_grab_add)
+ STUB(gtk_grab_remove)
+ STUB(gtk_handle_box_new)
+ STUB(gtk_hbox_new)
+ STUB(gtk_icon_info_free)
+ STUB(gtk_icon_info_load_icon)
+ STUB(gtk_icon_set_add_source)
+ STUB(gtk_icon_set_new)
+diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
+--- a/widget/gtk/nsWindow.cpp
++++ b/widget/gtk/nsWindow.cpp
+@@ -1358,23 +1358,27 @@ SetUserTimeAndStartupIDForActivatedWindo
+ // we don't want to reuse the timestamp next time we raise the window
+ GTKToolkit->SetFocusTimestamp(0);
+ GTKToolkit->SetDesktopStartupID(EmptyCString());
+ }
+
+ /* static */ guint32
+ nsWindow::GetLastUserInputTime()
+ {
+- // gdk_x11_display_get_user_time tracks button and key presses,
+- // DESKTOP_STARTUP_ID used to start the app, drop events from external
+- // drags, WM_DELETE_WINDOW delete events, but not usually mouse motion nor
++ // gdk_x11_display_get_user_time/gtk_get_current_event_time tracks
++ // button and key presses, DESKTOP_STARTUP_ID used to start the app,
++ // drop events from external drags,
++ // WM_DELETE_WINDOW delete events, but not usually mouse motion nor
+ // button and key releases. Therefore use the most recent of
+ // gdk_x11_display_get_user_time and the last time that we have seen.
+- guint32 timestamp =
+- gdk_x11_display_get_user_time(gdk_display_get_default());
++ GdkDisplay* gdkDisplay = gdk_display_get_default();
++ guint32 timestamp = GDK_IS_X11_DISPLAY(gdkDisplay) ?
++ gdk_x11_display_get_user_time(gdkDisplay) :
++ gtk_get_current_event_time();
++
+ if (sLastUserInputTime != GDK_CURRENT_TIME &&
+ TimestampIsNewerThan(sLastUserInputTime, timestamp)) {
+ return sLastUserInputTime;
+ }
+
+ return timestamp;
+ }
+
+
diff --git a/mozilla-1434202.patch b/mozilla-1434202.patch
new file mode 100644
index 0000000..d91f55e
--- /dev/null
+++ b/mozilla-1434202.patch
@@ -0,0 +1,25 @@
+diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
+--- a/widget/gtk/nsWindow.cpp
++++ b/widget/gtk/nsWindow.cpp
+@@ -3785,16 +3785,20 @@ nsWindow::Create(nsIWidget* aParent,
+ SetCursor(eCursor_standard);
+
+ if (aInitData->mNoAutoHide) {
+ gint wmd = ConvertBorderStyles(mBorderStyle);
+ if (wmd != -1)
+ gdk_window_set_decorations(mGdkWindow, (GdkWMDecoration) wmd);
+ }
+
++ if (!mIsX11Display) {
++ gtk_widget_set_app_paintable(mShell, TRUE);
++ }
++
+ // If the popup ignores mouse events, set an empty input shape.
+ if (aInitData->mMouseTransparent) {
+ cairo_rectangle_int_t rect = { 0, 0, 0, 0 };
+ cairo_region_t *region = cairo_region_create_rectangle(&rect);
+
+ gdk_window_input_shape_combine_region(mGdkWindow, region, 0, 0);
+ cairo_region_destroy(region);
+ }
+
bgstack15