Index: vcl/inc/salobj.hxx
===================================================================
RCS file: /cvs/gsl/vcl/inc/salobj.hxx,v
retrieving revision 1.5
diff -u -p -r1.5 salobj.hxx
--- vcl/inc/vcl/salobj.hxx  2 Nov 2005 13:28:47 -0000       1.5
+++ vcl/inc/vcl/salobj.hxx  5 Jan 2007 15:00:36 -0000
@@ -88,6 +88,8 @@ public:
        virtual void                                    SetBackground() = 0;
        virtual void                                    SetBackground( SalColor nSalColor ) = 0;

+        virtual void                                    SetForwardKey( BOOL bEnable ) {}
+
        virtual const SystemEnvData*    GetSystemData() const = 0;

        void                                    SetCallback( void* pInst, SALOBJECTPROC pProc )
Index: vcl/inc/syschild.hxx
===================================================================
RCS file: /cvs/gsl/vcl/inc/syschild.hxx,v
retrieving revision 1.5
diff -u -p -r1.5 syschild.hxx
--- vcl/inc/vcl/syschild.hxx        19 Jun 2006 19:10:32 -0000      1.5
+++ vcl/inc/vcl/syschild.hxx        5 Jan 2007 15:00:36 -0000
@@ -77,6 +77,7 @@ public:
     //  however, this might not always be required
     void                    EnableEraseBackground( BOOL bEnable = TRUE );
     BOOL                    IsEraseBackgroundEnabled();
+     void                    SetForwardKey( BOOL bEnable );
 };

 #endif // _SV_SYSCHILD_HXX
Index: vcl/source/window/syschild.cxx
===================================================================
RCS file: /cvs/gsl/vcl/source/window/syschild.cxx,v
retrieving revision 1.8
diff -u -p -r1.8 syschild.cxx
--- vcl/source/window/syschild.cxx      10 Jul 2006 16:36:07 -0000      1.8
+++ vcl/source/window/syschild.cxx      5 Jan 2007 15:00:49 -0000
@@ -207,3 +211,9 @@ BOOL SystemChildWindow::IsEraseBackgroun
     else
         return FALSE;
 }
+
+void SystemChildWindow::SetForwardKey( BOOL bEnable )
+{
+       if ( mpWindowImpl->mpSysObj )
+               mpWindowImpl->mpSysObj->SetForwardKey( bEnable );
+}
Index: vcl/unx/gtk/window/gtkobject.cxx
===================================================================
RCS file: /cvs/gsl/vcl/unx/gtk/window/gtkobject.cxx,v
retrieving revision 1.8.90.1
diff -u -p -r1.8.90.1 gtkobject.cxx
--- vcl/unx/gtk/window/gtkobject.cxx    10 Aug 2006 14:54:05 -0000      1.8.90.1
+++ vcl/unx/gtk/window/gtkobject.cxx    5 Jan 2007 15:00:54 -0000
@@ -211,3 +242,12 @@ void GtkSalObject::signalDestroy( GtkObj
         pThis->m_pSocket = NULL;
     }
 }
+
+void GtkSalObject::SetForwardKey( BOOL bEnable )
+{
+    printf ("GtkSalObject::SetForwardKey\n");
+    if( bEnable )
+        gtk_widget_add_events( GTK_WIDGET( m_pSocket ), GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE );
+    else
+        gtk_widget_set_events( GTK_WIDGET( m_pSocket ), ~(GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE) & gtk_widget_get_events( GTK_WIDGET( m_pSocket ) ) );
+}
Index: vcl/unx/inc/plugins/gtk/gtkobject.hxx
===================================================================
RCS file: /cvs/gsl/vcl/unx/inc/plugins/gtk/gtkobject.hxx,v
retrieving revision 1.4
diff -u -p -r1.4 gtkobject.hxx
--- vcl/unx/inc/plugins/gtk/gtkobject.hxx       9 Sep 2005 12:52:22 -0000       1.4
+++ vcl/unx/inc/plugins/gtk/gtkobject.hxx       5 Jan 2007 15:00:54 -0000
@@ -78,6 +79,8 @@ public:
        virtual void                                    SetBackground();
        virtual void                                    SetBackground( SalColor nSalColor );

+        virtual void                                    SetForwardKey( BOOL bEnable );
+
        virtual const SystemEnvData*    GetSystemData() const;

 };
