diff --git a/gtk3248_fix.patch b/gtk3248_fix.patch new file mode 100644 index 0000000..960c059 --- /dev/null +++ b/gtk3248_fix.patch @@ -0,0 +1,80 @@ +From be90b453aa9ddd1873bdab11254b2e1c1326cbf8 Mon Sep 17 00:00:00 2001 +From: Michael Webster +Date: Mon, 17 Jun 2019 22:24:43 -0400 +Subject: [PATCH] nemo-places-sidebar.c: Workaround incorrectly-sized popup + menus when right- clicking on a currently-unselected item. + +This reverts the behavior introduced in gtk 3.24.8: +https://gitlab.gnome.org/GNOME/gtk/commit/57300b49602b856b53f5d30ab3174591c0fb2845 + +By connecting our own handler to 'moved-to-rect' and performing the 'popped-up' +emission ourselves (and at the same time, preventing GtkMenu's own handler from +running), we avoid the fixate call which seems to be causing this. + +Fixes #2118 +Fixes #2153 +--- + src/nemo-places-sidebar.c | 43 +++++++++++++++++++++++++++++++++++++++ + 1 file changed, 43 insertions(+) + +diff --git a/src/nemo-places-sidebar.c b/src/nemo-places-sidebar.c +index 87d060e99..61e80fd18 100644 +--- a/src/nemo-places-sidebar.c ++++ b/src/nemo-places-sidebar.c +@@ -3395,6 +3395,42 @@ add_action_popup_items (NemoPlacesSidebar *sidebar) + } + } + ++#if GTK_CHECK_VERSION (3, 24, 8) ++static void ++moved_to_rect_cb (GdkWindow *window, ++ const GdkRectangle *flipped_rect, ++ const GdkRectangle *final_rect, ++ gboolean flipped_x, ++ gboolean flipped_y, ++ GtkMenu *menu) ++{ ++ g_signal_emit_by_name (menu, ++ "popped-up", ++ 0, ++ flipped_rect, ++ final_rect, ++ flipped_x, ++ flipped_y); ++ ++ // Don't let the emission run in gtkmenu.c ++ g_signal_stop_emission_by_name (window, "moved-to-rect"); ++} ++ ++static void ++popup_menu_realized (GtkWidget *menu, ++ gpointer user_data) ++{ ++ GdkWindow *toplevel; ++ ++ toplevel = gtk_widget_get_window (gtk_widget_get_toplevel (menu)); ++ ++ g_signal_handlers_disconnect_by_func (toplevel, moved_to_rect_cb, menu); ++ ++ g_signal_connect (toplevel, "moved-to-rect", G_CALLBACK (moved_to_rect_cb), ++ menu); ++} ++#endif ++ + /* Constructs the popup menu for the file list if needed */ + static void + bookmarks_build_popup_menu (NemoPlacesSidebar *sidebar) +@@ -3415,6 +3451,13 @@ bookmarks_build_popup_menu (NemoPlacesSidebar *sidebar) + G_CALLBACK (popup_menu_deactivated), + sidebar); + ++#if GTK_CHECK_VERSION (3, 24, 8) ++ g_signal_connect (sidebar->popup_menu, "realize", ++ G_CALLBACK (popup_menu_realized), ++ sidebar); ++ gtk_widget_realize (sidebar->popup_menu); ++#endif ++ + gtk_menu_attach_to_widget (GTK_MENU (sidebar->popup_menu), + GTK_WIDGET (sidebar), + bookmarks_popup_menu_detach_cb); diff --git a/nemo.spec b/nemo.spec index 3101b6f..fc736b7 100644 --- a/nemo.spec +++ b/nemo.spec @@ -1,13 +1,14 @@ Name: nemo Summary: File manager for Cinnamon Version: 4.0.6 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ and LGPLv2+ URL: https://github.com/linuxmint/%{name} Source0: %url/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: nemo-fedora.gschema.override Patch0: remove_desktop_search.patch Patch1: Don-t-scale-text-size-when-zooming.patch +Patch2: https://github.com/mtwebster/nemo/commit/be90b453aa9ddd1873bdab11254b2e1c1326cbf8.patch#/gtk3248_fix.patch Requires: redhat-menus Requires: gvfs%{_isa} @@ -123,6 +124,9 @@ rm -f %buildroot%{_datadir}/icons/hicolor/.icon-theme.cache %{_datadir}/gir-1.0/*.gir %changelog +* Tue Jun 18 2019 Leigh Scott - 4.0.6-3 +- Fix gtk-3.24.8 scroll issue + * Fri Feb 01 2019 Fedora Release Engineering - 4.0.6-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild