Your message dated Thu, 20 Oct 2016 12:34:29 +0000
with message-id <[email protected]>
and subject line Bug#840568: fixed in caja 1.16.1-1
has caused the Debian Bug report #840568,
regarding caja: Impossible to have speech feedback when items are set in icons
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
840568: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=840568
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: caja
Version: 1.16.0-1
Severity: normal

Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation?

Switch from 1.12 to 1.14. Just fixed in 1.16. I use Orca 3.20, 3.22 as well.

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

1. Enable accessibility in Preferences.
2. Enable Orca in Universal Access
3. `est if it works: alt-f1, arrow keys should speak "Accessories" and other
items.
4. alt-ctrl-d
5. Press arrow keys.
The focus moves, but no feedback.
6. Open Home folder.
7. Try browsing files with icon view. No feedback.
8. Try browsing with list or compact view, Orca speaks.

   * What was the outcome of this action?

No sound on desktop or in file manager if icon view is active.

   * What outcome did you expect instead?

Should speak. Otherwise, MATE desktop is not accessible for disabled users with
assistive techno.

*** End of the template - remove these template lines ***

Here's a patch, accepted upstream, but I fixed a typo (inherritance) in Debian's
patch.

See bug 590 upstream for detailed explanation by Luke about how he fixed the
issue.

Thanks


-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.7.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages caja depends on:
ii  caja-common               1.16.0-1
ii  desktop-file-utils        0.23-1
ii  gvfs                      1.30.0-1
ii  libatk1.0-0               2.22.0-1
ii  libc6                     2.24-3
ii  libcairo-gobject2         1.14.6-1+b1
ii  libcairo2                 1.14.6-1+b1
ii  libcaja-extension1        1.16.0-1
ii  libexempi3                2.3.0-2
ii  libexif12                 0.6.21-2
ii  libgail-3-0               3.22.1-1
ii  libgdk-pixbuf2.0-0        2.36.0-1
ii  libglib2.0-0              2.50.0-2
ii  libglib2.0-data           2.50.0-2
ii  libgtk-3-0                3.22.1-1
ii  libice6                   2:1.0.9-1+b1
ii  libmate-desktop-2-17      1.16.0-1
ii  libpango-1.0-0            1.40.3-2
ii  libpangocairo-1.0-0       1.40.3-2
ii  libselinux1               2.5-3
ii  libsm6                    2:1.2.2-1+b1
ii  libstartup-notification0  0.12-4
ii  libunique-3.0-0           3.0.2-2
ii  libx11-6                  2:1.6.3-1
ii  libxext6                  2:1.3.3-1
ii  libxml2                   2.9.4+dfsg1-2
ii  libxrender1               1:0.9.9-2
ii  mate-desktop              1.16.0-1
ii  shared-mime-info          1.7-1

Versions of packages caja recommends:
ii  gvfs-backends  1.30.0-1

Versions of packages caja suggests:
ii  engrampa            1.16.0-1
pn  gstreamer1.0-tools  <none>
pn  meld                <none>

-- no debconf information
>From 076b8582e4c834db60070fe441d7977716637721 Mon Sep 17 00:00:00 2001
From: Luke Yelavich <[email protected]>
Date: Sat, 8 Oct 2016 12:22:45 +1100
Subject: [PATCH] Fix accessible object inheritance when used with GTK >= 3.2

Also disable eel accessibility code that is not needed.

Fixes https://github.com/mate-desktop/caja/issues/590
---
 eel/eel-accessibility.c               |  5 ++-
 eel/eel-accessibility.h               |  2 +
 eel/eel-canvas.c                      | 84 +++++++++++++++++++++++++++++++++--
 eel/eel-canvas.h                      | 20 +++++++++
 eel/eel-editable-label.c              | 55 ++++++++++++++++++++++-
 eel/eel-labeled-image.c               | 77 ++++++++++++++++++++++++++++++++
 libcaja-private/caja-icon-container.c | 57 ++++++++++++++++++++++++
 src/caja-zoom-control.c               | 48 ++++++++++++++++++++
 8 files changed, 343 insertions(+), 5 deletions(-)

diff --git a/eel/eel-accessibility.c b/eel/eel-accessibility.c
index 707756d..a344bd8 100644
--- a/eel/eel-accessibility.c
+++ b/eel/eel-accessibility.c
@@ -63,6 +63,7 @@ eel_accessibility_set_up_label_widget_relation (GtkWidget *label, GtkWidget *wid
  *
  * Return value: the registered type, or 0 on failure.
  **/
+#if !GTK_CHECK_VERSION(3, 2, 0)
 GType
 eel_accessibility_create_derived_type (const char *type_name,
                                        GType existing_gobject_with_proxy,
@@ -113,7 +114,7 @@ eel_accessibility_create_derived_type (const char *type_name,
 
     return type;
 }
-
+#endif
 
 static GQuark
 get_quark_accessible (void)
@@ -207,6 +208,7 @@ eel_accessibility_destroy (gpointer data,
  *
  * Return value: @atk_object.
  **/
+#if !GTK_CHECK_VERSION(3, 2, 0)
 AtkObject *
 eel_accessibility_set_atk_object_return (gpointer   object,
         AtkObject *atk_object)
@@ -224,6 +226,7 @@ eel_accessibility_set_atk_object_return (gpointer   object,
 
     return atk_object;
 }
+#endif
 
 static GailTextUtil *
 get_simple_text (gpointer object)
diff --git a/eel/eel-accessibility.h b/eel/eel-accessibility.h
index 45514c9..b4ca8cb 100644
--- a/eel/eel-accessibility.h
+++ b/eel/eel-accessibility.h
@@ -38,11 +38,13 @@ typedef void     (*EelAccessibilityClassInitFn)    (AtkObjectClass *klass);
 AtkObject    *eel_accessibility_get_atk_object        (gpointer              object);
 AtkObject    *eel_accessibility_for_object            (gpointer              object);
 gpointer      eel_accessibility_get_gobject           (AtkObject            *object);
+#if !GTK_CHECK_VERSION(3, 2, 0)
 AtkObject    *eel_accessibility_set_atk_object_return (gpointer              object,
         AtkObject            *atk_object);
 GType         eel_accessibility_create_derived_type   (const char           *type_name,
         GType                 existing_gobject_with_proxy,
         EelAccessibilityClassInitFn class_init);
+#endif
 void          eel_accessibility_set_name              (gpointer              object,
         const char           *name);
 void          eel_accessibility_set_description       (gpointer              object,
diff --git a/eel/eel-canvas.c b/eel/eel-canvas.c
index 1e45224..7d41c6d 100644
--- a/eel/eel-canvas.c
+++ b/eel/eel-canvas.c
@@ -68,6 +68,9 @@
 #include <stdio.h>
 #include <gdk/gdkprivate.h>
 #include <gtk/gtk.h>
+#if GTK_CHECK_VERSION(3,2,0)
+#include <gtk/gtk-a11y.h>
+#endif
 #include <glib/gi18n-lib.h>
 #if GTK_CHECK_VERSION(3,0,0)
 # include <cairo/cairo-gobject.h>
@@ -2066,6 +2069,25 @@ eel_canvas_accessible_ref_child (AtkObject *obj,
     return atk_object;
 }
 
+#if GTK_CHECK_VERSION(3, 2, 0)
+G_DEFINE_TYPE (EelCanvasAccessible, eel_canvas_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE)
+
+static void
+eel_canvas_accessible_class_init (EelCanvasAccessibleClass *klass)
+{
+    AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
+    accessible_parent_class = g_type_class_peek_parent (atk_class);
+
+    atk_class->initialize = eel_canvas_accessible_initialize;
+    atk_class->get_n_children = eel_canvas_accessible_get_n_children;
+    atk_class->ref_child = eel_canvas_accessible_ref_child;
+}
+
+static void
+eel_canvas_accessible_init (EelCanvasAccessible *accessible)
+{
+}
+#else
 static void
 eel_canvas_accessible_class_init (AtkObjectClass *klass)
 {
@@ -2183,7 +2205,7 @@ eel_canvas_accessible_factory_get_type (void)
 
     return type;
 }
-
+#endif
 
 /* Class initialization function for EelCanvasClass */
 static void
@@ -2244,9 +2266,13 @@ eel_canvas_class_init (EelCanvasClass *klass)
                       G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT);
 #endif
 
+#if GTK_CHECK_VERSION(3, 2, 0)
+    gtk_widget_class_set_accessible_type (widget_class, eel_canvas_accessible_get_type ());
+#else
     atk_registry_set_factory_type (atk_get_default_registry (),
                                    EEL_TYPE_CANVAS,
                                    eel_canvas_accessible_factory_get_type ());
+#endif
 }
 
 /* Callback used when the root item of a canvas is destroyed.  The user should
@@ -3323,7 +3349,7 @@ idle_handler (gpointer data)
 {
     EelCanvas *canvas;
 
-#if !GTK_CHECK_VERSION (3, 0, 0)
+#if !GTK_CHECK_VERSION(3, 0, 0)
     GDK_THREADS_ENTER ();
 #endif
 
@@ -4169,6 +4195,43 @@ eel_canvas_item_accessible_ref_state_set (AtkObject *accessible)
     return state_set;
 }
 
+#if GTK_CHECK_VERSION(3, 2, 0)
+static GType eel_canvas_item_accessible_get_type (void);
+
+typedef struct _EelCanvasItemAccessible EelCanvasItemAccessible;
+typedef struct _EelCanvasItemAccessibleClass EelCanvasItemAccessibleClass;
+
+struct _EelCanvasItemAccessible
+{
+    GtkAccessible parent;
+};
+
+struct _EelCanvasItemAccessibleClass
+{
+    GtkAccessibleClass parent_class;
+};
+
+G_DEFINE_TYPE_WITH_CODE (EelCanvasItemAccessible,
+                         eel_canvas_item_accessible,
+                         ATK_TYPE_GOBJECT_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT,
+                                                eel_canvas_item_accessible_component_interface_init));
+
+static void
+eel_canvas_item_accessible_class_init (EelCanvasItemAccessibleClass *klass)
+{
+    AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
+    accessible_item_parent_class = g_type_class_peek_parent (atk_class);
+
+    atk_class->initialize = eel_canvas_item_accessible_initialize;
+    atk_class->ref_state_set = eel_canvas_item_accessible_ref_state_set;
+}
+
+static void
+eel_canvas_item_accessible_init (EelCanvasItemAccessible *accessible)
+{
+}
+#else
 static void
 eel_canvas_item_accessible_class_init (AtkObjectClass *klass)
 {
@@ -4222,7 +4285,7 @@ eel_canvas_item_accessible_get_type (void)
 
     return type;
 }
-
+#endif
 static AtkObject *
 eel_canvas_item_accessible_create (GObject *for_object)
 {
@@ -4269,6 +4332,20 @@ eel_canvas_item_accessible_factory_class_init (AtkObjectFactoryClass *klass)
     klass->get_accessible_type = eel_canvas_item_accessible_factory_get_accessible_type;
 }
 
+#if GTK_CHECK_VERSION(3, 2, 0)
+static GType eel_canvas_item_accessible_factory_get_type (void);
+
+typedef AtkObjectFactory EelCanvasItemAccessibleFactory;
+typedef AtkObjectFactoryClass EelCanvasItemAccessibleFactoryClass;
+G_DEFINE_TYPE (EelCanvasItemAccessibleFactory, eel_canvas_item_accessible_factory,
+               ATK_TYPE_OBJECT_FACTORY)
+
+static void
+eel_canvas_item_accessible_factory_init (EelCanvasItemAccessibleFactory *accessible)
+{
+}
+
+#else
 static GType
 eel_canvas_item_accessible_factory_get_type (void)
 {
@@ -4295,6 +4372,7 @@ eel_canvas_item_accessible_factory_get_type (void)
 
     return type;
 }
+#endif
 
 /* Class initialization function for EelCanvasItemClass */
 static void
diff --git a/eel/eel-canvas.h b/eel/eel-canvas.h
index f641087..6491185 100644
--- a/eel/eel-canvas.h
+++ b/eel/eel-canvas.h
@@ -38,6 +38,9 @@
 #define EEL_CANVAS_H
 
 #include <gtk/gtk.h>
+#if GTK_CHECK_VERSION(3, 2, 0)
+#include <gtk/gtk-a11y.h>
+#endif
 #include <gdk/gdk.h>
 #include <stdarg.h>
 
@@ -537,6 +540,23 @@ extern "C" {
     void eel_canvas_world_to_window (EelCanvas *canvas,
                                      double worldx, double worldy, double *winx, double *winy);
 
+#if GTK_CHECK_VERSION(3, 2, 0)
+    GType eel_canvas_accessible_get_type (void);
+
+    typedef struct _EelCanvasAccessible EelCanvasAccessible;
+    typedef struct _EelCanvasAccessibleClass EelCanvasAccessibleClass;
+
+    struct _EelCanvasAccessible
+    {
+        GtkContainerAccessible parent;
+    };
+
+    struct _EelCanvasAccessibleClass
+    {
+        GtkContainerAccessibleClass parent_class;
+    };
+#endif
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/eel/eel-editable-label.c b/eel/eel-editable-label.c
index f957fb9..ca3d87d 100644
--- a/eel/eel-editable-label.c
+++ b/eel/eel-editable-label.c
@@ -35,6 +35,9 @@
 #include <glib/gi18n-lib.h>
 #include <pango/pango.h>
 #include <gtk/gtk.h>
+#if GTK_CHECK_VERSION(3, 2, 0)
+#include <gtk/gtk-a11y.h>
+#endif
 #include <gdk/gdkkeysyms.h>
 
 /* Some compatibility defines to let us build on both Gtk2 and Gtk3 */
@@ -137,7 +140,11 @@ static gint     eel_editable_label_focus_in                (GtkWidget
         GdkEventFocus         *event);
 static gint     eel_editable_label_focus_out               (GtkWidget             *widget,
         GdkEventFocus         *event);
+#if GTK_CHECK_VERSION(3, 2, 0)
+static GType      eel_editable_label_accessible_get_type   (void);
+#else
 static AtkObject *eel_editable_label_get_accessible        (GtkWidget             *widget);
+#endif
 static void     eel_editable_label_commit_cb               (GtkIMContext          *context,
         const gchar           *str,
         EelEditableLabel      *label);
@@ -278,7 +285,11 @@ eel_editable_label_class_init (EelEditableLabelClass *class)
     widget_class->key_release_event = eel_editable_label_key_release;
     widget_class->focus_in_event = eel_editable_label_focus_in;
     widget_class->focus_out_event = eel_editable_label_focus_out;
+#if GTK_CHECK_VERSION(3, 2, 0)
+    gtk_widget_class_set_accessible_type (widget_class, eel_editable_label_accessible_get_type ());
+#else
     widget_class->get_accessible = eel_editable_label_get_accessible;
+#endif
 
     class->move_cursor = eel_editable_label_move_cursor;
     class->delete_from_cursor = eel_editable_label_delete_from_cursor;
@@ -3701,6 +3712,20 @@ typedef struct
     gint position;
 } EelEditableLabelAccessiblePaste;
 
+#if GTK_CHECK_VERSION(3, 2, 0)
+typedef struct _EelEditableLabelAccessible EelEditableLabelAccessible;
+typedef struct _EelEditableLabelAccessibleClass EelEditableLabelAccessibleClass;
+
+struct _EelEditableLabelAccessible
+{
+    GtkWidgetAccessible parent;
+};
+
+struct _EelEditableLabelAccessibleClass
+{
+    GtkWidgetAccessibleClass parent_class;
+};
+#endif
 
 static gchar*
 eel_editable_label_accessible_get_text (AtkText *text,
@@ -4555,6 +4580,34 @@ eel_editable_label_accessible_finalize (GObject *object)
     G_OBJECT_CLASS (a11y_parent_class)->finalize (object);
 }
 
+#if GTK_CHECK_VERSION(3, 2, 0)
+static void
+eel_editable_label_accessible_class_init (EelEditableLabelAccessibleClass *klass)
+{
+    AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
+    GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+    a11y_parent_class = g_type_class_peek_parent (klass);
+
+    atk_class->initialize = eel_editable_label_accessible_initialize;
+    atk_class->get_name = eel_editable_label_accessible_get_name;
+    atk_class->ref_state_set = eel_editable_label_accessible_ref_state_set;
+    gobject_class->finalize = eel_editable_label_accessible_finalize;
+}
+
+static void
+eel_editable_label_accessible_init (EelEditableLabelAccessible *accessible)
+{
+}
+
+G_DEFINE_TYPE_WITH_CODE (EelEditableLabelAccessible,
+                         eel_editable_label_accessible,
+                         GTK_TYPE_WIDGET_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_EDITABLE_TEXT,
+                                                atk_editable_text_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT,
+                                                atk_text_interface_init));
+#else
 static void
 eel_editable_label_accessible_class_init (AtkObjectClass *klass)
 {
@@ -4607,4 +4660,4 @@ eel_editable_label_get_accessible (GtkWidget *widget)
 
     return eel_accessibility_set_atk_object_return (widget, accessible);
 }
-
+#endif
diff --git a/eel/eel-labeled-image.c b/eel/eel-labeled-image.c
index d9ff49c..ad0127b 100644
--- a/eel/eel-labeled-image.c
+++ b/eel/eel-labeled-image.c
@@ -31,6 +31,9 @@
 #include "eel-gtk-extensions.h"
 #include "eel-accessibility.h"
 #include <gtk/gtk.h>
+#if GTK_CHECK_VERSION(3, 2, 0)
+#include <gtk/gtk-a11y.h>
+#endif
 #include <gdk/gdkkeysyms.h>
 #include <atk/atkimage.h>
 
@@ -92,7 +95,11 @@ static GType         eel_labeled_image_radio_button_get_type  (void);
 static GType         eel_labeled_image_toggle_button_get_type (void);
 
 /* GtkWidgetClass methods */
+#if GTK_CHECK_VERSION(3, 2, 0)
+static GType eel_labeled_image_accessible_get_type (void);
+#else
 static AtkObject    *eel_labeled_image_get_accessible     (GtkWidget             *widget);
+#endif
 
 /* Private EelLabeledImage methods */
 static EelDimensions labeled_image_get_image_dimensions   (const EelLabeledImage *labeled_image);
@@ -593,7 +600,11 @@ eel_labeled_image_class_init (EelLabeledImageClass *labeled_image_class)
 #endif
     widget_class->map = eel_labeled_image_map;
     widget_class->unmap = eel_labeled_image_unmap;
+#if GTK_CHECK_VERSION(3, 2, 0)
+    gtk_widget_class_set_accessible_type (widget_class, eel_labeled_image_accessible_get_type ());
+#else
     widget_class->get_accessible = eel_labeled_image_get_accessible;
+#endif
 
     /* GtkContainerClass */
     container_class->add = eel_labeled_image_add;
@@ -2259,7 +2270,32 @@ static void
 eel_labeled_image_accessible_initialize (AtkObject *accessible,
         gpointer   widget)
 {
+#if GTK_CHECK_VERSION(3, 2, 0)
+    a11y_parent_class->initialize (accessible, widget);
+
+    if (GTK_IS_CHECK_BUTTON (widget))
+    {
+        atk_object_set_role (accessible, ATK_ROLE_CHECK_BOX);
+    }
+    else if (GTK_IS_RADIO_BUTTON (widget))
+    {
+        atk_object_set_role (accessible, ATK_ROLE_RADIO_BUTTON);
+    }
+    else if (GTK_IS_TOGGLE_BUTTON (widget))
+    {
+        atk_object_set_role (accessible, ATK_ROLE_TOGGLE_BUTTON);
+    }
+    else if (GTK_IS_BUTTON (widget))
+    {
+        atk_object_set_role (accessible, ATK_ROLE_PUSH_BUTTON);
+    }
+    else
+    {
+        atk_object_set_role (accessible, ATK_ROLE_IMAGE);
+    }
+#else
     a11y_parent_class->initialize (accessible, widget);
+#endif
 }
 
 static EelLabeledImage *
@@ -2321,6 +2357,40 @@ eel_labeled_image_accessible_image_interface_init (AtkImageIface *iface)
     iface->get_image_size = eel_labeled_image_accessible_image_get_size;
 }
 
+#if GTK_CHECK_VERSION(3, 2, 0)
+typedef struct _EelLabeledImageAccessible EelLabeledImageAccessible;
+typedef struct _EelLabeledImageAccessibleClass EelLabeledImageAccessibleClass;
+
+struct _EelLabeledImageAccessible
+{
+    GtkContainerAccessible parent;
+};
+
+struct _EelLabeledImageAccessibleClass
+{
+    GtkContainerAccessibleClass parent_class;
+};
+
+G_DEFINE_TYPE_WITH_CODE (EelLabeledImageAccessible,
+                         eel_labeled_image_accessible,
+                         GTK_TYPE_CONTAINER_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_IMAGE,
+                                                eel_labeled_image_accessible_image_interface_init));
+static void
+eel_labeled_image_accessible_class_init (EelLabeledImageAccessibleClass *klass)
+{
+    AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
+    a11y_parent_class = g_type_class_peek_parent (klass);
+
+    atk_class->get_name = eel_labeled_image_accessible_get_name;
+    atk_class->initialize = eel_labeled_image_accessible_initialize;
+}
+
+static void
+eel_labeled_image_accessible_init (EelLabeledImageAccessible *accessible)
+{
+}
+#else
 static void
 eel_labeled_image_accessible_class_init (AtkObjectClass *klass)
 {
@@ -2412,11 +2482,18 @@ eel_labeled_image_get_accessible (GtkWidget *widget)
 
     return eel_accessibility_set_atk_object_return (widget, accessible);
 }
+#endif
 
 static void
 eel_labeled_image_button_class_init (GtkWidgetClass *klass)
 {
+#if GTK_CHECK_VERSION(3, 2, 0)
+    gtk_widget_class_set_accessible_type (GTK_WIDGET_CLASS (klass),
+                                          eel_labeled_image_accessible_get_type ());
+
+#else
     klass->get_accessible = eel_labeled_image_get_accessible;
+#endif
 }
 
 static GType
diff --git a/libcaja-private/caja-icon-container.c b/libcaja-private/caja-icon-container.c
index 914cfb5..9fabebd 100644
--- a/libcaja-private/caja-icon-container.c
+++ b/libcaja-private/caja-icon-container.c
@@ -44,6 +44,9 @@
 #include <eel/eel-art-extensions.h>
 #include <eel/eel-editable-label.h>
 #include <eel/eel-string.h>
+#if GTK_CHECK_VERSION(3, 2, 0)
+#include <eel/eel-canvas.h>
+#endif
 #include <eel/eel-canvas-rect-ellipse.h>
 #include <gdk/gdkkeysyms.h>
 #include <gtk/gtk.h>
@@ -182,6 +185,21 @@ typedef struct
 
 static GType         caja_icon_container_accessible_get_type (void);
 
+#if GTK_CHECK_VERSION(3, 2, 0)
+typedef struct _CajaIconContainerAccessible CajaIconContainerAccessible;
+typedef struct _CajaIconContainerAccessibleClass CajaIconContainerAccessibleClass;
+
+struct _CajaIconContainerAccessible
+{
+    EelCanvasAccessible parent;
+};
+
+struct _CajaIconContainerAccessibleClass
+{
+    EelCanvasAccessibleClass parent_class;
+};
+#endif
+
 static void          activate_selected_items                        (CajaIconContainer *container);
 static void          activate_selected_items_alternate              (CajaIconContainer *container,
         CajaIcon          *icon);
@@ -6234,6 +6252,7 @@ expose_event (GtkWidget      *widget,
 }
 #endif
 
+#if !GTK_CHECK_VERSION(3, 2, 0)
 static AtkObject *
 get_accessible (GtkWidget *widget)
 {
@@ -6249,6 +6268,7 @@ get_accessible (GtkWidget *widget)
 
     return eel_accessibility_set_atk_object_return (widget, accessible);
 }
+#endif
 
 static void
 grab_notify_cb  (GtkWidget        *widget,
@@ -6688,7 +6708,11 @@ caja_icon_container_class_init (CajaIconContainerClass *class)
     widget_class->motion_notify_event = motion_notify_event;
     widget_class->key_press_event = key_press_event;
     widget_class->popup_menu = popup_menu;
+#if GTK_CHECK_VERSION(3,2,0)
+    gtk_widget_class_set_accessible_type (widget_class, caja_icon_container_accessible_get_type ());
+#else
     widget_class->get_accessible = get_accessible;
+#endif
 #if GTK_CHECK_VERSION(3,0,0)
     widget_class->style_updated = style_updated;
 #else
@@ -10507,6 +10531,38 @@ caja_icon_container_accessible_finalize (GObject *object)
     G_OBJECT_CLASS (accessible_parent_class)->finalize (object);
 }
 
+#if GTK_CHECK_VERSION(3,2,0)
+static void
+caja_icon_container_accessible_init (CajaIconContainerAccessible *accessible)
+{
+}
+
+static void
+caja_icon_container_accessible_class_init (CajaIconContainerAccessibleClass *klass)
+{
+    GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+    AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
+
+    accessible_parent_class = g_type_class_peek_parent (klass);
+
+    gobject_class->finalize = caja_icon_container_accessible_finalize;
+
+    atk_class->get_n_children = caja_icon_container_accessible_get_n_children;
+    atk_class->ref_child = caja_icon_container_accessible_ref_child;
+    atk_class->initialize = caja_icon_container_accessible_initialize;
+
+    accessible_private_data_quark = g_quark_from_static_string ("icon-container-accessible-private-data");
+}
+
+G_DEFINE_TYPE_WITH_CODE (CajaIconContainerAccessible,
+                         caja_icon_container_accessible,
+                         eel_canvas_accessible_get_type (),
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION,
+                                                caja_icon_container_accessible_action_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION,
+                                                caja_icon_container_accessible_selection_interface_init));
+
+#else
 static void
 caja_icon_container_accessible_class_init (AtkObjectClass *klass)
 {
@@ -10557,6 +10613,7 @@ caja_icon_container_accessible_get_type (void)
 
     return type;
 }
+#endif
 
 #if ! defined (CAJA_OMIT_SELF_CHECK)
 
diff --git a/src/caja-zoom-control.c b/src/caja-zoom-control.c
index 4542430..4dbf205 100644
--- a/src/caja-zoom-control.c
+++ b/src/caja-zoom-control.c
@@ -37,6 +37,9 @@
 #include <eel/eel-graphic-effects.h>
 #include <eel/eel-gtk-extensions.h>
 #include <gtk/gtk.h>
+#if GTK_CHECK_VERSION(3, 2, 0)
+#include <gtk/gtk-a11y.h>
+#endif
 #include <gdk/gdkkeysyms.h>
 #include <libcaja-private/caja-file-utilities.h>
 #include <libcaja-private/caja-global-preferences.h>
@@ -513,6 +516,7 @@ create_zoom_menu (CajaZoomControl *zoom_control)
     return menu;
 }
 
+#if !GTK_CHECK_VERSION(3, 2, 0)
 static AtkObject *
 caja_zoom_control_get_accessible (GtkWidget *widget)
 {
@@ -530,6 +534,7 @@ caja_zoom_control_get_accessible (GtkWidget *widget)
 
     return eel_accessibility_set_atk_object_return (widget, accessible);
 }
+#endif
 
 static void
 caja_zoom_control_change_value (CajaZoomControl *zoom_control,
@@ -673,7 +678,12 @@ caja_zoom_control_class_init (CajaZoomControlClass *class)
 
     widget_class = GTK_WIDGET_CLASS (class);
 
+#if GTK_CHECK_VERSION(3, 2, 0)
+    gtk_widget_class_set_accessible_type (widget_class,
+                                          caja_zoom_control_accessible_get_type ());
+#else
     widget_class->get_accessible = caja_zoom_control_get_accessible;
+#endif
     widget_class->scroll_event = caja_zoom_control_scroll_event;
 
     class->change_value = caja_zoom_control_change_value;
@@ -952,6 +962,43 @@ caja_zoom_control_accessible_initialize (AtkObject *accessible,
     atk_object_set_role (accessible, ATK_ROLE_DIAL);
 }
 
+#if GTK_CHECK_VERSION(3, 2, 0)
+typedef struct _CajaZoomControlAccessible CajaZoomControlAccessible;
+typedef struct _CajaZoomControlAccessibleClass CajaZoomControlAccessibleClass;
+
+struct _CajaZoomControlAccessible
+{
+    GtkContainerAccessible parent;
+};
+
+struct _CajaZoomControlAccessibleClass
+{
+    GtkContainerAccessibleClass parent_class;
+};
+
+G_DEFINE_TYPE_WITH_CODE (CajaZoomControlAccessible,
+                         caja_zoom_control_accessible,
+                         GTK_TYPE_CONTAINER_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION,
+                                                caja_zoom_control_accessible_action_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE,
+                                                caja_zoom_control_accessible_value_interface_init));
+static void
+caja_zoom_control_accessible_class_init (CajaZoomControlAccessibleClass *klass)
+{
+    AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
+    accessible_parent_class = g_type_class_peek_parent (klass);
+
+    atk_class->get_name = caja_zoom_control_accessible_get_name;
+    atk_class->get_description = caja_zoom_control_accessible_get_description;
+    atk_class->initialize = caja_zoom_control_accessible_initialize;
+}
+
+static void
+caja_zoom_control_accessible_init (CajaZoomControlAccessible *accessible)
+{
+}
+#else
 static void
 caja_zoom_control_accessible_class_init (AtkObjectClass *klass)
 {
@@ -1000,6 +1047,7 @@ caja_zoom_control_accessible_get_type (void)
 
     return type;
 }
+#endif
 
 void
 caja_zoom_control_set_active_appearance (CajaZoomControl *zoom_control, gboolean is_active)
-- 
2.7.4


--- End Message ---
--- Begin Message ---
Source: caja
Source-Version: 1.16.1-1

We believe that the bug you reported is fixed in the latest version of
caja, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Mike Gabriel <[email protected]> (supplier of updated caja package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Thu, 20 Oct 2016 13:17:32 +0200
Source: caja
Binary: caja caja-common libcaja-extension1 libcaja-extension-dev 
libcaja-extension-doc gir1.2-caja
Architecture: source all amd64
Version: 1.16.1-1
Distribution: unstable
Urgency: medium
Maintainer: MATE Packaging Team <[email protected]>
Changed-By: Mike Gabriel <[email protected]>
Description:
 caja       - file manager for the MATE desktop
 caja-common - file manager for the MATE desktop (common files)
 gir1.2-caja - GObject introspection data for Caja
 libcaja-extension-dev - libraries for Caja components (development files)
 libcaja-extension-doc - libraries for Caja components (API documentation files)
 libcaja-extension1 - libraries for Caja components
Closes: 839799 840422 840568
Changes:
 caja (1.16.1-1) unstable; urgency=medium
 .
   * New upstream release.
     - Fix regression that sometimes caused visual glitches when selecting
       icons.
     - GTK+3: Some CSS adjustments. (Closes: #839799).
     - GTK+3: Fix accessibility on desktop (for Orca). (Closes: #840568).
     - GTK+3: Fix several runtime warnings. (Closes: #840422).
     - Translations update.
Checksums-Sha1:
 78b5facab3ade015b9477b66ac70114330c44bb2 2676 caja_1.16.1-1.dsc
 caf07921a68a2e332908e4493fbadcff23738b26 3311288 caja_1.16.1.orig.tar.xz
 60316a629250b6b9eb3cdb04ad172cf897b964a6 9828 caja_1.16.1-1.debian.tar.xz
 267c2b7d98e5330c3ae3fa6d32a758461980932c 2167654 caja-common_1.16.1-1_all.deb
 a5d4c1b348be55b04225e90e43c9315d871c3172 4037824 caja-dbgsym_1.16.1-1_amd64.deb
 66713a0d48b1b7f2670b7cf0854849bacde71a08 802896 caja_1.16.1-1_amd64.deb
 2465d669347dd2a9ff8c4a9b94cd9b2fd421e02e 16846 gir1.2-caja_1.16.1-1_amd64.deb
 21628f8fc58d31e7b72d21591c180db37500d465 14448 
libcaja-extension-dev_1.16.1-1_amd64.deb
 074a6f071c6885faaaeb40efb42190f0d45782a5 27334 
libcaja-extension-doc_1.16.1-1_all.deb
 8eb490b213ebbd988896ec8d4145badda6c3b32d 44028 
libcaja-extension1-dbgsym_1.16.1-1_amd64.deb
 45c100f2e1bddc5e6949d9069e20c97fc56aabe6 19502 
libcaja-extension1_1.16.1-1_amd64.deb
Checksums-Sha256:
 0a47df834ffea494ddada3ed5e48c37b3e8f779717fdc3bfe7b363cdcee7261c 2676 
caja_1.16.1-1.dsc
 3e2537dc10f0dd27004e0125d556b6007c55f6551171e3d70c5b7b21012246e3 3311288 
caja_1.16.1.orig.tar.xz
 18da2f758cbcaf5b817f97d2dae2811537eaf6cbd9ee374b7b1ed4ef5b32cf1a 9828 
caja_1.16.1-1.debian.tar.xz
 761aff66a5e4f5914bda1e2dc4a737eec7c95fb3213b81121f91683bdadb6848 2167654 
caja-common_1.16.1-1_all.deb
 7cff00b34a49bd5997eff465c9310dd8ef0b81ae70b2bd9658d5f24078960799 4037824 
caja-dbgsym_1.16.1-1_amd64.deb
 51b28dcfc59f40da8d80a2097e5499eba7009122e56f4e4c02fbdf5f7e918432 802896 
caja_1.16.1-1_amd64.deb
 741fbb0672c953f706807384750e096288419eb06d7c05e41012d05a6ef14df3 16846 
gir1.2-caja_1.16.1-1_amd64.deb
 cbb1123fc28534e64fb0ba6abc8c39988556288983145d6da2ce1004a0e343eb 14448 
libcaja-extension-dev_1.16.1-1_amd64.deb
 134370aec62233954583932c240362d5f02aade8a8ce1aa0264fba6cc61a6dcc 27334 
libcaja-extension-doc_1.16.1-1_all.deb
 ee2b78f924dba8db4cb509fd4b2d7e8855f6f39fa7b434825e504bdac82e30ec 44028 
libcaja-extension1-dbgsym_1.16.1-1_amd64.deb
 ee54c0e2d399459f6c51c594d92ab946005d66ffe4632deffe10e19981a5083d 19502 
libcaja-extension1_1.16.1-1_amd64.deb
Files:
 1917f3d13a2e0ad7476036f7fd8e13c0 2676 utils optional caja_1.16.1-1.dsc
 fad188af5c5b8e3e8ca8bc3c2f22d7de 3311288 utils optional caja_1.16.1.orig.tar.xz
 61e83b50a372291fa3b25f239a895e28 9828 utils optional 
caja_1.16.1-1.debian.tar.xz
 9777149cd2345a55cd94dc970b068d75 2167654 utils optional 
caja-common_1.16.1-1_all.deb
 b0dd7fe75df68ecbca8588eb6bafd168 4037824 debug extra 
caja-dbgsym_1.16.1-1_amd64.deb
 489b795667e2bfa87af1f54f45cdde70 802896 utils optional caja_1.16.1-1_amd64.deb
 4a2d3ed9289595789e0ba187791a9637 16846 introspection optional 
gir1.2-caja_1.16.1-1_amd64.deb
 023f78e83e58063e1c260802d0b72c9c 14448 libdevel optional 
libcaja-extension-dev_1.16.1-1_amd64.deb
 aac1de1ad0346ba3dd2d2dd8b81ba13a 27334 doc optional 
libcaja-extension-doc_1.16.1-1_all.deb
 ea7888de77961fd694b829626c7bceb2 44028 debug extra 
libcaja-extension1-dbgsym_1.16.1-1_amd64.deb
 f97fe231b5562236e91a2d1bbbce4e69 19502 libs optional 
libcaja-extension1_1.16.1-1_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCAAGBQJYCKsjAAoJEJr0azAldxsxvBAQAKKjs1hJUTrmBE98Yo8j4GdB
WwHBr2IEfQbaVZeIC5t8fCk5iEucO79opj+rrIH0grX54w1uN9QPwmRL5NMJwmJq
erBV6KzAITWlG2bUBGvM0Q7jDTvUPcOci/04RWdqwehcjUe/LsoDXADoolJvddml
pliPW+2keKjB1MWBl/pQw9XoVoCE5pMDybNxY9bVgjcvRzcPq1fnUnrPeh3hxg04
V0xcgt5MRKdWy6+UNixhUnFAk6UG3zfwMnGoG59zTjt9oNJX6BRK4avVjhFvo7b4
/aN7mGRiIePc3CyJO97AkMrfdqK4qXJEF/Xn3N5hUdW0ZeGotxD/0gySfusUQv8c
WFP0GPnPD5fL97PFroCAr8mARhP8N5bxjgZ7duyqdl+ZlLqj+NL/gY/iLvZtVFE4
KE0sTeox6AHdCG5QvDrSY7qVI2txDKE3JUufXZlZZ9/E0Z1oJBi1XPEHEZlaU9dU
dN00aNgDdTuy8noIaZp4jv8LsquE3kasxco21pAkhVmawe64n1Nql718DJR/NATO
EaTMnDah09uGfiJZxgl+rC/gGriIZsQhlQcuQ3NMVcOy60N91icRdNylCzhhwrsH
1lkueo5ELpvFC0wwWka/JnnSYfZKe4OsZmnSfXwnDCF/Hw1dxpBZj+fKHWHg3tqN
/HHHwpG/P/s8VYPJ8MBB
=sagz
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to