Hello community,

here is the log from the commit of package caja for openSUSE:Factory checked in 
at 2019-05-16 22:02:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/caja (Old)
 and      /work/SRC/openSUSE:Factory/.caja.new.5148 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "caja"

Thu May 16 22:02:59 2019 rev:31 rq:682545 version:1.22.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/caja/caja.changes        2018-12-18 
14:58:04.586279973 +0100
+++ /work/SRC/openSUSE:Factory/.caja.new.5148/caja.changes      2019-05-16 
22:03:09.590665267 +0200
@@ -1,0 +2,134 @@
+Tue Mar  5 15:19:33 UTC 2019 - [email protected]
+
+- Update to version 1.22.0:
+  * Avoid deprecated GtkStock.
+  * Avoid deprecated GtkImageMenuItem.
+  * libcaja-private/caja-recent.c: gvfs-open is a deprecated tool,
+    switch to "gio open" from libglib2.0-bin.
+  * caja-query-editor.c: Add "#include <eel/eel-stock-dialogs.h>".
+  * caja-file-management-properties.ui: Avoid deprecated GtkVBox
+    and GtkHBox.
+  * caja-bookmarks-window.ui: Avoid deprecated functions.
+  * Rename mate_dialog_add_button to eel_dialog_add_button.
+  * caja-spatial-window.c: Avoid deprecated GtkVBox.
+  * Eliminate accessible children-changed event flood on container
+    repopulation.
+  * Eliminate accessible children-changed event flood during update
+    all.
+  * Emit accessible-name-change signal for icons only when icons
+    are renamed.
+  * sidebar popup menu: Show "media-eject" icon in the "unmount"
+    items.
+  * pathbar: Fix random segfaults on opening mounts from Desktop.
+  * fm-icon-view: Show size on disc as sort criterion.
+  * sidebar popup menu: Show "media-eject" icon.
+  * Add sort criterion by reversed extension segments.
+  * fm-tree-view.c: Drop unused variable.
+  * Rename "mate_image_menu_item..." to
+    "eel_image_menu_item_new_from_icon".
+  * eel-gtk-extensions: Show icons in right-click menus only if
+    "menus-have-icons" is set.
+  * caja-sidebar-title: Fix: images broken in sidebar.
+  * caja-progress-info.c: Show notifications in begin/end of
+    progress.
+  * caja-progress-info.c: Avoid deprecated
+    "gtk_status_icon_get_visible".
+  * caja-sidebar-title: Fix a -Wmaybe-uninitialized warning.
+  * caja-desktop-window.c: Fix: caja crashes unexpectedly.
+  * Avoid deprecated "gtk_widget_override_font".
+  * Avoid deprecated "gtk_window_set_wmclass".
+  * caja-bookmark.c: Drop unused variable.
+  * caja-bookmark.c: Fix icons in bookmarks.
+  * icon-container: Avoid deprecated
+    "gtk_style_context_get_border_color".
+  * Avoid deprecated "gtk_dialog_get_action_area".
+  * Pathbar button: Fix poor response to right-click.
+  * editable-label: Avoid deprecated
+    "gtk_im_multicontext_append_menuitems".
+  * Use NULL instead of an uninitialised variable.
+  * eel-editable-label.c: Avoid deprecated gdk_keymap_get_default.
+  * eel-editable-label: Avoid deprecated
+    gtk_style_context_set_background.
+  * zoom-control: Don't use the eel_pop_up_context_menu function.
+  * Replace deprecated gtk_menu_popup.
+  * libcaja-private: Replace deprecated gdk_error_trap functions.
+  * fm-desktop-icon-view: Replace deprecated
+    gdk_error_trap_push/pop functions.
+  * Replace deprecated gdk_flush.
+  * libcaja-private: Fix -Wlogical-not-parentheses build warning.
+  * Avoid deprecated gtk_style_context_get_background_color.
+  * GSettings should init before use it.
+  * monitor: Fix a crash on unmounting remote filesystems.
+  * CajaFile: Fix a crash in modify_link_hash_table.
+  * connect-server-dialog: Respect password save setting.
+  * properties-window: Fix checking inconsistent state.
+  * monitor: Watch for removal of non-native mounts on
+    GVolumeMonitor.
+  * Add "Configurable" interface and add support to
+    caja-file-management-properties.
+  * caja-application.c: Remove redundant empty lines.
+  * Update caja manpage with info about "--force-desktop" option.
+  * Caja-icon-info: Optimise icon lookups by GIcon.
+  * fm-directory-view.c:  Decrease minimum update interval.
+  * Remove dead code, fix a memory leak.
+  * Add option to open multiple uri in tabs at startup.
+  * Add the ability to switch tabs using [ctrl+tab] and
+    [ctrl+shift+tab].
+  * caja-desktop-directory: Stop segfaults in
+    directory_ready_callback.
+  * caja-directory.c: Fix a build warning.
+  * pathbar: Increase reference count of path in
+    update_button_types.
+  * Fix some issues found by static analysis.
+  * pathbar: Fix crash when accessing drive root.
+  * libcaja-private: Remove redundant prefs application to hash
+    table.
+  * [desktop-bg] Fix a memory leak during background change events.
+  * caja-location-bar: Fix: change background colour based on
+    activity state.
+  * Avoid deprecated g_type_class_add_private under src.
+  * Fix incompatible pointer types.
+  * Avoid deprecated g_type_class_add_private under src.
+  * Avoid deprecated g_type_class_add_private under
+    libcaja-private.
+  * Fix compile warning.
+  * Let file size units follow the users preference.
+  * Fixed the value of 6 month and 1 year.
+  * Support querying files by modification time and size.
+  * Avoid deprecated g_type_class_add_private.
+  * CajaApplication: Avoid deprecated g_type_class_add_private.
+  * caja-menu: Avoid deprecated g_type_class_add_private.
+  * eel, libegg: Use G_DEFINE_TYPE_WITH_PRIVATE macro.
+  * configure.ac: Add check for PKG_CONFIG being set.
+  * caja-application: Check for smclient before trying to load
+    session.
+  * eel: Avoid deprecated g_type_class_add_private.
+  * libegg: Avoid deprecated g_type_class_add_private.
+  * libcaja-private: Re-check file MIME type before picking an
+    application.
+  * file-manager: Fix apparent bug in context menu updating code.
+  * Revert "fm-directory-view.c:  Decrease minimum update interval.".
+  * Fix: weird item in bookmarks if the directory was removed.
+  * Minor code-quality enhancements.
+  * Forgot to initialise is_backup field.
+  * Change show/hide backup files shortcut.
+  * Remove useless comments, correct description string.
+  * Skip hidden files only, not backups.
+  * Add independent show/hide backup files.
+  * Deleting an unused nautilus icon.
+  * caja-progress-info: New behaviour with notifications.
+  * caja-progress-info: Show notifications with the gsettings key.
+  * Move AppStream files to the metainfo/ directory.
+  * caja-places-sidebar: Replace two other uses of
+    g_drive_poll_for_media_finish.
+  * caja-bookmark: Fix memory leak.
+  * eel-gtk-extensions: Fix memory leaks.
+  * Add update-authors.pl script which helps to update caja.about.
+  * Read authors and documenters fom caja.about file.
+  * Ensure proper translation of the about dialogue title
+  * Add --disable-self-check for configure.
+  * Update translations.
+- Rebase caja-gtk-3.20.patch.
+- Add caja-missing-include.patch: Add a missing include.
+
+-------------------------------------------------------------------

Old:
----
  caja-1.20.3.tar.xz

New:
----
  caja-1.22.0.tar.xz
  caja-missing-include.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ caja.spec ++++++
--- /var/tmp/diff_new_pack.q0QbhW/_old  2019-05-16 22:03:11.238664231 +0200
+++ /var/tmp/diff_new_pack.q0QbhW/_new  2019-05-16 22:03:11.270664211 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package caja
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,17 +18,19 @@
 
 %define lname libcaja-extension1
 %define typelib typelib-1_0-Caja-2_0
-%define _version 1.20
+%define _version 1.22
 Name:           caja
-Version:        1.20.3
+Version:        1.22.0
 Release:        0
 Summary:        File manager for the MATE desktop
 License:        GPL-2.0-only AND LGPL-2.0-only
 Group:          System/GUI/Other
 Url:            https://mate-desktop.org/
 Source:         
https://pub.mate-desktop.org/releases/%{_version}/%{name}-%{version}.tar.xz
+# PATCH-FIX-OPENSUSE caja-missing-include.patch -- Add a missing include.
+Patch0:         caja-missing-include.patch
 # PATCH-FEATURE-OPENSUSE caja-gtk-3.20.patch -- Restore GLib 2.48 and GTK+ 
3.20 support.
-Patch0:         caja-gtk-3.20.patch
+Patch1:         caja-gtk-3.20.patch
 BuildRequires:  mate-common >= %{_version}
 BuildRequires:  pkgconfig
 BuildRequires:  update-desktop-files
@@ -119,8 +121,12 @@
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 %build
+%if 0%{?suse_version} < 1500
+export CFLAGS="%{optflags} -std=gnu99"
+%endif
 NOCONFIGURE=1 mate-autogen
 %configure \
   --disable-update-mimedb \
@@ -189,8 +195,8 @@
 %{_datadir}/pixmaps/*
 %{_datadir}/mime/packages/*
 %{_mandir}/man?/*.?%{?ext_man}
-%dir %{_datadir}/appdata/
-%{_datadir}/appdata/caja.appdata.xml
+%dir %{_datadir}/metainfo/
+%{_datadir}/metainfo/caja.appdata.xml
 # Own common extensions directories.
 %dir %{_libdir}/caja/
 %dir %{_libdir}/caja/extensions-2.0/

++++++ caja-1.20.3.tar.xz -> caja-1.22.0.tar.xz ++++++
++++ 1046218 lines of diff (skipped)

++++++ caja-gtk-3.20.patch ++++++
--- /var/tmp/diff_new_pack.q0QbhW/_old  2019-05-16 22:03:14.230662351 +0200
+++ /var/tmp/diff_new_pack.q0QbhW/_new  2019-05-16 22:03:14.234662349 +0200
@@ -17,7 +17,7 @@
  m4_define(exempi_minver,               1.99.5)
 --- a/eel/eel-background.c
 +++ b/eel/eel-background.c
-@@ -80,7 +80,9 @@ struct EelBackgroundDetails
+@@ -78,7 +78,9 @@ struct EelBackgroundPrivate
      gboolean is_active;
  };
  
@@ -25,8 +25,8 @@
  static GList *desktop_bg_objects = NULL;
 +#endif
  
- static void
- free_fade (EelBackground *self)
+ G_DEFINE_TYPE_WITH_PRIVATE (EelBackground, eel_background, G_TYPE_OBJECT)
+ 
 @@ -129,12 +131,14 @@ eel_background_finalize (GObject *object
      free_background_surface (self);
      free_fade (self);
@@ -42,7 +42,7 @@
      G_OBJECT_CLASS (eel_background_parent_class)->finalize (object);
  }
  
-@@ -493,8 +497,22 @@ fade_to_surface (EelBackground   *self,
+@@ -498,8 +502,22 @@ fade_to_surface (EelBackground   *self,
  
      if (!mate_bg_crossfade_is_started (self->details->fade))
      {
@@ -65,7 +65,7 @@
          if (self->details->is_desktop)
          {
              g_signal_connect (self->details->fade,
-@@ -541,6 +559,22 @@ eel_background_set_up_widget (EelBackgro
+@@ -546,6 +564,22 @@ eel_background_set_up_widget (EelBackgro
  
          if (self->details->is_desktop)
          {
@@ -88,7 +88,7 @@
              set_root_surface (self, window, gtk_widget_get_screen (widget));
          }
      }
-@@ -715,7 +749,9 @@ eel_get_widget_background (GtkWidget *wi
+@@ -720,7 +754,9 @@ eel_get_widget_background (GtkWidget *wi
  {
      EelBackground *self;
      gpointer data;
@@ -98,7 +98,7 @@
  
      g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
  
-@@ -726,7 +762,7 @@ eel_get_widget_background (GtkWidget *wi
+@@ -731,7 +767,7 @@ eel_get_widget_background (GtkWidget *wi
          g_assert (EEL_IS_BACKGROUND (data));
          return data;
      }
@@ -107,7 +107,7 @@
      /* Check for an existing desktop window background. */
      for (l = desktop_bg_objects; l != NULL; l = l->next)
      {
-@@ -737,6 +773,7 @@ eel_get_widget_background (GtkWidget *wi
+@@ -742,6 +778,7 @@ eel_get_widget_background (GtkWidget *wi
              return self;
          }
      }
@@ -154,9 +154,74 @@
  
      return mate_bg_is_dark (self->details->bg, rect.width, rect.height);
  }
+--- a/eel/eel-editable-label.c
++++ b/eel/eel-editable-label.c
+@@ -3096,11 +3096,14 @@ popup_targets_received (GtkClipboard
+                        signals[POPULATE_POPUP], 0,
+                        label->popup_menu);
+ 
+-        if (info->button)
+-            gtk_menu_popup_at_pointer (GTK_MENU (label->popup_menu), NULL);
+-        else
++#if GTK_CHECK_VERSION (3, 22, 0)
++        gtk_menu_popup_at_pointer (GTK_MENU (label->popup_menu), NULL);
++#else
++        gtk_menu_popup (GTK_MENU (label->popup_menu), NULL, NULL,
++                        NULL, NULL, 0, GDK_CURRENT_TIME);
++#endif
++        if (!info->button)
+         {
+-            gtk_menu_popup_at_pointer (GTK_MENU (label->popup_menu), NULL);
+             gtk_menu_shell_select_first (GTK_MENU_SHELL (label->popup_menu), 
FALSE);
+         }
+     }
+--- a/eel/eel-gtk-extensions.c
++++ b/eel/eel-gtk-extensions.c
+@@ -292,7 +292,13 @@ eel_pop_up_context_menu (GtkMenu  *menu,
+ {
+     g_return_if_fail (GTK_IS_MENU (menu));
+ 
++#if GTK_CHECK_VERSION (3, 22, 0)
+     gtk_menu_popup_at_pointer (menu, (const GdkEvent*) event);
++#else
++    gtk_menu_popup (menu, NULL, NULL, NULL, NULL,
++                    event && event->type != GDK_BUTTON_RELEASE ? 
event->button : 0,
++                    event ? event->time : GDK_CURRENT_TIME);
++#endif
+ 
+     g_object_ref_sink (menu);
+     g_object_unref (menu);
+--- a/libcaja-private/caja-dnd.c
++++ b/libcaja-private/caja-dnd.c
+@@ -827,7 +827,12 @@ caja_drag_drop_action_ask (GtkWidget *wi
+ 
+     gtk_grab_add (menu);
+ 
++#if GTK_CHECK_VERSION (3, 22, 0)
+     gtk_menu_popup_at_pointer (GTK_MENU (menu), NULL);
++#else
++    gtk_menu_popup (GTK_MENU (menu), NULL, NULL,
++                    NULL, NULL, 0, GDK_CURRENT_TIME);
++#endif
+ 
+     g_main_loop_run (damd.loop);
+ 
+@@ -880,7 +885,12 @@ caja_drag_drop_background_ask (GtkWidget
+ 
+     gtk_grab_add (menu);
+ 
++#if GTK_CHECK_VERSION (3, 22, 0)
+     gtk_menu_popup_at_pointer (GTK_MENU (menu), NULL);
++#else
++    gtk_menu_popup (GTK_MENU (menu), NULL, NULL,
++                    NULL, NULL, 0, GDK_CURRENT_TIME);
++#endif
+ 
+     g_main_loop_run (damd.loop);
+ 
 --- a/libcaja-private/caja-icon-container.c
 +++ b/libcaja-private/caja-icon-container.c
-@@ -4584,7 +4584,14 @@ realize (GtkWidget *widget)
+@@ -4595,7 +4595,14 @@ realize (GtkWidget *widget)
      GTK_WIDGET_CLASS (caja_icon_container_parent_class)->realize (widget);
  
      container = CAJA_ICON_CONTAINER (widget);
@@ -172,19 +237,19 @@
      /* Set up DnD.  */
      caja_icon_dnd_init (container);
  
-@@ -5245,7 +5252,11 @@ caja_icon_container_search_position_func
+@@ -5256,7 +5263,11 @@ caja_icon_container_search_position_func
      GdkWindow *cont_window;
      GdkScreen *screen;
      GtkRequisition requisition;
 +#if GTK_CHECK_VERSION (3, 22, 0)
      GdkMonitor *monitor_num;
 +#else
-+    gint monitor_num;
++    int monitor_num;
 +#endif
      GdkRectangle monitor;
  
  
-@@ -5253,9 +5264,14 @@ caja_icon_container_search_position_func
+@@ -5264,9 +5275,14 @@ caja_icon_container_search_position_func
      scale = gtk_widget_get_scale_factor (GTK_WIDGET (container));
      screen = gdk_window_get_screen (cont_window);
  
@@ -199,6 +264,20 @@
  
      gtk_widget_realize (search_dialog);
  
+--- a/libcaja-private/caja-recent.c
++++ b/libcaja-private/caja-recent.c
+@@ -22,7 +22,11 @@
+ 
+ #include <eel/eel-vfs-extensions.h>
+ 
++#if GLIB_CHECK_VERSION (2, 50, 0)
+ #define DEFAULT_APP_EXEC "gio open %u"
++#else
++#define DEFAULT_APP_EXEC "gvfs-open %u"
++#endif
+ 
+ static GtkRecentManager *
+ caja_recent_get_manager (void)
 --- a/src/caja-bookmarks-window.c
 +++ b/src/caja-bookmarks-window.c
 @@ -145,9 +145,15 @@ caja_bookmarks_window_response_callback
@@ -237,7 +316,7 @@
              eel_show_error_dialog (_("There was an error displaying help."), 
error->message,
 --- a/src/caja-desktop-window.c
 +++ b/src/caja-desktop-window.c
-@@ -290,6 +290,7 @@ realize (GtkWidget *widget)
+@@ -299,6 +299,7 @@ realize (GtkWidget *widget)
                            G_CALLBACK 
(caja_desktop_window_screen_size_changed), window);
  }
  
@@ -245,7 +324,7 @@
  static gboolean
  draw (GtkWidget *widget,
        cairo_t   *cr)
-@@ -298,6 +299,7 @@ draw (GtkWidget *widget,
+@@ -307,6 +308,7 @@ draw (GtkWidget *widget,
  
      return GTK_WIDGET_CLASS (caja_desktop_window_parent_class)->draw (widget, 
cr);
  }
@@ -253,7 +332,7 @@
  
  static char *
  real_get_title (CajaWindow *window)
-@@ -322,7 +324,9 @@ caja_desktop_window_class_init (CajaDesk
+@@ -331,7 +333,9 @@ caja_desktop_window_class_init (CajaDesk
      wclass->realize = realize;
      wclass->unrealize = unrealize;
      wclass->map = map;
@@ -263,9 +342,25 @@
  
      gtk_widget_class_set_accessible_type (wclass, 
CAJA_TYPE_DESKTOP_WINDOW_ACCESSIBLE);
  
+--- a/src/caja-emblem-sidebar.c
++++ b/src/caja-emblem-sidebar.c
+@@ -187,8 +187,13 @@ caja_emblem_sidebar_button_press_cb (Gtk
+         gtk_widget_set_sensitive (emblem_sidebar->details->popup_rename,
+                                   caja_emblem_can_rename_emblem (keyword));
+ 
++#if GTK_CHECK_VERSION (3, 22, 0)
+         gtk_menu_popup_at_pointer (GTK_MENU (emblem_sidebar->details->popup),
+                                              (const GdkEvent*) event);
++#else
++        gtk_menu_popup (GTK_MENU (emblem_sidebar->details->popup), NULL, NULL,
++                        NULL, NULL, event->button, event->time);
++#endif
+     }
+ 
+     return TRUE;
 --- a/src/caja-file-management-properties.c
 +++ b/src/caja-file-management-properties.c
-@@ -222,9 +222,15 @@ preferences_show_help (GtkWindow *parent
+@@ -232,9 +232,15 @@ preferences_show_help (GtkWindow *parent
  
      help_string = g_strdup_printf ("help:%s/%s", helpfile, sect_id);
  
@@ -299,9 +394,26 @@
          if (error)
          {
              eel_show_error_dialog (_("There was an error displaying help."), 
error->message,
+--- a/src/caja-navigation-window-pane.c
++++ b/src/caja-navigation-window-pane.c
+@@ -416,8 +416,14 @@ notebook_popup_menu_show (CajaNavigation
+                                pane->notebook,
+                                NULL);
+ 
++#if GTK_CHECK_VERSION (3, 22, 0)
+     gtk_menu_popup_at_pointer (GTK_MENU (popup),
+                                (const GdkEvent*) event);
++#else
++    gtk_menu_popup (GTK_MENU (popup), NULL, NULL, NULL, NULL,
++                    event != NULL ? event->button : 0,
++                    event != NULL ? event->time : GDK_CURRENT_TIME);
++#endif
+ }
+ 
+ /* emitted when the user clicks the "close" button of tabs */
 --- a/src/caja-property-browser.c
 +++ b/src/caja-property-browser.c
-@@ -1648,9 +1648,15 @@ help_button_callback (GtkWidget *widget,
+@@ -1663,9 +1663,15 @@ help_button_callback (GtkWidget *widget,
      GError *error = NULL;
      GtkWidget *dialog;
  
@@ -317,9 +429,81 @@
  
      if (error)
      {
+--- a/src/caja-side-pane.c
++++ b/src/caja-side-pane.c
+@@ -176,6 +176,32 @@ panel_item_activate_callback (GtkMenuIte
+     select_panel (side_pane, panel);
+ }
+ 
++#if !GTK_CHECK_VERSION (3, 22, 0)
++static void
++menu_position_under_widget (GtkMenu *menu,
++                            int *x,
++                            int *y,
++                            gboolean *push_in,
++                            gpointer user_data)
++{
++    GtkWidget *widget;
++    GtkAllocation allocation;
++
++    g_return_if_fail (GTK_IS_WIDGET (user_data));
++    g_return_if_fail (!gtk_widget_get_has_window (GTK_WIDGET (user_data)));
++
++    widget = GTK_WIDGET (user_data);
++
++    gdk_window_get_origin (gtk_widget_get_window (widget), x, y);
++    gtk_widget_get_allocation (widget, &allocation);
++
++    *x += allocation.x;
++    *y += allocation.y + allocation.height;
++
++    *push_in = FALSE;
++}
++#endif
++
+ static gboolean
+ select_button_press_callback (GtkWidget *widget,
+                               GdkEventButton *event,
+@@ -201,11 +227,17 @@ select_button_press_callback (GtkWidget
+         gtk_widget_grab_focus (widget);
+ 
+         gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
++#if GTK_CHECK_VERSION (3, 22, 0)
+         gtk_menu_popup_at_widget (GTK_MENU (side_pane->details->menu),
+                                   widget,
+                                   GDK_GRAVITY_SOUTH_WEST,
+                                   GDK_GRAVITY_NORTH_WEST,
+                                   (const GdkEvent*) event);
++#else
++        gtk_menu_popup (GTK_MENU (side_pane->details->menu), NULL, NULL,
++                        menu_position_under_widget, widget,
++                        event->button, event->time);
++#endif
+ 
+         return TRUE;
+     }
+@@ -227,11 +259,17 @@ select_button_key_press_callback (GtkWid
+         event->keyval == GDK_KEY_KP_Enter)
+     {
+         gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
+-        gtk_menu_popup_at_widget (GTK_MENU (side_pane->details->menu),
++ #if GTK_CHECK_VERSION (3, 22, 0)
++       gtk_menu_popup_at_widget (GTK_MENU (side_pane->details->menu),
+                                   widget,
+                                   GDK_GRAVITY_SOUTH_WEST,
+                                   GDK_GRAVITY_NORTH_WEST,
+                                   (const GdkEvent*) event);
++#else
++        gtk_menu_popup (GTK_MENU (side_pane->details->menu), NULL, NULL,
++                        menu_position_under_widget, widget,
++                        GDK_BUTTON_PRIMARY, event->time);
++#endif
+         return TRUE;
+     }
+ 
 --- a/src/caja-window-menus.c
 +++ b/src/caja-window-menus.c
-@@ -575,11 +575,19 @@ action_caja_manual_callback (GtkAction *
+@@ -596,11 +596,19 @@ action_caja_manual_callback (GtkAction *
      error = NULL;
      window = CAJA_WINDOW (user_data);
  
@@ -341,41 +525,73 @@
      {
 --- a/src/caja-zoom-control.c
 +++ b/src/caja-zoom-control.c
-@@ -144,7 +144,12 @@ menu_position_under_widget (GtkMenu   *m
-     GtkRequisition req;
-     GtkRequisition menu_req;
-     GdkRectangle monitor;
+@@ -123,17 +123,45 @@ zoom_button_clicked (GtkButton *button,
+     g_signal_emit (zoom_control, signals[ZOOM_TO_DEFAULT], 0);
+ }
+ 
++#if !GTK_CHECK_VERSION (3, 22, 0)
++static void
++zoom_popup_menu_position_under_widget (GtkMenu *menu, int *x, int *y, 
gboolean *push_in, gpointer user_data)
++{
++    GtkWidget *widget;
++    GtkAllocation allocation;
++
++    g_return_if_fail (GTK_IS_WIDGET (user_data));
++    g_return_if_fail (!gtk_widget_get_has_window (GTK_WIDGET (user_data)));
++
++    widget = GTK_WIDGET (user_data);
++
++    gdk_window_get_origin (gtk_widget_get_window (widget), x, y);
++    gtk_widget_get_allocation (widget, &allocation);
++
++    *x += allocation.x;
++    *y += allocation.y + allocation.height;
++
++    *push_in = FALSE;
++}
++#endif
++
+ static void
+ zoom_popup_menu_show (GtkWidget *widget, GdkEventButton *event, 
CajaZoomControl *zoom_control)
+ {
+     GtkMenu *menu;
+ 
+     menu = create_zoom_menu (zoom_control);
 +#if GTK_CHECK_VERSION (3, 22, 0)
-     GdkMonitor *monitor_num;
-+#else
-+    gint monitor_num;
-+    GdkScreen *screen;
+     gtk_menu_popup_at_widget (menu,
+                               widget,
+                               GDK_GRAVITY_SOUTH_WEST,
+                               GDK_GRAVITY_NORTH_WEST,
+                               (const GdkEvent*) event);
++#else
++    gtk_menu_popup (menu, NULL, NULL,
++                    zoom_popup_menu_position_under_widget, widget,
++                    event->button, event->time);
 +#endif
-     GdkDisplay *display;
-     GtkAllocation allocation;
+ }
  
-@@ -159,10 +164,18 @@ menu_position_under_widget (GtkMenu   *m
-     gtk_widget_get_allocation (widget, &allocation);
+ static void
+@@ -142,11 +170,17 @@ zoom_popup_menu (GtkWidget *widget, Caja
+     GtkMenu *menu;
  
-     display = gtk_widget_get_display (GTK_WIDGET (menu));
+     menu = create_zoom_menu (zoom_control);
 +#if GTK_CHECK_VERSION (3, 22, 0)
-     monitor_num = gdk_display_get_monitor_at_window (display, 
gtk_widget_get_window (widget));
-     if (monitor_num == NULL)
-         monitor_num = gdk_display_get_monitor (display, 0);
-     gdk_monitor_get_geometry (monitor_num, &monitor);
+     gtk_menu_popup_at_widget (menu,
+                               widget,
+                               GDK_GRAVITY_SOUTH_WEST,
+                               GDK_GRAVITY_NORTH_WEST,
+                               NULL);
 +#else
-+    screen = gdk_display_get_default_screen (display);
-+    monitor_num = gdk_screen_get_monitor_at_window (screen, 
gtk_widget_get_window (widget));
-+    if (monitor_num < 0)
-+        monitor_num = 0;
-+    gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
++    gtk_menu_popup (menu, NULL, NULL,
++                    zoom_popup_menu_position_under_widget, widget,
++                    0, GDK_CURRENT_TIME);
 +#endif
  
-     gdk_window_get_origin (gtk_widget_get_window (widget), x, y);
-     if (!gtk_widget_get_has_window (widget))
+     gtk_menu_shell_select_first (GTK_MENU_SHELL (menu), FALSE);
+ }
 --- a/src/file-manager/fm-directory-view.c
 +++ b/src/file-manager/fm-directory-view.c
-@@ -1170,9 +1170,15 @@ pattern_select_response_cb (GtkWidget *d
+@@ -1173,9 +1173,15 @@ pattern_select_response_cb (GtkWidget *d
                break;
        case GTK_RESPONSE_HELP :
                error = NULL;
@@ -419,7 +635,7 @@
        gtk_widget_show (scroller);
  
        gtk_notebook_append_page (window->details->notebook,
-@@ -5412,10 +5414,17 @@ real_response (GtkDialog *dialog,
+@@ -5417,10 +5419,17 @@ real_response (GtkDialog *dialog,
  
        switch (response) {
        case GTK_RESPONSE_HELP:
@@ -437,3 +653,19 @@
                if (error != NULL) {
                        eel_show_error_dialog (_("There was an error displaying 
help."), error->message,
                                               GTK_WINDOW (dialog));
+--- a/src/file-manager/fm-tree-view.c
++++ b/src/file-manager/fm-tree-view.c
+@@ -861,8 +861,13 @@ button_pressed_callback (GtkTreeView *tr
+             gtk_widget_hide (view->details->popup_unmount_separator);
+         }
+ 
++#if GTK_CHECK_VERSION (3, 22, 0)
+         gtk_menu_popup_at_pointer (GTK_MENU (view->details->popup),
+                                    (const GdkEvent*) event);
++#else
++        gtk_menu_popup (GTK_MENU (view->details->popup), NULL, NULL,
++                        NULL, NULL, event->button, event->time);
++#endif
+ 
+         gtk_tree_view_set_cursor (view->details->tree_widget, cursor_path, 
NULL, FALSE);
+         gtk_tree_path_free (cursor_path);

++++++ caja-missing-include.patch ++++++
--- a/libcaja-private/caja-bookmark.c
+++ b/libcaja-private/caja-bookmark.c
@@ -26,6 +26,7 @@
 #include "caja-bookmark.h"
 
 #include "caja-file.h"
+#include <string.h>
 #include <eel/eel-gdk-pixbuf-extensions.h>
 #include <eel/eel-gtk-extensions.h>
 #include <eel/eel-gtk-macros.h>

Reply via email to