summaryrefslogtreecommitdiff
path: root/patches/src680/ooo70361.vcl.atkfilechooser.diff
diff options
context:
space:
mode:
Diffstat (limited to 'patches/src680/ooo70361.vcl.atkfilechooser.diff')
-rw-r--r--patches/src680/ooo70361.vcl.atkfilechooser.diff53
1 files changed, 53 insertions, 0 deletions
diff --git a/patches/src680/ooo70361.vcl.atkfilechooser.diff b/patches/src680/ooo70361.vcl.atkfilechooser.diff
new file mode 100644
index 000000000..eac6abe6b
--- /dev/null
+++ b/patches/src680/ooo70361.vcl.atkfilechooser.diff
@@ -0,0 +1,53 @@
+Index: unx/gtk/a11y/atkwindow.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/gtk/a11y/atkwindow.cxx,v
+retrieving revision 1.4
+diff -u -r1.4 atkwindow.cxx
+--- vcl/unx/gtk/a11y/atkwindow.cxx 17 Sep 2006 12:28:42 -0000 1.4
++++ vcl/unx/gtk/a11y/atkwindow.cxx 23 Oct 2006 09:55:43 -0000
+@@ -67,7 +67,13 @@
+ ooo_window_wrapper_real_initialize(AtkObject *obj, gpointer data)
+ {
+ window_real_initialize(obj, data);
+- obj->role = GtkSalFrame::GetAtkRole( GTK_WINDOW( data ) );
++
++ /* GetAtkRole returns ATK_ROLE_INVALID for all non VCL windows, i.e.
++ * native Gtk+ file picker etc.
++ */
++ AtkRole newRole = GtkSalFrame::GetAtkRole( GTK_WINDOW( data ) );
++ if( newRole != ATK_ROLE_INVALID )
++ obj->role = newRole;
+
+ if( obj->role == ATK_ROLE_TOOL_TIP )
+ {
+Index: unx/gtk/window/gtkframe.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/gtk/window/gtkframe.cxx,v
+retrieving revision 1.55
+diff -u -r1.55 gtkframe.cxx
+--- vcl/unx/gtk/window/gtkframe.cxx 17 Sep 2006 12:30:17 -0000 1.55
++++ vcl/unx/gtk/window/gtkframe.cxx 23 Oct 2006 09:55:44 -0000
+@@ -657,11 +657,13 @@
+ if( aDefaultRole == ATK_ROLE_INVALID )
+ aDefaultRole = atk_role_register( "redundant object" );
+
+- AtkRole role = aDefaultRole;
++ AtkRole role = ATK_ROLE_INVALID;
+
+ GtkSalFrame * pFrame = getFromWindow( window );
+ if( pFrame )
+ {
++ role = aDefaultRole;
++
+ Window *pWindow = static_cast <Window *> (pFrame->GetInstance());
+ if( pWindow )
+ {
+@@ -710,7 +712,7 @@
+ }
+ }
+ }
+-
++
+ return role;
+ }
+