Kaydet (Commit) 093d7b81 authored tarafından Caolán McNamara's avatar Caolán McNamara

Resolves: tdf#92293 gtk3: get a11y working

Change-Id: I89cfde9b4c97852d36817b716ac08bd32096915b
üst 6d0a9ccf
...@@ -471,6 +471,7 @@ public: ...@@ -471,6 +471,7 @@ public:
extern "C" { extern "C" {
GType ooo_fixed_get_type(); GType ooo_fixed_get_type();
AtkObject* ooo_fixed_get_accessible(GtkWidget *obj);
} // extern "C" } // extern "C"
......
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
bool InitAtkBridge() bool InitAtkBridge()
{ {
#if !GTK_CHECK_VERSION(3,0,0)
const char* pVersion = atk_get_toolkit_version(); const char* pVersion = atk_get_toolkit_version();
if( ! pVersion ) if( ! pVersion )
return false; return false;
...@@ -56,16 +55,13 @@ bool InitAtkBridge() ...@@ -56,16 +55,13 @@ bool InitAtkBridge()
AtkRegistry * registry = atk_get_default_registry(); AtkRegistry * registry = atk_get_default_registry();
if( registry ) if( registry )
atk_registry_set_factory_type( registry, OOO_TYPE_FIXED, OOO_TYPE_WRAPPER_FACTORY ); atk_registry_set_factory_type( registry, OOO_TYPE_FIXED, OOO_TYPE_WRAPPER_FACTORY );
#endif
return true; return true;
} }
void DeInitAtkBridge() void DeInitAtkBridge()
{ {
#if !GTK_CHECK_VERSION(3,0,0)
restore_gail_window_vtable(); restore_gail_window_vtable();
#endif
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -140,6 +140,11 @@ wrapper_factory_create_accessible( GObject *obj ) ...@@ -140,6 +140,11 @@ wrapper_factory_create_accessible( GObject *obj )
return NULL; return NULL;
} }
AtkObject* ooo_fixed_get_accessible(GtkWidget *obj)
{
return wrapper_factory_create_accessible(G_OBJECT(obj));
}
static void static void
wrapper_factory_class_init( AtkObjectFactoryClass *klass ) wrapper_factory_class_init( AtkObjectFactoryClass *klass )
{ {
......
...@@ -970,6 +970,17 @@ void GtkSalFrame::resizeWindow( long nWidth, long nHeight ) ...@@ -970,6 +970,17 @@ void GtkSalFrame::resizeWindow( long nWidth, long nHeight )
window_resize(nWidth, nHeight); window_resize(nWidth, nHeight);
} }
#if GTK_CHECK_VERSION(3,2,0)
static void
ooo_fixed_class_init(GtkFixedClass *klass)
{
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
widget_class->get_accessible = ooo_fixed_get_accessible;
}
#endif
/* /*
* Always use a sub-class of GtkFixed we can tag for a11y. This allows us to * Always use a sub-class of GtkFixed we can tag for a11y. This allows us to
* utilize GAIL for the toplevel window and toolkit implementation incl. * utilize GAIL for the toplevel window and toolkit implementation incl.
...@@ -987,7 +998,11 @@ ooo_fixed_get_type() ...@@ -987,7 +998,11 @@ ooo_fixed_get_type()
sizeof (GtkFixedClass), sizeof (GtkFixedClass),
nullptr, /* base init */ nullptr, /* base init */
nullptr, /* base finalize */ nullptr, /* base finalize */
#if GTK_CHECK_VERSION(3,2,0)
reinterpret_cast<GClassInitFunc>(ooo_fixed_class_init), /* class init */
#else
nullptr, /* class init */ nullptr, /* class init */
#endif
nullptr, /* class finalize */ nullptr, /* class finalize */
NULL, /* class data */ NULL, /* class data */
sizeof (GtkFixed), /* instance size */ sizeof (GtkFixed), /* instance size */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment