]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
no message
authorstv <stv@opencascade.com>
Wed, 20 Dec 2006 13:58:28 +0000 (13:58 +0000)
committerstv <stv@opencascade.com>
Wed, 20 Dec 2006 13:58:28 +0000 (13:58 +0000)
src/QDS/QDS_Datum.cxx

index 848fe6a04cd705b4ceb8e5fc7012edc9177dd101..54fb1a383976d102278e9ef58a72fdce9c0652a9 100644 (file)
@@ -4,6 +4,8 @@
 
 #include <DDS_Dictionary.h>
 
+#include <Qtx.h>
+
 #include <qtimer.h>
 #include <qlabel.h>
 #include <qwidget.h>
@@ -71,7 +73,12 @@ void QDS_Datum::Wrapper::setWidget( QWidget* wid )
   if ( myWid->parent() != this )
     myWid->reparent( this, QPoint( 0, 0 ) );
 
-  myWid->installEventFilter( this );
+  QWidget* w = myWid;
+  while ( w )
+  {
+    w->installEventFilter( this );
+    w = w->focusProxy();
+  }
 
   setTabOrder( this, myWid );
   setFocusProxy( myWid );
@@ -82,7 +89,7 @@ void QDS_Datum::Wrapper::setWidget( QWidget* wid )
 
 bool QDS_Datum::Wrapper::eventFilter( QObject* o, QEvent* e )
 {
-  if ( o == widget() && ( e->type() == QEvent::FocusIn || e->type() == QEvent::FocusOut ) )
+  if ( Qtx::isParent( o, this ) && ( e->type() == QEvent::FocusIn || e->type() == QEvent::FocusOut ) )
     QApplication::sendEvent( this, e );
 
   return false;